blob: 62185ed691d30547d6aab545f4816434d7ae8a70 [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
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000122#define literal_expr_type 1048
123#define complex_number_type 1049
124#define signed_number_type 1050
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700125#define signed_real_number_type 1051
126#define real_number_type 1052
127#define imaginary_number_type 1053
128#define capture_pattern_type 1054
129#define pattern_capture_target_type 1055
130#define wildcard_pattern_type 1056
131#define value_pattern_type 1057
132#define attr_type 1058 // Left-recursive
133#define name_or_attr_type 1059 // Left-recursive
134#define group_pattern_type 1060
135#define sequence_pattern_type 1061
136#define open_sequence_pattern_type 1062
137#define maybe_sequence_pattern_type 1063
138#define maybe_star_pattern_type 1064
139#define star_pattern_type 1065
140#define mapping_pattern_type 1066
141#define items_pattern_type 1067
142#define key_value_pattern_type 1068
143#define double_star_pattern_type 1069
144#define class_pattern_type 1070
145#define positional_patterns_type 1071
146#define keyword_patterns_type 1072
147#define keyword_pattern_type 1073
148#define return_stmt_type 1074
149#define raise_stmt_type 1075
150#define function_def_type 1076
151#define function_def_raw_type 1077
152#define func_type_comment_type 1078
153#define params_type 1079
154#define parameters_type 1080
155#define slash_no_default_type 1081
156#define slash_with_default_type 1082
157#define star_etc_type 1083
158#define kwds_type 1084
159#define param_no_default_type 1085
160#define param_with_default_type 1086
161#define param_maybe_default_type 1087
162#define param_type 1088
163#define annotation_type 1089
164#define default_type 1090
165#define decorators_type 1091
166#define class_def_type 1092
167#define class_def_raw_type 1093
168#define block_type 1094
169#define star_expressions_type 1095
170#define star_expression_type 1096
171#define star_named_expressions_type 1097
172#define star_named_expression_type 1098
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700173#define assigment_expression_type 1099
174#define named_expression_type 1100
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700175#define annotated_rhs_type 1101
176#define expressions_type 1102
177#define expression_type 1103
178#define lambdef_type 1104
179#define lambda_params_type 1105
180#define lambda_parameters_type 1106
181#define lambda_slash_no_default_type 1107
182#define lambda_slash_with_default_type 1108
183#define lambda_star_etc_type 1109
184#define lambda_kwds_type 1110
185#define lambda_param_no_default_type 1111
186#define lambda_param_with_default_type 1112
187#define lambda_param_maybe_default_type 1113
188#define lambda_param_type 1114
189#define disjunction_type 1115
190#define conjunction_type 1116
191#define inversion_type 1117
192#define comparison_type 1118
193#define compare_op_bitwise_or_pair_type 1119
194#define eq_bitwise_or_type 1120
195#define noteq_bitwise_or_type 1121
196#define lte_bitwise_or_type 1122
197#define lt_bitwise_or_type 1123
198#define gte_bitwise_or_type 1124
199#define gt_bitwise_or_type 1125
200#define notin_bitwise_or_type 1126
201#define in_bitwise_or_type 1127
202#define isnot_bitwise_or_type 1128
203#define is_bitwise_or_type 1129
204#define bitwise_or_type 1130 // Left-recursive
205#define bitwise_xor_type 1131 // Left-recursive
206#define bitwise_and_type 1132 // Left-recursive
207#define shift_expr_type 1133 // Left-recursive
208#define sum_type 1134 // Left-recursive
209#define term_type 1135 // Left-recursive
210#define factor_type 1136
211#define power_type 1137
212#define await_primary_type 1138
213#define primary_type 1139 // Left-recursive
214#define slices_type 1140
215#define slice_type 1141
216#define atom_type 1142
217#define strings_type 1143
218#define list_type 1144
219#define listcomp_type 1145
220#define tuple_type 1146
221#define group_type 1147
222#define genexp_type 1148
223#define set_type 1149
224#define setcomp_type 1150
225#define dict_type 1151
226#define dictcomp_type 1152
227#define double_starred_kvpairs_type 1153
228#define double_starred_kvpair_type 1154
229#define kvpair_type 1155
230#define for_if_clauses_type 1156
231#define for_if_clause_type 1157
232#define yield_expr_type 1158
233#define arguments_type 1159
234#define args_type 1160
235#define kwargs_type 1161
236#define starred_expression_type 1162
237#define kwarg_or_starred_type 1163
238#define kwarg_or_double_starred_type 1164
239#define star_targets_type 1165
240#define star_targets_list_seq_type 1166
241#define star_targets_tuple_seq_type 1167
242#define star_target_type 1168
243#define target_with_star_atom_type 1169
244#define star_atom_type 1170
245#define single_target_type 1171
246#define single_subscript_attribute_target_type 1172
247#define del_targets_type 1173
248#define del_target_type 1174
249#define del_t_atom_type 1175
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700250#define t_primary_type 1176 // Left-recursive
251#define t_lookahead_type 1177
252#define invalid_arguments_type 1178
253#define invalid_kwarg_type 1179
254#define expression_without_invalid_type 1180
255#define invalid_expression_type 1181
256#define invalid_named_expression_type 1182
257#define invalid_assignment_type 1183
258#define invalid_ann_assign_target_type 1184
259#define invalid_del_stmt_type 1185
260#define invalid_block_type 1186
261#define invalid_primary_type 1187 // Left-recursive
262#define invalid_comprehension_type 1188
263#define invalid_dict_comprehension_type 1189
264#define invalid_parameters_type 1190
265#define invalid_parameters_helper_type 1191
266#define invalid_lambda_parameters_type 1192
267#define invalid_lambda_parameters_helper_type 1193
268#define invalid_star_etc_type 1194
269#define invalid_lambda_star_etc_type 1195
270#define invalid_double_type_comments_type 1196
271#define invalid_with_item_type 1197
272#define invalid_for_target_type 1198
273#define invalid_group_type 1199
274#define invalid_import_from_targets_type 1200
275#define invalid_with_stmt_type 1201
276#define invalid_with_stmt_indent_type 1202
277#define invalid_try_stmt_type 1203
278#define invalid_except_stmt_type 1204
279#define invalid_finally_stmt_type 1205
280#define invalid_except_stmt_indent_type 1206
281#define invalid_match_stmt_type 1207
282#define invalid_case_block_type 1208
Pablo Galindoa8c418d2021-06-18 22:15:57 +0100283#define invalid_as_pattern_type 1209
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700284#define invalid_class_pattern_type 1210
285#define invalid_class_argument_pattern_type 1211
286#define invalid_if_stmt_type 1212
287#define invalid_elif_stmt_type 1213
288#define invalid_else_stmt_type 1214
289#define invalid_while_stmt_type 1215
290#define invalid_for_stmt_type 1216
291#define invalid_def_raw_type 1217
292#define invalid_class_def_raw_type 1218
293#define invalid_double_starred_kvpairs_type 1219
294#define invalid_kvpair_type 1220
295#define _loop0_1_type 1221
296#define _loop0_2_type 1222
297#define _loop0_4_type 1223
298#define _gather_3_type 1224
299#define _loop0_6_type 1225
300#define _gather_5_type 1226
301#define _loop0_8_type 1227
302#define _gather_7_type 1228
303#define _loop0_10_type 1229
304#define _gather_9_type 1230
305#define _loop1_11_type 1231
306#define _loop0_13_type 1232
307#define _gather_12_type 1233
308#define _tmp_14_type 1234
309#define _tmp_15_type 1235
310#define _tmp_16_type 1236
311#define _tmp_17_type 1237
312#define _tmp_18_type 1238
313#define _tmp_19_type 1239
314#define _tmp_20_type 1240
315#define _tmp_21_type 1241
316#define _loop1_22_type 1242
317#define _tmp_23_type 1243
318#define _tmp_24_type 1244
319#define _loop0_26_type 1245
320#define _gather_25_type 1246
321#define _loop0_28_type 1247
322#define _gather_27_type 1248
323#define _tmp_29_type 1249
324#define _tmp_30_type 1250
325#define _loop0_31_type 1251
326#define _loop1_32_type 1252
327#define _loop0_34_type 1253
328#define _gather_33_type 1254
329#define _tmp_35_type 1255
330#define _loop0_37_type 1256
331#define _gather_36_type 1257
332#define _tmp_38_type 1258
333#define _loop0_40_type 1259
334#define _gather_39_type 1260
335#define _loop0_42_type 1261
336#define _gather_41_type 1262
337#define _loop0_44_type 1263
338#define _gather_43_type 1264
339#define _loop0_46_type 1265
340#define _gather_45_type 1266
341#define _tmp_47_type 1267
342#define _loop1_48_type 1268
343#define _tmp_49_type 1269
344#define _loop1_50_type 1270
345#define _loop0_52_type 1271
346#define _gather_51_type 1272
347#define _tmp_53_type 1273
348#define _tmp_54_type 1274
349#define _tmp_55_type 1275
350#define _tmp_56_type 1276
351#define _loop0_58_type 1277
352#define _gather_57_type 1278
353#define _loop0_60_type 1279
354#define _gather_59_type 1280
355#define _tmp_61_type 1281
356#define _loop0_63_type 1282
357#define _gather_62_type 1283
358#define _loop0_65_type 1284
359#define _gather_64_type 1285
360#define _tmp_66_type 1286
361#define _tmp_67_type 1287
362#define _tmp_68_type 1288
363#define _tmp_69_type 1289
364#define _loop0_70_type 1290
365#define _loop0_71_type 1291
366#define _loop0_72_type 1292
367#define _loop1_73_type 1293
368#define _loop0_74_type 1294
369#define _loop1_75_type 1295
370#define _loop1_76_type 1296
371#define _loop1_77_type 1297
372#define _loop0_78_type 1298
373#define _loop1_79_type 1299
374#define _loop0_80_type 1300
375#define _loop1_81_type 1301
376#define _loop0_82_type 1302
377#define _loop1_83_type 1303
378#define _loop1_84_type 1304
379#define _tmp_85_type 1305
380#define _loop1_86_type 1306
381#define _loop0_88_type 1307
382#define _gather_87_type 1308
383#define _loop1_89_type 1309
384#define _loop0_90_type 1310
385#define _loop0_91_type 1311
386#define _loop0_92_type 1312
387#define _loop1_93_type 1313
388#define _loop0_94_type 1314
389#define _loop1_95_type 1315
390#define _loop1_96_type 1316
391#define _loop1_97_type 1317
392#define _loop0_98_type 1318
393#define _loop1_99_type 1319
394#define _loop0_100_type 1320
395#define _loop1_101_type 1321
396#define _loop0_102_type 1322
397#define _loop1_103_type 1323
398#define _loop1_104_type 1324
399#define _loop1_105_type 1325
400#define _loop1_106_type 1326
401#define _tmp_107_type 1327
402#define _loop0_109_type 1328
403#define _gather_108_type 1329
404#define _tmp_110_type 1330
405#define _tmp_111_type 1331
406#define _tmp_112_type 1332
407#define _tmp_113_type 1333
408#define _loop1_114_type 1334
409#define _tmp_115_type 1335
410#define _tmp_116_type 1336
411#define _tmp_117_type 1337
412#define _loop0_119_type 1338
413#define _gather_118_type 1339
414#define _loop1_120_type 1340
415#define _loop0_121_type 1341
416#define _loop0_122_type 1342
417#define _loop0_124_type 1343
418#define _gather_123_type 1344
419#define _tmp_125_type 1345
420#define _loop0_127_type 1346
421#define _gather_126_type 1347
422#define _loop0_129_type 1348
423#define _gather_128_type 1349
424#define _loop0_131_type 1350
425#define _gather_130_type 1351
426#define _loop0_133_type 1352
427#define _gather_132_type 1353
428#define _loop0_134_type 1354
429#define _loop0_136_type 1355
430#define _gather_135_type 1356
431#define _loop1_137_type 1357
432#define _tmp_138_type 1358
433#define _loop0_140_type 1359
434#define _gather_139_type 1360
435#define _tmp_141_type 1361
436#define _tmp_142_type 1362
437#define _tmp_143_type 1363
438#define _tmp_144_type 1364
439#define _tmp_145_type 1365
440#define _tmp_146_type 1366
441#define _loop0_147_type 1367
442#define _loop0_148_type 1368
443#define _loop0_149_type 1369
444#define _tmp_150_type 1370
445#define _tmp_151_type 1371
446#define _tmp_152_type 1372
447#define _tmp_153_type 1373
448#define _loop0_154_type 1374
449#define _loop1_155_type 1375
450#define _loop0_156_type 1376
451#define _loop1_157_type 1377
452#define _tmp_158_type 1378
453#define _tmp_159_type 1379
454#define _tmp_160_type 1380
455#define _loop0_162_type 1381
456#define _gather_161_type 1382
457#define _loop0_164_type 1383
458#define _gather_163_type 1384
459#define _loop0_166_type 1385
460#define _gather_165_type 1386
461#define _loop0_168_type 1387
462#define _gather_167_type 1388
463#define _tmp_169_type 1389
464#define _tmp_170_type 1390
465#define _tmp_171_type 1391
466#define _tmp_172_type 1392
467#define _tmp_173_type 1393
468#define _tmp_174_type 1394
469#define _tmp_175_type 1395
470#define _loop0_177_type 1396
471#define _gather_176_type 1397
472#define _tmp_178_type 1398
473#define _tmp_179_type 1399
474#define _tmp_180_type 1400
475#define _tmp_181_type 1401
476#define _tmp_182_type 1402
477#define _tmp_183_type 1403
478#define _tmp_184_type 1404
479#define _tmp_185_type 1405
480#define _tmp_186_type 1406
481#define _tmp_187_type 1407
482#define _tmp_188_type 1408
483#define _tmp_189_type 1409
484#define _tmp_190_type 1410
485#define _tmp_191_type 1411
486#define _tmp_192_type 1412
487#define _tmp_193_type 1413
488#define _tmp_194_type 1414
489#define _tmp_195_type 1415
490#define _tmp_196_type 1416
491#define _tmp_197_type 1417
492#define _tmp_198_type 1418
493#define _tmp_199_type 1419
494#define _tmp_200_type 1420
495#define _tmp_201_type 1421
496#define _tmp_202_type 1422
497#define _tmp_203_type 1423
498#define _tmp_204_type 1424
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100499
500static mod_ty file_rule(Parser *p);
501static mod_ty interactive_rule(Parser *p);
502static mod_ty eval_rule(Parser *p);
503static mod_ty func_type_rule(Parser *p);
504static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100505static asdl_expr_seq* type_expressions_rule(Parser *p);
506static asdl_stmt_seq* statements_rule(Parser *p);
507static asdl_stmt_seq* statement_rule(Parser *p);
508static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000509static asdl_stmt_seq* simple_stmts_rule(Parser *p);
510static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100511static stmt_ty compound_stmt_rule(Parser *p);
512static stmt_ty assignment_rule(Parser *p);
513static AugOperator* augassign_rule(Parser *p);
514static stmt_ty global_stmt_rule(Parser *p);
515static stmt_ty nonlocal_stmt_rule(Parser *p);
516static stmt_ty yield_stmt_rule(Parser *p);
517static stmt_ty assert_stmt_rule(Parser *p);
518static stmt_ty del_stmt_rule(Parser *p);
519static stmt_ty import_stmt_rule(Parser *p);
520static stmt_ty import_name_rule(Parser *p);
521static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100522static asdl_alias_seq* import_from_targets_rule(Parser *p);
523static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100524static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100525static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100526static alias_ty dotted_as_name_rule(Parser *p);
527static expr_ty dotted_name_rule(Parser *p);
528static stmt_ty if_stmt_rule(Parser *p);
529static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100530static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100531static stmt_ty while_stmt_rule(Parser *p);
532static stmt_ty for_stmt_rule(Parser *p);
533static stmt_ty with_stmt_rule(Parser *p);
534static withitem_ty with_item_rule(Parser *p);
535static stmt_ty try_stmt_rule(Parser *p);
536static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100537static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800538static stmt_ty match_stmt_rule(Parser *p);
539static expr_ty subject_expr_rule(Parser *p);
540static match_case_ty case_block_rule(Parser *p);
541static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000542static pattern_ty patterns_rule(Parser *p);
543static pattern_ty pattern_rule(Parser *p);
544static pattern_ty as_pattern_rule(Parser *p);
545static pattern_ty or_pattern_rule(Parser *p);
546static pattern_ty closed_pattern_rule(Parser *p);
547static pattern_ty literal_pattern_rule(Parser *p);
548static expr_ty literal_expr_rule(Parser *p);
549static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800550static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700551static expr_ty signed_real_number_rule(Parser *p);
552static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000553static expr_ty imaginary_number_rule(Parser *p);
554static pattern_ty capture_pattern_rule(Parser *p);
555static expr_ty pattern_capture_target_rule(Parser *p);
556static pattern_ty wildcard_pattern_rule(Parser *p);
557static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800558static expr_ty attr_rule(Parser *p);
559static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000560static pattern_ty group_pattern_rule(Parser *p);
561static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800562static asdl_seq* open_sequence_pattern_rule(Parser *p);
563static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000564static pattern_ty maybe_star_pattern_rule(Parser *p);
565static pattern_ty star_pattern_rule(Parser *p);
566static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800567static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000568static KeyPatternPair* key_value_pattern_rule(Parser *p);
569static expr_ty double_star_pattern_rule(Parser *p);
570static pattern_ty class_pattern_rule(Parser *p);
571static asdl_pattern_seq* positional_patterns_rule(Parser *p);
572static asdl_seq* keyword_patterns_rule(Parser *p);
573static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100574static stmt_ty return_stmt_rule(Parser *p);
575static stmt_ty raise_stmt_rule(Parser *p);
576static stmt_ty function_def_rule(Parser *p);
577static stmt_ty function_def_raw_rule(Parser *p);
578static Token* func_type_comment_rule(Parser *p);
579static arguments_ty params_rule(Parser *p);
580static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100581static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100582static SlashWithDefault* slash_with_default_rule(Parser *p);
583static StarEtc* star_etc_rule(Parser *p);
584static arg_ty kwds_rule(Parser *p);
585static arg_ty param_no_default_rule(Parser *p);
586static NameDefaultPair* param_with_default_rule(Parser *p);
587static NameDefaultPair* param_maybe_default_rule(Parser *p);
588static arg_ty param_rule(Parser *p);
589static expr_ty annotation_rule(Parser *p);
590static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100591static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100592static stmt_ty class_def_rule(Parser *p);
593static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100594static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100595static expr_ty star_expressions_rule(Parser *p);
596static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100597static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100598static expr_ty star_named_expression_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700599static expr_ty assigment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100600static expr_ty named_expression_rule(Parser *p);
601static expr_ty annotated_rhs_rule(Parser *p);
602static expr_ty expressions_rule(Parser *p);
603static expr_ty expression_rule(Parser *p);
604static expr_ty lambdef_rule(Parser *p);
605static arguments_ty lambda_params_rule(Parser *p);
606static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100607static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100608static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
609static StarEtc* lambda_star_etc_rule(Parser *p);
610static arg_ty lambda_kwds_rule(Parser *p);
611static arg_ty lambda_param_no_default_rule(Parser *p);
612static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
613static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
614static arg_ty lambda_param_rule(Parser *p);
615static expr_ty disjunction_rule(Parser *p);
616static expr_ty conjunction_rule(Parser *p);
617static expr_ty inversion_rule(Parser *p);
618static expr_ty comparison_rule(Parser *p);
619static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
620static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
621static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
622static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
623static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
624static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
625static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
626static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
627static CmpopExprPair* in_bitwise_or_rule(Parser *p);
628static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
629static CmpopExprPair* is_bitwise_or_rule(Parser *p);
630static expr_ty bitwise_or_rule(Parser *p);
631static expr_ty bitwise_xor_rule(Parser *p);
632static expr_ty bitwise_and_rule(Parser *p);
633static expr_ty shift_expr_rule(Parser *p);
634static expr_ty sum_rule(Parser *p);
635static expr_ty term_rule(Parser *p);
636static expr_ty factor_rule(Parser *p);
637static expr_ty power_rule(Parser *p);
638static expr_ty await_primary_rule(Parser *p);
639static expr_ty primary_rule(Parser *p);
640static expr_ty slices_rule(Parser *p);
641static expr_ty slice_rule(Parser *p);
642static expr_ty atom_rule(Parser *p);
643static expr_ty strings_rule(Parser *p);
644static expr_ty list_rule(Parser *p);
645static expr_ty listcomp_rule(Parser *p);
646static expr_ty tuple_rule(Parser *p);
647static expr_ty group_rule(Parser *p);
648static expr_ty genexp_rule(Parser *p);
649static expr_ty set_rule(Parser *p);
650static expr_ty setcomp_rule(Parser *p);
651static expr_ty dict_rule(Parser *p);
652static expr_ty dictcomp_rule(Parser *p);
653static asdl_seq* double_starred_kvpairs_rule(Parser *p);
654static KeyValuePair* double_starred_kvpair_rule(Parser *p);
655static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100656static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100657static comprehension_ty for_if_clause_rule(Parser *p);
658static expr_ty yield_expr_rule(Parser *p);
659static expr_ty arguments_rule(Parser *p);
660static expr_ty args_rule(Parser *p);
661static asdl_seq* kwargs_rule(Parser *p);
662static expr_ty starred_expression_rule(Parser *p);
663static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
664static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
665static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200666static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
667static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100668static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200669static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100670static expr_ty star_atom_rule(Parser *p);
671static expr_ty single_target_rule(Parser *p);
672static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100673static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100674static expr_ty del_target_rule(Parser *p);
675static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100676static expr_ty t_primary_rule(Parser *p);
677static void *t_lookahead_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200678static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100679static void *invalid_kwarg_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700680static expr_ty expression_without_invalid_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100681static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100682static void *invalid_named_expression_rule(Parser *p);
683static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300684static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300685static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100686static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200687static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100688static void *invalid_comprehension_rule(Parser *p);
689static void *invalid_dict_comprehension_rule(Parser *p);
690static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200691static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100692static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200693static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100694static void *invalid_star_etc_rule(Parser *p);
695static void *invalid_lambda_star_etc_rule(Parser *p);
696static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300697static void *invalid_with_item_rule(Parser *p);
698static void *invalid_for_target_rule(Parser *p);
699static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100700static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000701static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100702static void *invalid_with_stmt_indent_rule(Parser *p);
703static void *invalid_try_stmt_rule(Parser *p);
704static void *invalid_except_stmt_rule(Parser *p);
705static void *invalid_finally_stmt_rule(Parser *p);
706static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000707static void *invalid_match_stmt_rule(Parser *p);
708static void *invalid_case_block_rule(Parser *p);
Pablo Galindoa8c418d2021-06-18 22:15:57 +0100709static void *invalid_as_pattern_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700710static void *invalid_class_pattern_rule(Parser *p);
711static asdl_pattern_seq* invalid_class_argument_pattern_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100712static void *invalid_if_stmt_rule(Parser *p);
713static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100714static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100715static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100716static void *invalid_for_stmt_rule(Parser *p);
717static void *invalid_def_raw_rule(Parser *p);
718static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100719static void *invalid_double_starred_kvpairs_rule(Parser *p);
720static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100721static asdl_seq *_loop0_1_rule(Parser *p);
722static asdl_seq *_loop0_2_rule(Parser *p);
723static asdl_seq *_loop0_4_rule(Parser *p);
724static asdl_seq *_gather_3_rule(Parser *p);
725static asdl_seq *_loop0_6_rule(Parser *p);
726static asdl_seq *_gather_5_rule(Parser *p);
727static asdl_seq *_loop0_8_rule(Parser *p);
728static asdl_seq *_gather_7_rule(Parser *p);
729static asdl_seq *_loop0_10_rule(Parser *p);
730static asdl_seq *_gather_9_rule(Parser *p);
731static asdl_seq *_loop1_11_rule(Parser *p);
732static asdl_seq *_loop0_13_rule(Parser *p);
733static asdl_seq *_gather_12_rule(Parser *p);
734static void *_tmp_14_rule(Parser *p);
735static void *_tmp_15_rule(Parser *p);
736static void *_tmp_16_rule(Parser *p);
737static void *_tmp_17_rule(Parser *p);
738static void *_tmp_18_rule(Parser *p);
739static void *_tmp_19_rule(Parser *p);
740static void *_tmp_20_rule(Parser *p);
741static void *_tmp_21_rule(Parser *p);
742static asdl_seq *_loop1_22_rule(Parser *p);
743static void *_tmp_23_rule(Parser *p);
744static void *_tmp_24_rule(Parser *p);
745static asdl_seq *_loop0_26_rule(Parser *p);
746static asdl_seq *_gather_25_rule(Parser *p);
747static asdl_seq *_loop0_28_rule(Parser *p);
748static asdl_seq *_gather_27_rule(Parser *p);
749static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300750static void *_tmp_30_rule(Parser *p);
751static asdl_seq *_loop0_31_rule(Parser *p);
752static asdl_seq *_loop1_32_rule(Parser *p);
753static asdl_seq *_loop0_34_rule(Parser *p);
754static asdl_seq *_gather_33_rule(Parser *p);
755static void *_tmp_35_rule(Parser *p);
756static asdl_seq *_loop0_37_rule(Parser *p);
757static asdl_seq *_gather_36_rule(Parser *p);
758static void *_tmp_38_rule(Parser *p);
759static asdl_seq *_loop0_40_rule(Parser *p);
760static asdl_seq *_gather_39_rule(Parser *p);
761static asdl_seq *_loop0_42_rule(Parser *p);
762static asdl_seq *_gather_41_rule(Parser *p);
763static asdl_seq *_loop0_44_rule(Parser *p);
764static asdl_seq *_gather_43_rule(Parser *p);
765static asdl_seq *_loop0_46_rule(Parser *p);
766static asdl_seq *_gather_45_rule(Parser *p);
767static void *_tmp_47_rule(Parser *p);
768static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100769static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800770static asdl_seq *_loop1_50_rule(Parser *p);
771static asdl_seq *_loop0_52_rule(Parser *p);
772static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300773static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800774static void *_tmp_54_rule(Parser *p);
775static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000776static void *_tmp_56_rule(Parser *p);
777static asdl_seq *_loop0_58_rule(Parser *p);
778static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800779static asdl_seq *_loop0_60_rule(Parser *p);
780static asdl_seq *_gather_59_rule(Parser *p);
781static void *_tmp_61_rule(Parser *p);
782static asdl_seq *_loop0_63_rule(Parser *p);
783static asdl_seq *_gather_62_rule(Parser *p);
784static asdl_seq *_loop0_65_rule(Parser *p);
785static asdl_seq *_gather_64_rule(Parser *p);
786static void *_tmp_66_rule(Parser *p);
787static void *_tmp_67_rule(Parser *p);
788static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300789static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800790static asdl_seq *_loop0_70_rule(Parser *p);
791static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000792static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000793static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300794static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800795static asdl_seq *_loop1_75_rule(Parser *p);
796static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000797static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300798static asdl_seq *_loop0_78_rule(Parser *p);
799static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800800static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100801static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000802static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300803static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800804static asdl_seq *_loop1_84_rule(Parser *p);
805static void *_tmp_85_rule(Parser *p);
806static asdl_seq *_loop1_86_rule(Parser *p);
807static asdl_seq *_loop0_88_rule(Parser *p);
808static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100809static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800810static asdl_seq *_loop0_90_rule(Parser *p);
811static asdl_seq *_loop0_91_rule(Parser *p);
812static asdl_seq *_loop0_92_rule(Parser *p);
813static asdl_seq *_loop1_93_rule(Parser *p);
814static asdl_seq *_loop0_94_rule(Parser *p);
815static asdl_seq *_loop1_95_rule(Parser *p);
816static asdl_seq *_loop1_96_rule(Parser *p);
817static asdl_seq *_loop1_97_rule(Parser *p);
818static asdl_seq *_loop0_98_rule(Parser *p);
819static asdl_seq *_loop1_99_rule(Parser *p);
820static asdl_seq *_loop0_100_rule(Parser *p);
821static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000822static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000823static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800824static asdl_seq *_loop1_104_rule(Parser *p);
825static asdl_seq *_loop1_105_rule(Parser *p);
826static asdl_seq *_loop1_106_rule(Parser *p);
827static void *_tmp_107_rule(Parser *p);
828static asdl_seq *_loop0_109_rule(Parser *p);
829static asdl_seq *_gather_108_rule(Parser *p);
830static void *_tmp_110_rule(Parser *p);
831static void *_tmp_111_rule(Parser *p);
832static void *_tmp_112_rule(Parser *p);
833static void *_tmp_113_rule(Parser *p);
834static asdl_seq *_loop1_114_rule(Parser *p);
835static void *_tmp_115_rule(Parser *p);
836static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700837static void *_tmp_117_rule(Parser *p);
838static asdl_seq *_loop0_119_rule(Parser *p);
839static asdl_seq *_gather_118_rule(Parser *p);
840static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800841static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700842static asdl_seq *_loop0_122_rule(Parser *p);
843static asdl_seq *_loop0_124_rule(Parser *p);
844static asdl_seq *_gather_123_rule(Parser *p);
845static void *_tmp_125_rule(Parser *p);
846static asdl_seq *_loop0_127_rule(Parser *p);
847static asdl_seq *_gather_126_rule(Parser *p);
848static asdl_seq *_loop0_129_rule(Parser *p);
849static asdl_seq *_gather_128_rule(Parser *p);
850static asdl_seq *_loop0_131_rule(Parser *p);
851static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000852static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700853static asdl_seq *_gather_132_rule(Parser *p);
854static asdl_seq *_loop0_134_rule(Parser *p);
855static asdl_seq *_loop0_136_rule(Parser *p);
856static asdl_seq *_gather_135_rule(Parser *p);
857static asdl_seq *_loop1_137_rule(Parser *p);
858static void *_tmp_138_rule(Parser *p);
859static asdl_seq *_loop0_140_rule(Parser *p);
860static asdl_seq *_gather_139_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700861static void *_tmp_141_rule(Parser *p);
862static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100863static void *_tmp_143_rule(Parser *p);
864static void *_tmp_144_rule(Parser *p);
865static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100866static void *_tmp_146_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700867static asdl_seq *_loop0_147_rule(Parser *p);
868static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100869static asdl_seq *_loop0_149_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700870static void *_tmp_150_rule(Parser *p);
871static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100872static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100873static void *_tmp_153_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700874static asdl_seq *_loop0_154_rule(Parser *p);
875static asdl_seq *_loop1_155_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700876static asdl_seq *_loop0_156_rule(Parser *p);
877static asdl_seq *_loop1_157_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700878static void *_tmp_158_rule(Parser *p);
879static void *_tmp_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100880static void *_tmp_160_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700881static asdl_seq *_loop0_162_rule(Parser *p);
882static asdl_seq *_gather_161_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700883static asdl_seq *_loop0_164_rule(Parser *p);
884static asdl_seq *_gather_163_rule(Parser *p);
885static asdl_seq *_loop0_166_rule(Parser *p);
886static asdl_seq *_gather_165_rule(Parser *p);
887static asdl_seq *_loop0_168_rule(Parser *p);
888static asdl_seq *_gather_167_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700889static void *_tmp_169_rule(Parser *p);
890static void *_tmp_170_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800891static void *_tmp_171_rule(Parser *p);
892static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100893static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700894static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700895static void *_tmp_175_rule(Parser *p);
896static asdl_seq *_loop0_177_rule(Parser *p);
897static asdl_seq *_gather_176_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700898static void *_tmp_178_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800899static void *_tmp_179_rule(Parser *p);
900static void *_tmp_180_rule(Parser *p);
901static void *_tmp_181_rule(Parser *p);
902static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100903static void *_tmp_183_rule(Parser *p);
904static void *_tmp_184_rule(Parser *p);
905static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100906static void *_tmp_186_rule(Parser *p);
907static void *_tmp_187_rule(Parser *p);
908static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100909static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100910static void *_tmp_190_rule(Parser *p);
911static void *_tmp_191_rule(Parser *p);
912static void *_tmp_192_rule(Parser *p);
913static void *_tmp_193_rule(Parser *p);
914static void *_tmp_194_rule(Parser *p);
915static void *_tmp_195_rule(Parser *p);
916static void *_tmp_196_rule(Parser *p);
917static void *_tmp_197_rule(Parser *p);
918static void *_tmp_198_rule(Parser *p);
919static void *_tmp_199_rule(Parser *p);
920static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100921static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700922static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700923static void *_tmp_203_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700924static void *_tmp_204_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000925
926
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100927// file: statements? $
928static mod_ty
929file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000930{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100931 D(p->level++);
932 if (p->error_indicator) {
933 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000934 return NULL;
935 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100936 mod_ty _res = NULL;
937 int _mark = p->mark;
938 { // statements? $
939 if (p->error_indicator) {
940 D(p->level--);
941 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000942 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100943 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
944 void *a;
945 Token * endmarker_var;
946 if (
947 (a = statements_rule(p), 1) // statements?
948 &&
949 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
950 )
951 {
952 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
953 _res = _PyPegen_make_module ( p , a );
954 if (_res == NULL && PyErr_Occurred()) {
955 p->error_indicator = 1;
956 D(p->level--);
957 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000958 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100959 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000960 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100961 p->mark = _mark;
962 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000964 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100965 _res = NULL;
966 done:
967 D(p->level--);
968 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000969}
970
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100971// interactive: statement_newline
972static mod_ty
973interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000974{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100975 D(p->level++);
976 if (p->error_indicator) {
977 D(p->level--);
978 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000979 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100980 mod_ty _res = NULL;
981 int _mark = p->mark;
982 { // statement_newline
983 if (p->error_indicator) {
984 D(p->level--);
985 return NULL;
986 }
987 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100988 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100989 if (
990 (a = statement_newline_rule(p)) // statement_newline
991 )
992 {
993 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200994 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100995 if (_res == NULL && PyErr_Occurred()) {
996 p->error_indicator = 1;
997 D(p->level--);
998 return NULL;
999 }
1000 goto done;
1001 }
1002 p->mark = _mark;
1003 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
1004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
1005 }
1006 _res = NULL;
1007 done:
1008 D(p->level--);
1009 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001010}
1011
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001012// eval: expressions NEWLINE* $
1013static mod_ty
1014eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001015{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001016 D(p->level++);
1017 if (p->error_indicator) {
1018 D(p->level--);
1019 return NULL;
1020 }
1021 mod_ty _res = NULL;
1022 int _mark = p->mark;
1023 { // expressions NEWLINE* $
1024 if (p->error_indicator) {
1025 D(p->level--);
1026 return NULL;
1027 }
1028 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1029 asdl_seq * _loop0_1_var;
1030 expr_ty a;
1031 Token * endmarker_var;
1032 if (
1033 (a = expressions_rule(p)) // expressions
1034 &&
1035 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1036 &&
1037 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1038 )
1039 {
1040 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001041 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001042 if (_res == NULL && PyErr_Occurred()) {
1043 p->error_indicator = 1;
1044 D(p->level--);
1045 return NULL;
1046 }
1047 goto done;
1048 }
1049 p->mark = _mark;
1050 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1052 }
1053 _res = NULL;
1054 done:
1055 D(p->level--);
1056 return _res;
1057}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001058
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001059// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1060static mod_ty
1061func_type_rule(Parser *p)
1062{
1063 D(p->level++);
1064 if (p->error_indicator) {
1065 D(p->level--);
1066 return NULL;
1067 }
1068 mod_ty _res = NULL;
1069 int _mark = p->mark;
1070 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1071 if (p->error_indicator) {
1072 D(p->level--);
1073 return NULL;
1074 }
1075 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1076 Token * _literal;
1077 Token * _literal_1;
1078 Token * _literal_2;
1079 asdl_seq * _loop0_2_var;
1080 void *a;
1081 expr_ty b;
1082 Token * endmarker_var;
1083 if (
1084 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1085 &&
1086 (a = type_expressions_rule(p), 1) // type_expressions?
1087 &&
1088 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1089 &&
1090 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1091 &&
1092 (b = expression_rule(p)) // expression
1093 &&
1094 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1095 &&
1096 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1097 )
1098 {
1099 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 +02001100 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001101 if (_res == NULL && PyErr_Occurred()) {
1102 p->error_indicator = 1;
1103 D(p->level--);
1104 return NULL;
1105 }
1106 goto done;
1107 }
1108 p->mark = _mark;
1109 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1111 }
1112 _res = NULL;
1113 done:
1114 D(p->level--);
1115 return _res;
1116}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001117
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001118// fstring: star_expressions
1119static expr_ty
1120fstring_rule(Parser *p)
1121{
1122 D(p->level++);
1123 if (p->error_indicator) {
1124 D(p->level--);
1125 return NULL;
1126 }
1127 expr_ty _res = NULL;
1128 int _mark = p->mark;
1129 { // star_expressions
1130 if (p->error_indicator) {
1131 D(p->level--);
1132 return NULL;
1133 }
1134 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1135 expr_ty star_expressions_var;
1136 if (
1137 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1138 )
1139 {
1140 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1141 _res = star_expressions_var;
1142 goto done;
1143 }
1144 p->mark = _mark;
1145 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1147 }
1148 _res = NULL;
1149 done:
1150 D(p->level--);
1151 return _res;
1152}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001153
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001154// type_expressions:
1155// | ','.expression+ ',' '*' expression ',' '**' expression
1156// | ','.expression+ ',' '*' expression
1157// | ','.expression+ ',' '**' expression
1158// | '*' expression ',' '**' expression
1159// | '*' expression
1160// | '**' expression
1161// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001162static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001163type_expressions_rule(Parser *p)
1164{
1165 D(p->level++);
1166 if (p->error_indicator) {
1167 D(p->level--);
1168 return NULL;
1169 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001170 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001171 int _mark = p->mark;
1172 { // ','.expression+ ',' '*' expression ',' '**' expression
1173 if (p->error_indicator) {
1174 D(p->level--);
1175 return NULL;
1176 }
1177 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1178 Token * _literal;
1179 Token * _literal_1;
1180 Token * _literal_2;
1181 Token * _literal_3;
1182 asdl_seq * a;
1183 expr_ty b;
1184 expr_ty c;
1185 if (
1186 (a = _gather_3_rule(p)) // ','.expression+
1187 &&
1188 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1189 &&
1190 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1191 &&
1192 (b = expression_rule(p)) // expression
1193 &&
1194 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1195 &&
1196 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1197 &&
1198 (c = expression_rule(p)) // expression
1199 )
1200 {
1201 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 +03001202 _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 +01001203 if (_res == NULL && PyErr_Occurred()) {
1204 p->error_indicator = 1;
1205 D(p->level--);
1206 return NULL;
1207 }
1208 goto done;
1209 }
1210 p->mark = _mark;
1211 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1213 }
1214 { // ','.expression+ ',' '*' expression
1215 if (p->error_indicator) {
1216 D(p->level--);
1217 return NULL;
1218 }
1219 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1220 Token * _literal;
1221 Token * _literal_1;
1222 asdl_seq * a;
1223 expr_ty b;
1224 if (
1225 (a = _gather_5_rule(p)) // ','.expression+
1226 &&
1227 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1228 &&
1229 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1230 &&
1231 (b = expression_rule(p)) // expression
1232 )
1233 {
1234 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 +01001235 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001236 if (_res == NULL && PyErr_Occurred()) {
1237 p->error_indicator = 1;
1238 D(p->level--);
1239 return NULL;
1240 }
1241 goto done;
1242 }
1243 p->mark = _mark;
1244 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1246 }
1247 { // ','.expression+ ',' '**' expression
1248 if (p->error_indicator) {
1249 D(p->level--);
1250 return NULL;
1251 }
1252 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1253 Token * _literal;
1254 Token * _literal_1;
1255 asdl_seq * a;
1256 expr_ty b;
1257 if (
1258 (a = _gather_7_rule(p)) // ','.expression+
1259 &&
1260 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1261 &&
1262 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1263 &&
1264 (b = expression_rule(p)) // expression
1265 )
1266 {
1267 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 +01001268 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001269 if (_res == NULL && PyErr_Occurred()) {
1270 p->error_indicator = 1;
1271 D(p->level--);
1272 return NULL;
1273 }
1274 goto done;
1275 }
1276 p->mark = _mark;
1277 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1279 }
1280 { // '*' expression ',' '**' expression
1281 if (p->error_indicator) {
1282 D(p->level--);
1283 return NULL;
1284 }
1285 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1286 Token * _literal;
1287 Token * _literal_1;
1288 Token * _literal_2;
1289 expr_ty a;
1290 expr_ty b;
1291 if (
1292 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1293 &&
1294 (a = expression_rule(p)) // expression
1295 &&
1296 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1297 &&
1298 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1299 &&
1300 (b = expression_rule(p)) // expression
1301 )
1302 {
1303 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 +03001304 _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 +01001305 if (_res == NULL && PyErr_Occurred()) {
1306 p->error_indicator = 1;
1307 D(p->level--);
1308 return NULL;
1309 }
1310 goto done;
1311 }
1312 p->mark = _mark;
1313 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1315 }
1316 { // '*' expression
1317 if (p->error_indicator) {
1318 D(p->level--);
1319 return NULL;
1320 }
1321 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1322 Token * _literal;
1323 expr_ty a;
1324 if (
1325 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1326 &&
1327 (a = expression_rule(p)) // expression
1328 )
1329 {
1330 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001331 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001332 if (_res == NULL && PyErr_Occurred()) {
1333 p->error_indicator = 1;
1334 D(p->level--);
1335 return NULL;
1336 }
1337 goto done;
1338 }
1339 p->mark = _mark;
1340 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1342 }
1343 { // '**' expression
1344 if (p->error_indicator) {
1345 D(p->level--);
1346 return NULL;
1347 }
1348 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1349 Token * _literal;
1350 expr_ty a;
1351 if (
1352 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1353 &&
1354 (a = expression_rule(p)) // expression
1355 )
1356 {
1357 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001358 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001359 if (_res == NULL && PyErr_Occurred()) {
1360 p->error_indicator = 1;
1361 D(p->level--);
1362 return NULL;
1363 }
1364 goto done;
1365 }
1366 p->mark = _mark;
1367 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1368 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1369 }
1370 { // ','.expression+
1371 if (p->error_indicator) {
1372 D(p->level--);
1373 return NULL;
1374 }
1375 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001376 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001377 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001378 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001379 )
1380 {
1381 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001382 _res = a;
1383 if (_res == NULL && PyErr_Occurred()) {
1384 p->error_indicator = 1;
1385 D(p->level--);
1386 return NULL;
1387 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001388 goto done;
1389 }
1390 p->mark = _mark;
1391 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1393 }
1394 _res = NULL;
1395 done:
1396 D(p->level--);
1397 return _res;
1398}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001399
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001400// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001401static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001402statements_rule(Parser *p)
1403{
1404 D(p->level++);
1405 if (p->error_indicator) {
1406 D(p->level--);
1407 return NULL;
1408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001409 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001410 int _mark = p->mark;
1411 { // statement+
1412 if (p->error_indicator) {
1413 D(p->level--);
1414 return NULL;
1415 }
1416 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1417 asdl_seq * a;
1418 if (
1419 (a = _loop1_11_rule(p)) // statement+
1420 )
1421 {
1422 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001423 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001424 if (_res == NULL && PyErr_Occurred()) {
1425 p->error_indicator = 1;
1426 D(p->level--);
1427 return NULL;
1428 }
1429 goto done;
1430 }
1431 p->mark = _mark;
1432 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1434 }
1435 _res = NULL;
1436 done:
1437 D(p->level--);
1438 return _res;
1439}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001440
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001441// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001442static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001443statement_rule(Parser *p)
1444{
1445 D(p->level++);
1446 if (p->error_indicator) {
1447 D(p->level--);
1448 return NULL;
1449 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001450 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001451 int _mark = p->mark;
1452 { // compound_stmt
1453 if (p->error_indicator) {
1454 D(p->level--);
1455 return NULL;
1456 }
1457 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1458 stmt_ty a;
1459 if (
1460 (a = compound_stmt_rule(p)) // compound_stmt
1461 )
1462 {
1463 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001464 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001465 if (_res == NULL && PyErr_Occurred()) {
1466 p->error_indicator = 1;
1467 D(p->level--);
1468 return NULL;
1469 }
1470 goto done;
1471 }
1472 p->mark = _mark;
1473 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1475 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001476 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001477 if (p->error_indicator) {
1478 D(p->level--);
1479 return NULL;
1480 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001481 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001482 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001483 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001484 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001485 )
1486 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001487 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001488 _res = a;
1489 if (_res == NULL && PyErr_Occurred()) {
1490 p->error_indicator = 1;
1491 D(p->level--);
1492 return NULL;
1493 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001494 goto done;
1495 }
1496 p->mark = _mark;
1497 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001499 }
1500 _res = NULL;
1501 done:
1502 D(p->level--);
1503 return _res;
1504}
1505
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001506// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001507static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001508statement_newline_rule(Parser *p)
1509{
1510 D(p->level++);
1511 if (p->error_indicator) {
1512 D(p->level--);
1513 return NULL;
1514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001515 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001516 int _mark = p->mark;
1517 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1518 p->error_indicator = 1;
1519 D(p->level--);
1520 return NULL;
1521 }
1522 int _start_lineno = p->tokens[_mark]->lineno;
1523 UNUSED(_start_lineno); // Only used by EXTRA macro
1524 int _start_col_offset = p->tokens[_mark]->col_offset;
1525 UNUSED(_start_col_offset); // Only used by EXTRA macro
1526 { // compound_stmt NEWLINE
1527 if (p->error_indicator) {
1528 D(p->level--);
1529 return NULL;
1530 }
1531 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1532 stmt_ty a;
1533 Token * newline_var;
1534 if (
1535 (a = compound_stmt_rule(p)) // compound_stmt
1536 &&
1537 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1538 )
1539 {
1540 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 +01001541 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001542 if (_res == NULL && PyErr_Occurred()) {
1543 p->error_indicator = 1;
1544 D(p->level--);
1545 return NULL;
1546 }
1547 goto done;
1548 }
1549 p->mark = _mark;
1550 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1552 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001553 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001554 if (p->error_indicator) {
1555 D(p->level--);
1556 return NULL;
1557 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001558 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1559 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001560 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001561 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001562 )
1563 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001564 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1565 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001566 goto done;
1567 }
1568 p->mark = _mark;
1569 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001571 }
1572 { // NEWLINE
1573 if (p->error_indicator) {
1574 D(p->level--);
1575 return NULL;
1576 }
1577 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1578 Token * newline_var;
1579 if (
1580 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1581 )
1582 {
1583 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1584 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1585 if (_token == NULL) {
1586 D(p->level--);
1587 return NULL;
1588 }
1589 int _end_lineno = _token->end_lineno;
1590 UNUSED(_end_lineno); // Only used by EXTRA macro
1591 int _end_col_offset = _token->end_col_offset;
1592 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001593 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001594 if (_res == NULL && PyErr_Occurred()) {
1595 p->error_indicator = 1;
1596 D(p->level--);
1597 return NULL;
1598 }
1599 goto done;
1600 }
1601 p->mark = _mark;
1602 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1604 }
1605 { // $
1606 if (p->error_indicator) {
1607 D(p->level--);
1608 return NULL;
1609 }
1610 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1611 Token * endmarker_var;
1612 if (
1613 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1614 )
1615 {
1616 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1617 _res = _PyPegen_interactive_exit ( p );
1618 if (_res == NULL && PyErr_Occurred()) {
1619 p->error_indicator = 1;
1620 D(p->level--);
1621 return NULL;
1622 }
1623 goto done;
1624 }
1625 p->mark = _mark;
1626 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1628 }
1629 _res = NULL;
1630 done:
1631 D(p->level--);
1632 return _res;
1633}
1634
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001635// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001636static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001637simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001638{
1639 D(p->level++);
1640 if (p->error_indicator) {
1641 D(p->level--);
1642 return NULL;
1643 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001644 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001645 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001646 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001647 if (p->error_indicator) {
1648 D(p->level--);
1649 return NULL;
1650 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001651 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 +01001652 stmt_ty a;
1653 Token * newline_var;
1654 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001655 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001656 &&
1657 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1658 &&
1659 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1660 )
1661 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001662 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 +01001663 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001664 if (_res == NULL && PyErr_Occurred()) {
1665 p->error_indicator = 1;
1666 D(p->level--);
1667 return NULL;
1668 }
1669 goto done;
1670 }
1671 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001672 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001674 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001675 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001676 if (p->error_indicator) {
1677 D(p->level--);
1678 return NULL;
1679 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001680 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 +01001681 void *_opt_var;
1682 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001683 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001684 Token * newline_var;
1685 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001686 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001687 &&
1688 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1689 &&
1690 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1691 )
1692 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001693 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 +01001694 _res = a;
1695 if (_res == NULL && PyErr_Occurred()) {
1696 p->error_indicator = 1;
1697 D(p->level--);
1698 return NULL;
1699 }
1700 goto done;
1701 }
1702 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001703 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001705 }
1706 _res = NULL;
1707 done:
1708 D(p->level--);
1709 return _res;
1710}
1711
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001712// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001713// | assignment
1714// | star_expressions
1715// | &'return' return_stmt
1716// | &('import' | 'from') import_stmt
1717// | &'raise' raise_stmt
1718// | 'pass'
1719// | &'del' del_stmt
1720// | &'yield' yield_stmt
1721// | &'assert' assert_stmt
1722// | 'break'
1723// | 'continue'
1724// | &'global' global_stmt
1725// | &'nonlocal' nonlocal_stmt
1726static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001727simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001728{
1729 D(p->level++);
1730 if (p->error_indicator) {
1731 D(p->level--);
1732 return NULL;
1733 }
1734 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001735 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001736 D(p->level--);
1737 return _res;
1738 }
1739 int _mark = p->mark;
1740 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1741 p->error_indicator = 1;
1742 D(p->level--);
1743 return NULL;
1744 }
1745 int _start_lineno = p->tokens[_mark]->lineno;
1746 UNUSED(_start_lineno); // Only used by EXTRA macro
1747 int _start_col_offset = p->tokens[_mark]->col_offset;
1748 UNUSED(_start_col_offset); // Only used by EXTRA macro
1749 { // assignment
1750 if (p->error_indicator) {
1751 D(p->level--);
1752 return NULL;
1753 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001754 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001755 stmt_ty assignment_var;
1756 if (
1757 (assignment_var = assignment_rule(p)) // assignment
1758 )
1759 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001760 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001761 _res = assignment_var;
1762 goto done;
1763 }
1764 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001765 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1767 }
1768 { // star_expressions
1769 if (p->error_indicator) {
1770 D(p->level--);
1771 return NULL;
1772 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001773 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001774 expr_ty e;
1775 if (
1776 (e = star_expressions_rule(p)) // star_expressions
1777 )
1778 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001779 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 +01001780 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1781 if (_token == NULL) {
1782 D(p->level--);
1783 return NULL;
1784 }
1785 int _end_lineno = _token->end_lineno;
1786 UNUSED(_end_lineno); // Only used by EXTRA macro
1787 int _end_col_offset = _token->end_col_offset;
1788 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001789 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001790 if (_res == NULL && PyErr_Occurred()) {
1791 p->error_indicator = 1;
1792 D(p->level--);
1793 return NULL;
1794 }
1795 goto done;
1796 }
1797 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001798 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1800 }
1801 { // &'return' return_stmt
1802 if (p->error_indicator) {
1803 D(p->level--);
1804 return NULL;
1805 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001806 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 +01001807 stmt_ty return_stmt_var;
1808 if (
1809 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1810 &&
1811 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1812 )
1813 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001814 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 +01001815 _res = return_stmt_var;
1816 goto done;
1817 }
1818 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001819 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1821 }
1822 { // &('import' | 'from') import_stmt
1823 if (p->error_indicator) {
1824 D(p->level--);
1825 return NULL;
1826 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001827 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 +01001828 stmt_ty import_stmt_var;
1829 if (
1830 _PyPegen_lookahead(1, _tmp_14_rule, p)
1831 &&
1832 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1833 )
1834 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001835 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 +01001836 _res = import_stmt_var;
1837 goto done;
1838 }
1839 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001840 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1842 }
1843 { // &'raise' raise_stmt
1844 if (p->error_indicator) {
1845 D(p->level--);
1846 return NULL;
1847 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001848 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 +01001849 stmt_ty raise_stmt_var;
1850 if (
1851 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1852 &&
1853 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1854 )
1855 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001856 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 +01001857 _res = raise_stmt_var;
1858 goto done;
1859 }
1860 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001861 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1863 }
1864 { // 'pass'
1865 if (p->error_indicator) {
1866 D(p->level--);
1867 return NULL;
1868 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001869 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001870 Token * _keyword;
1871 if (
1872 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1873 )
1874 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001875 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001876 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1877 if (_token == NULL) {
1878 D(p->level--);
1879 return NULL;
1880 }
1881 int _end_lineno = _token->end_lineno;
1882 UNUSED(_end_lineno); // Only used by EXTRA macro
1883 int _end_col_offset = _token->end_col_offset;
1884 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001885 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001886 if (_res == NULL && PyErr_Occurred()) {
1887 p->error_indicator = 1;
1888 D(p->level--);
1889 return NULL;
1890 }
1891 goto done;
1892 }
1893 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001894 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1896 }
1897 { // &'del' del_stmt
1898 if (p->error_indicator) {
1899 D(p->level--);
1900 return NULL;
1901 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001902 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 +01001903 stmt_ty del_stmt_var;
1904 if (
1905 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1906 &&
1907 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1908 )
1909 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001910 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001911 _res = del_stmt_var;
1912 goto done;
1913 }
1914 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001915 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1917 }
1918 { // &'yield' yield_stmt
1919 if (p->error_indicator) {
1920 D(p->level--);
1921 return NULL;
1922 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001923 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 +01001924 stmt_ty yield_stmt_var;
1925 if (
1926 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1927 &&
1928 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1929 )
1930 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001931 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 +01001932 _res = yield_stmt_var;
1933 goto done;
1934 }
1935 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001936 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1938 }
1939 { // &'assert' assert_stmt
1940 if (p->error_indicator) {
1941 D(p->level--);
1942 return NULL;
1943 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001944 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 +01001945 stmt_ty assert_stmt_var;
1946 if (
1947 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1948 &&
1949 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1950 )
1951 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001952 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 +01001953 _res = assert_stmt_var;
1954 goto done;
1955 }
1956 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001957 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1959 }
1960 { // 'break'
1961 if (p->error_indicator) {
1962 D(p->level--);
1963 return NULL;
1964 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001965 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001966 Token * _keyword;
1967 if (
1968 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1969 )
1970 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001971 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001972 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1973 if (_token == NULL) {
1974 D(p->level--);
1975 return NULL;
1976 }
1977 int _end_lineno = _token->end_lineno;
1978 UNUSED(_end_lineno); // Only used by EXTRA macro
1979 int _end_col_offset = _token->end_col_offset;
1980 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001981 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001982 if (_res == NULL && PyErr_Occurred()) {
1983 p->error_indicator = 1;
1984 D(p->level--);
1985 return NULL;
1986 }
1987 goto done;
1988 }
1989 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001990 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1992 }
1993 { // 'continue'
1994 if (p->error_indicator) {
1995 D(p->level--);
1996 return NULL;
1997 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001998 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001999 Token * _keyword;
2000 if (
2001 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
2002 )
2003 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002004 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2006 if (_token == NULL) {
2007 D(p->level--);
2008 return NULL;
2009 }
2010 int _end_lineno = _token->end_lineno;
2011 UNUSED(_end_lineno); // Only used by EXTRA macro
2012 int _end_col_offset = _token->end_col_offset;
2013 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002014 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002015 if (_res == NULL && PyErr_Occurred()) {
2016 p->error_indicator = 1;
2017 D(p->level--);
2018 return NULL;
2019 }
2020 goto done;
2021 }
2022 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002023 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2025 }
2026 { // &'global' global_stmt
2027 if (p->error_indicator) {
2028 D(p->level--);
2029 return NULL;
2030 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002031 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 +01002032 stmt_ty global_stmt_var;
2033 if (
2034 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2035 &&
2036 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2037 )
2038 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002039 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 +01002040 _res = global_stmt_var;
2041 goto done;
2042 }
2043 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002044 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2046 }
2047 { // &'nonlocal' nonlocal_stmt
2048 if (p->error_indicator) {
2049 D(p->level--);
2050 return NULL;
2051 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002052 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 +01002053 stmt_ty nonlocal_stmt_var;
2054 if (
2055 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2056 &&
2057 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2058 )
2059 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002060 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 +01002061 _res = nonlocal_stmt_var;
2062 goto done;
2063 }
2064 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002065 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2067 }
2068 _res = NULL;
2069 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002070 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002071 D(p->level--);
2072 return _res;
2073}
2074
2075// compound_stmt:
2076// | &('def' | '@' | ASYNC) function_def
2077// | &'if' if_stmt
2078// | &('class' | '@') class_def
2079// | &('with' | ASYNC) with_stmt
2080// | &('for' | ASYNC) for_stmt
2081// | &'try' try_stmt
2082// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002083// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002084static stmt_ty
2085compound_stmt_rule(Parser *p)
2086{
2087 D(p->level++);
2088 if (p->error_indicator) {
2089 D(p->level--);
2090 return NULL;
2091 }
2092 stmt_ty _res = NULL;
2093 int _mark = p->mark;
2094 { // &('def' | '@' | ASYNC) function_def
2095 if (p->error_indicator) {
2096 D(p->level--);
2097 return NULL;
2098 }
2099 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2100 stmt_ty function_def_var;
2101 if (
2102 _PyPegen_lookahead(1, _tmp_15_rule, p)
2103 &&
2104 (function_def_var = function_def_rule(p)) // function_def
2105 )
2106 {
2107 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2108 _res = function_def_var;
2109 goto done;
2110 }
2111 p->mark = _mark;
2112 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2114 }
2115 { // &'if' if_stmt
2116 if (p->error_indicator) {
2117 D(p->level--);
2118 return NULL;
2119 }
2120 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2121 stmt_ty if_stmt_var;
2122 if (
2123 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2124 &&
2125 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2126 )
2127 {
2128 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2129 _res = if_stmt_var;
2130 goto done;
2131 }
2132 p->mark = _mark;
2133 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2135 }
2136 { // &('class' | '@') class_def
2137 if (p->error_indicator) {
2138 D(p->level--);
2139 return NULL;
2140 }
2141 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2142 stmt_ty class_def_var;
2143 if (
2144 _PyPegen_lookahead(1, _tmp_16_rule, p)
2145 &&
2146 (class_def_var = class_def_rule(p)) // class_def
2147 )
2148 {
2149 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2150 _res = class_def_var;
2151 goto done;
2152 }
2153 p->mark = _mark;
2154 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2156 }
2157 { // &('with' | ASYNC) with_stmt
2158 if (p->error_indicator) {
2159 D(p->level--);
2160 return NULL;
2161 }
2162 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2163 stmt_ty with_stmt_var;
2164 if (
2165 _PyPegen_lookahead(1, _tmp_17_rule, p)
2166 &&
2167 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2168 )
2169 {
2170 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2171 _res = with_stmt_var;
2172 goto done;
2173 }
2174 p->mark = _mark;
2175 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2177 }
2178 { // &('for' | ASYNC) for_stmt
2179 if (p->error_indicator) {
2180 D(p->level--);
2181 return NULL;
2182 }
2183 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2184 stmt_ty for_stmt_var;
2185 if (
2186 _PyPegen_lookahead(1, _tmp_18_rule, p)
2187 &&
2188 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2189 )
2190 {
2191 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2192 _res = for_stmt_var;
2193 goto done;
2194 }
2195 p->mark = _mark;
2196 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2198 }
2199 { // &'try' try_stmt
2200 if (p->error_indicator) {
2201 D(p->level--);
2202 return NULL;
2203 }
2204 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2205 stmt_ty try_stmt_var;
2206 if (
2207 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2208 &&
2209 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2210 )
2211 {
2212 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2213 _res = try_stmt_var;
2214 goto done;
2215 }
2216 p->mark = _mark;
2217 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2219 }
2220 { // &'while' while_stmt
2221 if (p->error_indicator) {
2222 D(p->level--);
2223 return NULL;
2224 }
2225 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2226 stmt_ty while_stmt_var;
2227 if (
2228 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2229 &&
2230 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2231 )
2232 {
2233 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2234 _res = while_stmt_var;
2235 goto done;
2236 }
2237 p->mark = _mark;
2238 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2240 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002241 { // match_stmt
2242 if (p->error_indicator) {
2243 D(p->level--);
2244 return NULL;
2245 }
2246 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2247 stmt_ty match_stmt_var;
2248 if (
2249 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2250 )
2251 {
2252 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2253 _res = match_stmt_var;
2254 goto done;
2255 }
2256 p->mark = _mark;
2257 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2259 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002260 _res = NULL;
2261 done:
2262 D(p->level--);
2263 return _res;
2264}
2265
2266// assignment:
2267// | NAME ':' expression ['=' annotated_rhs]
2268// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2269// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002270// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002271// | invalid_assignment
2272static stmt_ty
2273assignment_rule(Parser *p)
2274{
2275 D(p->level++);
2276 if (p->error_indicator) {
2277 D(p->level--);
2278 return NULL;
2279 }
2280 stmt_ty _res = NULL;
2281 int _mark = p->mark;
2282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2283 p->error_indicator = 1;
2284 D(p->level--);
2285 return NULL;
2286 }
2287 int _start_lineno = p->tokens[_mark]->lineno;
2288 UNUSED(_start_lineno); // Only used by EXTRA macro
2289 int _start_col_offset = p->tokens[_mark]->col_offset;
2290 UNUSED(_start_col_offset); // Only used by EXTRA macro
2291 { // NAME ':' expression ['=' annotated_rhs]
2292 if (p->error_indicator) {
2293 D(p->level--);
2294 return NULL;
2295 }
2296 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2297 Token * _literal;
2298 expr_ty a;
2299 expr_ty b;
2300 void *c;
2301 if (
2302 (a = _PyPegen_name_token(p)) // NAME
2303 &&
2304 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2305 &&
2306 (b = expression_rule(p)) // expression
2307 &&
2308 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2309 )
2310 {
2311 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2312 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2313 if (_token == NULL) {
2314 D(p->level--);
2315 return NULL;
2316 }
2317 int _end_lineno = _token->end_lineno;
2318 UNUSED(_end_lineno); // Only used by EXTRA macro
2319 int _end_col_offset = _token->end_col_offset;
2320 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002321 _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 +01002322 if (_res == NULL && PyErr_Occurred()) {
2323 p->error_indicator = 1;
2324 D(p->level--);
2325 return NULL;
2326 }
2327 goto done;
2328 }
2329 p->mark = _mark;
2330 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2332 }
2333 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2334 if (p->error_indicator) {
2335 D(p->level--);
2336 return NULL;
2337 }
2338 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2339 Token * _literal;
2340 void *a;
2341 expr_ty b;
2342 void *c;
2343 if (
2344 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2345 &&
2346 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2347 &&
2348 (b = expression_rule(p)) // expression
2349 &&
2350 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2351 )
2352 {
2353 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2354 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2355 if (_token == NULL) {
2356 D(p->level--);
2357 return NULL;
2358 }
2359 int _end_lineno = _token->end_lineno;
2360 UNUSED(_end_lineno); // Only used by EXTRA macro
2361 int _end_col_offset = _token->end_col_offset;
2362 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002363 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002364 if (_res == NULL && PyErr_Occurred()) {
2365 p->error_indicator = 1;
2366 D(p->level--);
2367 return NULL;
2368 }
2369 goto done;
2370 }
2371 p->mark = _mark;
2372 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2374 }
2375 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2376 if (p->error_indicator) {
2377 D(p->level--);
2378 return NULL;
2379 }
2380 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 +01002381 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002382 void *b;
2383 void *tc;
2384 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002385 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002386 &&
2387 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2388 &&
2389 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2390 &&
2391 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2392 )
2393 {
2394 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2395 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2396 if (_token == NULL) {
2397 D(p->level--);
2398 return NULL;
2399 }
2400 int _end_lineno = _token->end_lineno;
2401 UNUSED(_end_lineno); // Only used by EXTRA macro
2402 int _end_col_offset = _token->end_col_offset;
2403 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002404 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002405 if (_res == NULL && PyErr_Occurred()) {
2406 p->error_indicator = 1;
2407 D(p->level--);
2408 return NULL;
2409 }
2410 goto done;
2411 }
2412 p->mark = _mark;
2413 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2415 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002416 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002417 if (p->error_indicator) {
2418 D(p->level--);
2419 return NULL;
2420 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002421 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2422 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002423 expr_ty a;
2424 AugOperator* b;
2425 void *c;
2426 if (
2427 (a = single_target_rule(p)) // single_target
2428 &&
2429 (b = augassign_rule(p)) // augassign
2430 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002431 (_cut_var = 1)
2432 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002433 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2434 )
2435 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002436 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 +01002437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2438 if (_token == NULL) {
2439 D(p->level--);
2440 return NULL;
2441 }
2442 int _end_lineno = _token->end_lineno;
2443 UNUSED(_end_lineno); // Only used by EXTRA macro
2444 int _end_col_offset = _token->end_col_offset;
2445 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002446 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002447 if (_res == NULL && PyErr_Occurred()) {
2448 p->error_indicator = 1;
2449 D(p->level--);
2450 return NULL;
2451 }
2452 goto done;
2453 }
2454 p->mark = _mark;
2455 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2457 if (_cut_var) {
2458 D(p->level--);
2459 return NULL;
2460 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002461 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002462 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002463 if (p->error_indicator) {
2464 D(p->level--);
2465 return NULL;
2466 }
2467 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2468 void *invalid_assignment_var;
2469 if (
2470 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2471 )
2472 {
2473 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2474 _res = invalid_assignment_var;
2475 goto done;
2476 }
2477 p->mark = _mark;
2478 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2480 }
2481 _res = NULL;
2482 done:
2483 D(p->level--);
2484 return _res;
2485}
2486
2487// augassign:
2488// | '+='
2489// | '-='
2490// | '*='
2491// | '@='
2492// | '/='
2493// | '%='
2494// | '&='
2495// | '|='
2496// | '^='
2497// | '<<='
2498// | '>>='
2499// | '**='
2500// | '//='
2501static AugOperator*
2502augassign_rule(Parser *p)
2503{
2504 D(p->level++);
2505 if (p->error_indicator) {
2506 D(p->level--);
2507 return NULL;
2508 }
2509 AugOperator* _res = NULL;
2510 int _mark = p->mark;
2511 { // '+='
2512 if (p->error_indicator) {
2513 D(p->level--);
2514 return NULL;
2515 }
2516 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2517 Token * _literal;
2518 if (
2519 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2520 )
2521 {
2522 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2523 _res = _PyPegen_augoperator ( p , Add );
2524 if (_res == NULL && PyErr_Occurred()) {
2525 p->error_indicator = 1;
2526 D(p->level--);
2527 return NULL;
2528 }
2529 goto done;
2530 }
2531 p->mark = _mark;
2532 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2534 }
2535 { // '-='
2536 if (p->error_indicator) {
2537 D(p->level--);
2538 return NULL;
2539 }
2540 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2541 Token * _literal;
2542 if (
2543 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2544 )
2545 {
2546 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2547 _res = _PyPegen_augoperator ( p , Sub );
2548 if (_res == NULL && PyErr_Occurred()) {
2549 p->error_indicator = 1;
2550 D(p->level--);
2551 return NULL;
2552 }
2553 goto done;
2554 }
2555 p->mark = _mark;
2556 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2558 }
2559 { // '*='
2560 if (p->error_indicator) {
2561 D(p->level--);
2562 return NULL;
2563 }
2564 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2565 Token * _literal;
2566 if (
2567 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2568 )
2569 {
2570 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2571 _res = _PyPegen_augoperator ( p , Mult );
2572 if (_res == NULL && PyErr_Occurred()) {
2573 p->error_indicator = 1;
2574 D(p->level--);
2575 return NULL;
2576 }
2577 goto done;
2578 }
2579 p->mark = _mark;
2580 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2582 }
2583 { // '@='
2584 if (p->error_indicator) {
2585 D(p->level--);
2586 return NULL;
2587 }
2588 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2589 Token * _literal;
2590 if (
2591 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2592 )
2593 {
2594 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002595 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002596 if (_res == NULL && PyErr_Occurred()) {
2597 p->error_indicator = 1;
2598 D(p->level--);
2599 return NULL;
2600 }
2601 goto done;
2602 }
2603 p->mark = _mark;
2604 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2606 }
2607 { // '/='
2608 if (p->error_indicator) {
2609 D(p->level--);
2610 return NULL;
2611 }
2612 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2613 Token * _literal;
2614 if (
2615 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2616 )
2617 {
2618 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2619 _res = _PyPegen_augoperator ( p , Div );
2620 if (_res == NULL && PyErr_Occurred()) {
2621 p->error_indicator = 1;
2622 D(p->level--);
2623 return NULL;
2624 }
2625 goto done;
2626 }
2627 p->mark = _mark;
2628 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2630 }
2631 { // '%='
2632 if (p->error_indicator) {
2633 D(p->level--);
2634 return NULL;
2635 }
2636 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2637 Token * _literal;
2638 if (
2639 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2640 )
2641 {
2642 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2643 _res = _PyPegen_augoperator ( p , Mod );
2644 if (_res == NULL && PyErr_Occurred()) {
2645 p->error_indicator = 1;
2646 D(p->level--);
2647 return NULL;
2648 }
2649 goto done;
2650 }
2651 p->mark = _mark;
2652 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2654 }
2655 { // '&='
2656 if (p->error_indicator) {
2657 D(p->level--);
2658 return NULL;
2659 }
2660 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2661 Token * _literal;
2662 if (
2663 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2664 )
2665 {
2666 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2667 _res = _PyPegen_augoperator ( p , BitAnd );
2668 if (_res == NULL && PyErr_Occurred()) {
2669 p->error_indicator = 1;
2670 D(p->level--);
2671 return NULL;
2672 }
2673 goto done;
2674 }
2675 p->mark = _mark;
2676 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2678 }
2679 { // '|='
2680 if (p->error_indicator) {
2681 D(p->level--);
2682 return NULL;
2683 }
2684 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2685 Token * _literal;
2686 if (
2687 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2688 )
2689 {
2690 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2691 _res = _PyPegen_augoperator ( p , BitOr );
2692 if (_res == NULL && PyErr_Occurred()) {
2693 p->error_indicator = 1;
2694 D(p->level--);
2695 return NULL;
2696 }
2697 goto done;
2698 }
2699 p->mark = _mark;
2700 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2702 }
2703 { // '^='
2704 if (p->error_indicator) {
2705 D(p->level--);
2706 return NULL;
2707 }
2708 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2709 Token * _literal;
2710 if (
2711 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2712 )
2713 {
2714 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2715 _res = _PyPegen_augoperator ( p , BitXor );
2716 if (_res == NULL && PyErr_Occurred()) {
2717 p->error_indicator = 1;
2718 D(p->level--);
2719 return NULL;
2720 }
2721 goto done;
2722 }
2723 p->mark = _mark;
2724 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2726 }
2727 { // '<<='
2728 if (p->error_indicator) {
2729 D(p->level--);
2730 return NULL;
2731 }
2732 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2733 Token * _literal;
2734 if (
2735 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2736 )
2737 {
2738 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2739 _res = _PyPegen_augoperator ( p , LShift );
2740 if (_res == NULL && PyErr_Occurred()) {
2741 p->error_indicator = 1;
2742 D(p->level--);
2743 return NULL;
2744 }
2745 goto done;
2746 }
2747 p->mark = _mark;
2748 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2750 }
2751 { // '>>='
2752 if (p->error_indicator) {
2753 D(p->level--);
2754 return NULL;
2755 }
2756 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2757 Token * _literal;
2758 if (
2759 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2760 )
2761 {
2762 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2763 _res = _PyPegen_augoperator ( p , RShift );
2764 if (_res == NULL && PyErr_Occurred()) {
2765 p->error_indicator = 1;
2766 D(p->level--);
2767 return NULL;
2768 }
2769 goto done;
2770 }
2771 p->mark = _mark;
2772 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2774 }
2775 { // '**='
2776 if (p->error_indicator) {
2777 D(p->level--);
2778 return NULL;
2779 }
2780 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2781 Token * _literal;
2782 if (
2783 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2784 )
2785 {
2786 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2787 _res = _PyPegen_augoperator ( p , Pow );
2788 if (_res == NULL && PyErr_Occurred()) {
2789 p->error_indicator = 1;
2790 D(p->level--);
2791 return NULL;
2792 }
2793 goto done;
2794 }
2795 p->mark = _mark;
2796 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2798 }
2799 { // '//='
2800 if (p->error_indicator) {
2801 D(p->level--);
2802 return NULL;
2803 }
2804 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2805 Token * _literal;
2806 if (
2807 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2808 )
2809 {
2810 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2811 _res = _PyPegen_augoperator ( p , FloorDiv );
2812 if (_res == NULL && PyErr_Occurred()) {
2813 p->error_indicator = 1;
2814 D(p->level--);
2815 return NULL;
2816 }
2817 goto done;
2818 }
2819 p->mark = _mark;
2820 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2822 }
2823 _res = NULL;
2824 done:
2825 D(p->level--);
2826 return _res;
2827}
2828
2829// global_stmt: 'global' ','.NAME+
2830static stmt_ty
2831global_stmt_rule(Parser *p)
2832{
2833 D(p->level++);
2834 if (p->error_indicator) {
2835 D(p->level--);
2836 return NULL;
2837 }
2838 stmt_ty _res = NULL;
2839 int _mark = p->mark;
2840 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2841 p->error_indicator = 1;
2842 D(p->level--);
2843 return NULL;
2844 }
2845 int _start_lineno = p->tokens[_mark]->lineno;
2846 UNUSED(_start_lineno); // Only used by EXTRA macro
2847 int _start_col_offset = p->tokens[_mark]->col_offset;
2848 UNUSED(_start_col_offset); // Only used by EXTRA macro
2849 { // 'global' ','.NAME+
2850 if (p->error_indicator) {
2851 D(p->level--);
2852 return NULL;
2853 }
2854 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2855 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002856 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002857 if (
2858 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2859 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002860 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002861 )
2862 {
2863 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2864 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2865 if (_token == NULL) {
2866 D(p->level--);
2867 return NULL;
2868 }
2869 int _end_lineno = _token->end_lineno;
2870 UNUSED(_end_lineno); // Only used by EXTRA macro
2871 int _end_col_offset = _token->end_col_offset;
2872 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002873 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002874 if (_res == NULL && PyErr_Occurred()) {
2875 p->error_indicator = 1;
2876 D(p->level--);
2877 return NULL;
2878 }
2879 goto done;
2880 }
2881 p->mark = _mark;
2882 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2884 }
2885 _res = NULL;
2886 done:
2887 D(p->level--);
2888 return _res;
2889}
2890
2891// nonlocal_stmt: 'nonlocal' ','.NAME+
2892static stmt_ty
2893nonlocal_stmt_rule(Parser *p)
2894{
2895 D(p->level++);
2896 if (p->error_indicator) {
2897 D(p->level--);
2898 return NULL;
2899 }
2900 stmt_ty _res = NULL;
2901 int _mark = p->mark;
2902 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2903 p->error_indicator = 1;
2904 D(p->level--);
2905 return NULL;
2906 }
2907 int _start_lineno = p->tokens[_mark]->lineno;
2908 UNUSED(_start_lineno); // Only used by EXTRA macro
2909 int _start_col_offset = p->tokens[_mark]->col_offset;
2910 UNUSED(_start_col_offset); // Only used by EXTRA macro
2911 { // 'nonlocal' ','.NAME+
2912 if (p->error_indicator) {
2913 D(p->level--);
2914 return NULL;
2915 }
2916 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2917 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002918 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002919 if (
2920 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2921 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002922 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002923 )
2924 {
2925 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2926 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2927 if (_token == NULL) {
2928 D(p->level--);
2929 return NULL;
2930 }
2931 int _end_lineno = _token->end_lineno;
2932 UNUSED(_end_lineno); // Only used by EXTRA macro
2933 int _end_col_offset = _token->end_col_offset;
2934 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002935 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002936 if (_res == NULL && PyErr_Occurred()) {
2937 p->error_indicator = 1;
2938 D(p->level--);
2939 return NULL;
2940 }
2941 goto done;
2942 }
2943 p->mark = _mark;
2944 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2946 }
2947 _res = NULL;
2948 done:
2949 D(p->level--);
2950 return _res;
2951}
2952
2953// yield_stmt: yield_expr
2954static stmt_ty
2955yield_stmt_rule(Parser *p)
2956{
2957 D(p->level++);
2958 if (p->error_indicator) {
2959 D(p->level--);
2960 return NULL;
2961 }
2962 stmt_ty _res = NULL;
2963 int _mark = p->mark;
2964 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2965 p->error_indicator = 1;
2966 D(p->level--);
2967 return NULL;
2968 }
2969 int _start_lineno = p->tokens[_mark]->lineno;
2970 UNUSED(_start_lineno); // Only used by EXTRA macro
2971 int _start_col_offset = p->tokens[_mark]->col_offset;
2972 UNUSED(_start_col_offset); // Only used by EXTRA macro
2973 { // yield_expr
2974 if (p->error_indicator) {
2975 D(p->level--);
2976 return NULL;
2977 }
2978 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2979 expr_ty y;
2980 if (
2981 (y = yield_expr_rule(p)) // yield_expr
2982 )
2983 {
2984 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2985 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2986 if (_token == NULL) {
2987 D(p->level--);
2988 return NULL;
2989 }
2990 int _end_lineno = _token->end_lineno;
2991 UNUSED(_end_lineno); // Only used by EXTRA macro
2992 int _end_col_offset = _token->end_col_offset;
2993 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002994 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002995 if (_res == NULL && PyErr_Occurred()) {
2996 p->error_indicator = 1;
2997 D(p->level--);
2998 return NULL;
2999 }
3000 goto done;
3001 }
3002 p->mark = _mark;
3003 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
3005 }
3006 _res = NULL;
3007 done:
3008 D(p->level--);
3009 return _res;
3010}
3011
3012// assert_stmt: 'assert' expression [',' expression]
3013static stmt_ty
3014assert_stmt_rule(Parser *p)
3015{
3016 D(p->level++);
3017 if (p->error_indicator) {
3018 D(p->level--);
3019 return NULL;
3020 }
3021 stmt_ty _res = NULL;
3022 int _mark = p->mark;
3023 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3024 p->error_indicator = 1;
3025 D(p->level--);
3026 return NULL;
3027 }
3028 int _start_lineno = p->tokens[_mark]->lineno;
3029 UNUSED(_start_lineno); // Only used by EXTRA macro
3030 int _start_col_offset = p->tokens[_mark]->col_offset;
3031 UNUSED(_start_col_offset); // Only used by EXTRA macro
3032 { // 'assert' expression [',' expression]
3033 if (p->error_indicator) {
3034 D(p->level--);
3035 return NULL;
3036 }
3037 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3038 Token * _keyword;
3039 expr_ty a;
3040 void *b;
3041 if (
3042 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3043 &&
3044 (a = expression_rule(p)) // expression
3045 &&
3046 (b = _tmp_29_rule(p), 1) // [',' expression]
3047 )
3048 {
3049 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3050 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3051 if (_token == NULL) {
3052 D(p->level--);
3053 return NULL;
3054 }
3055 int _end_lineno = _token->end_lineno;
3056 UNUSED(_end_lineno); // Only used by EXTRA macro
3057 int _end_col_offset = _token->end_col_offset;
3058 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003059 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003060 if (_res == NULL && PyErr_Occurred()) {
3061 p->error_indicator = 1;
3062 D(p->level--);
3063 return NULL;
3064 }
3065 goto done;
3066 }
3067 p->mark = _mark;
3068 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3070 }
3071 _res = NULL;
3072 done:
3073 D(p->level--);
3074 return _res;
3075}
3076
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003077// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003078static stmt_ty
3079del_stmt_rule(Parser *p)
3080{
3081 D(p->level++);
3082 if (p->error_indicator) {
3083 D(p->level--);
3084 return NULL;
3085 }
3086 stmt_ty _res = NULL;
3087 int _mark = p->mark;
3088 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3089 p->error_indicator = 1;
3090 D(p->level--);
3091 return NULL;
3092 }
3093 int _start_lineno = p->tokens[_mark]->lineno;
3094 UNUSED(_start_lineno); // Only used by EXTRA macro
3095 int _start_col_offset = p->tokens[_mark]->col_offset;
3096 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003097 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003098 if (p->error_indicator) {
3099 D(p->level--);
3100 return NULL;
3101 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003102 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 +01003103 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003104 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003105 if (
3106 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3107 &&
3108 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003109 &&
3110 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003111 )
3112 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003113 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 +01003114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3115 if (_token == NULL) {
3116 D(p->level--);
3117 return NULL;
3118 }
3119 int _end_lineno = _token->end_lineno;
3120 UNUSED(_end_lineno); // Only used by EXTRA macro
3121 int _end_col_offset = _token->end_col_offset;
3122 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003123 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003124 if (_res == NULL && PyErr_Occurred()) {
3125 p->error_indicator = 1;
3126 D(p->level--);
3127 return NULL;
3128 }
3129 goto done;
3130 }
3131 p->mark = _mark;
3132 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3134 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003135 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003136 if (p->error_indicator) {
3137 D(p->level--);
3138 return NULL;
3139 }
3140 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3141 void *invalid_del_stmt_var;
3142 if (
3143 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3144 )
3145 {
3146 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3147 _res = invalid_del_stmt_var;
3148 goto done;
3149 }
3150 p->mark = _mark;
3151 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003153 }
3154 _res = NULL;
3155 done:
3156 D(p->level--);
3157 return _res;
3158}
3159
3160// import_stmt: import_name | import_from
3161static stmt_ty
3162import_stmt_rule(Parser *p)
3163{
3164 D(p->level++);
3165 if (p->error_indicator) {
3166 D(p->level--);
3167 return NULL;
3168 }
3169 stmt_ty _res = NULL;
3170 int _mark = p->mark;
3171 { // import_name
3172 if (p->error_indicator) {
3173 D(p->level--);
3174 return NULL;
3175 }
3176 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3177 stmt_ty import_name_var;
3178 if (
3179 (import_name_var = import_name_rule(p)) // import_name
3180 )
3181 {
3182 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3183 _res = import_name_var;
3184 goto done;
3185 }
3186 p->mark = _mark;
3187 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3189 }
3190 { // import_from
3191 if (p->error_indicator) {
3192 D(p->level--);
3193 return NULL;
3194 }
3195 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3196 stmt_ty import_from_var;
3197 if (
3198 (import_from_var = import_from_rule(p)) // import_from
3199 )
3200 {
3201 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3202 _res = import_from_var;
3203 goto done;
3204 }
3205 p->mark = _mark;
3206 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3208 }
3209 _res = NULL;
3210 done:
3211 D(p->level--);
3212 return _res;
3213}
3214
3215// import_name: 'import' dotted_as_names
3216static stmt_ty
3217import_name_rule(Parser *p)
3218{
3219 D(p->level++);
3220 if (p->error_indicator) {
3221 D(p->level--);
3222 return NULL;
3223 }
3224 stmt_ty _res = NULL;
3225 int _mark = p->mark;
3226 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3227 p->error_indicator = 1;
3228 D(p->level--);
3229 return NULL;
3230 }
3231 int _start_lineno = p->tokens[_mark]->lineno;
3232 UNUSED(_start_lineno); // Only used by EXTRA macro
3233 int _start_col_offset = p->tokens[_mark]->col_offset;
3234 UNUSED(_start_col_offset); // Only used by EXTRA macro
3235 { // 'import' dotted_as_names
3236 if (p->error_indicator) {
3237 D(p->level--);
3238 return NULL;
3239 }
3240 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3241 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003242 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003243 if (
3244 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3245 &&
3246 (a = dotted_as_names_rule(p)) // dotted_as_names
3247 )
3248 {
3249 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3250 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3251 if (_token == NULL) {
3252 D(p->level--);
3253 return NULL;
3254 }
3255 int _end_lineno = _token->end_lineno;
3256 UNUSED(_end_lineno); // Only used by EXTRA macro
3257 int _end_col_offset = _token->end_col_offset;
3258 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003259 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003260 if (_res == NULL && PyErr_Occurred()) {
3261 p->error_indicator = 1;
3262 D(p->level--);
3263 return NULL;
3264 }
3265 goto done;
3266 }
3267 p->mark = _mark;
3268 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3270 }
3271 _res = NULL;
3272 done:
3273 D(p->level--);
3274 return _res;
3275}
3276
3277// import_from:
3278// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3279// | 'from' (('.' | '...'))+ 'import' import_from_targets
3280static stmt_ty
3281import_from_rule(Parser *p)
3282{
3283 D(p->level++);
3284 if (p->error_indicator) {
3285 D(p->level--);
3286 return NULL;
3287 }
3288 stmt_ty _res = NULL;
3289 int _mark = p->mark;
3290 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3291 p->error_indicator = 1;
3292 D(p->level--);
3293 return NULL;
3294 }
3295 int _start_lineno = p->tokens[_mark]->lineno;
3296 UNUSED(_start_lineno); // Only used by EXTRA macro
3297 int _start_col_offset = p->tokens[_mark]->col_offset;
3298 UNUSED(_start_col_offset); // Only used by EXTRA macro
3299 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3300 if (p->error_indicator) {
3301 D(p->level--);
3302 return NULL;
3303 }
3304 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3305 Token * _keyword;
3306 Token * _keyword_1;
3307 asdl_seq * a;
3308 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003309 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003310 if (
3311 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3312 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003313 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003314 &&
3315 (b = dotted_name_rule(p)) // dotted_name
3316 &&
3317 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3318 &&
3319 (c = import_from_targets_rule(p)) // import_from_targets
3320 )
3321 {
3322 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3323 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3324 if (_token == NULL) {
3325 D(p->level--);
3326 return NULL;
3327 }
3328 int _end_lineno = _token->end_lineno;
3329 UNUSED(_end_lineno); // Only used by EXTRA macro
3330 int _end_col_offset = _token->end_col_offset;
3331 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003332 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003333 if (_res == NULL && PyErr_Occurred()) {
3334 p->error_indicator = 1;
3335 D(p->level--);
3336 return NULL;
3337 }
3338 goto done;
3339 }
3340 p->mark = _mark;
3341 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3343 }
3344 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3345 if (p->error_indicator) {
3346 D(p->level--);
3347 return NULL;
3348 }
3349 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3350 Token * _keyword;
3351 Token * _keyword_1;
3352 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003353 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003354 if (
3355 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3356 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003357 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003358 &&
3359 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3360 &&
3361 (b = import_from_targets_rule(p)) // import_from_targets
3362 )
3363 {
3364 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3365 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3366 if (_token == NULL) {
3367 D(p->level--);
3368 return NULL;
3369 }
3370 int _end_lineno = _token->end_lineno;
3371 UNUSED(_end_lineno); // Only used by EXTRA macro
3372 int _end_col_offset = _token->end_col_offset;
3373 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003374 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003375 if (_res == NULL && PyErr_Occurred()) {
3376 p->error_indicator = 1;
3377 D(p->level--);
3378 return NULL;
3379 }
3380 goto done;
3381 }
3382 p->mark = _mark;
3383 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3385 }
3386 _res = NULL;
3387 done:
3388 D(p->level--);
3389 return _res;
3390}
3391
3392// import_from_targets:
3393// | '(' import_from_as_names ','? ')'
3394// | import_from_as_names !','
3395// | '*'
3396// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003397static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003398import_from_targets_rule(Parser *p)
3399{
3400 D(p->level++);
3401 if (p->error_indicator) {
3402 D(p->level--);
3403 return NULL;
3404 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003405 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003406 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003407 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3408 p->error_indicator = 1;
3409 D(p->level--);
3410 return NULL;
3411 }
3412 int _start_lineno = p->tokens[_mark]->lineno;
3413 UNUSED(_start_lineno); // Only used by EXTRA macro
3414 int _start_col_offset = p->tokens[_mark]->col_offset;
3415 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003416 { // '(' import_from_as_names ','? ')'
3417 if (p->error_indicator) {
3418 D(p->level--);
3419 return NULL;
3420 }
3421 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3422 Token * _literal;
3423 Token * _literal_1;
3424 void *_opt_var;
3425 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003426 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003427 if (
3428 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3429 &&
3430 (a = import_from_as_names_rule(p)) // import_from_as_names
3431 &&
3432 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3433 &&
3434 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3435 )
3436 {
3437 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3438 _res = a;
3439 if (_res == NULL && PyErr_Occurred()) {
3440 p->error_indicator = 1;
3441 D(p->level--);
3442 return NULL;
3443 }
3444 goto done;
3445 }
3446 p->mark = _mark;
3447 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3449 }
3450 { // import_from_as_names !','
3451 if (p->error_indicator) {
3452 D(p->level--);
3453 return NULL;
3454 }
3455 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 +01003456 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003457 if (
3458 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3459 &&
3460 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3461 )
3462 {
3463 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3464 _res = import_from_as_names_var;
3465 goto done;
3466 }
3467 p->mark = _mark;
3468 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3470 }
3471 { // '*'
3472 if (p->error_indicator) {
3473 D(p->level--);
3474 return NULL;
3475 }
3476 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3477 Token * _literal;
3478 if (
3479 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3480 )
3481 {
3482 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003483 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3484 if (_token == NULL) {
3485 D(p->level--);
3486 return NULL;
3487 }
3488 int _end_lineno = _token->end_lineno;
3489 UNUSED(_end_lineno); // Only used by EXTRA macro
3490 int _end_col_offset = _token->end_col_offset;
3491 UNUSED(_end_col_offset); // Only used by EXTRA macro
3492 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003493 if (_res == NULL && PyErr_Occurred()) {
3494 p->error_indicator = 1;
3495 D(p->level--);
3496 return NULL;
3497 }
3498 goto done;
3499 }
3500 p->mark = _mark;
3501 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3503 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003504 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003505 if (p->error_indicator) {
3506 D(p->level--);
3507 return NULL;
3508 }
3509 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3510 void *invalid_import_from_targets_var;
3511 if (
3512 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3513 )
3514 {
3515 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3516 _res = invalid_import_from_targets_var;
3517 goto done;
3518 }
3519 p->mark = _mark;
3520 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3522 }
3523 _res = NULL;
3524 done:
3525 D(p->level--);
3526 return _res;
3527}
3528
3529// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003530static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003531import_from_as_names_rule(Parser *p)
3532{
3533 D(p->level++);
3534 if (p->error_indicator) {
3535 D(p->level--);
3536 return NULL;
3537 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003538 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003539 int _mark = p->mark;
3540 { // ','.import_from_as_name+
3541 if (p->error_indicator) {
3542 D(p->level--);
3543 return NULL;
3544 }
3545 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 +01003546 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003547 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003548 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003549 )
3550 {
3551 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3552 _res = a;
3553 if (_res == NULL && PyErr_Occurred()) {
3554 p->error_indicator = 1;
3555 D(p->level--);
3556 return NULL;
3557 }
3558 goto done;
3559 }
3560 p->mark = _mark;
3561 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3563 }
3564 _res = NULL;
3565 done:
3566 D(p->level--);
3567 return _res;
3568}
3569
3570// import_from_as_name: NAME ['as' NAME]
3571static alias_ty
3572import_from_as_name_rule(Parser *p)
3573{
3574 D(p->level++);
3575 if (p->error_indicator) {
3576 D(p->level--);
3577 return NULL;
3578 }
3579 alias_ty _res = NULL;
3580 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003581 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3582 p->error_indicator = 1;
3583 D(p->level--);
3584 return NULL;
3585 }
3586 int _start_lineno = p->tokens[_mark]->lineno;
3587 UNUSED(_start_lineno); // Only used by EXTRA macro
3588 int _start_col_offset = p->tokens[_mark]->col_offset;
3589 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003590 { // NAME ['as' NAME]
3591 if (p->error_indicator) {
3592 D(p->level--);
3593 return NULL;
3594 }
3595 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3596 expr_ty a;
3597 void *b;
3598 if (
3599 (a = _PyPegen_name_token(p)) // NAME
3600 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003601 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003602 )
3603 {
3604 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 -04003605 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3606 if (_token == NULL) {
3607 D(p->level--);
3608 return NULL;
3609 }
3610 int _end_lineno = _token->end_lineno;
3611 UNUSED(_end_lineno); // Only used by EXTRA macro
3612 int _end_col_offset = _token->end_col_offset;
3613 UNUSED(_end_col_offset); // Only used by EXTRA macro
3614 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003615 if (_res == NULL && PyErr_Occurred()) {
3616 p->error_indicator = 1;
3617 D(p->level--);
3618 return NULL;
3619 }
3620 goto done;
3621 }
3622 p->mark = _mark;
3623 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3625 }
3626 _res = NULL;
3627 done:
3628 D(p->level--);
3629 return _res;
3630}
3631
3632// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003633static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003634dotted_as_names_rule(Parser *p)
3635{
3636 D(p->level++);
3637 if (p->error_indicator) {
3638 D(p->level--);
3639 return NULL;
3640 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003641 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003642 int _mark = p->mark;
3643 { // ','.dotted_as_name+
3644 if (p->error_indicator) {
3645 D(p->level--);
3646 return NULL;
3647 }
3648 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 +01003649 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003650 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003651 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003652 )
3653 {
3654 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3655 _res = a;
3656 if (_res == NULL && PyErr_Occurred()) {
3657 p->error_indicator = 1;
3658 D(p->level--);
3659 return NULL;
3660 }
3661 goto done;
3662 }
3663 p->mark = _mark;
3664 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3666 }
3667 _res = NULL;
3668 done:
3669 D(p->level--);
3670 return _res;
3671}
3672
3673// dotted_as_name: dotted_name ['as' NAME]
3674static alias_ty
3675dotted_as_name_rule(Parser *p)
3676{
3677 D(p->level++);
3678 if (p->error_indicator) {
3679 D(p->level--);
3680 return NULL;
3681 }
3682 alias_ty _res = NULL;
3683 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003684 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3685 p->error_indicator = 1;
3686 D(p->level--);
3687 return NULL;
3688 }
3689 int _start_lineno = p->tokens[_mark]->lineno;
3690 UNUSED(_start_lineno); // Only used by EXTRA macro
3691 int _start_col_offset = p->tokens[_mark]->col_offset;
3692 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003693 { // dotted_name ['as' NAME]
3694 if (p->error_indicator) {
3695 D(p->level--);
3696 return NULL;
3697 }
3698 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3699 expr_ty a;
3700 void *b;
3701 if (
3702 (a = dotted_name_rule(p)) // dotted_name
3703 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003704 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003705 )
3706 {
3707 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 -04003708 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3709 if (_token == NULL) {
3710 D(p->level--);
3711 return NULL;
3712 }
3713 int _end_lineno = _token->end_lineno;
3714 UNUSED(_end_lineno); // Only used by EXTRA macro
3715 int _end_col_offset = _token->end_col_offset;
3716 UNUSED(_end_col_offset); // Only used by EXTRA macro
3717 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003718 if (_res == NULL && PyErr_Occurred()) {
3719 p->error_indicator = 1;
3720 D(p->level--);
3721 return NULL;
3722 }
3723 goto done;
3724 }
3725 p->mark = _mark;
3726 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3728 }
3729 _res = NULL;
3730 done:
3731 D(p->level--);
3732 return _res;
3733}
3734
3735// Left-recursive
3736// dotted_name: dotted_name '.' NAME | NAME
3737static expr_ty dotted_name_raw(Parser *);
3738static expr_ty
3739dotted_name_rule(Parser *p)
3740{
3741 D(p->level++);
3742 expr_ty _res = NULL;
3743 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3744 D(p->level--);
3745 return _res;
3746 }
3747 int _mark = p->mark;
3748 int _resmark = p->mark;
3749 while (1) {
3750 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3751 if (tmpvar_0) {
3752 D(p->level--);
3753 return _res;
3754 }
3755 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003756 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003757 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003758 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003759 if (p->error_indicator)
3760 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003761 if (_raw == NULL || p->mark <= _resmark)
3762 break;
3763 _resmark = p->mark;
3764 _res = _raw;
3765 }
3766 p->mark = _resmark;
3767 D(p->level--);
3768 return _res;
3769}
3770static expr_ty
3771dotted_name_raw(Parser *p)
3772{
3773 D(p->level++);
3774 if (p->error_indicator) {
3775 D(p->level--);
3776 return NULL;
3777 }
3778 expr_ty _res = NULL;
3779 int _mark = p->mark;
3780 { // dotted_name '.' NAME
3781 if (p->error_indicator) {
3782 D(p->level--);
3783 return NULL;
3784 }
3785 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3786 Token * _literal;
3787 expr_ty a;
3788 expr_ty b;
3789 if (
3790 (a = dotted_name_rule(p)) // dotted_name
3791 &&
3792 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3793 &&
3794 (b = _PyPegen_name_token(p)) // NAME
3795 )
3796 {
3797 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3798 _res = _PyPegen_join_names_with_dot ( p , a , b );
3799 if (_res == NULL && PyErr_Occurred()) {
3800 p->error_indicator = 1;
3801 D(p->level--);
3802 return NULL;
3803 }
3804 goto done;
3805 }
3806 p->mark = _mark;
3807 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3809 }
3810 { // NAME
3811 if (p->error_indicator) {
3812 D(p->level--);
3813 return NULL;
3814 }
3815 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3816 expr_ty name_var;
3817 if (
3818 (name_var = _PyPegen_name_token(p)) // NAME
3819 )
3820 {
3821 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3822 _res = name_var;
3823 goto done;
3824 }
3825 p->mark = _mark;
3826 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3828 }
3829 _res = NULL;
3830 done:
3831 D(p->level--);
3832 return _res;
3833}
3834
3835// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003836// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003837// | 'if' named_expression ':' block elif_stmt
3838// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003839static stmt_ty
3840if_stmt_rule(Parser *p)
3841{
3842 D(p->level++);
3843 if (p->error_indicator) {
3844 D(p->level--);
3845 return NULL;
3846 }
3847 stmt_ty _res = NULL;
3848 int _mark = p->mark;
3849 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3850 p->error_indicator = 1;
3851 D(p->level--);
3852 return NULL;
3853 }
3854 int _start_lineno = p->tokens[_mark]->lineno;
3855 UNUSED(_start_lineno); // Only used by EXTRA macro
3856 int _start_col_offset = p->tokens[_mark]->col_offset;
3857 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003858 if (p->call_invalid_rules) { // invalid_if_stmt
3859 if (p->error_indicator) {
3860 D(p->level--);
3861 return NULL;
3862 }
3863 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3864 void *invalid_if_stmt_var;
3865 if (
3866 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3867 )
3868 {
3869 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3870 _res = invalid_if_stmt_var;
3871 goto done;
3872 }
3873 p->mark = _mark;
3874 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3876 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003877 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003878 if (p->error_indicator) {
3879 D(p->level--);
3880 return NULL;
3881 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003882 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 +01003883 Token * _keyword;
3884 Token * _literal;
3885 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003886 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003887 stmt_ty c;
3888 if (
3889 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3890 &&
3891 (a = named_expression_rule(p)) // named_expression
3892 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003893 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003894 &&
3895 (b = block_rule(p)) // block
3896 &&
3897 (c = elif_stmt_rule(p)) // elif_stmt
3898 )
3899 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003900 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 +01003901 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3902 if (_token == NULL) {
3903 D(p->level--);
3904 return NULL;
3905 }
3906 int _end_lineno = _token->end_lineno;
3907 UNUSED(_end_lineno); // Only used by EXTRA macro
3908 int _end_col_offset = _token->end_col_offset;
3909 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003910 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003911 if (_res == NULL && PyErr_Occurred()) {
3912 p->error_indicator = 1;
3913 D(p->level--);
3914 return NULL;
3915 }
3916 goto done;
3917 }
3918 p->mark = _mark;
3919 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003921 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003922 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003923 if (p->error_indicator) {
3924 D(p->level--);
3925 return NULL;
3926 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003927 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 +01003928 Token * _keyword;
3929 Token * _literal;
3930 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003931 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003932 void *c;
3933 if (
3934 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3935 &&
3936 (a = named_expression_rule(p)) // named_expression
3937 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003938 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003939 &&
3940 (b = block_rule(p)) // block
3941 &&
3942 (c = else_block_rule(p), 1) // else_block?
3943 )
3944 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003945 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 +01003946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3947 if (_token == NULL) {
3948 D(p->level--);
3949 return NULL;
3950 }
3951 int _end_lineno = _token->end_lineno;
3952 UNUSED(_end_lineno); // Only used by EXTRA macro
3953 int _end_col_offset = _token->end_col_offset;
3954 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003955 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003956 if (_res == NULL && PyErr_Occurred()) {
3957 p->error_indicator = 1;
3958 D(p->level--);
3959 return NULL;
3960 }
3961 goto done;
3962 }
3963 p->mark = _mark;
3964 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3966 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003967 _res = NULL;
3968 done:
3969 D(p->level--);
3970 return _res;
3971}
3972
3973// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003974// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003975// | 'elif' named_expression ':' block elif_stmt
3976// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003977static stmt_ty
3978elif_stmt_rule(Parser *p)
3979{
3980 D(p->level++);
3981 if (p->error_indicator) {
3982 D(p->level--);
3983 return NULL;
3984 }
3985 stmt_ty _res = NULL;
3986 int _mark = p->mark;
3987 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3988 p->error_indicator = 1;
3989 D(p->level--);
3990 return NULL;
3991 }
3992 int _start_lineno = p->tokens[_mark]->lineno;
3993 UNUSED(_start_lineno); // Only used by EXTRA macro
3994 int _start_col_offset = p->tokens[_mark]->col_offset;
3995 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003996 if (p->call_invalid_rules) { // invalid_elif_stmt
3997 if (p->error_indicator) {
3998 D(p->level--);
3999 return NULL;
4000 }
4001 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4002 void *invalid_elif_stmt_var;
4003 if (
4004 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4005 )
4006 {
4007 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4008 _res = invalid_elif_stmt_var;
4009 goto done;
4010 }
4011 p->mark = _mark;
4012 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4014 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004015 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004016 if (p->error_indicator) {
4017 D(p->level--);
4018 return NULL;
4019 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004020 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 +01004021 Token * _keyword;
4022 Token * _literal;
4023 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004024 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004025 stmt_ty c;
4026 if (
4027 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4028 &&
4029 (a = named_expression_rule(p)) // named_expression
4030 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004031 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004032 &&
4033 (b = block_rule(p)) // block
4034 &&
4035 (c = elif_stmt_rule(p)) // elif_stmt
4036 )
4037 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004038 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 +01004039 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4040 if (_token == NULL) {
4041 D(p->level--);
4042 return NULL;
4043 }
4044 int _end_lineno = _token->end_lineno;
4045 UNUSED(_end_lineno); // Only used by EXTRA macro
4046 int _end_col_offset = _token->end_col_offset;
4047 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004048 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004049 if (_res == NULL && PyErr_Occurred()) {
4050 p->error_indicator = 1;
4051 D(p->level--);
4052 return NULL;
4053 }
4054 goto done;
4055 }
4056 p->mark = _mark;
4057 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004059 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004060 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004061 if (p->error_indicator) {
4062 D(p->level--);
4063 return NULL;
4064 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004065 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 +01004066 Token * _keyword;
4067 Token * _literal;
4068 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004069 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004070 void *c;
4071 if (
4072 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4073 &&
4074 (a = named_expression_rule(p)) // named_expression
4075 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004076 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004077 &&
4078 (b = block_rule(p)) // block
4079 &&
4080 (c = else_block_rule(p), 1) // else_block?
4081 )
4082 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004083 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 +01004084 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4085 if (_token == NULL) {
4086 D(p->level--);
4087 return NULL;
4088 }
4089 int _end_lineno = _token->end_lineno;
4090 UNUSED(_end_lineno); // Only used by EXTRA macro
4091 int _end_col_offset = _token->end_col_offset;
4092 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004093 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004094 if (_res == NULL && PyErr_Occurred()) {
4095 p->error_indicator = 1;
4096 D(p->level--);
4097 return NULL;
4098 }
4099 goto done;
4100 }
4101 p->mark = _mark;
4102 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4104 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004105 _res = NULL;
4106 done:
4107 D(p->level--);
4108 return _res;
4109}
4110
Pablo Galindo56c95df2021-04-21 15:28:21 +01004111// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004112static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004113else_block_rule(Parser *p)
4114{
4115 D(p->level++);
4116 if (p->error_indicator) {
4117 D(p->level--);
4118 return NULL;
4119 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004120 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004121 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004122 if (p->call_invalid_rules) { // invalid_else_stmt
4123 if (p->error_indicator) {
4124 D(p->level--);
4125 return NULL;
4126 }
4127 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4128 void *invalid_else_stmt_var;
4129 if (
4130 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4131 )
4132 {
4133 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4134 _res = invalid_else_stmt_var;
4135 goto done;
4136 }
4137 p->mark = _mark;
4138 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4140 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004141 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004142 if (p->error_indicator) {
4143 D(p->level--);
4144 return NULL;
4145 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004146 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004147 Token * _keyword;
4148 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004149 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004150 if (
4151 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4152 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004153 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004154 &&
4155 (b = block_rule(p)) // block
4156 )
4157 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004158 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 +01004159 _res = b;
4160 if (_res == NULL && PyErr_Occurred()) {
4161 p->error_indicator = 1;
4162 D(p->level--);
4163 return NULL;
4164 }
4165 goto done;
4166 }
4167 p->mark = _mark;
4168 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004170 }
4171 _res = NULL;
4172 done:
4173 D(p->level--);
4174 return _res;
4175}
4176
Pablo Galindo56c95df2021-04-21 15:28:21 +01004177// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004178static stmt_ty
4179while_stmt_rule(Parser *p)
4180{
4181 D(p->level++);
4182 if (p->error_indicator) {
4183 D(p->level--);
4184 return NULL;
4185 }
4186 stmt_ty _res = NULL;
4187 int _mark = p->mark;
4188 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4189 p->error_indicator = 1;
4190 D(p->level--);
4191 return NULL;
4192 }
4193 int _start_lineno = p->tokens[_mark]->lineno;
4194 UNUSED(_start_lineno); // Only used by EXTRA macro
4195 int _start_col_offset = p->tokens[_mark]->col_offset;
4196 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004197 if (p->call_invalid_rules) { // invalid_while_stmt
4198 if (p->error_indicator) {
4199 D(p->level--);
4200 return NULL;
4201 }
4202 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4203 void *invalid_while_stmt_var;
4204 if (
4205 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4206 )
4207 {
4208 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4209 _res = invalid_while_stmt_var;
4210 goto done;
4211 }
4212 p->mark = _mark;
4213 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4215 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004216 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004217 if (p->error_indicator) {
4218 D(p->level--);
4219 return NULL;
4220 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004221 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 +01004222 Token * _keyword;
4223 Token * _literal;
4224 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004225 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004226 void *c;
4227 if (
4228 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4229 &&
4230 (a = named_expression_rule(p)) // named_expression
4231 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004232 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004233 &&
4234 (b = block_rule(p)) // block
4235 &&
4236 (c = else_block_rule(p), 1) // else_block?
4237 )
4238 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004239 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 +01004240 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4241 if (_token == NULL) {
4242 D(p->level--);
4243 return NULL;
4244 }
4245 int _end_lineno = _token->end_lineno;
4246 UNUSED(_end_lineno); // Only used by EXTRA macro
4247 int _end_col_offset = _token->end_col_offset;
4248 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004249 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004250 if (_res == NULL && PyErr_Occurred()) {
4251 p->error_indicator = 1;
4252 D(p->level--);
4253 return NULL;
4254 }
4255 goto done;
4256 }
4257 p->mark = _mark;
4258 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4260 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004261 _res = NULL;
4262 done:
4263 D(p->level--);
4264 return _res;
4265}
4266
4267// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004268// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004269// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4270// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004271// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004272static stmt_ty
4273for_stmt_rule(Parser *p)
4274{
4275 D(p->level++);
4276 if (p->error_indicator) {
4277 D(p->level--);
4278 return NULL;
4279 }
4280 stmt_ty _res = NULL;
4281 int _mark = p->mark;
4282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4283 p->error_indicator = 1;
4284 D(p->level--);
4285 return NULL;
4286 }
4287 int _start_lineno = p->tokens[_mark]->lineno;
4288 UNUSED(_start_lineno); // Only used by EXTRA macro
4289 int _start_col_offset = p->tokens[_mark]->col_offset;
4290 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004291 if (p->call_invalid_rules) { // invalid_for_stmt
4292 if (p->error_indicator) {
4293 D(p->level--);
4294 return NULL;
4295 }
4296 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4297 void *invalid_for_stmt_var;
4298 if (
4299 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4300 )
4301 {
4302 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4303 _res = invalid_for_stmt_var;
4304 goto done;
4305 }
4306 p->mark = _mark;
4307 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4309 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004310 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004311 if (p->error_indicator) {
4312 D(p->level--);
4313 return NULL;
4314 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004315 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 +03004316 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004317 Token * _keyword;
4318 Token * _keyword_1;
4319 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004320 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004321 void *el;
4322 expr_ty ex;
4323 expr_ty t;
4324 void *tc;
4325 if (
4326 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4327 &&
4328 (t = star_targets_rule(p)) // star_targets
4329 &&
4330 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4331 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004332 (_cut_var = 1)
4333 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004334 (ex = star_expressions_rule(p)) // star_expressions
4335 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004336 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004337 &&
4338 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4339 &&
4340 (b = block_rule(p)) // block
4341 &&
4342 (el = else_block_rule(p), 1) // else_block?
4343 )
4344 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004345 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 +01004346 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4347 if (_token == NULL) {
4348 D(p->level--);
4349 return NULL;
4350 }
4351 int _end_lineno = _token->end_lineno;
4352 UNUSED(_end_lineno); // Only used by EXTRA macro
4353 int _end_col_offset = _token->end_col_offset;
4354 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004355 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004356 if (_res == NULL && PyErr_Occurred()) {
4357 p->error_indicator = 1;
4358 D(p->level--);
4359 return NULL;
4360 }
4361 goto done;
4362 }
4363 p->mark = _mark;
4364 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004365 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 +03004366 if (_cut_var) {
4367 D(p->level--);
4368 return NULL;
4369 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004370 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004371 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004372 if (p->error_indicator) {
4373 D(p->level--);
4374 return NULL;
4375 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004376 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 +03004377 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004378 Token * _keyword;
4379 Token * _keyword_1;
4380 Token * _literal;
4381 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004382 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004383 void *el;
4384 expr_ty ex;
4385 expr_ty t;
4386 void *tc;
4387 if (
4388 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4389 &&
4390 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4391 &&
4392 (t = star_targets_rule(p)) // star_targets
4393 &&
4394 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4395 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004396 (_cut_var = 1)
4397 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004398 (ex = star_expressions_rule(p)) // star_expressions
4399 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004400 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004401 &&
4402 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4403 &&
4404 (b = block_rule(p)) // block
4405 &&
4406 (el = else_block_rule(p), 1) // else_block?
4407 )
4408 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004409 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 +01004410 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4411 if (_token == NULL) {
4412 D(p->level--);
4413 return NULL;
4414 }
4415 int _end_lineno = _token->end_lineno;
4416 UNUSED(_end_lineno); // Only used by EXTRA macro
4417 int _end_col_offset = _token->end_col_offset;
4418 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004419 _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 +01004420 if (_res == NULL && PyErr_Occurred()) {
4421 p->error_indicator = 1;
4422 D(p->level--);
4423 return NULL;
4424 }
4425 goto done;
4426 }
4427 p->mark = _mark;
4428 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004429 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 +03004430 if (_cut_var) {
4431 D(p->level--);
4432 return NULL;
4433 }
4434 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004435 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004436 if (p->error_indicator) {
4437 D(p->level--);
4438 return NULL;
4439 }
4440 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4441 void *invalid_for_target_var;
4442 if (
4443 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4444 )
4445 {
4446 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4447 _res = invalid_for_target_var;
4448 goto done;
4449 }
4450 p->mark = _mark;
4451 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004453 }
4454 _res = NULL;
4455 done:
4456 D(p->level--);
4457 return _res;
4458}
4459
4460// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004461// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004462// | 'with' '(' ','.with_item+ ','? ')' ':' block
4463// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4464// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4465// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004466// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004467static stmt_ty
4468with_stmt_rule(Parser *p)
4469{
4470 D(p->level++);
4471 if (p->error_indicator) {
4472 D(p->level--);
4473 return NULL;
4474 }
4475 stmt_ty _res = NULL;
4476 int _mark = p->mark;
4477 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4478 p->error_indicator = 1;
4479 D(p->level--);
4480 return NULL;
4481 }
4482 int _start_lineno = p->tokens[_mark]->lineno;
4483 UNUSED(_start_lineno); // Only used by EXTRA macro
4484 int _start_col_offset = p->tokens[_mark]->col_offset;
4485 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004486 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4487 if (p->error_indicator) {
4488 D(p->level--);
4489 return NULL;
4490 }
4491 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4492 void *invalid_with_stmt_indent_var;
4493 if (
4494 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4495 )
4496 {
4497 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4498 _res = invalid_with_stmt_indent_var;
4499 goto done;
4500 }
4501 p->mark = _mark;
4502 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4504 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004505 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4506 if (p->error_indicator) {
4507 D(p->level--);
4508 return NULL;
4509 }
4510 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4511 Token * _keyword;
4512 Token * _literal;
4513 Token * _literal_1;
4514 Token * _literal_2;
4515 void *_opt_var;
4516 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004517 asdl_withitem_seq* a;
4518 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004519 if (
4520 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4521 &&
4522 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4523 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004524 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004525 &&
4526 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4527 &&
4528 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4529 &&
4530 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4531 &&
4532 (b = block_rule(p)) // block
4533 )
4534 {
4535 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4536 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4537 if (_token == NULL) {
4538 D(p->level--);
4539 return NULL;
4540 }
4541 int _end_lineno = _token->end_lineno;
4542 UNUSED(_end_lineno); // Only used by EXTRA macro
4543 int _end_col_offset = _token->end_col_offset;
4544 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004545 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004546 if (_res == NULL && PyErr_Occurred()) {
4547 p->error_indicator = 1;
4548 D(p->level--);
4549 return NULL;
4550 }
4551 goto done;
4552 }
4553 p->mark = _mark;
4554 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4556 }
4557 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4558 if (p->error_indicator) {
4559 D(p->level--);
4560 return NULL;
4561 }
4562 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4563 Token * _keyword;
4564 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004565 asdl_withitem_seq* a;
4566 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004567 void *tc;
4568 if (
4569 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4570 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004571 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004572 &&
4573 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4574 &&
4575 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4576 &&
4577 (b = block_rule(p)) // block
4578 )
4579 {
4580 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4581 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4582 if (_token == NULL) {
4583 D(p->level--);
4584 return NULL;
4585 }
4586 int _end_lineno = _token->end_lineno;
4587 UNUSED(_end_lineno); // Only used by EXTRA macro
4588 int _end_col_offset = _token->end_col_offset;
4589 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004590 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004591 if (_res == NULL && PyErr_Occurred()) {
4592 p->error_indicator = 1;
4593 D(p->level--);
4594 return NULL;
4595 }
4596 goto done;
4597 }
4598 p->mark = _mark;
4599 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4601 }
4602 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4603 if (p->error_indicator) {
4604 D(p->level--);
4605 return NULL;
4606 }
4607 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4608 Token * _keyword;
4609 Token * _literal;
4610 Token * _literal_1;
4611 Token * _literal_2;
4612 void *_opt_var;
4613 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004614 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004615 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004616 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004617 if (
4618 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4619 &&
4620 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4621 &&
4622 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4623 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004624 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004625 &&
4626 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4627 &&
4628 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4629 &&
4630 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4631 &&
4632 (b = block_rule(p)) // block
4633 )
4634 {
4635 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4636 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4637 if (_token == NULL) {
4638 D(p->level--);
4639 return NULL;
4640 }
4641 int _end_lineno = _token->end_lineno;
4642 UNUSED(_end_lineno); // Only used by EXTRA macro
4643 int _end_col_offset = _token->end_col_offset;
4644 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004645 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004646 if (_res == NULL && PyErr_Occurred()) {
4647 p->error_indicator = 1;
4648 D(p->level--);
4649 return NULL;
4650 }
4651 goto done;
4652 }
4653 p->mark = _mark;
4654 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4656 }
4657 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4658 if (p->error_indicator) {
4659 D(p->level--);
4660 return NULL;
4661 }
4662 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4663 Token * _keyword;
4664 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004665 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004666 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004667 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004668 void *tc;
4669 if (
4670 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4671 &&
4672 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4673 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004674 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004675 &&
4676 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4677 &&
4678 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4679 &&
4680 (b = block_rule(p)) // block
4681 )
4682 {
4683 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4684 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4685 if (_token == NULL) {
4686 D(p->level--);
4687 return NULL;
4688 }
4689 int _end_lineno = _token->end_lineno;
4690 UNUSED(_end_lineno); // Only used by EXTRA macro
4691 int _end_col_offset = _token->end_col_offset;
4692 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004693 _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 +01004694 if (_res == NULL && PyErr_Occurred()) {
4695 p->error_indicator = 1;
4696 D(p->level--);
4697 return NULL;
4698 }
4699 goto done;
4700 }
4701 p->mark = _mark;
4702 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4704 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004705 if (p->call_invalid_rules) { // invalid_with_stmt
4706 if (p->error_indicator) {
4707 D(p->level--);
4708 return NULL;
4709 }
4710 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4711 void *invalid_with_stmt_var;
4712 if (
4713 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4714 )
4715 {
4716 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4717 _res = invalid_with_stmt_var;
4718 goto done;
4719 }
4720 p->mark = _mark;
4721 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4723 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004724 _res = NULL;
4725 done:
4726 D(p->level--);
4727 return _res;
4728}
4729
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004730// with_item:
4731// | expression 'as' star_target &(',' | ')' | ':')
4732// | invalid_with_item
4733// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004734static withitem_ty
4735with_item_rule(Parser *p)
4736{
4737 D(p->level++);
4738 if (p->error_indicator) {
4739 D(p->level--);
4740 return NULL;
4741 }
4742 withitem_ty _res = NULL;
4743 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004744 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004745 if (p->error_indicator) {
4746 D(p->level--);
4747 return NULL;
4748 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004749 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 +03004750 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004751 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004752 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004753 if (
4754 (e = expression_rule(p)) // expression
4755 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004756 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4757 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004758 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004759 &&
4760 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004761 )
4762 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004763 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 +02004764 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004765 if (_res == NULL && PyErr_Occurred()) {
4766 p->error_indicator = 1;
4767 D(p->level--);
4768 return NULL;
4769 }
4770 goto done;
4771 }
4772 p->mark = _mark;
4773 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004775 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004776 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004777 if (p->error_indicator) {
4778 D(p->level--);
4779 return NULL;
4780 }
4781 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4782 void *invalid_with_item_var;
4783 if (
4784 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4785 )
4786 {
4787 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4788 _res = invalid_with_item_var;
4789 goto done;
4790 }
4791 p->mark = _mark;
4792 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4794 }
4795 { // expression
4796 if (p->error_indicator) {
4797 D(p->level--);
4798 return NULL;
4799 }
4800 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4801 expr_ty e;
4802 if (
4803 (e = expression_rule(p)) // expression
4804 )
4805 {
4806 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004807 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004808 if (_res == NULL && PyErr_Occurred()) {
4809 p->error_indicator = 1;
4810 D(p->level--);
4811 return NULL;
4812 }
4813 goto done;
4814 }
4815 p->mark = _mark;
4816 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004818 }
4819 _res = NULL;
4820 done:
4821 D(p->level--);
4822 return _res;
4823}
4824
4825// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004826// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004827// | 'try' &&':' block finally_block
4828// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004829static stmt_ty
4830try_stmt_rule(Parser *p)
4831{
4832 D(p->level++);
4833 if (p->error_indicator) {
4834 D(p->level--);
4835 return NULL;
4836 }
4837 stmt_ty _res = NULL;
4838 int _mark = p->mark;
4839 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4840 p->error_indicator = 1;
4841 D(p->level--);
4842 return NULL;
4843 }
4844 int _start_lineno = p->tokens[_mark]->lineno;
4845 UNUSED(_start_lineno); // Only used by EXTRA macro
4846 int _start_col_offset = p->tokens[_mark]->col_offset;
4847 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004848 if (p->call_invalid_rules) { // invalid_try_stmt
4849 if (p->error_indicator) {
4850 D(p->level--);
4851 return NULL;
4852 }
4853 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4854 void *invalid_try_stmt_var;
4855 if (
4856 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4857 )
4858 {
4859 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4860 _res = invalid_try_stmt_var;
4861 goto done;
4862 }
4863 p->mark = _mark;
4864 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4866 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004867 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004868 if (p->error_indicator) {
4869 D(p->level--);
4870 return NULL;
4871 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004872 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 +01004873 Token * _keyword;
4874 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004875 asdl_stmt_seq* b;
4876 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004877 if (
4878 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4879 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004880 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004881 &&
4882 (b = block_rule(p)) // block
4883 &&
4884 (f = finally_block_rule(p)) // finally_block
4885 )
4886 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004887 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 +01004888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4889 if (_token == NULL) {
4890 D(p->level--);
4891 return NULL;
4892 }
4893 int _end_lineno = _token->end_lineno;
4894 UNUSED(_end_lineno); // Only used by EXTRA macro
4895 int _end_col_offset = _token->end_col_offset;
4896 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004897 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004898 if (_res == NULL && PyErr_Occurred()) {
4899 p->error_indicator = 1;
4900 D(p->level--);
4901 return NULL;
4902 }
4903 goto done;
4904 }
4905 p->mark = _mark;
4906 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004908 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004909 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004910 if (p->error_indicator) {
4911 D(p->level--);
4912 return NULL;
4913 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004914 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 +01004915 Token * _keyword;
4916 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004917 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004918 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004919 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004920 void *f;
4921 if (
4922 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4923 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004924 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004925 &&
4926 (b = block_rule(p)) // block
4927 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004928 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004929 &&
4930 (el = else_block_rule(p), 1) // else_block?
4931 &&
4932 (f = finally_block_rule(p), 1) // finally_block?
4933 )
4934 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004935 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 +01004936 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4937 if (_token == NULL) {
4938 D(p->level--);
4939 return NULL;
4940 }
4941 int _end_lineno = _token->end_lineno;
4942 UNUSED(_end_lineno); // Only used by EXTRA macro
4943 int _end_col_offset = _token->end_col_offset;
4944 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004945 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004946 if (_res == NULL && PyErr_Occurred()) {
4947 p->error_indicator = 1;
4948 D(p->level--);
4949 return NULL;
4950 }
4951 goto done;
4952 }
4953 p->mark = _mark;
4954 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004956 }
4957 _res = NULL;
4958 done:
4959 D(p->level--);
4960 return _res;
4961}
4962
Pablo Galindo206cbda2021-02-07 18:42:21 +00004963// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004964// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004965// | 'except' expression ['as' NAME] ':' block
4966// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004967// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004968static excepthandler_ty
4969except_block_rule(Parser *p)
4970{
4971 D(p->level++);
4972 if (p->error_indicator) {
4973 D(p->level--);
4974 return NULL;
4975 }
4976 excepthandler_ty _res = NULL;
4977 int _mark = p->mark;
4978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4979 p->error_indicator = 1;
4980 D(p->level--);
4981 return NULL;
4982 }
4983 int _start_lineno = p->tokens[_mark]->lineno;
4984 UNUSED(_start_lineno); // Only used by EXTRA macro
4985 int _start_col_offset = p->tokens[_mark]->col_offset;
4986 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004987 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4988 if (p->error_indicator) {
4989 D(p->level--);
4990 return NULL;
4991 }
4992 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4993 void *invalid_except_stmt_indent_var;
4994 if (
4995 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4996 )
4997 {
4998 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4999 _res = invalid_except_stmt_indent_var;
5000 goto done;
5001 }
5002 p->mark = _mark;
5003 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
5004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
5005 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005006 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005007 if (p->error_indicator) {
5008 D(p->level--);
5009 return NULL;
5010 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005011 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 +01005012 Token * _keyword;
5013 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005014 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005015 expr_ty e;
5016 void *t;
5017 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005018 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005019 &&
5020 (e = expression_rule(p)) // expression
5021 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005022 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005023 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005024 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005025 &&
5026 (b = block_rule(p)) // block
5027 )
5028 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005029 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 +01005030 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5031 if (_token == NULL) {
5032 D(p->level--);
5033 return NULL;
5034 }
5035 int _end_lineno = _token->end_lineno;
5036 UNUSED(_end_lineno); // Only used by EXTRA macro
5037 int _end_col_offset = _token->end_col_offset;
5038 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005039 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005040 if (_res == NULL && PyErr_Occurred()) {
5041 p->error_indicator = 1;
5042 D(p->level--);
5043 return NULL;
5044 }
5045 goto done;
5046 }
5047 p->mark = _mark;
5048 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005050 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005051 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005052 if (p->error_indicator) {
5053 D(p->level--);
5054 return NULL;
5055 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005056 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005057 Token * _keyword;
5058 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005059 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005060 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005061 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005062 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005063 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005064 &&
5065 (b = block_rule(p)) // block
5066 )
5067 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005068 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 +01005069 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5070 if (_token == NULL) {
5071 D(p->level--);
5072 return NULL;
5073 }
5074 int _end_lineno = _token->end_lineno;
5075 UNUSED(_end_lineno); // Only used by EXTRA macro
5076 int _end_col_offset = _token->end_col_offset;
5077 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005078 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005079 if (_res == NULL && PyErr_Occurred()) {
5080 p->error_indicator = 1;
5081 D(p->level--);
5082 return NULL;
5083 }
5084 goto done;
5085 }
5086 p->mark = _mark;
5087 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5089 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005090 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005091 if (p->error_indicator) {
5092 D(p->level--);
5093 return NULL;
5094 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005095 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5096 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005097 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005098 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005099 )
5100 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005101 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5102 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005103 goto done;
5104 }
5105 p->mark = _mark;
5106 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005108 }
5109 _res = NULL;
5110 done:
5111 D(p->level--);
5112 return _res;
5113}
5114
Pablo Galindo56c95df2021-04-21 15:28:21 +01005115// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005116static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005117finally_block_rule(Parser *p)
5118{
5119 D(p->level++);
5120 if (p->error_indicator) {
5121 D(p->level--);
5122 return NULL;
5123 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005124 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005125 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005126 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005127 if (p->error_indicator) {
5128 D(p->level--);
5129 return NULL;
5130 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005131 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5132 void *invalid_finally_stmt_var;
5133 if (
5134 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5135 )
5136 {
5137 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5138 _res = invalid_finally_stmt_var;
5139 goto done;
5140 }
5141 p->mark = _mark;
5142 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5144 }
5145 { // 'finally' &&':' block
5146 if (p->error_indicator) {
5147 D(p->level--);
5148 return NULL;
5149 }
5150 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005151 Token * _keyword;
5152 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005153 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005154 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005155 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005156 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005157 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005158 &&
5159 (a = block_rule(p)) // block
5160 )
5161 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005162 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 +01005163 _res = a;
5164 if (_res == NULL && PyErr_Occurred()) {
5165 p->error_indicator = 1;
5166 D(p->level--);
5167 return NULL;
5168 }
5169 goto done;
5170 }
5171 p->mark = _mark;
5172 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005174 }
5175 _res = NULL;
5176 done:
5177 D(p->level--);
5178 return _res;
5179}
5180
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005181// match_stmt:
5182// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5183// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005184static stmt_ty
5185match_stmt_rule(Parser *p)
5186{
5187 D(p->level++);
5188 if (p->error_indicator) {
5189 D(p->level--);
5190 return NULL;
5191 }
5192 stmt_ty _res = NULL;
5193 int _mark = p->mark;
5194 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5195 p->error_indicator = 1;
5196 D(p->level--);
5197 return NULL;
5198 }
5199 int _start_lineno = p->tokens[_mark]->lineno;
5200 UNUSED(_start_lineno); // Only used by EXTRA macro
5201 int _start_col_offset = p->tokens[_mark]->col_offset;
5202 UNUSED(_start_col_offset); // Only used by EXTRA macro
5203 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5204 if (p->error_indicator) {
5205 D(p->level--);
5206 return NULL;
5207 }
5208 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5209 expr_ty _keyword;
5210 Token * _literal;
5211 asdl_match_case_seq* cases;
5212 Token * dedent_var;
5213 Token * indent_var;
5214 Token * newline_var;
5215 expr_ty subject;
5216 if (
5217 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5218 &&
5219 (subject = subject_expr_rule(p)) // subject_expr
5220 &&
5221 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5222 &&
5223 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5224 &&
5225 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5226 &&
5227 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5228 &&
5229 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5230 )
5231 {
5232 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5233 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5234 if (_token == NULL) {
5235 D(p->level--);
5236 return NULL;
5237 }
5238 int _end_lineno = _token->end_lineno;
5239 UNUSED(_end_lineno); // Only used by EXTRA macro
5240 int _end_col_offset = _token->end_col_offset;
5241 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005242 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005243 if (_res == NULL && PyErr_Occurred()) {
5244 p->error_indicator = 1;
5245 D(p->level--);
5246 return NULL;
5247 }
5248 goto done;
5249 }
5250 p->mark = _mark;
5251 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5253 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005254 if (p->call_invalid_rules) { // invalid_match_stmt
5255 if (p->error_indicator) {
5256 D(p->level--);
5257 return NULL;
5258 }
5259 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5260 void *invalid_match_stmt_var;
5261 if (
5262 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5263 )
5264 {
5265 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5266 _res = invalid_match_stmt_var;
5267 goto done;
5268 }
5269 p->mark = _mark;
5270 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5272 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005273 _res = NULL;
5274 done:
5275 D(p->level--);
5276 return _res;
5277}
5278
5279// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5280static expr_ty
5281subject_expr_rule(Parser *p)
5282{
5283 D(p->level++);
5284 if (p->error_indicator) {
5285 D(p->level--);
5286 return NULL;
5287 }
5288 expr_ty _res = NULL;
5289 int _mark = p->mark;
5290 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5291 p->error_indicator = 1;
5292 D(p->level--);
5293 return NULL;
5294 }
5295 int _start_lineno = p->tokens[_mark]->lineno;
5296 UNUSED(_start_lineno); // Only used by EXTRA macro
5297 int _start_col_offset = p->tokens[_mark]->col_offset;
5298 UNUSED(_start_col_offset); // Only used by EXTRA macro
5299 { // star_named_expression ',' star_named_expressions?
5300 if (p->error_indicator) {
5301 D(p->level--);
5302 return NULL;
5303 }
5304 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5305 Token * _literal;
5306 expr_ty value;
5307 void *values;
5308 if (
5309 (value = star_named_expression_rule(p)) // star_named_expression
5310 &&
5311 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5312 &&
5313 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5314 )
5315 {
5316 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5317 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5318 if (_token == NULL) {
5319 D(p->level--);
5320 return NULL;
5321 }
5322 int _end_lineno = _token->end_lineno;
5323 UNUSED(_end_lineno); // Only used by EXTRA macro
5324 int _end_col_offset = _token->end_col_offset;
5325 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005326 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005327 if (_res == NULL && PyErr_Occurred()) {
5328 p->error_indicator = 1;
5329 D(p->level--);
5330 return NULL;
5331 }
5332 goto done;
5333 }
5334 p->mark = _mark;
5335 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5337 }
5338 { // named_expression
5339 if (p->error_indicator) {
5340 D(p->level--);
5341 return NULL;
5342 }
5343 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5344 expr_ty named_expression_var;
5345 if (
5346 (named_expression_var = named_expression_rule(p)) // named_expression
5347 )
5348 {
5349 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5350 _res = named_expression_var;
5351 goto done;
5352 }
5353 p->mark = _mark;
5354 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5356 }
5357 _res = NULL;
5358 done:
5359 D(p->level--);
5360 return _res;
5361}
5362
Pablo Galindo56c95df2021-04-21 15:28:21 +01005363// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005364static match_case_ty
5365case_block_rule(Parser *p)
5366{
5367 D(p->level++);
5368 if (p->error_indicator) {
5369 D(p->level--);
5370 return NULL;
5371 }
5372 match_case_ty _res = NULL;
5373 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005374 if (p->call_invalid_rules) { // invalid_case_block
5375 if (p->error_indicator) {
5376 D(p->level--);
5377 return NULL;
5378 }
5379 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5380 void *invalid_case_block_var;
5381 if (
5382 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5383 )
5384 {
5385 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5386 _res = invalid_case_block_var;
5387 goto done;
5388 }
5389 p->mark = _mark;
5390 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5392 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005393 { // "case" patterns guard? ':' block
5394 if (p->error_indicator) {
5395 D(p->level--);
5396 return NULL;
5397 }
5398 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5399 expr_ty _keyword;
5400 Token * _literal;
5401 asdl_stmt_seq* body;
5402 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005403 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005404 if (
5405 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5406 &&
5407 (pattern = patterns_rule(p)) // patterns
5408 &&
5409 (guard = guard_rule(p), 1) // guard?
5410 &&
5411 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5412 &&
5413 (body = block_rule(p)) // block
5414 )
5415 {
5416 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 +02005417 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005418 if (_res == NULL && PyErr_Occurred()) {
5419 p->error_indicator = 1;
5420 D(p->level--);
5421 return NULL;
5422 }
5423 goto done;
5424 }
5425 p->mark = _mark;
5426 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5428 }
5429 _res = NULL;
5430 done:
5431 D(p->level--);
5432 return _res;
5433}
5434
5435// guard: 'if' named_expression
5436static expr_ty
5437guard_rule(Parser *p)
5438{
5439 D(p->level++);
5440 if (p->error_indicator) {
5441 D(p->level--);
5442 return NULL;
5443 }
5444 expr_ty _res = NULL;
5445 int _mark = p->mark;
5446 { // 'if' named_expression
5447 if (p->error_indicator) {
5448 D(p->level--);
5449 return NULL;
5450 }
5451 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5452 Token * _keyword;
5453 expr_ty guard;
5454 if (
5455 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5456 &&
5457 (guard = named_expression_rule(p)) // named_expression
5458 )
5459 {
5460 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5461 _res = guard;
5462 if (_res == NULL && PyErr_Occurred()) {
5463 p->error_indicator = 1;
5464 D(p->level--);
5465 return NULL;
5466 }
5467 goto done;
5468 }
5469 p->mark = _mark;
5470 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5472 }
5473 _res = NULL;
5474 done:
5475 D(p->level--);
5476 return _res;
5477}
5478
5479// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005480static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005481patterns_rule(Parser *p)
5482{
5483 D(p->level++);
5484 if (p->error_indicator) {
5485 D(p->level--);
5486 return NULL;
5487 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005488 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005489 int _mark = p->mark;
5490 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5491 p->error_indicator = 1;
5492 D(p->level--);
5493 return NULL;
5494 }
5495 int _start_lineno = p->tokens[_mark]->lineno;
5496 UNUSED(_start_lineno); // Only used by EXTRA macro
5497 int _start_col_offset = p->tokens[_mark]->col_offset;
5498 UNUSED(_start_col_offset); // Only used by EXTRA macro
5499 { // open_sequence_pattern
5500 if (p->error_indicator) {
5501 D(p->level--);
5502 return NULL;
5503 }
5504 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005505 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005506 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005507 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005508 )
5509 {
5510 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5511 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5512 if (_token == NULL) {
5513 D(p->level--);
5514 return NULL;
5515 }
5516 int _end_lineno = _token->end_lineno;
5517 UNUSED(_end_lineno); // Only used by EXTRA macro
5518 int _end_col_offset = _token->end_col_offset;
5519 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005520 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005521 if (_res == NULL && PyErr_Occurred()) {
5522 p->error_indicator = 1;
5523 D(p->level--);
5524 return NULL;
5525 }
5526 goto done;
5527 }
5528 p->mark = _mark;
5529 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5531 }
5532 { // pattern
5533 if (p->error_indicator) {
5534 D(p->level--);
5535 return NULL;
5536 }
5537 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005538 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005539 if (
5540 (pattern_var = pattern_rule(p)) // pattern
5541 )
5542 {
5543 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5544 _res = pattern_var;
5545 goto done;
5546 }
5547 p->mark = _mark;
5548 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5550 }
5551 _res = NULL;
5552 done:
5553 D(p->level--);
5554 return _res;
5555}
5556
5557// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005558static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005559pattern_rule(Parser *p)
5560{
5561 D(p->level++);
5562 if (p->error_indicator) {
5563 D(p->level--);
5564 return NULL;
5565 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005566 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005567 int _mark = p->mark;
5568 { // as_pattern
5569 if (p->error_indicator) {
5570 D(p->level--);
5571 return NULL;
5572 }
5573 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005574 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005575 if (
5576 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5577 )
5578 {
5579 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5580 _res = as_pattern_var;
5581 goto done;
5582 }
5583 p->mark = _mark;
5584 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5586 }
5587 { // or_pattern
5588 if (p->error_indicator) {
5589 D(p->level--);
5590 return NULL;
5591 }
5592 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005593 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005594 if (
5595 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5596 )
5597 {
5598 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5599 _res = or_pattern_var;
5600 goto done;
5601 }
5602 p->mark = _mark;
5603 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5605 }
5606 _res = NULL;
5607 done:
5608 D(p->level--);
5609 return _res;
5610}
5611
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005612// as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005613static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005614as_pattern_rule(Parser *p)
5615{
5616 D(p->level++);
5617 if (p->error_indicator) {
5618 D(p->level--);
5619 return NULL;
5620 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005621 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005622 int _mark = p->mark;
5623 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5624 p->error_indicator = 1;
5625 D(p->level--);
5626 return NULL;
5627 }
5628 int _start_lineno = p->tokens[_mark]->lineno;
5629 UNUSED(_start_lineno); // Only used by EXTRA macro
5630 int _start_col_offset = p->tokens[_mark]->col_offset;
5631 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005632 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005633 if (p->error_indicator) {
5634 D(p->level--);
5635 return NULL;
5636 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005637 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005638 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005639 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005640 expr_ty target;
5641 if (
5642 (pattern = or_pattern_rule(p)) // or_pattern
5643 &&
5644 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5645 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005646 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005647 )
5648 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005649 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005650 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5651 if (_token == NULL) {
5652 D(p->level--);
5653 return NULL;
5654 }
5655 int _end_lineno = _token->end_lineno;
5656 UNUSED(_end_lineno); // Only used by EXTRA macro
5657 int _end_col_offset = _token->end_col_offset;
5658 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005659 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005660 if (_res == NULL && PyErr_Occurred()) {
5661 p->error_indicator = 1;
5662 D(p->level--);
5663 return NULL;
5664 }
5665 goto done;
5666 }
5667 p->mark = _mark;
5668 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005670 }
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005671 if (p->call_invalid_rules) { // invalid_as_pattern
5672 if (p->error_indicator) {
5673 D(p->level--);
5674 return NULL;
5675 }
5676 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5677 void *invalid_as_pattern_var;
5678 if (
5679 (invalid_as_pattern_var = invalid_as_pattern_rule(p)) // invalid_as_pattern
5680 )
5681 {
5682 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5683 _res = invalid_as_pattern_var;
5684 goto done;
5685 }
5686 p->mark = _mark;
5687 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern"));
5689 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005690 _res = NULL;
5691 done:
5692 D(p->level--);
5693 return _res;
5694}
5695
5696// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005697static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005698or_pattern_rule(Parser *p)
5699{
5700 D(p->level++);
5701 if (p->error_indicator) {
5702 D(p->level--);
5703 return NULL;
5704 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005705 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005706 int _mark = p->mark;
5707 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5708 p->error_indicator = 1;
5709 D(p->level--);
5710 return NULL;
5711 }
5712 int _start_lineno = p->tokens[_mark]->lineno;
5713 UNUSED(_start_lineno); // Only used by EXTRA macro
5714 int _start_col_offset = p->tokens[_mark]->col_offset;
5715 UNUSED(_start_col_offset); // Only used by EXTRA macro
5716 { // '|'.closed_pattern+
5717 if (p->error_indicator) {
5718 D(p->level--);
5719 return NULL;
5720 }
5721 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005722 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005723 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005724 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005725 )
5726 {
5727 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5728 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5729 if (_token == NULL) {
5730 D(p->level--);
5731 return NULL;
5732 }
5733 int _end_lineno = _token->end_lineno;
5734 UNUSED(_end_lineno); // Only used by EXTRA macro
5735 int _end_col_offset = _token->end_col_offset;
5736 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005737 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005738 if (_res == NULL && PyErr_Occurred()) {
5739 p->error_indicator = 1;
5740 D(p->level--);
5741 return NULL;
5742 }
5743 goto done;
5744 }
5745 p->mark = _mark;
5746 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5748 }
5749 _res = NULL;
5750 done:
5751 D(p->level--);
5752 return _res;
5753}
5754
5755// closed_pattern:
5756// | literal_pattern
5757// | capture_pattern
5758// | wildcard_pattern
5759// | value_pattern
5760// | group_pattern
5761// | sequence_pattern
5762// | mapping_pattern
5763// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005764static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005765closed_pattern_rule(Parser *p)
5766{
5767 D(p->level++);
5768 if (p->error_indicator) {
5769 D(p->level--);
5770 return NULL;
5771 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005772 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005773 int _mark = p->mark;
5774 { // literal_pattern
5775 if (p->error_indicator) {
5776 D(p->level--);
5777 return NULL;
5778 }
5779 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005780 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005781 if (
5782 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5783 )
5784 {
5785 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5786 _res = literal_pattern_var;
5787 goto done;
5788 }
5789 p->mark = _mark;
5790 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5792 }
5793 { // capture_pattern
5794 if (p->error_indicator) {
5795 D(p->level--);
5796 return NULL;
5797 }
5798 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005799 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005800 if (
5801 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5802 )
5803 {
5804 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5805 _res = capture_pattern_var;
5806 goto done;
5807 }
5808 p->mark = _mark;
5809 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5811 }
5812 { // wildcard_pattern
5813 if (p->error_indicator) {
5814 D(p->level--);
5815 return NULL;
5816 }
5817 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005818 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005819 if (
5820 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5821 )
5822 {
5823 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5824 _res = wildcard_pattern_var;
5825 goto done;
5826 }
5827 p->mark = _mark;
5828 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5830 }
5831 { // value_pattern
5832 if (p->error_indicator) {
5833 D(p->level--);
5834 return NULL;
5835 }
5836 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005837 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005838 if (
5839 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5840 )
5841 {
5842 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5843 _res = value_pattern_var;
5844 goto done;
5845 }
5846 p->mark = _mark;
5847 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5849 }
5850 { // group_pattern
5851 if (p->error_indicator) {
5852 D(p->level--);
5853 return NULL;
5854 }
5855 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005856 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005857 if (
5858 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5859 )
5860 {
5861 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5862 _res = group_pattern_var;
5863 goto done;
5864 }
5865 p->mark = _mark;
5866 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5868 }
5869 { // sequence_pattern
5870 if (p->error_indicator) {
5871 D(p->level--);
5872 return NULL;
5873 }
5874 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005875 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005876 if (
5877 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5878 )
5879 {
5880 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5881 _res = sequence_pattern_var;
5882 goto done;
5883 }
5884 p->mark = _mark;
5885 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5887 }
5888 { // mapping_pattern
5889 if (p->error_indicator) {
5890 D(p->level--);
5891 return NULL;
5892 }
5893 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005894 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005895 if (
5896 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5897 )
5898 {
5899 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5900 _res = mapping_pattern_var;
5901 goto done;
5902 }
5903 p->mark = _mark;
5904 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5906 }
5907 { // class_pattern
5908 if (p->error_indicator) {
5909 D(p->level--);
5910 return NULL;
5911 }
5912 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005913 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005914 if (
5915 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5916 )
5917 {
5918 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5919 _res = class_pattern_var;
5920 goto done;
5921 }
5922 p->mark = _mark;
5923 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5925 }
5926 _res = NULL;
5927 done:
5928 D(p->level--);
5929 return _res;
5930}
5931
5932// literal_pattern:
5933// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005934// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005935// | strings
5936// | 'None'
5937// | 'True'
5938// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005939static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005940literal_pattern_rule(Parser *p)
5941{
5942 D(p->level++);
5943 if (p->error_indicator) {
5944 D(p->level--);
5945 return NULL;
5946 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005947 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005948 int _mark = p->mark;
5949 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5950 p->error_indicator = 1;
5951 D(p->level--);
5952 return NULL;
5953 }
5954 int _start_lineno = p->tokens[_mark]->lineno;
5955 UNUSED(_start_lineno); // Only used by EXTRA macro
5956 int _start_col_offset = p->tokens[_mark]->col_offset;
5957 UNUSED(_start_col_offset); // Only used by EXTRA macro
5958 { // signed_number !('+' | '-')
5959 if (p->error_indicator) {
5960 D(p->level--);
5961 return NULL;
5962 }
5963 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005964 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005965 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005966 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005967 &&
5968 _PyPegen_lookahead(0, _tmp_53_rule, p)
5969 )
5970 {
5971 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005972 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5973 if (_token == NULL) {
5974 D(p->level--);
5975 return NULL;
5976 }
5977 int _end_lineno = _token->end_lineno;
5978 UNUSED(_end_lineno); // Only used by EXTRA macro
5979 int _end_col_offset = _token->end_col_offset;
5980 UNUSED(_end_col_offset); // Only used by EXTRA macro
5981 _res = _PyAST_MatchValue ( value , EXTRA );
5982 if (_res == NULL && PyErr_Occurred()) {
5983 p->error_indicator = 1;
5984 D(p->level--);
5985 return NULL;
5986 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005987 goto done;
5988 }
5989 p->mark = _mark;
5990 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5992 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005993 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005994 if (p->error_indicator) {
5995 D(p->level--);
5996 return NULL;
5997 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005998 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
5999 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006000 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006001 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006002 )
6003 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006004 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006005 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6006 if (_token == NULL) {
6007 D(p->level--);
6008 return NULL;
6009 }
6010 int _end_lineno = _token->end_lineno;
6011 UNUSED(_end_lineno); // Only used by EXTRA macro
6012 int _end_col_offset = _token->end_col_offset;
6013 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006014 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006015 if (_res == NULL && PyErr_Occurred()) {
6016 p->error_indicator = 1;
6017 D(p->level--);
6018 return NULL;
6019 }
6020 goto done;
6021 }
6022 p->mark = _mark;
6023 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006025 }
6026 { // strings
6027 if (p->error_indicator) {
6028 D(p->level--);
6029 return NULL;
6030 }
6031 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006032 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006033 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006034 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006035 )
6036 {
6037 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006038 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6039 if (_token == NULL) {
6040 D(p->level--);
6041 return NULL;
6042 }
6043 int _end_lineno = _token->end_lineno;
6044 UNUSED(_end_lineno); // Only used by EXTRA macro
6045 int _end_col_offset = _token->end_col_offset;
6046 UNUSED(_end_col_offset); // Only used by EXTRA macro
6047 _res = _PyAST_MatchValue ( value , EXTRA );
6048 if (_res == NULL && PyErr_Occurred()) {
6049 p->error_indicator = 1;
6050 D(p->level--);
6051 return NULL;
6052 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006053 goto done;
6054 }
6055 p->mark = _mark;
6056 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6058 }
6059 { // 'None'
6060 if (p->error_indicator) {
6061 D(p->level--);
6062 return NULL;
6063 }
6064 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6065 Token * _keyword;
6066 if (
6067 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6068 )
6069 {
6070 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6071 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6072 if (_token == NULL) {
6073 D(p->level--);
6074 return NULL;
6075 }
6076 int _end_lineno = _token->end_lineno;
6077 UNUSED(_end_lineno); // Only used by EXTRA macro
6078 int _end_col_offset = _token->end_col_offset;
6079 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006080 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006081 if (_res == NULL && PyErr_Occurred()) {
6082 p->error_indicator = 1;
6083 D(p->level--);
6084 return NULL;
6085 }
6086 goto done;
6087 }
6088 p->mark = _mark;
6089 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6091 }
6092 { // 'True'
6093 if (p->error_indicator) {
6094 D(p->level--);
6095 return NULL;
6096 }
6097 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6098 Token * _keyword;
6099 if (
6100 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6101 )
6102 {
6103 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6104 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6105 if (_token == NULL) {
6106 D(p->level--);
6107 return NULL;
6108 }
6109 int _end_lineno = _token->end_lineno;
6110 UNUSED(_end_lineno); // Only used by EXTRA macro
6111 int _end_col_offset = _token->end_col_offset;
6112 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006113 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006114 if (_res == NULL && PyErr_Occurred()) {
6115 p->error_indicator = 1;
6116 D(p->level--);
6117 return NULL;
6118 }
6119 goto done;
6120 }
6121 p->mark = _mark;
6122 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6124 }
6125 { // 'False'
6126 if (p->error_indicator) {
6127 D(p->level--);
6128 return NULL;
6129 }
6130 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6131 Token * _keyword;
6132 if (
6133 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6134 )
6135 {
6136 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6138 if (_token == NULL) {
6139 D(p->level--);
6140 return NULL;
6141 }
6142 int _end_lineno = _token->end_lineno;
6143 UNUSED(_end_lineno); // Only used by EXTRA macro
6144 int _end_col_offset = _token->end_col_offset;
6145 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006146 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006147 if (_res == NULL && PyErr_Occurred()) {
6148 p->error_indicator = 1;
6149 D(p->level--);
6150 return NULL;
6151 }
6152 goto done;
6153 }
6154 p->mark = _mark;
6155 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6157 }
6158 _res = NULL;
6159 done:
6160 D(p->level--);
6161 return _res;
6162}
6163
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006164// literal_expr:
6165// | signed_number !('+' | '-')
6166// | complex_number
6167// | strings
6168// | 'None'
6169// | 'True'
6170// | 'False'
6171static expr_ty
6172literal_expr_rule(Parser *p)
6173{
6174 D(p->level++);
6175 if (p->error_indicator) {
6176 D(p->level--);
6177 return NULL;
6178 }
6179 expr_ty _res = NULL;
6180 int _mark = p->mark;
6181 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6182 p->error_indicator = 1;
6183 D(p->level--);
6184 return NULL;
6185 }
6186 int _start_lineno = p->tokens[_mark]->lineno;
6187 UNUSED(_start_lineno); // Only used by EXTRA macro
6188 int _start_col_offset = p->tokens[_mark]->col_offset;
6189 UNUSED(_start_col_offset); // Only used by EXTRA macro
6190 { // signed_number !('+' | '-')
6191 if (p->error_indicator) {
6192 D(p->level--);
6193 return NULL;
6194 }
6195 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6196 expr_ty signed_number_var;
6197 if (
6198 (signed_number_var = signed_number_rule(p)) // signed_number
6199 &&
6200 _PyPegen_lookahead(0, _tmp_54_rule, p)
6201 )
6202 {
6203 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6204 _res = signed_number_var;
6205 goto done;
6206 }
6207 p->mark = _mark;
6208 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6210 }
6211 { // complex_number
6212 if (p->error_indicator) {
6213 D(p->level--);
6214 return NULL;
6215 }
6216 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6217 expr_ty complex_number_var;
6218 if (
6219 (complex_number_var = complex_number_rule(p)) // complex_number
6220 )
6221 {
6222 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6223 _res = complex_number_var;
6224 goto done;
6225 }
6226 p->mark = _mark;
6227 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6229 }
6230 { // strings
6231 if (p->error_indicator) {
6232 D(p->level--);
6233 return NULL;
6234 }
6235 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6236 expr_ty strings_var;
6237 if (
6238 (strings_var = strings_rule(p)) // strings
6239 )
6240 {
6241 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6242 _res = strings_var;
6243 goto done;
6244 }
6245 p->mark = _mark;
6246 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6248 }
6249 { // 'None'
6250 if (p->error_indicator) {
6251 D(p->level--);
6252 return NULL;
6253 }
6254 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6255 Token * _keyword;
6256 if (
6257 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6258 )
6259 {
6260 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6261 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6262 if (_token == NULL) {
6263 D(p->level--);
6264 return NULL;
6265 }
6266 int _end_lineno = _token->end_lineno;
6267 UNUSED(_end_lineno); // Only used by EXTRA macro
6268 int _end_col_offset = _token->end_col_offset;
6269 UNUSED(_end_col_offset); // Only used by EXTRA macro
6270 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6271 if (_res == NULL && PyErr_Occurred()) {
6272 p->error_indicator = 1;
6273 D(p->level--);
6274 return NULL;
6275 }
6276 goto done;
6277 }
6278 p->mark = _mark;
6279 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6281 }
6282 { // 'True'
6283 if (p->error_indicator) {
6284 D(p->level--);
6285 return NULL;
6286 }
6287 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6288 Token * _keyword;
6289 if (
6290 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6291 )
6292 {
6293 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6294 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6295 if (_token == NULL) {
6296 D(p->level--);
6297 return NULL;
6298 }
6299 int _end_lineno = _token->end_lineno;
6300 UNUSED(_end_lineno); // Only used by EXTRA macro
6301 int _end_col_offset = _token->end_col_offset;
6302 UNUSED(_end_col_offset); // Only used by EXTRA macro
6303 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6304 if (_res == NULL && PyErr_Occurred()) {
6305 p->error_indicator = 1;
6306 D(p->level--);
6307 return NULL;
6308 }
6309 goto done;
6310 }
6311 p->mark = _mark;
6312 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6314 }
6315 { // 'False'
6316 if (p->error_indicator) {
6317 D(p->level--);
6318 return NULL;
6319 }
6320 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6321 Token * _keyword;
6322 if (
6323 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6324 )
6325 {
6326 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6327 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6328 if (_token == NULL) {
6329 D(p->level--);
6330 return NULL;
6331 }
6332 int _end_lineno = _token->end_lineno;
6333 UNUSED(_end_lineno); // Only used by EXTRA macro
6334 int _end_col_offset = _token->end_col_offset;
6335 UNUSED(_end_col_offset); // Only used by EXTRA macro
6336 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6337 if (_res == NULL && PyErr_Occurred()) {
6338 p->error_indicator = 1;
6339 D(p->level--);
6340 return NULL;
6341 }
6342 goto done;
6343 }
6344 p->mark = _mark;
6345 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6347 }
6348 _res = NULL;
6349 done:
6350 D(p->level--);
6351 return _res;
6352}
6353
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006354// complex_number:
6355// | signed_real_number '+' imaginary_number
6356// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006357static expr_ty
6358complex_number_rule(Parser *p)
6359{
6360 D(p->level++);
6361 if (p->error_indicator) {
6362 D(p->level--);
6363 return NULL;
6364 }
6365 expr_ty _res = NULL;
6366 int _mark = p->mark;
6367 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6368 p->error_indicator = 1;
6369 D(p->level--);
6370 return NULL;
6371 }
6372 int _start_lineno = p->tokens[_mark]->lineno;
6373 UNUSED(_start_lineno); // Only used by EXTRA macro
6374 int _start_col_offset = p->tokens[_mark]->col_offset;
6375 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006376 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006377 if (p->error_indicator) {
6378 D(p->level--);
6379 return NULL;
6380 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006381 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006382 Token * _literal;
6383 expr_ty imag;
6384 expr_ty real;
6385 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006386 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006387 &&
6388 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6389 &&
6390 (imag = imaginary_number_rule(p)) // imaginary_number
6391 )
6392 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006393 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006394 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6395 if (_token == NULL) {
6396 D(p->level--);
6397 return NULL;
6398 }
6399 int _end_lineno = _token->end_lineno;
6400 UNUSED(_end_lineno); // Only used by EXTRA macro
6401 int _end_col_offset = _token->end_col_offset;
6402 UNUSED(_end_col_offset); // Only used by EXTRA macro
6403 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6404 if (_res == NULL && PyErr_Occurred()) {
6405 p->error_indicator = 1;
6406 D(p->level--);
6407 return NULL;
6408 }
6409 goto done;
6410 }
6411 p->mark = _mark;
6412 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006414 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006415 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006416 if (p->error_indicator) {
6417 D(p->level--);
6418 return NULL;
6419 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006420 D(fprintf(stderr, "%*c> complex_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006421 Token * _literal;
6422 expr_ty imag;
6423 expr_ty real;
6424 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006425 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006426 &&
6427 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6428 &&
6429 (imag = imaginary_number_rule(p)) // imaginary_number
6430 )
6431 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006432 D(fprintf(stderr, "%*c+ complex_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006433 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6434 if (_token == NULL) {
6435 D(p->level--);
6436 return NULL;
6437 }
6438 int _end_lineno = _token->end_lineno;
6439 UNUSED(_end_lineno); // Only used by EXTRA macro
6440 int _end_col_offset = _token->end_col_offset;
6441 UNUSED(_end_col_offset); // Only used by EXTRA macro
6442 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6443 if (_res == NULL && PyErr_Occurred()) {
6444 p->error_indicator = 1;
6445 D(p->level--);
6446 return NULL;
6447 }
6448 goto done;
6449 }
6450 p->mark = _mark;
6451 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006453 }
6454 _res = NULL;
6455 done:
6456 D(p->level--);
6457 return _res;
6458}
6459
Brandt Bucher145bf262021-02-26 14:51:55 -08006460// signed_number: NUMBER | '-' NUMBER
6461static expr_ty
6462signed_number_rule(Parser *p)
6463{
6464 D(p->level++);
6465 if (p->error_indicator) {
6466 D(p->level--);
6467 return NULL;
6468 }
6469 expr_ty _res = NULL;
6470 int _mark = p->mark;
6471 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6472 p->error_indicator = 1;
6473 D(p->level--);
6474 return NULL;
6475 }
6476 int _start_lineno = p->tokens[_mark]->lineno;
6477 UNUSED(_start_lineno); // Only used by EXTRA macro
6478 int _start_col_offset = p->tokens[_mark]->col_offset;
6479 UNUSED(_start_col_offset); // Only used by EXTRA macro
6480 { // NUMBER
6481 if (p->error_indicator) {
6482 D(p->level--);
6483 return NULL;
6484 }
6485 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6486 expr_ty number_var;
6487 if (
6488 (number_var = _PyPegen_number_token(p)) // NUMBER
6489 )
6490 {
6491 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6492 _res = number_var;
6493 goto done;
6494 }
6495 p->mark = _mark;
6496 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6498 }
6499 { // '-' NUMBER
6500 if (p->error_indicator) {
6501 D(p->level--);
6502 return NULL;
6503 }
6504 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6505 Token * _literal;
6506 expr_ty number;
6507 if (
6508 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6509 &&
6510 (number = _PyPegen_number_token(p)) // NUMBER
6511 )
6512 {
6513 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6514 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6515 if (_token == NULL) {
6516 D(p->level--);
6517 return NULL;
6518 }
6519 int _end_lineno = _token->end_lineno;
6520 UNUSED(_end_lineno); // Only used by EXTRA macro
6521 int _end_col_offset = _token->end_col_offset;
6522 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006523 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006524 if (_res == NULL && PyErr_Occurred()) {
6525 p->error_indicator = 1;
6526 D(p->level--);
6527 return NULL;
6528 }
6529 goto done;
6530 }
6531 p->mark = _mark;
6532 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6534 }
6535 _res = NULL;
6536 done:
6537 D(p->level--);
6538 return _res;
6539}
6540
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006541// signed_real_number: real_number | '-' real_number
6542static expr_ty
6543signed_real_number_rule(Parser *p)
6544{
6545 D(p->level++);
6546 if (p->error_indicator) {
6547 D(p->level--);
6548 return NULL;
6549 }
6550 expr_ty _res = NULL;
6551 int _mark = p->mark;
6552 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6553 p->error_indicator = 1;
6554 D(p->level--);
6555 return NULL;
6556 }
6557 int _start_lineno = p->tokens[_mark]->lineno;
6558 UNUSED(_start_lineno); // Only used by EXTRA macro
6559 int _start_col_offset = p->tokens[_mark]->col_offset;
6560 UNUSED(_start_col_offset); // Only used by EXTRA macro
6561 { // real_number
6562 if (p->error_indicator) {
6563 D(p->level--);
6564 return NULL;
6565 }
6566 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6567 expr_ty real_number_var;
6568 if (
6569 (real_number_var = real_number_rule(p)) // real_number
6570 )
6571 {
6572 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6573 _res = real_number_var;
6574 goto done;
6575 }
6576 p->mark = _mark;
6577 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6579 }
6580 { // '-' real_number
6581 if (p->error_indicator) {
6582 D(p->level--);
6583 return NULL;
6584 }
6585 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6586 Token * _literal;
6587 expr_ty real;
6588 if (
6589 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6590 &&
6591 (real = real_number_rule(p)) // real_number
6592 )
6593 {
6594 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6595 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6596 if (_token == NULL) {
6597 D(p->level--);
6598 return NULL;
6599 }
6600 int _end_lineno = _token->end_lineno;
6601 UNUSED(_end_lineno); // Only used by EXTRA macro
6602 int _end_col_offset = _token->end_col_offset;
6603 UNUSED(_end_col_offset); // Only used by EXTRA macro
6604 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6605 if (_res == NULL && PyErr_Occurred()) {
6606 p->error_indicator = 1;
6607 D(p->level--);
6608 return NULL;
6609 }
6610 goto done;
6611 }
6612 p->mark = _mark;
6613 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6615 }
6616 _res = NULL;
6617 done:
6618 D(p->level--);
6619 return _res;
6620}
6621
6622// real_number: NUMBER
6623static expr_ty
6624real_number_rule(Parser *p)
6625{
6626 D(p->level++);
6627 if (p->error_indicator) {
6628 D(p->level--);
6629 return NULL;
6630 }
6631 expr_ty _res = NULL;
6632 int _mark = p->mark;
6633 { // NUMBER
6634 if (p->error_indicator) {
6635 D(p->level--);
6636 return NULL;
6637 }
6638 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6639 expr_ty real;
6640 if (
6641 (real = _PyPegen_number_token(p)) // NUMBER
6642 )
6643 {
6644 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6645 _res = _PyPegen_ensure_real ( p , real );
6646 if (_res == NULL && PyErr_Occurred()) {
6647 p->error_indicator = 1;
6648 D(p->level--);
6649 return NULL;
6650 }
6651 goto done;
6652 }
6653 p->mark = _mark;
6654 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6656 }
6657 _res = NULL;
6658 done:
6659 D(p->level--);
6660 return _res;
6661}
6662
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006663// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006664static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006665imaginary_number_rule(Parser *p)
6666{
6667 D(p->level++);
6668 if (p->error_indicator) {
6669 D(p->level--);
6670 return NULL;
6671 }
6672 expr_ty _res = NULL;
6673 int _mark = p->mark;
6674 { // NUMBER
6675 if (p->error_indicator) {
6676 D(p->level--);
6677 return NULL;
6678 }
6679 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6680 expr_ty imag;
6681 if (
6682 (imag = _PyPegen_number_token(p)) // NUMBER
6683 )
6684 {
6685 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6686 _res = _PyPegen_ensure_imaginary ( p , imag );
6687 if (_res == NULL && PyErr_Occurred()) {
6688 p->error_indicator = 1;
6689 D(p->level--);
6690 return NULL;
6691 }
6692 goto done;
6693 }
6694 p->mark = _mark;
6695 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6697 }
6698 _res = NULL;
6699 done:
6700 D(p->level--);
6701 return _res;
6702}
6703
6704// capture_pattern: pattern_capture_target
6705static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006706capture_pattern_rule(Parser *p)
6707{
6708 D(p->level++);
6709 if (p->error_indicator) {
6710 D(p->level--);
6711 return NULL;
6712 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006713 pattern_ty _res = NULL;
6714 int _mark = p->mark;
6715 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6716 p->error_indicator = 1;
6717 D(p->level--);
6718 return NULL;
6719 }
6720 int _start_lineno = p->tokens[_mark]->lineno;
6721 UNUSED(_start_lineno); // Only used by EXTRA macro
6722 int _start_col_offset = p->tokens[_mark]->col_offset;
6723 UNUSED(_start_col_offset); // Only used by EXTRA macro
6724 { // pattern_capture_target
6725 if (p->error_indicator) {
6726 D(p->level--);
6727 return NULL;
6728 }
6729 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6730 expr_ty target;
6731 if (
6732 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6733 )
6734 {
6735 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6736 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6737 if (_token == NULL) {
6738 D(p->level--);
6739 return NULL;
6740 }
6741 int _end_lineno = _token->end_lineno;
6742 UNUSED(_end_lineno); // Only used by EXTRA macro
6743 int _end_col_offset = _token->end_col_offset;
6744 UNUSED(_end_col_offset); // Only used by EXTRA macro
6745 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6746 if (_res == NULL && PyErr_Occurred()) {
6747 p->error_indicator = 1;
6748 D(p->level--);
6749 return NULL;
6750 }
6751 goto done;
6752 }
6753 p->mark = _mark;
6754 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6756 }
6757 _res = NULL;
6758 done:
6759 D(p->level--);
6760 return _res;
6761}
6762
6763// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6764static expr_ty
6765pattern_capture_target_rule(Parser *p)
6766{
6767 D(p->level++);
6768 if (p->error_indicator) {
6769 D(p->level--);
6770 return NULL;
6771 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006772 expr_ty _res = NULL;
6773 int _mark = p->mark;
6774 { // !"_" NAME !('.' | '(' | '=')
6775 if (p->error_indicator) {
6776 D(p->level--);
6777 return NULL;
6778 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006779 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006780 expr_ty name;
6781 if (
6782 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6783 &&
6784 (name = _PyPegen_name_token(p)) // NAME
6785 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006786 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006787 )
6788 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006789 D(fprintf(stderr, "%*c+ pattern_capture_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006790 _res = _PyPegen_set_expr_context ( p , name , Store );
6791 if (_res == NULL && PyErr_Occurred()) {
6792 p->error_indicator = 1;
6793 D(p->level--);
6794 return NULL;
6795 }
6796 goto done;
6797 }
6798 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006799 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6801 }
6802 _res = NULL;
6803 done:
6804 D(p->level--);
6805 return _res;
6806}
6807
6808// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006809static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006810wildcard_pattern_rule(Parser *p)
6811{
6812 D(p->level++);
6813 if (p->error_indicator) {
6814 D(p->level--);
6815 return NULL;
6816 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006817 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006818 int _mark = p->mark;
6819 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6820 p->error_indicator = 1;
6821 D(p->level--);
6822 return NULL;
6823 }
6824 int _start_lineno = p->tokens[_mark]->lineno;
6825 UNUSED(_start_lineno); // Only used by EXTRA macro
6826 int _start_col_offset = p->tokens[_mark]->col_offset;
6827 UNUSED(_start_col_offset); // Only used by EXTRA macro
6828 { // "_"
6829 if (p->error_indicator) {
6830 D(p->level--);
6831 return NULL;
6832 }
6833 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6834 expr_ty _keyword;
6835 if (
6836 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6837 )
6838 {
6839 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6840 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6841 if (_token == NULL) {
6842 D(p->level--);
6843 return NULL;
6844 }
6845 int _end_lineno = _token->end_lineno;
6846 UNUSED(_end_lineno); // Only used by EXTRA macro
6847 int _end_col_offset = _token->end_col_offset;
6848 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006849 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006850 if (_res == NULL && PyErr_Occurred()) {
6851 p->error_indicator = 1;
6852 D(p->level--);
6853 return NULL;
6854 }
6855 goto done;
6856 }
6857 p->mark = _mark;
6858 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6860 }
6861 _res = NULL;
6862 done:
6863 D(p->level--);
6864 return _res;
6865}
6866
6867// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006868static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006869value_pattern_rule(Parser *p)
6870{
6871 D(p->level++);
6872 if (p->error_indicator) {
6873 D(p->level--);
6874 return NULL;
6875 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006876 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006877 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006878 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6879 p->error_indicator = 1;
6880 D(p->level--);
6881 return NULL;
6882 }
6883 int _start_lineno = p->tokens[_mark]->lineno;
6884 UNUSED(_start_lineno); // Only used by EXTRA macro
6885 int _start_col_offset = p->tokens[_mark]->col_offset;
6886 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006887 { // attr !('.' | '(' | '=')
6888 if (p->error_indicator) {
6889 D(p->level--);
6890 return NULL;
6891 }
6892 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6893 expr_ty attr;
6894 if (
6895 (attr = attr_rule(p)) // attr
6896 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006897 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006898 )
6899 {
6900 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006901 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6902 if (_token == NULL) {
6903 D(p->level--);
6904 return NULL;
6905 }
6906 int _end_lineno = _token->end_lineno;
6907 UNUSED(_end_lineno); // Only used by EXTRA macro
6908 int _end_col_offset = _token->end_col_offset;
6909 UNUSED(_end_col_offset); // Only used by EXTRA macro
6910 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006911 if (_res == NULL && PyErr_Occurred()) {
6912 p->error_indicator = 1;
6913 D(p->level--);
6914 return NULL;
6915 }
6916 goto done;
6917 }
6918 p->mark = _mark;
6919 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6921 }
6922 _res = NULL;
6923 done:
6924 D(p->level--);
6925 return _res;
6926}
6927
6928// Left-recursive
6929// attr: name_or_attr '.' NAME
6930static expr_ty attr_raw(Parser *);
6931static expr_ty
6932attr_rule(Parser *p)
6933{
6934 D(p->level++);
6935 expr_ty _res = NULL;
6936 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6937 D(p->level--);
6938 return _res;
6939 }
6940 int _mark = p->mark;
6941 int _resmark = p->mark;
6942 while (1) {
6943 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6944 if (tmpvar_1) {
6945 D(p->level--);
6946 return _res;
6947 }
6948 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006949 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08006950 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006951 p->in_raw_rule--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006952 if (p->error_indicator)
6953 return NULL;
6954 if (_raw == NULL || p->mark <= _resmark)
6955 break;
6956 _resmark = p->mark;
6957 _res = _raw;
6958 }
6959 p->mark = _resmark;
6960 D(p->level--);
6961 return _res;
6962}
6963static expr_ty
6964attr_raw(Parser *p)
6965{
6966 D(p->level++);
6967 if (p->error_indicator) {
6968 D(p->level--);
6969 return NULL;
6970 }
6971 expr_ty _res = NULL;
6972 int _mark = p->mark;
6973 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6974 p->error_indicator = 1;
6975 D(p->level--);
6976 return NULL;
6977 }
6978 int _start_lineno = p->tokens[_mark]->lineno;
6979 UNUSED(_start_lineno); // Only used by EXTRA macro
6980 int _start_col_offset = p->tokens[_mark]->col_offset;
6981 UNUSED(_start_col_offset); // Only used by EXTRA macro
6982 { // name_or_attr '.' NAME
6983 if (p->error_indicator) {
6984 D(p->level--);
6985 return NULL;
6986 }
6987 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6988 Token * _literal;
6989 expr_ty attr;
6990 expr_ty value;
6991 if (
6992 (value = name_or_attr_rule(p)) // name_or_attr
6993 &&
6994 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6995 &&
6996 (attr = _PyPegen_name_token(p)) // NAME
6997 )
6998 {
6999 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
7000 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7001 if (_token == NULL) {
7002 D(p->level--);
7003 return NULL;
7004 }
7005 int _end_lineno = _token->end_lineno;
7006 UNUSED(_end_lineno); // Only used by EXTRA macro
7007 int _end_col_offset = _token->end_col_offset;
7008 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007009 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007010 if (_res == NULL && PyErr_Occurred()) {
7011 p->error_indicator = 1;
7012 D(p->level--);
7013 return NULL;
7014 }
7015 goto done;
7016 }
7017 p->mark = _mark;
7018 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
7019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
7020 }
7021 _res = NULL;
7022 done:
7023 D(p->level--);
7024 return _res;
7025}
7026
7027// Left-recursive
7028// name_or_attr: attr | NAME
7029static expr_ty
7030name_or_attr_rule(Parser *p)
7031{
7032 D(p->level++);
7033 if (p->error_indicator) {
7034 D(p->level--);
7035 return NULL;
7036 }
7037 expr_ty _res = NULL;
7038 int _mark = p->mark;
7039 { // attr
7040 if (p->error_indicator) {
7041 D(p->level--);
7042 return NULL;
7043 }
7044 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7045 expr_ty attr_var;
7046 if (
7047 (attr_var = attr_rule(p)) // attr
7048 )
7049 {
7050 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7051 _res = attr_var;
7052 goto done;
7053 }
7054 p->mark = _mark;
7055 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7057 }
7058 { // NAME
7059 if (p->error_indicator) {
7060 D(p->level--);
7061 return NULL;
7062 }
7063 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7064 expr_ty name_var;
7065 if (
7066 (name_var = _PyPegen_name_token(p)) // NAME
7067 )
7068 {
7069 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7070 _res = name_var;
7071 goto done;
7072 }
7073 p->mark = _mark;
7074 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7076 }
7077 _res = NULL;
7078 done:
7079 D(p->level--);
7080 return _res;
7081}
7082
7083// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007084static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007085group_pattern_rule(Parser *p)
7086{
7087 D(p->level++);
7088 if (p->error_indicator) {
7089 D(p->level--);
7090 return NULL;
7091 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007092 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007093 int _mark = p->mark;
7094 { // '(' pattern ')'
7095 if (p->error_indicator) {
7096 D(p->level--);
7097 return NULL;
7098 }
7099 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7100 Token * _literal;
7101 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007102 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007103 if (
7104 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7105 &&
7106 (pattern = pattern_rule(p)) // pattern
7107 &&
7108 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7109 )
7110 {
7111 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7112 _res = pattern;
7113 if (_res == NULL && PyErr_Occurred()) {
7114 p->error_indicator = 1;
7115 D(p->level--);
7116 return NULL;
7117 }
7118 goto done;
7119 }
7120 p->mark = _mark;
7121 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7123 }
7124 _res = NULL;
7125 done:
7126 D(p->level--);
7127 return _res;
7128}
7129
7130// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007131static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007132sequence_pattern_rule(Parser *p)
7133{
7134 D(p->level++);
7135 if (p->error_indicator) {
7136 D(p->level--);
7137 return NULL;
7138 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007139 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007140 int _mark = p->mark;
7141 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7142 p->error_indicator = 1;
7143 D(p->level--);
7144 return NULL;
7145 }
7146 int _start_lineno = p->tokens[_mark]->lineno;
7147 UNUSED(_start_lineno); // Only used by EXTRA macro
7148 int _start_col_offset = p->tokens[_mark]->col_offset;
7149 UNUSED(_start_col_offset); // Only used by EXTRA macro
7150 { // '[' maybe_sequence_pattern? ']'
7151 if (p->error_indicator) {
7152 D(p->level--);
7153 return NULL;
7154 }
7155 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7156 Token * _literal;
7157 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007158 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007159 if (
7160 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7161 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007162 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007163 &&
7164 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7165 )
7166 {
7167 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7168 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7169 if (_token == NULL) {
7170 D(p->level--);
7171 return NULL;
7172 }
7173 int _end_lineno = _token->end_lineno;
7174 UNUSED(_end_lineno); // Only used by EXTRA macro
7175 int _end_col_offset = _token->end_col_offset;
7176 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007177 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007178 if (_res == NULL && PyErr_Occurred()) {
7179 p->error_indicator = 1;
7180 D(p->level--);
7181 return NULL;
7182 }
7183 goto done;
7184 }
7185 p->mark = _mark;
7186 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7188 }
7189 { // '(' open_sequence_pattern? ')'
7190 if (p->error_indicator) {
7191 D(p->level--);
7192 return NULL;
7193 }
7194 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7195 Token * _literal;
7196 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007197 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007198 if (
7199 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7200 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007201 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007202 &&
7203 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7204 )
7205 {
7206 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7207 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7208 if (_token == NULL) {
7209 D(p->level--);
7210 return NULL;
7211 }
7212 int _end_lineno = _token->end_lineno;
7213 UNUSED(_end_lineno); // Only used by EXTRA macro
7214 int _end_col_offset = _token->end_col_offset;
7215 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007216 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007217 if (_res == NULL && PyErr_Occurred()) {
7218 p->error_indicator = 1;
7219 D(p->level--);
7220 return NULL;
7221 }
7222 goto done;
7223 }
7224 p->mark = _mark;
7225 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7227 }
7228 _res = NULL;
7229 done:
7230 D(p->level--);
7231 return _res;
7232}
7233
7234// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7235static asdl_seq*
7236open_sequence_pattern_rule(Parser *p)
7237{
7238 D(p->level++);
7239 if (p->error_indicator) {
7240 D(p->level--);
7241 return NULL;
7242 }
7243 asdl_seq* _res = NULL;
7244 int _mark = p->mark;
7245 { // maybe_star_pattern ',' maybe_sequence_pattern?
7246 if (p->error_indicator) {
7247 D(p->level--);
7248 return NULL;
7249 }
7250 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7251 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007252 pattern_ty pattern;
7253 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007254 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007255 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007256 &&
7257 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7258 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007259 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007260 )
7261 {
7262 D(fprintf(stderr, "%*c+ open_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007263 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007264 if (_res == NULL && PyErr_Occurred()) {
7265 p->error_indicator = 1;
7266 D(p->level--);
7267 return NULL;
7268 }
7269 goto done;
7270 }
7271 p->mark = _mark;
7272 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7274 }
7275 _res = NULL;
7276 done:
7277 D(p->level--);
7278 return _res;
7279}
7280
7281// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7282static asdl_seq*
7283maybe_sequence_pattern_rule(Parser *p)
7284{
7285 D(p->level++);
7286 if (p->error_indicator) {
7287 D(p->level--);
7288 return NULL;
7289 }
7290 asdl_seq* _res = NULL;
7291 int _mark = p->mark;
7292 { // ','.maybe_star_pattern+ ','?
7293 if (p->error_indicator) {
7294 D(p->level--);
7295 return NULL;
7296 }
7297 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7298 void *_opt_var;
7299 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007300 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007301 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007302 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007303 &&
7304 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7305 )
7306 {
7307 D(fprintf(stderr, "%*c+ maybe_sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007308 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007309 if (_res == NULL && PyErr_Occurred()) {
7310 p->error_indicator = 1;
7311 D(p->level--);
7312 return NULL;
7313 }
7314 goto done;
7315 }
7316 p->mark = _mark;
7317 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7319 }
7320 _res = NULL;
7321 done:
7322 D(p->level--);
7323 return _res;
7324}
7325
7326// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007327static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007328maybe_star_pattern_rule(Parser *p)
7329{
7330 D(p->level++);
7331 if (p->error_indicator) {
7332 D(p->level--);
7333 return NULL;
7334 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007335 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007336 int _mark = p->mark;
7337 { // star_pattern
7338 if (p->error_indicator) {
7339 D(p->level--);
7340 return NULL;
7341 }
7342 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007343 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007344 if (
7345 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7346 )
7347 {
7348 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7349 _res = star_pattern_var;
7350 goto done;
7351 }
7352 p->mark = _mark;
7353 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7355 }
7356 { // pattern
7357 if (p->error_indicator) {
7358 D(p->level--);
7359 return NULL;
7360 }
7361 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007362 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007363 if (
7364 (pattern_var = pattern_rule(p)) // pattern
7365 )
7366 {
7367 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7368 _res = pattern_var;
7369 goto done;
7370 }
7371 p->mark = _mark;
7372 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7374 }
7375 _res = NULL;
7376 done:
7377 D(p->level--);
7378 return _res;
7379}
7380
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007381// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7382static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007383star_pattern_rule(Parser *p)
7384{
7385 D(p->level++);
7386 if (p->error_indicator) {
7387 D(p->level--);
7388 return NULL;
7389 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007390 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007391 int _mark = p->mark;
7392 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7393 p->error_indicator = 1;
7394 D(p->level--);
7395 return NULL;
7396 }
7397 int _start_lineno = p->tokens[_mark]->lineno;
7398 UNUSED(_start_lineno); // Only used by EXTRA macro
7399 int _start_col_offset = p->tokens[_mark]->col_offset;
7400 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007401 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007402 if (p->error_indicator) {
7403 D(p->level--);
7404 return NULL;
7405 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007406 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007407 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007408 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007409 if (
7410 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7411 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007412 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007413 )
7414 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007415 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007416 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7417 if (_token == NULL) {
7418 D(p->level--);
7419 return NULL;
7420 }
7421 int _end_lineno = _token->end_lineno;
7422 UNUSED(_end_lineno); // Only used by EXTRA macro
7423 int _end_col_offset = _token->end_col_offset;
7424 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007425 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007426 if (_res == NULL && PyErr_Occurred()) {
7427 p->error_indicator = 1;
7428 D(p->level--);
7429 return NULL;
7430 }
7431 goto done;
7432 }
7433 p->mark = _mark;
7434 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7436 }
7437 { // '*' wildcard_pattern
7438 if (p->error_indicator) {
7439 D(p->level--);
7440 return NULL;
7441 }
7442 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7443 Token * _literal;
7444 pattern_ty wildcard_pattern_var;
7445 if (
7446 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7447 &&
7448 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7449 )
7450 {
7451 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7452 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7453 if (_token == NULL) {
7454 D(p->level--);
7455 return NULL;
7456 }
7457 int _end_lineno = _token->end_lineno;
7458 UNUSED(_end_lineno); // Only used by EXTRA macro
7459 int _end_col_offset = _token->end_col_offset;
7460 UNUSED(_end_col_offset); // Only used by EXTRA macro
7461 _res = _PyAST_MatchStar ( NULL , EXTRA );
7462 if (_res == NULL && PyErr_Occurred()) {
7463 p->error_indicator = 1;
7464 D(p->level--);
7465 return NULL;
7466 }
7467 goto done;
7468 }
7469 p->mark = _mark;
7470 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007472 }
7473 _res = NULL;
7474 done:
7475 D(p->level--);
7476 return _res;
7477}
7478
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007479// mapping_pattern:
7480// | '{' '}'
7481// | '{' double_star_pattern ','? '}'
7482// | '{' items_pattern ',' double_star_pattern ','? '}'
7483// | '{' items_pattern ','? '}'
7484static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007485mapping_pattern_rule(Parser *p)
7486{
7487 D(p->level++);
7488 if (p->error_indicator) {
7489 D(p->level--);
7490 return NULL;
7491 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007492 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007493 int _mark = p->mark;
7494 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7495 p->error_indicator = 1;
7496 D(p->level--);
7497 return NULL;
7498 }
7499 int _start_lineno = p->tokens[_mark]->lineno;
7500 UNUSED(_start_lineno); // Only used by EXTRA macro
7501 int _start_col_offset = p->tokens[_mark]->col_offset;
7502 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007503 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007504 if (p->error_indicator) {
7505 D(p->level--);
7506 return NULL;
7507 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007508 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007509 Token * _literal;
7510 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007511 if (
7512 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7513 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007514 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7515 )
7516 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007517 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007518 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7519 if (_token == NULL) {
7520 D(p->level--);
7521 return NULL;
7522 }
7523 int _end_lineno = _token->end_lineno;
7524 UNUSED(_end_lineno); // Only used by EXTRA macro
7525 int _end_col_offset = _token->end_col_offset;
7526 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007527 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007528 if (_res == NULL && PyErr_Occurred()) {
7529 p->error_indicator = 1;
7530 D(p->level--);
7531 return NULL;
7532 }
7533 goto done;
7534 }
7535 p->mark = _mark;
7536 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7538 }
7539 { // '{' double_star_pattern ','? '}'
7540 if (p->error_indicator) {
7541 D(p->level--);
7542 return NULL;
7543 }
7544 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7545 Token * _literal;
7546 Token * _literal_1;
7547 void *_opt_var;
7548 UNUSED(_opt_var); // Silence compiler warnings
7549 expr_ty rest;
7550 if (
7551 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7552 &&
7553 (rest = double_star_pattern_rule(p)) // double_star_pattern
7554 &&
7555 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7556 &&
7557 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7558 )
7559 {
7560 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7561 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7562 if (_token == NULL) {
7563 D(p->level--);
7564 return NULL;
7565 }
7566 int _end_lineno = _token->end_lineno;
7567 UNUSED(_end_lineno); // Only used by EXTRA macro
7568 int _end_col_offset = _token->end_col_offset;
7569 UNUSED(_end_col_offset); // Only used by EXTRA macro
7570 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7571 if (_res == NULL && PyErr_Occurred()) {
7572 p->error_indicator = 1;
7573 D(p->level--);
7574 return NULL;
7575 }
7576 goto done;
7577 }
7578 p->mark = _mark;
7579 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7581 }
7582 { // '{' items_pattern ',' double_star_pattern ','? '}'
7583 if (p->error_indicator) {
7584 D(p->level--);
7585 return NULL;
7586 }
7587 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7588 Token * _literal;
7589 Token * _literal_1;
7590 Token * _literal_2;
7591 void *_opt_var;
7592 UNUSED(_opt_var); // Silence compiler warnings
7593 asdl_seq* items;
7594 expr_ty rest;
7595 if (
7596 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7597 &&
7598 (items = items_pattern_rule(p)) // items_pattern
7599 &&
7600 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7601 &&
7602 (rest = double_star_pattern_rule(p)) // double_star_pattern
7603 &&
7604 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7605 &&
7606 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7607 )
7608 {
7609 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7610 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7611 if (_token == NULL) {
7612 D(p->level--);
7613 return NULL;
7614 }
7615 int _end_lineno = _token->end_lineno;
7616 UNUSED(_end_lineno); // Only used by EXTRA macro
7617 int _end_col_offset = _token->end_col_offset;
7618 UNUSED(_end_col_offset); // Only used by EXTRA macro
7619 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , rest -> v . Name . id , EXTRA );
7620 if (_res == NULL && PyErr_Occurred()) {
7621 p->error_indicator = 1;
7622 D(p->level--);
7623 return NULL;
7624 }
7625 goto done;
7626 }
7627 p->mark = _mark;
7628 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7630 }
7631 { // '{' items_pattern ','? '}'
7632 if (p->error_indicator) {
7633 D(p->level--);
7634 return NULL;
7635 }
7636 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7637 Token * _literal;
7638 Token * _literal_1;
7639 void *_opt_var;
7640 UNUSED(_opt_var); // Silence compiler warnings
7641 asdl_seq* items;
7642 if (
7643 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7644 &&
7645 (items = items_pattern_rule(p)) // items_pattern
7646 &&
7647 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7648 &&
7649 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7650 )
7651 {
7652 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7653 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7654 if (_token == NULL) {
7655 D(p->level--);
7656 return NULL;
7657 }
7658 int _end_lineno = _token->end_lineno;
7659 UNUSED(_end_lineno); // Only used by EXTRA macro
7660 int _end_col_offset = _token->end_col_offset;
7661 UNUSED(_end_col_offset); // Only used by EXTRA macro
7662 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7663 if (_res == NULL && PyErr_Occurred()) {
7664 p->error_indicator = 1;
7665 D(p->level--);
7666 return NULL;
7667 }
7668 goto done;
7669 }
7670 p->mark = _mark;
7671 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007673 }
7674 _res = NULL;
7675 done:
7676 D(p->level--);
7677 return _res;
7678}
7679
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007680// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007681static asdl_seq*
7682items_pattern_rule(Parser *p)
7683{
7684 D(p->level++);
7685 if (p->error_indicator) {
7686 D(p->level--);
7687 return NULL;
7688 }
7689 asdl_seq* _res = NULL;
7690 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007691 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007692 if (p->error_indicator) {
7693 D(p->level--);
7694 return NULL;
7695 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007696 D(fprintf(stderr, "%*c> items_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007697 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007698 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007699 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007700 )
7701 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007702 D(fprintf(stderr, "%*c+ items_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007703 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007704 goto done;
7705 }
7706 p->mark = _mark;
7707 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007709 }
7710 _res = NULL;
7711 done:
7712 D(p->level--);
7713 return _res;
7714}
7715
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007716// key_value_pattern: (literal_expr | attr) ':' pattern
7717static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007718key_value_pattern_rule(Parser *p)
7719{
7720 D(p->level++);
7721 if (p->error_indicator) {
7722 D(p->level--);
7723 return NULL;
7724 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007725 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007726 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007727 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007728 if (p->error_indicator) {
7729 D(p->level--);
7730 return NULL;
7731 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007732 D(fprintf(stderr, "%*c> key_value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007733 Token * _literal;
7734 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007735 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007736 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007737 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007738 &&
7739 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7740 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007741 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007742 )
7743 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007744 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7745 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007746 if (_res == NULL && PyErr_Occurred()) {
7747 p->error_indicator = 1;
7748 D(p->level--);
7749 return NULL;
7750 }
7751 goto done;
7752 }
7753 p->mark = _mark;
7754 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007755 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007756 }
7757 _res = NULL;
7758 done:
7759 D(p->level--);
7760 return _res;
7761}
7762
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007763// double_star_pattern: '**' pattern_capture_target
7764static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007765double_star_pattern_rule(Parser *p)
7766{
7767 D(p->level++);
7768 if (p->error_indicator) {
7769 D(p->level--);
7770 return NULL;
7771 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007772 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007773 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007774 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007775 if (p->error_indicator) {
7776 D(p->level--);
7777 return NULL;
7778 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007779 D(fprintf(stderr, "%*c> double_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007780 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007781 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007782 if (
7783 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7784 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007785 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007786 )
7787 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007788 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7789 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007790 if (_res == NULL && PyErr_Occurred()) {
7791 p->error_indicator = 1;
7792 D(p->level--);
7793 return NULL;
7794 }
7795 goto done;
7796 }
7797 p->mark = _mark;
7798 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007800 }
7801 _res = NULL;
7802 done:
7803 D(p->level--);
7804 return _res;
7805}
7806
7807// class_pattern:
7808// | name_or_attr '(' ')'
7809// | name_or_attr '(' positional_patterns ','? ')'
7810// | name_or_attr '(' keyword_patterns ','? ')'
7811// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07007812// | invalid_class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007813static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007814class_pattern_rule(Parser *p)
7815{
7816 D(p->level++);
7817 if (p->error_indicator) {
7818 D(p->level--);
7819 return NULL;
7820 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007821 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007822 int _mark = p->mark;
7823 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7824 p->error_indicator = 1;
7825 D(p->level--);
7826 return NULL;
7827 }
7828 int _start_lineno = p->tokens[_mark]->lineno;
7829 UNUSED(_start_lineno); // Only used by EXTRA macro
7830 int _start_col_offset = p->tokens[_mark]->col_offset;
7831 UNUSED(_start_col_offset); // Only used by EXTRA macro
7832 { // name_or_attr '(' ')'
7833 if (p->error_indicator) {
7834 D(p->level--);
7835 return NULL;
7836 }
7837 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7838 Token * _literal;
7839 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007840 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007841 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007842 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007843 &&
7844 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7845 &&
7846 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7847 )
7848 {
7849 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7850 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7851 if (_token == NULL) {
7852 D(p->level--);
7853 return NULL;
7854 }
7855 int _end_lineno = _token->end_lineno;
7856 UNUSED(_end_lineno); // Only used by EXTRA macro
7857 int _end_col_offset = _token->end_col_offset;
7858 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007859 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007860 if (_res == NULL && PyErr_Occurred()) {
7861 p->error_indicator = 1;
7862 D(p->level--);
7863 return NULL;
7864 }
7865 goto done;
7866 }
7867 p->mark = _mark;
7868 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7870 }
7871 { // name_or_attr '(' positional_patterns ','? ')'
7872 if (p->error_indicator) {
7873 D(p->level--);
7874 return NULL;
7875 }
7876 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7877 Token * _literal;
7878 Token * _literal_1;
7879 void *_opt_var;
7880 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007881 expr_ty cls;
7882 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007883 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007884 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007885 &&
7886 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7887 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007888 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007889 &&
7890 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7891 &&
7892 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7893 )
7894 {
7895 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7896 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7897 if (_token == NULL) {
7898 D(p->level--);
7899 return NULL;
7900 }
7901 int _end_lineno = _token->end_lineno;
7902 UNUSED(_end_lineno); // Only used by EXTRA macro
7903 int _end_col_offset = _token->end_col_offset;
7904 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007905 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007906 if (_res == NULL && PyErr_Occurred()) {
7907 p->error_indicator = 1;
7908 D(p->level--);
7909 return NULL;
7910 }
7911 goto done;
7912 }
7913 p->mark = _mark;
7914 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7916 }
7917 { // name_or_attr '(' keyword_patterns ','? ')'
7918 if (p->error_indicator) {
7919 D(p->level--);
7920 return NULL;
7921 }
7922 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7923 Token * _literal;
7924 Token * _literal_1;
7925 void *_opt_var;
7926 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007927 expr_ty cls;
7928 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007929 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007930 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007931 &&
7932 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7933 &&
7934 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7935 &&
7936 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7937 &&
7938 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7939 )
7940 {
7941 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7942 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7943 if (_token == NULL) {
7944 D(p->level--);
7945 return NULL;
7946 }
7947 int _end_lineno = _token->end_lineno;
7948 UNUSED(_end_lineno); // Only used by EXTRA macro
7949 int _end_col_offset = _token->end_col_offset;
7950 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007951 _res = _PyAST_MatchClass ( cls , NULL , CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007952 if (_res == NULL && PyErr_Occurred()) {
7953 p->error_indicator = 1;
7954 D(p->level--);
7955 return NULL;
7956 }
7957 goto done;
7958 }
7959 p->mark = _mark;
7960 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7962 }
7963 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7964 if (p->error_indicator) {
7965 D(p->level--);
7966 return NULL;
7967 }
7968 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7969 Token * _literal;
7970 Token * _literal_1;
7971 Token * _literal_2;
7972 void *_opt_var;
7973 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007974 expr_ty cls;
7975 asdl_seq* keywords;
7976 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007977 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007978 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007979 &&
7980 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7981 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007982 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007983 &&
7984 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7985 &&
7986 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7987 &&
7988 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7989 &&
7990 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7991 )
7992 {
7993 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7994 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7995 if (_token == NULL) {
7996 D(p->level--);
7997 return NULL;
7998 }
7999 int _end_lineno = _token->end_lineno;
8000 UNUSED(_end_lineno); // Only used by EXTRA macro
8001 int _end_col_offset = _token->end_col_offset;
8002 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008003 _res = _PyAST_MatchClass ( cls , patterns , CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , keywords ) ) ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , keywords ) ) , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08008004 if (_res == NULL && PyErr_Occurred()) {
8005 p->error_indicator = 1;
8006 D(p->level--);
8007 return NULL;
8008 }
8009 goto done;
8010 }
8011 p->mark = _mark;
8012 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8014 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07008015 if (p->call_invalid_rules) { // invalid_class_pattern
8016 if (p->error_indicator) {
8017 D(p->level--);
8018 return NULL;
8019 }
8020 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8021 void *invalid_class_pattern_var;
8022 if (
8023 (invalid_class_pattern_var = invalid_class_pattern_rule(p)) // invalid_class_pattern
8024 )
8025 {
8026 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8027 _res = invalid_class_pattern_var;
8028 goto done;
8029 }
8030 p->mark = _mark;
8031 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_pattern"));
8033 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008034 _res = NULL;
8035 done:
8036 D(p->level--);
8037 return _res;
8038}
8039
8040// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008041static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008042positional_patterns_rule(Parser *p)
8043{
8044 D(p->level++);
8045 if (p->error_indicator) {
8046 D(p->level--);
8047 return NULL;
8048 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008049 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008050 int _mark = p->mark;
8051 { // ','.pattern+
8052 if (p->error_indicator) {
8053 D(p->level--);
8054 return NULL;
8055 }
8056 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008057 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008058 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008059 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008060 )
8061 {
8062 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8063 _res = args;
8064 if (_res == NULL && PyErr_Occurred()) {
8065 p->error_indicator = 1;
8066 D(p->level--);
8067 return NULL;
8068 }
8069 goto done;
8070 }
8071 p->mark = _mark;
8072 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8074 }
8075 _res = NULL;
8076 done:
8077 D(p->level--);
8078 return _res;
8079}
8080
8081// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008082static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008083keyword_patterns_rule(Parser *p)
8084{
8085 D(p->level++);
8086 if (p->error_indicator) {
8087 D(p->level--);
8088 return NULL;
8089 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008090 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008091 int _mark = p->mark;
8092 { // ','.keyword_pattern+
8093 if (p->error_indicator) {
8094 D(p->level--);
8095 return NULL;
8096 }
8097 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008098 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008099 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008100 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008101 )
8102 {
8103 D(fprintf(stderr, "%*c+ keyword_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008104 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008105 goto done;
8106 }
8107 p->mark = _mark;
8108 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8110 }
8111 _res = NULL;
8112 done:
8113 D(p->level--);
8114 return _res;
8115}
8116
8117// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008118static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008119keyword_pattern_rule(Parser *p)
8120{
8121 D(p->level++);
8122 if (p->error_indicator) {
8123 D(p->level--);
8124 return NULL;
8125 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008126 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008127 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008128 { // NAME '=' pattern
8129 if (p->error_indicator) {
8130 D(p->level--);
8131 return NULL;
8132 }
8133 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8134 Token * _literal;
8135 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008136 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008137 if (
8138 (arg = _PyPegen_name_token(p)) // NAME
8139 &&
8140 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8141 &&
8142 (value = pattern_rule(p)) // pattern
8143 )
8144 {
8145 D(fprintf(stderr, "%*c+ keyword_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008146 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008147 if (_res == NULL && PyErr_Occurred()) {
8148 p->error_indicator = 1;
8149 D(p->level--);
8150 return NULL;
8151 }
8152 goto done;
8153 }
8154 p->mark = _mark;
8155 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8157 }
8158 _res = NULL;
8159 done:
8160 D(p->level--);
8161 return _res;
8162}
8163
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008164// return_stmt: 'return' star_expressions?
8165static stmt_ty
8166return_stmt_rule(Parser *p)
8167{
8168 D(p->level++);
8169 if (p->error_indicator) {
8170 D(p->level--);
8171 return NULL;
8172 }
8173 stmt_ty _res = NULL;
8174 int _mark = p->mark;
8175 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8176 p->error_indicator = 1;
8177 D(p->level--);
8178 return NULL;
8179 }
8180 int _start_lineno = p->tokens[_mark]->lineno;
8181 UNUSED(_start_lineno); // Only used by EXTRA macro
8182 int _start_col_offset = p->tokens[_mark]->col_offset;
8183 UNUSED(_start_col_offset); // Only used by EXTRA macro
8184 { // 'return' star_expressions?
8185 if (p->error_indicator) {
8186 D(p->level--);
8187 return NULL;
8188 }
8189 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8190 Token * _keyword;
8191 void *a;
8192 if (
8193 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8194 &&
8195 (a = star_expressions_rule(p), 1) // star_expressions?
8196 )
8197 {
8198 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8199 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8200 if (_token == NULL) {
8201 D(p->level--);
8202 return NULL;
8203 }
8204 int _end_lineno = _token->end_lineno;
8205 UNUSED(_end_lineno); // Only used by EXTRA macro
8206 int _end_col_offset = _token->end_col_offset;
8207 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008208 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008209 if (_res == NULL && PyErr_Occurred()) {
8210 p->error_indicator = 1;
8211 D(p->level--);
8212 return NULL;
8213 }
8214 goto done;
8215 }
8216 p->mark = _mark;
8217 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8219 }
8220 _res = NULL;
8221 done:
8222 D(p->level--);
8223 return _res;
8224}
8225
8226// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8227static stmt_ty
8228raise_stmt_rule(Parser *p)
8229{
8230 D(p->level++);
8231 if (p->error_indicator) {
8232 D(p->level--);
8233 return NULL;
8234 }
8235 stmt_ty _res = NULL;
8236 int _mark = p->mark;
8237 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8238 p->error_indicator = 1;
8239 D(p->level--);
8240 return NULL;
8241 }
8242 int _start_lineno = p->tokens[_mark]->lineno;
8243 UNUSED(_start_lineno); // Only used by EXTRA macro
8244 int _start_col_offset = p->tokens[_mark]->col_offset;
8245 UNUSED(_start_col_offset); // Only used by EXTRA macro
8246 { // 'raise' expression ['from' expression]
8247 if (p->error_indicator) {
8248 D(p->level--);
8249 return NULL;
8250 }
8251 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8252 Token * _keyword;
8253 expr_ty a;
8254 void *b;
8255 if (
8256 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8257 &&
8258 (a = expression_rule(p)) // expression
8259 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008260 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008261 )
8262 {
8263 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8264 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8265 if (_token == NULL) {
8266 D(p->level--);
8267 return NULL;
8268 }
8269 int _end_lineno = _token->end_lineno;
8270 UNUSED(_end_lineno); // Only used by EXTRA macro
8271 int _end_col_offset = _token->end_col_offset;
8272 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008273 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008274 if (_res == NULL && PyErr_Occurred()) {
8275 p->error_indicator = 1;
8276 D(p->level--);
8277 return NULL;
8278 }
8279 goto done;
8280 }
8281 p->mark = _mark;
8282 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8284 }
8285 { // 'raise'
8286 if (p->error_indicator) {
8287 D(p->level--);
8288 return NULL;
8289 }
8290 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8291 Token * _keyword;
8292 if (
8293 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8294 )
8295 {
8296 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8297 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8298 if (_token == NULL) {
8299 D(p->level--);
8300 return NULL;
8301 }
8302 int _end_lineno = _token->end_lineno;
8303 UNUSED(_end_lineno); // Only used by EXTRA macro
8304 int _end_col_offset = _token->end_col_offset;
8305 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008306 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008307 if (_res == NULL && PyErr_Occurred()) {
8308 p->error_indicator = 1;
8309 D(p->level--);
8310 return NULL;
8311 }
8312 goto done;
8313 }
8314 p->mark = _mark;
8315 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8317 }
8318 _res = NULL;
8319 done:
8320 D(p->level--);
8321 return _res;
8322}
8323
8324// function_def: decorators function_def_raw | function_def_raw
8325static stmt_ty
8326function_def_rule(Parser *p)
8327{
8328 D(p->level++);
8329 if (p->error_indicator) {
8330 D(p->level--);
8331 return NULL;
8332 }
8333 stmt_ty _res = NULL;
8334 int _mark = p->mark;
8335 { // decorators function_def_raw
8336 if (p->error_indicator) {
8337 D(p->level--);
8338 return NULL;
8339 }
8340 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 +01008341 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008342 stmt_ty f;
8343 if (
8344 (d = decorators_rule(p)) // decorators
8345 &&
8346 (f = function_def_raw_rule(p)) // function_def_raw
8347 )
8348 {
8349 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8350 _res = _PyPegen_function_def_decorators ( p , d , f );
8351 if (_res == NULL && PyErr_Occurred()) {
8352 p->error_indicator = 1;
8353 D(p->level--);
8354 return NULL;
8355 }
8356 goto done;
8357 }
8358 p->mark = _mark;
8359 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8361 }
8362 { // function_def_raw
8363 if (p->error_indicator) {
8364 D(p->level--);
8365 return NULL;
8366 }
8367 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8368 stmt_ty function_def_raw_var;
8369 if (
8370 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8371 )
8372 {
8373 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8374 _res = function_def_raw_var;
8375 goto done;
8376 }
8377 p->mark = _mark;
8378 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8380 }
8381 _res = NULL;
8382 done:
8383 D(p->level--);
8384 return _res;
8385}
8386
8387// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008388// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008389// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8390// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008391static stmt_ty
8392function_def_raw_rule(Parser *p)
8393{
8394 D(p->level++);
8395 if (p->error_indicator) {
8396 D(p->level--);
8397 return NULL;
8398 }
8399 stmt_ty _res = NULL;
8400 int _mark = p->mark;
8401 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8402 p->error_indicator = 1;
8403 D(p->level--);
8404 return NULL;
8405 }
8406 int _start_lineno = p->tokens[_mark]->lineno;
8407 UNUSED(_start_lineno); // Only used by EXTRA macro
8408 int _start_col_offset = p->tokens[_mark]->col_offset;
8409 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008410 if (p->call_invalid_rules) { // invalid_def_raw
8411 if (p->error_indicator) {
8412 D(p->level--);
8413 return NULL;
8414 }
8415 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8416 void *invalid_def_raw_var;
8417 if (
8418 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8419 )
8420 {
8421 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8422 _res = invalid_def_raw_var;
8423 goto done;
8424 }
8425 p->mark = _mark;
8426 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8428 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008429 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008430 if (p->error_indicator) {
8431 D(p->level--);
8432 return NULL;
8433 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008434 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 +01008435 Token * _keyword;
8436 Token * _literal;
8437 Token * _literal_1;
8438 Token * _literal_2;
8439 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008440 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008441 expr_ty n;
8442 void *params;
8443 void *tc;
8444 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008445 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008446 &&
8447 (n = _PyPegen_name_token(p)) // NAME
8448 &&
8449 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8450 &&
8451 (params = params_rule(p), 1) // params?
8452 &&
8453 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8454 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008455 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008456 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008457 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008458 &&
8459 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8460 &&
8461 (b = block_rule(p)) // block
8462 )
8463 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008464 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 +01008465 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8466 if (_token == NULL) {
8467 D(p->level--);
8468 return NULL;
8469 }
8470 int _end_lineno = _token->end_lineno;
8471 UNUSED(_end_lineno); // Only used by EXTRA macro
8472 int _end_col_offset = _token->end_col_offset;
8473 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008474 _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 +01008475 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 function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008485 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008486 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008487 if (p->error_indicator) {
8488 D(p->level--);
8489 return NULL;
8490 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008491 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 +01008492 Token * _keyword;
8493 Token * _literal;
8494 Token * _literal_1;
8495 Token * _literal_2;
8496 void *a;
8497 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008498 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008499 expr_ty n;
8500 void *params;
8501 void *tc;
8502 if (
8503 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8504 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008505 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008506 &&
8507 (n = _PyPegen_name_token(p)) // NAME
8508 &&
8509 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8510 &&
8511 (params = params_rule(p), 1) // params?
8512 &&
8513 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8514 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008515 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008516 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008517 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008518 &&
8519 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8520 &&
8521 (b = block_rule(p)) // block
8522 )
8523 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008524 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 +01008525 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8526 if (_token == NULL) {
8527 D(p->level--);
8528 return NULL;
8529 }
8530 int _end_lineno = _token->end_lineno;
8531 UNUSED(_end_lineno); // Only used by EXTRA macro
8532 int _end_col_offset = _token->end_col_offset;
8533 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008534 _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 +01008535 if (_res == NULL && PyErr_Occurred()) {
8536 p->error_indicator = 1;
8537 D(p->level--);
8538 return NULL;
8539 }
8540 goto done;
8541 }
8542 p->mark = _mark;
8543 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008545 }
8546 _res = NULL;
8547 done:
8548 D(p->level--);
8549 return _res;
8550}
8551
8552// func_type_comment:
8553// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8554// | invalid_double_type_comments
8555// | TYPE_COMMENT
8556static Token*
8557func_type_comment_rule(Parser *p)
8558{
8559 D(p->level++);
8560 if (p->error_indicator) {
8561 D(p->level--);
8562 return NULL;
8563 }
8564 Token* _res = NULL;
8565 int _mark = p->mark;
8566 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8567 if (p->error_indicator) {
8568 D(p->level--);
8569 return NULL;
8570 }
8571 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8572 Token * newline_var;
8573 Token * t;
8574 if (
8575 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8576 &&
8577 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8578 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008579 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008580 )
8581 {
8582 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8583 _res = t;
8584 if (_res == NULL && PyErr_Occurred()) {
8585 p->error_indicator = 1;
8586 D(p->level--);
8587 return NULL;
8588 }
8589 goto done;
8590 }
8591 p->mark = _mark;
8592 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8594 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008595 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008596 if (p->error_indicator) {
8597 D(p->level--);
8598 return NULL;
8599 }
8600 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8601 void *invalid_double_type_comments_var;
8602 if (
8603 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8604 )
8605 {
8606 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8607 _res = invalid_double_type_comments_var;
8608 goto done;
8609 }
8610 p->mark = _mark;
8611 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8613 }
8614 { // TYPE_COMMENT
8615 if (p->error_indicator) {
8616 D(p->level--);
8617 return NULL;
8618 }
8619 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8620 Token * type_comment_var;
8621 if (
8622 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8623 )
8624 {
8625 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8626 _res = type_comment_var;
8627 goto done;
8628 }
8629 p->mark = _mark;
8630 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8632 }
8633 _res = NULL;
8634 done:
8635 D(p->level--);
8636 return _res;
8637}
8638
8639// params: invalid_parameters | parameters
8640static arguments_ty
8641params_rule(Parser *p)
8642{
8643 D(p->level++);
8644 if (p->error_indicator) {
8645 D(p->level--);
8646 return NULL;
8647 }
8648 arguments_ty _res = NULL;
8649 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008650 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008651 if (p->error_indicator) {
8652 D(p->level--);
8653 return NULL;
8654 }
8655 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8656 void *invalid_parameters_var;
8657 if (
8658 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8659 )
8660 {
8661 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8662 _res = invalid_parameters_var;
8663 goto done;
8664 }
8665 p->mark = _mark;
8666 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8668 }
8669 { // parameters
8670 if (p->error_indicator) {
8671 D(p->level--);
8672 return NULL;
8673 }
8674 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8675 arguments_ty parameters_var;
8676 if (
8677 (parameters_var = parameters_rule(p)) // parameters
8678 )
8679 {
8680 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8681 _res = parameters_var;
8682 goto done;
8683 }
8684 p->mark = _mark;
8685 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8687 }
8688 _res = NULL;
8689 done:
8690 D(p->level--);
8691 return _res;
8692}
8693
8694// parameters:
8695// | slash_no_default param_no_default* param_with_default* star_etc?
8696// | slash_with_default param_with_default* star_etc?
8697// | param_no_default+ param_with_default* star_etc?
8698// | param_with_default+ star_etc?
8699// | star_etc
8700static arguments_ty
8701parameters_rule(Parser *p)
8702{
8703 D(p->level++);
8704 if (p->error_indicator) {
8705 D(p->level--);
8706 return NULL;
8707 }
8708 arguments_ty _res = NULL;
8709 int _mark = p->mark;
8710 { // slash_no_default param_no_default* param_with_default* star_etc?
8711 if (p->error_indicator) {
8712 D(p->level--);
8713 return NULL;
8714 }
8715 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 +01008716 asdl_arg_seq* a;
8717 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008718 asdl_seq * c;
8719 void *d;
8720 if (
8721 (a = slash_no_default_rule(p)) // slash_no_default
8722 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008723 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008724 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008725 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008726 &&
8727 (d = star_etc_rule(p), 1) // star_etc?
8728 )
8729 {
8730 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?"));
8731 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8732 if (_res == NULL && PyErr_Occurred()) {
8733 p->error_indicator = 1;
8734 D(p->level--);
8735 return NULL;
8736 }
8737 goto done;
8738 }
8739 p->mark = _mark;
8740 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8742 }
8743 { // slash_with_default param_with_default* star_etc?
8744 if (p->error_indicator) {
8745 D(p->level--);
8746 return NULL;
8747 }
8748 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8749 SlashWithDefault* a;
8750 asdl_seq * b;
8751 void *c;
8752 if (
8753 (a = slash_with_default_rule(p)) // slash_with_default
8754 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008755 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008756 &&
8757 (c = star_etc_rule(p), 1) // star_etc?
8758 )
8759 {
8760 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8761 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8762 if (_res == NULL && PyErr_Occurred()) {
8763 p->error_indicator = 1;
8764 D(p->level--);
8765 return NULL;
8766 }
8767 goto done;
8768 }
8769 p->mark = _mark;
8770 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8772 }
8773 { // param_no_default+ param_with_default* star_etc?
8774 if (p->error_indicator) {
8775 D(p->level--);
8776 return NULL;
8777 }
8778 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 +01008779 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008780 asdl_seq * b;
8781 void *c;
8782 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008783 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008784 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008785 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008786 &&
8787 (c = star_etc_rule(p), 1) // star_etc?
8788 )
8789 {
8790 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8791 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8792 if (_res == NULL && PyErr_Occurred()) {
8793 p->error_indicator = 1;
8794 D(p->level--);
8795 return NULL;
8796 }
8797 goto done;
8798 }
8799 p->mark = _mark;
8800 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8802 }
8803 { // param_with_default+ star_etc?
8804 if (p->error_indicator) {
8805 D(p->level--);
8806 return NULL;
8807 }
8808 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8809 asdl_seq * a;
8810 void *b;
8811 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008812 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008813 &&
8814 (b = star_etc_rule(p), 1) // star_etc?
8815 )
8816 {
8817 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8818 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8819 if (_res == NULL && PyErr_Occurred()) {
8820 p->error_indicator = 1;
8821 D(p->level--);
8822 return NULL;
8823 }
8824 goto done;
8825 }
8826 p->mark = _mark;
8827 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8829 }
8830 { // star_etc
8831 if (p->error_indicator) {
8832 D(p->level--);
8833 return NULL;
8834 }
8835 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8836 StarEtc* a;
8837 if (
8838 (a = star_etc_rule(p)) // star_etc
8839 )
8840 {
8841 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8842 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8843 if (_res == NULL && PyErr_Occurred()) {
8844 p->error_indicator = 1;
8845 D(p->level--);
8846 return NULL;
8847 }
8848 goto done;
8849 }
8850 p->mark = _mark;
8851 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8853 }
8854 _res = NULL;
8855 done:
8856 D(p->level--);
8857 return _res;
8858}
8859
8860// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008861static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008862slash_no_default_rule(Parser *p)
8863{
8864 D(p->level++);
8865 if (p->error_indicator) {
8866 D(p->level--);
8867 return NULL;
8868 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008869 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008870 int _mark = p->mark;
8871 { // param_no_default+ '/' ','
8872 if (p->error_indicator) {
8873 D(p->level--);
8874 return NULL;
8875 }
8876 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8877 Token * _literal;
8878 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008879 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008880 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008881 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008882 &&
8883 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8884 &&
8885 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8886 )
8887 {
8888 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8889 _res = a;
8890 if (_res == NULL && PyErr_Occurred()) {
8891 p->error_indicator = 1;
8892 D(p->level--);
8893 return NULL;
8894 }
8895 goto done;
8896 }
8897 p->mark = _mark;
8898 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8900 }
8901 { // param_no_default+ '/' &')'
8902 if (p->error_indicator) {
8903 D(p->level--);
8904 return NULL;
8905 }
8906 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8907 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008908 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008909 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008910 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008911 &&
8912 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8913 &&
8914 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8915 )
8916 {
8917 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8918 _res = a;
8919 if (_res == NULL && PyErr_Occurred()) {
8920 p->error_indicator = 1;
8921 D(p->level--);
8922 return NULL;
8923 }
8924 goto done;
8925 }
8926 p->mark = _mark;
8927 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8929 }
8930 _res = NULL;
8931 done:
8932 D(p->level--);
8933 return _res;
8934}
8935
8936// slash_with_default:
8937// | param_no_default* param_with_default+ '/' ','
8938// | param_no_default* param_with_default+ '/' &')'
8939static SlashWithDefault*
8940slash_with_default_rule(Parser *p)
8941{
8942 D(p->level++);
8943 if (p->error_indicator) {
8944 D(p->level--);
8945 return NULL;
8946 }
8947 SlashWithDefault* _res = NULL;
8948 int _mark = p->mark;
8949 { // param_no_default* param_with_default+ '/' ','
8950 if (p->error_indicator) {
8951 D(p->level--);
8952 return NULL;
8953 }
8954 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8955 Token * _literal;
8956 Token * _literal_1;
8957 asdl_seq * a;
8958 asdl_seq * b;
8959 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008960 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008961 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008962 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008963 &&
8964 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8965 &&
8966 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8967 )
8968 {
8969 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 +01008970 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008971 if (_res == NULL && PyErr_Occurred()) {
8972 p->error_indicator = 1;
8973 D(p->level--);
8974 return NULL;
8975 }
8976 goto done;
8977 }
8978 p->mark = _mark;
8979 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8981 }
8982 { // param_no_default* param_with_default+ '/' &')'
8983 if (p->error_indicator) {
8984 D(p->level--);
8985 return NULL;
8986 }
8987 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8988 Token * _literal;
8989 asdl_seq * a;
8990 asdl_seq * b;
8991 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008992 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008993 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008994 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008995 &&
8996 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8997 &&
8998 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8999 )
9000 {
9001 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 +01009002 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009003 if (_res == NULL && PyErr_Occurred()) {
9004 p->error_indicator = 1;
9005 D(p->level--);
9006 return NULL;
9007 }
9008 goto done;
9009 }
9010 p->mark = _mark;
9011 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
9013 }
9014 _res = NULL;
9015 done:
9016 D(p->level--);
9017 return _res;
9018}
9019
9020// star_etc:
9021// | '*' param_no_default param_maybe_default* kwds?
9022// | '*' ',' param_maybe_default+ kwds?
9023// | kwds
9024// | invalid_star_etc
9025static StarEtc*
9026star_etc_rule(Parser *p)
9027{
9028 D(p->level++);
9029 if (p->error_indicator) {
9030 D(p->level--);
9031 return NULL;
9032 }
9033 StarEtc* _res = NULL;
9034 int _mark = p->mark;
9035 { // '*' param_no_default param_maybe_default* kwds?
9036 if (p->error_indicator) {
9037 D(p->level--);
9038 return NULL;
9039 }
9040 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9041 Token * _literal;
9042 arg_ty a;
9043 asdl_seq * b;
9044 void *c;
9045 if (
9046 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9047 &&
9048 (a = param_no_default_rule(p)) // param_no_default
9049 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009050 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009051 &&
9052 (c = kwds_rule(p), 1) // kwds?
9053 )
9054 {
9055 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9056 _res = _PyPegen_star_etc ( p , a , b , c );
9057 if (_res == NULL && PyErr_Occurred()) {
9058 p->error_indicator = 1;
9059 D(p->level--);
9060 return NULL;
9061 }
9062 goto done;
9063 }
9064 p->mark = _mark;
9065 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9067 }
9068 { // '*' ',' param_maybe_default+ kwds?
9069 if (p->error_indicator) {
9070 D(p->level--);
9071 return NULL;
9072 }
9073 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9074 Token * _literal;
9075 Token * _literal_1;
9076 asdl_seq * b;
9077 void *c;
9078 if (
9079 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9080 &&
9081 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9082 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009083 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009084 &&
9085 (c = kwds_rule(p), 1) // kwds?
9086 )
9087 {
9088 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9089 _res = _PyPegen_star_etc ( p , NULL , b , c );
9090 if (_res == NULL && PyErr_Occurred()) {
9091 p->error_indicator = 1;
9092 D(p->level--);
9093 return NULL;
9094 }
9095 goto done;
9096 }
9097 p->mark = _mark;
9098 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9100 }
9101 { // kwds
9102 if (p->error_indicator) {
9103 D(p->level--);
9104 return NULL;
9105 }
9106 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9107 arg_ty a;
9108 if (
9109 (a = kwds_rule(p)) // kwds
9110 )
9111 {
9112 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9113 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9114 if (_res == NULL && PyErr_Occurred()) {
9115 p->error_indicator = 1;
9116 D(p->level--);
9117 return NULL;
9118 }
9119 goto done;
9120 }
9121 p->mark = _mark;
9122 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9124 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009125 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009126 if (p->error_indicator) {
9127 D(p->level--);
9128 return NULL;
9129 }
9130 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9131 void *invalid_star_etc_var;
9132 if (
9133 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9134 )
9135 {
9136 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9137 _res = invalid_star_etc_var;
9138 goto done;
9139 }
9140 p->mark = _mark;
9141 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9143 }
9144 _res = NULL;
9145 done:
9146 D(p->level--);
9147 return _res;
9148}
9149
9150// kwds: '**' param_no_default
9151static arg_ty
9152kwds_rule(Parser *p)
9153{
9154 D(p->level++);
9155 if (p->error_indicator) {
9156 D(p->level--);
9157 return NULL;
9158 }
9159 arg_ty _res = NULL;
9160 int _mark = p->mark;
9161 { // '**' param_no_default
9162 if (p->error_indicator) {
9163 D(p->level--);
9164 return NULL;
9165 }
9166 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9167 Token * _literal;
9168 arg_ty a;
9169 if (
9170 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9171 &&
9172 (a = param_no_default_rule(p)) // param_no_default
9173 )
9174 {
9175 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9176 _res = a;
9177 if (_res == NULL && PyErr_Occurred()) {
9178 p->error_indicator = 1;
9179 D(p->level--);
9180 return NULL;
9181 }
9182 goto done;
9183 }
9184 p->mark = _mark;
9185 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9187 }
9188 _res = NULL;
9189 done:
9190 D(p->level--);
9191 return _res;
9192}
9193
9194// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9195static arg_ty
9196param_no_default_rule(Parser *p)
9197{
9198 D(p->level++);
9199 if (p->error_indicator) {
9200 D(p->level--);
9201 return NULL;
9202 }
9203 arg_ty _res = NULL;
9204 int _mark = p->mark;
9205 { // param ',' TYPE_COMMENT?
9206 if (p->error_indicator) {
9207 D(p->level--);
9208 return NULL;
9209 }
9210 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9211 Token * _literal;
9212 arg_ty a;
9213 void *tc;
9214 if (
9215 (a = param_rule(p)) // param
9216 &&
9217 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9218 &&
9219 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9220 )
9221 {
9222 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9223 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9224 if (_res == NULL && PyErr_Occurred()) {
9225 p->error_indicator = 1;
9226 D(p->level--);
9227 return NULL;
9228 }
9229 goto done;
9230 }
9231 p->mark = _mark;
9232 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9234 }
9235 { // param TYPE_COMMENT? &')'
9236 if (p->error_indicator) {
9237 D(p->level--);
9238 return NULL;
9239 }
9240 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9241 arg_ty a;
9242 void *tc;
9243 if (
9244 (a = param_rule(p)) // param
9245 &&
9246 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9247 &&
9248 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9249 )
9250 {
9251 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9252 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9253 if (_res == NULL && PyErr_Occurred()) {
9254 p->error_indicator = 1;
9255 D(p->level--);
9256 return NULL;
9257 }
9258 goto done;
9259 }
9260 p->mark = _mark;
9261 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9263 }
9264 _res = NULL;
9265 done:
9266 D(p->level--);
9267 return _res;
9268}
9269
9270// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9271static NameDefaultPair*
9272param_with_default_rule(Parser *p)
9273{
9274 D(p->level++);
9275 if (p->error_indicator) {
9276 D(p->level--);
9277 return NULL;
9278 }
9279 NameDefaultPair* _res = NULL;
9280 int _mark = p->mark;
9281 { // param default ',' TYPE_COMMENT?
9282 if (p->error_indicator) {
9283 D(p->level--);
9284 return NULL;
9285 }
9286 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9287 Token * _literal;
9288 arg_ty a;
9289 expr_ty c;
9290 void *tc;
9291 if (
9292 (a = param_rule(p)) // param
9293 &&
9294 (c = default_rule(p)) // default
9295 &&
9296 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9297 &&
9298 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9299 )
9300 {
9301 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9302 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9303 if (_res == NULL && PyErr_Occurred()) {
9304 p->error_indicator = 1;
9305 D(p->level--);
9306 return NULL;
9307 }
9308 goto done;
9309 }
9310 p->mark = _mark;
9311 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9313 }
9314 { // param default TYPE_COMMENT? &')'
9315 if (p->error_indicator) {
9316 D(p->level--);
9317 return NULL;
9318 }
9319 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9320 arg_ty a;
9321 expr_ty c;
9322 void *tc;
9323 if (
9324 (a = param_rule(p)) // param
9325 &&
9326 (c = default_rule(p)) // default
9327 &&
9328 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9329 &&
9330 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9331 )
9332 {
9333 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9334 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9335 if (_res == NULL && PyErr_Occurred()) {
9336 p->error_indicator = 1;
9337 D(p->level--);
9338 return NULL;
9339 }
9340 goto done;
9341 }
9342 p->mark = _mark;
9343 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9345 }
9346 _res = NULL;
9347 done:
9348 D(p->level--);
9349 return _res;
9350}
9351
9352// param_maybe_default:
9353// | param default? ',' TYPE_COMMENT?
9354// | param default? TYPE_COMMENT? &')'
9355static NameDefaultPair*
9356param_maybe_default_rule(Parser *p)
9357{
9358 D(p->level++);
9359 if (p->error_indicator) {
9360 D(p->level--);
9361 return NULL;
9362 }
9363 NameDefaultPair* _res = NULL;
9364 int _mark = p->mark;
9365 { // param default? ',' TYPE_COMMENT?
9366 if (p->error_indicator) {
9367 D(p->level--);
9368 return NULL;
9369 }
9370 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9371 Token * _literal;
9372 arg_ty a;
9373 void *c;
9374 void *tc;
9375 if (
9376 (a = param_rule(p)) // param
9377 &&
9378 (c = default_rule(p), 1) // default?
9379 &&
9380 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9381 &&
9382 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9383 )
9384 {
9385 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9386 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9387 if (_res == NULL && PyErr_Occurred()) {
9388 p->error_indicator = 1;
9389 D(p->level--);
9390 return NULL;
9391 }
9392 goto done;
9393 }
9394 p->mark = _mark;
9395 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9397 }
9398 { // param default? TYPE_COMMENT? &')'
9399 if (p->error_indicator) {
9400 D(p->level--);
9401 return NULL;
9402 }
9403 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9404 arg_ty a;
9405 void *c;
9406 void *tc;
9407 if (
9408 (a = param_rule(p)) // param
9409 &&
9410 (c = default_rule(p), 1) // default?
9411 &&
9412 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9413 &&
9414 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9415 )
9416 {
9417 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9418 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9419 if (_res == NULL && PyErr_Occurred()) {
9420 p->error_indicator = 1;
9421 D(p->level--);
9422 return NULL;
9423 }
9424 goto done;
9425 }
9426 p->mark = _mark;
9427 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9429 }
9430 _res = NULL;
9431 done:
9432 D(p->level--);
9433 return _res;
9434}
9435
9436// param: NAME annotation?
9437static arg_ty
9438param_rule(Parser *p)
9439{
9440 D(p->level++);
9441 if (p->error_indicator) {
9442 D(p->level--);
9443 return NULL;
9444 }
9445 arg_ty _res = NULL;
9446 int _mark = p->mark;
9447 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9448 p->error_indicator = 1;
9449 D(p->level--);
9450 return NULL;
9451 }
9452 int _start_lineno = p->tokens[_mark]->lineno;
9453 UNUSED(_start_lineno); // Only used by EXTRA macro
9454 int _start_col_offset = p->tokens[_mark]->col_offset;
9455 UNUSED(_start_col_offset); // Only used by EXTRA macro
9456 { // NAME annotation?
9457 if (p->error_indicator) {
9458 D(p->level--);
9459 return NULL;
9460 }
9461 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9462 expr_ty a;
9463 void *b;
9464 if (
9465 (a = _PyPegen_name_token(p)) // NAME
9466 &&
9467 (b = annotation_rule(p), 1) // annotation?
9468 )
9469 {
9470 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9471 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9472 if (_token == NULL) {
9473 D(p->level--);
9474 return NULL;
9475 }
9476 int _end_lineno = _token->end_lineno;
9477 UNUSED(_end_lineno); // Only used by EXTRA macro
9478 int _end_col_offset = _token->end_col_offset;
9479 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009480 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009481 if (_res == NULL && PyErr_Occurred()) {
9482 p->error_indicator = 1;
9483 D(p->level--);
9484 return NULL;
9485 }
9486 goto done;
9487 }
9488 p->mark = _mark;
9489 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9491 }
9492 _res = NULL;
9493 done:
9494 D(p->level--);
9495 return _res;
9496}
9497
9498// annotation: ':' expression
9499static expr_ty
9500annotation_rule(Parser *p)
9501{
9502 D(p->level++);
9503 if (p->error_indicator) {
9504 D(p->level--);
9505 return NULL;
9506 }
9507 expr_ty _res = NULL;
9508 int _mark = p->mark;
9509 { // ':' expression
9510 if (p->error_indicator) {
9511 D(p->level--);
9512 return NULL;
9513 }
9514 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9515 Token * _literal;
9516 expr_ty a;
9517 if (
9518 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9519 &&
9520 (a = expression_rule(p)) // expression
9521 )
9522 {
9523 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9524 _res = a;
9525 if (_res == NULL && PyErr_Occurred()) {
9526 p->error_indicator = 1;
9527 D(p->level--);
9528 return NULL;
9529 }
9530 goto done;
9531 }
9532 p->mark = _mark;
9533 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9535 }
9536 _res = NULL;
9537 done:
9538 D(p->level--);
9539 return _res;
9540}
9541
9542// default: '=' expression
9543static expr_ty
9544default_rule(Parser *p)
9545{
9546 D(p->level++);
9547 if (p->error_indicator) {
9548 D(p->level--);
9549 return NULL;
9550 }
9551 expr_ty _res = NULL;
9552 int _mark = p->mark;
9553 { // '=' expression
9554 if (p->error_indicator) {
9555 D(p->level--);
9556 return NULL;
9557 }
9558 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9559 Token * _literal;
9560 expr_ty a;
9561 if (
9562 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9563 &&
9564 (a = expression_rule(p)) // expression
9565 )
9566 {
9567 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9568 _res = a;
9569 if (_res == NULL && PyErr_Occurred()) {
9570 p->error_indicator = 1;
9571 D(p->level--);
9572 return NULL;
9573 }
9574 goto done;
9575 }
9576 p->mark = _mark;
9577 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9579 }
9580 _res = NULL;
9581 done:
9582 D(p->level--);
9583 return _res;
9584}
9585
9586// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009587static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009588decorators_rule(Parser *p)
9589{
9590 D(p->level++);
9591 if (p->error_indicator) {
9592 D(p->level--);
9593 return NULL;
9594 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009595 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009596 int _mark = p->mark;
9597 { // (('@' named_expression NEWLINE))+
9598 if (p->error_indicator) {
9599 D(p->level--);
9600 return NULL;
9601 }
9602 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009603 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009604 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009605 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009606 )
9607 {
9608 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9609 _res = a;
9610 if (_res == NULL && PyErr_Occurred()) {
9611 p->error_indicator = 1;
9612 D(p->level--);
9613 return NULL;
9614 }
9615 goto done;
9616 }
9617 p->mark = _mark;
9618 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9620 }
9621 _res = NULL;
9622 done:
9623 D(p->level--);
9624 return _res;
9625}
9626
9627// class_def: decorators class_def_raw | class_def_raw
9628static stmt_ty
9629class_def_rule(Parser *p)
9630{
9631 D(p->level++);
9632 if (p->error_indicator) {
9633 D(p->level--);
9634 return NULL;
9635 }
9636 stmt_ty _res = NULL;
9637 int _mark = p->mark;
9638 { // decorators class_def_raw
9639 if (p->error_indicator) {
9640 D(p->level--);
9641 return NULL;
9642 }
9643 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 +01009644 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009645 stmt_ty b;
9646 if (
9647 (a = decorators_rule(p)) // decorators
9648 &&
9649 (b = class_def_raw_rule(p)) // class_def_raw
9650 )
9651 {
9652 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9653 _res = _PyPegen_class_def_decorators ( p , a , b );
9654 if (_res == NULL && PyErr_Occurred()) {
9655 p->error_indicator = 1;
9656 D(p->level--);
9657 return NULL;
9658 }
9659 goto done;
9660 }
9661 p->mark = _mark;
9662 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9664 }
9665 { // class_def_raw
9666 if (p->error_indicator) {
9667 D(p->level--);
9668 return NULL;
9669 }
9670 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9671 stmt_ty class_def_raw_var;
9672 if (
9673 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9674 )
9675 {
9676 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9677 _res = class_def_raw_var;
9678 goto done;
9679 }
9680 p->mark = _mark;
9681 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9683 }
9684 _res = NULL;
9685 done:
9686 D(p->level--);
9687 return _res;
9688}
9689
Pablo Galindo56c95df2021-04-21 15:28:21 +01009690// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009691static stmt_ty
9692class_def_raw_rule(Parser *p)
9693{
9694 D(p->level++);
9695 if (p->error_indicator) {
9696 D(p->level--);
9697 return NULL;
9698 }
9699 stmt_ty _res = NULL;
9700 int _mark = p->mark;
9701 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9702 p->error_indicator = 1;
9703 D(p->level--);
9704 return NULL;
9705 }
9706 int _start_lineno = p->tokens[_mark]->lineno;
9707 UNUSED(_start_lineno); // Only used by EXTRA macro
9708 int _start_col_offset = p->tokens[_mark]->col_offset;
9709 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009710 if (p->call_invalid_rules) { // invalid_class_def_raw
9711 if (p->error_indicator) {
9712 D(p->level--);
9713 return NULL;
9714 }
9715 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9716 void *invalid_class_def_raw_var;
9717 if (
9718 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9719 )
9720 {
9721 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9722 _res = invalid_class_def_raw_var;
9723 goto done;
9724 }
9725 p->mark = _mark;
9726 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9728 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009729 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009730 if (p->error_indicator) {
9731 D(p->level--);
9732 return NULL;
9733 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009734 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 +01009735 Token * _keyword;
9736 Token * _literal;
9737 expr_ty a;
9738 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009739 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009740 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009741 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009742 &&
9743 (a = _PyPegen_name_token(p)) // NAME
9744 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009745 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009746 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009747 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009748 &&
9749 (c = block_rule(p)) // block
9750 )
9751 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009752 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 +01009753 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9754 if (_token == NULL) {
9755 D(p->level--);
9756 return NULL;
9757 }
9758 int _end_lineno = _token->end_lineno;
9759 UNUSED(_end_lineno); // Only used by EXTRA macro
9760 int _end_col_offset = _token->end_col_offset;
9761 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009762 _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 +01009763 if (_res == NULL && PyErr_Occurred()) {
9764 p->error_indicator = 1;
9765 D(p->level--);
9766 return NULL;
9767 }
9768 goto done;
9769 }
9770 p->mark = _mark;
9771 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009773 }
9774 _res = NULL;
9775 done:
9776 D(p->level--);
9777 return _res;
9778}
9779
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009780// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009781static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009782block_rule(Parser *p)
9783{
9784 D(p->level++);
9785 if (p->error_indicator) {
9786 D(p->level--);
9787 return NULL;
9788 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009789 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009790 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9791 D(p->level--);
9792 return _res;
9793 }
9794 int _mark = p->mark;
9795 { // NEWLINE INDENT statements DEDENT
9796 if (p->error_indicator) {
9797 D(p->level--);
9798 return NULL;
9799 }
9800 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 +01009801 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009802 Token * dedent_var;
9803 Token * indent_var;
9804 Token * newline_var;
9805 if (
9806 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9807 &&
9808 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9809 &&
9810 (a = statements_rule(p)) // statements
9811 &&
9812 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9813 )
9814 {
9815 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9816 _res = a;
9817 if (_res == NULL && PyErr_Occurred()) {
9818 p->error_indicator = 1;
9819 D(p->level--);
9820 return NULL;
9821 }
9822 goto done;
9823 }
9824 p->mark = _mark;
9825 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9827 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009828 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009829 if (p->error_indicator) {
9830 D(p->level--);
9831 return NULL;
9832 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009833 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9834 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009835 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009836 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009837 )
9838 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009839 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9840 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009841 goto done;
9842 }
9843 p->mark = _mark;
9844 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009846 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009847 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009848 if (p->error_indicator) {
9849 D(p->level--);
9850 return NULL;
9851 }
9852 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9853 void *invalid_block_var;
9854 if (
9855 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9856 )
9857 {
9858 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9859 _res = invalid_block_var;
9860 goto done;
9861 }
9862 p->mark = _mark;
9863 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9865 }
9866 _res = NULL;
9867 done:
9868 _PyPegen_insert_memo(p, _mark, block_type, _res);
9869 D(p->level--);
9870 return _res;
9871}
9872
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009873// star_expressions:
9874// | star_expression ((',' star_expression))+ ','?
9875// | star_expression ','
9876// | star_expression
9877static expr_ty
9878star_expressions_rule(Parser *p)
9879{
9880 D(p->level++);
9881 if (p->error_indicator) {
9882 D(p->level--);
9883 return NULL;
9884 }
9885 expr_ty _res = NULL;
9886 int _mark = p->mark;
9887 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9888 p->error_indicator = 1;
9889 D(p->level--);
9890 return NULL;
9891 }
9892 int _start_lineno = p->tokens[_mark]->lineno;
9893 UNUSED(_start_lineno); // Only used by EXTRA macro
9894 int _start_col_offset = p->tokens[_mark]->col_offset;
9895 UNUSED(_start_col_offset); // Only used by EXTRA macro
9896 { // star_expression ((',' star_expression))+ ','?
9897 if (p->error_indicator) {
9898 D(p->level--);
9899 return NULL;
9900 }
9901 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9902 void *_opt_var;
9903 UNUSED(_opt_var); // Silence compiler warnings
9904 expr_ty a;
9905 asdl_seq * b;
9906 if (
9907 (a = star_expression_rule(p)) // star_expression
9908 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009909 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009910 &&
9911 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9912 )
9913 {
9914 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9915 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9916 if (_token == NULL) {
9917 D(p->level--);
9918 return NULL;
9919 }
9920 int _end_lineno = _token->end_lineno;
9921 UNUSED(_end_lineno); // Only used by EXTRA macro
9922 int _end_col_offset = _token->end_col_offset;
9923 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009924 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009925 if (_res == NULL && PyErr_Occurred()) {
9926 p->error_indicator = 1;
9927 D(p->level--);
9928 return NULL;
9929 }
9930 goto done;
9931 }
9932 p->mark = _mark;
9933 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9935 }
9936 { // star_expression ','
9937 if (p->error_indicator) {
9938 D(p->level--);
9939 return NULL;
9940 }
9941 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9942 Token * _literal;
9943 expr_ty a;
9944 if (
9945 (a = star_expression_rule(p)) // star_expression
9946 &&
9947 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9948 )
9949 {
9950 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9951 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9952 if (_token == NULL) {
9953 D(p->level--);
9954 return NULL;
9955 }
9956 int _end_lineno = _token->end_lineno;
9957 UNUSED(_end_lineno); // Only used by EXTRA macro
9958 int _end_col_offset = _token->end_col_offset;
9959 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009960 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009961 if (_res == NULL && PyErr_Occurred()) {
9962 p->error_indicator = 1;
9963 D(p->level--);
9964 return NULL;
9965 }
9966 goto done;
9967 }
9968 p->mark = _mark;
9969 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9971 }
9972 { // star_expression
9973 if (p->error_indicator) {
9974 D(p->level--);
9975 return NULL;
9976 }
9977 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9978 expr_ty star_expression_var;
9979 if (
9980 (star_expression_var = star_expression_rule(p)) // star_expression
9981 )
9982 {
9983 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9984 _res = star_expression_var;
9985 goto done;
9986 }
9987 p->mark = _mark;
9988 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9990 }
9991 _res = NULL;
9992 done:
9993 D(p->level--);
9994 return _res;
9995}
9996
9997// star_expression: '*' bitwise_or | expression
9998static expr_ty
9999star_expression_rule(Parser *p)
10000{
10001 D(p->level++);
10002 if (p->error_indicator) {
10003 D(p->level--);
10004 return NULL;
10005 }
10006 expr_ty _res = NULL;
10007 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
10008 D(p->level--);
10009 return _res;
10010 }
10011 int _mark = p->mark;
10012 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10013 p->error_indicator = 1;
10014 D(p->level--);
10015 return NULL;
10016 }
10017 int _start_lineno = p->tokens[_mark]->lineno;
10018 UNUSED(_start_lineno); // Only used by EXTRA macro
10019 int _start_col_offset = p->tokens[_mark]->col_offset;
10020 UNUSED(_start_col_offset); // Only used by EXTRA macro
10021 { // '*' bitwise_or
10022 if (p->error_indicator) {
10023 D(p->level--);
10024 return NULL;
10025 }
10026 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10027 Token * _literal;
10028 expr_ty a;
10029 if (
10030 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10031 &&
10032 (a = bitwise_or_rule(p)) // bitwise_or
10033 )
10034 {
10035 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10036 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10037 if (_token == NULL) {
10038 D(p->level--);
10039 return NULL;
10040 }
10041 int _end_lineno = _token->end_lineno;
10042 UNUSED(_end_lineno); // Only used by EXTRA macro
10043 int _end_col_offset = _token->end_col_offset;
10044 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010045 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010046 if (_res == NULL && PyErr_Occurred()) {
10047 p->error_indicator = 1;
10048 D(p->level--);
10049 return NULL;
10050 }
10051 goto done;
10052 }
10053 p->mark = _mark;
10054 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10056 }
10057 { // expression
10058 if (p->error_indicator) {
10059 D(p->level--);
10060 return NULL;
10061 }
10062 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10063 expr_ty expression_var;
10064 if (
10065 (expression_var = expression_rule(p)) // expression
10066 )
10067 {
10068 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10069 _res = expression_var;
10070 goto done;
10071 }
10072 p->mark = _mark;
10073 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10075 }
10076 _res = NULL;
10077 done:
10078 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10079 D(p->level--);
10080 return _res;
10081}
10082
10083// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010084static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010085star_named_expressions_rule(Parser *p)
10086{
10087 D(p->level++);
10088 if (p->error_indicator) {
10089 D(p->level--);
10090 return NULL;
10091 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010092 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010093 int _mark = p->mark;
10094 { // ','.star_named_expression+ ','?
10095 if (p->error_indicator) {
10096 D(p->level--);
10097 return NULL;
10098 }
10099 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10100 void *_opt_var;
10101 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010102 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010103 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010104 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010105 &&
10106 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10107 )
10108 {
10109 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10110 _res = a;
10111 if (_res == NULL && PyErr_Occurred()) {
10112 p->error_indicator = 1;
10113 D(p->level--);
10114 return NULL;
10115 }
10116 goto done;
10117 }
10118 p->mark = _mark;
10119 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10121 }
10122 _res = NULL;
10123 done:
10124 D(p->level--);
10125 return _res;
10126}
10127
10128// star_named_expression: '*' bitwise_or | named_expression
10129static expr_ty
10130star_named_expression_rule(Parser *p)
10131{
10132 D(p->level++);
10133 if (p->error_indicator) {
10134 D(p->level--);
10135 return NULL;
10136 }
10137 expr_ty _res = NULL;
10138 int _mark = p->mark;
10139 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10140 p->error_indicator = 1;
10141 D(p->level--);
10142 return NULL;
10143 }
10144 int _start_lineno = p->tokens[_mark]->lineno;
10145 UNUSED(_start_lineno); // Only used by EXTRA macro
10146 int _start_col_offset = p->tokens[_mark]->col_offset;
10147 UNUSED(_start_col_offset); // Only used by EXTRA macro
10148 { // '*' bitwise_or
10149 if (p->error_indicator) {
10150 D(p->level--);
10151 return NULL;
10152 }
10153 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10154 Token * _literal;
10155 expr_ty a;
10156 if (
10157 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10158 &&
10159 (a = bitwise_or_rule(p)) // bitwise_or
10160 )
10161 {
10162 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10163 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10164 if (_token == NULL) {
10165 D(p->level--);
10166 return NULL;
10167 }
10168 int _end_lineno = _token->end_lineno;
10169 UNUSED(_end_lineno); // Only used by EXTRA macro
10170 int _end_col_offset = _token->end_col_offset;
10171 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010172 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010173 if (_res == NULL && PyErr_Occurred()) {
10174 p->error_indicator = 1;
10175 D(p->level--);
10176 return NULL;
10177 }
10178 goto done;
10179 }
10180 p->mark = _mark;
10181 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10183 }
10184 { // named_expression
10185 if (p->error_indicator) {
10186 D(p->level--);
10187 return NULL;
10188 }
10189 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10190 expr_ty named_expression_var;
10191 if (
10192 (named_expression_var = named_expression_rule(p)) // named_expression
10193 )
10194 {
10195 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10196 _res = named_expression_var;
10197 goto done;
10198 }
10199 p->mark = _mark;
10200 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10202 }
10203 _res = NULL;
10204 done:
10205 D(p->level--);
10206 return _res;
10207}
10208
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010209// assigment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010210static expr_ty
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010211assigment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010212{
10213 D(p->level++);
10214 if (p->error_indicator) {
10215 D(p->level--);
10216 return NULL;
10217 }
10218 expr_ty _res = NULL;
10219 int _mark = p->mark;
10220 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10221 p->error_indicator = 1;
10222 D(p->level--);
10223 return NULL;
10224 }
10225 int _start_lineno = p->tokens[_mark]->lineno;
10226 UNUSED(_start_lineno); // Only used by EXTRA macro
10227 int _start_col_offset = p->tokens[_mark]->col_offset;
10228 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010229 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010230 if (p->error_indicator) {
10231 D(p->level--);
10232 return NULL;
10233 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010234 D(fprintf(stderr, "%*c> assigment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010235 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010236 Token * _literal;
10237 expr_ty a;
10238 expr_ty b;
10239 if (
10240 (a = _PyPegen_name_token(p)) // NAME
10241 &&
10242 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10243 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010244 (_cut_var = 1)
10245 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010246 (b = expression_rule(p)) // expression
10247 )
10248 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010249 D(fprintf(stderr, "%*c+ assigment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010250 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10251 if (_token == NULL) {
10252 D(p->level--);
10253 return NULL;
10254 }
10255 int _end_lineno = _token->end_lineno;
10256 UNUSED(_end_lineno); // Only used by EXTRA macro
10257 int _end_col_offset = _token->end_col_offset;
10258 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010259 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010260 if (_res == NULL && PyErr_Occurred()) {
10261 p->error_indicator = 1;
10262 D(p->level--);
10263 return NULL;
10264 }
10265 goto done;
10266 }
10267 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010268 D(fprintf(stderr, "%*c%s assigment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10270 if (_cut_var) {
10271 D(p->level--);
10272 return NULL;
10273 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010274 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010275 _res = NULL;
10276 done:
10277 D(p->level--);
10278 return _res;
10279}
10280
10281// named_expression: assigment_expression | invalid_named_expression | expression !':='
10282static expr_ty
10283named_expression_rule(Parser *p)
10284{
10285 D(p->level++);
10286 if (p->error_indicator) {
10287 D(p->level--);
10288 return NULL;
10289 }
10290 expr_ty _res = NULL;
10291 int _mark = p->mark;
10292 { // assigment_expression
10293 if (p->error_indicator) {
10294 D(p->level--);
10295 return NULL;
10296 }
10297 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10298 expr_ty assigment_expression_var;
10299 if (
10300 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
10301 )
10302 {
10303 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10304 _res = assigment_expression_var;
10305 goto done;
10306 }
10307 p->mark = _mark;
10308 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
10310 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010311 if (p->call_invalid_rules) { // invalid_named_expression
10312 if (p->error_indicator) {
10313 D(p->level--);
10314 return NULL;
10315 }
10316 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10317 void *invalid_named_expression_var;
10318 if (
10319 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10320 )
10321 {
10322 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10323 _res = invalid_named_expression_var;
10324 goto done;
10325 }
10326 p->mark = _mark;
10327 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10329 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010330 { // expression !':='
10331 if (p->error_indicator) {
10332 D(p->level--);
10333 return NULL;
10334 }
10335 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10336 expr_ty expression_var;
10337 if (
10338 (expression_var = expression_rule(p)) // expression
10339 &&
10340 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10341 )
10342 {
10343 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10344 _res = expression_var;
10345 goto done;
10346 }
10347 p->mark = _mark;
10348 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10350 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010351 _res = NULL;
10352 done:
10353 D(p->level--);
10354 return _res;
10355}
10356
10357// annotated_rhs: yield_expr | star_expressions
10358static expr_ty
10359annotated_rhs_rule(Parser *p)
10360{
10361 D(p->level++);
10362 if (p->error_indicator) {
10363 D(p->level--);
10364 return NULL;
10365 }
10366 expr_ty _res = NULL;
10367 int _mark = p->mark;
10368 { // yield_expr
10369 if (p->error_indicator) {
10370 D(p->level--);
10371 return NULL;
10372 }
10373 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10374 expr_ty yield_expr_var;
10375 if (
10376 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10377 )
10378 {
10379 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10380 _res = yield_expr_var;
10381 goto done;
10382 }
10383 p->mark = _mark;
10384 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10386 }
10387 { // star_expressions
10388 if (p->error_indicator) {
10389 D(p->level--);
10390 return NULL;
10391 }
10392 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10393 expr_ty star_expressions_var;
10394 if (
10395 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10396 )
10397 {
10398 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10399 _res = star_expressions_var;
10400 goto done;
10401 }
10402 p->mark = _mark;
10403 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10405 }
10406 _res = NULL;
10407 done:
10408 D(p->level--);
10409 return _res;
10410}
10411
10412// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10413static expr_ty
10414expressions_rule(Parser *p)
10415{
10416 D(p->level++);
10417 if (p->error_indicator) {
10418 D(p->level--);
10419 return NULL;
10420 }
10421 expr_ty _res = NULL;
10422 int _mark = p->mark;
10423 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10424 p->error_indicator = 1;
10425 D(p->level--);
10426 return NULL;
10427 }
10428 int _start_lineno = p->tokens[_mark]->lineno;
10429 UNUSED(_start_lineno); // Only used by EXTRA macro
10430 int _start_col_offset = p->tokens[_mark]->col_offset;
10431 UNUSED(_start_col_offset); // Only used by EXTRA macro
10432 { // expression ((',' expression))+ ','?
10433 if (p->error_indicator) {
10434 D(p->level--);
10435 return NULL;
10436 }
10437 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10438 void *_opt_var;
10439 UNUSED(_opt_var); // Silence compiler warnings
10440 expr_ty a;
10441 asdl_seq * b;
10442 if (
10443 (a = expression_rule(p)) // expression
10444 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010445 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010446 &&
10447 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10448 )
10449 {
10450 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10451 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10452 if (_token == NULL) {
10453 D(p->level--);
10454 return NULL;
10455 }
10456 int _end_lineno = _token->end_lineno;
10457 UNUSED(_end_lineno); // Only used by EXTRA macro
10458 int _end_col_offset = _token->end_col_offset;
10459 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010460 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010461 if (_res == NULL && PyErr_Occurred()) {
10462 p->error_indicator = 1;
10463 D(p->level--);
10464 return NULL;
10465 }
10466 goto done;
10467 }
10468 p->mark = _mark;
10469 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10471 }
10472 { // expression ','
10473 if (p->error_indicator) {
10474 D(p->level--);
10475 return NULL;
10476 }
10477 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10478 Token * _literal;
10479 expr_ty a;
10480 if (
10481 (a = expression_rule(p)) // expression
10482 &&
10483 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10484 )
10485 {
10486 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10488 if (_token == NULL) {
10489 D(p->level--);
10490 return NULL;
10491 }
10492 int _end_lineno = _token->end_lineno;
10493 UNUSED(_end_lineno); // Only used by EXTRA macro
10494 int _end_col_offset = _token->end_col_offset;
10495 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010496 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010497 if (_res == NULL && PyErr_Occurred()) {
10498 p->error_indicator = 1;
10499 D(p->level--);
10500 return NULL;
10501 }
10502 goto done;
10503 }
10504 p->mark = _mark;
10505 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10507 }
10508 { // expression
10509 if (p->error_indicator) {
10510 D(p->level--);
10511 return NULL;
10512 }
10513 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10514 expr_ty expression_var;
10515 if (
10516 (expression_var = expression_rule(p)) // expression
10517 )
10518 {
10519 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10520 _res = expression_var;
10521 goto done;
10522 }
10523 p->mark = _mark;
10524 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10526 }
10527 _res = NULL;
10528 done:
10529 D(p->level--);
10530 return _res;
10531}
10532
Pablo Galindob2802482021-04-15 21:38:45 +010010533// expression:
10534// | invalid_expression
10535// | disjunction 'if' disjunction 'else' expression
10536// | disjunction
10537// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010538static expr_ty
10539expression_rule(Parser *p)
10540{
10541 D(p->level++);
10542 if (p->error_indicator) {
10543 D(p->level--);
10544 return NULL;
10545 }
10546 expr_ty _res = NULL;
10547 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10548 D(p->level--);
10549 return _res;
10550 }
10551 int _mark = p->mark;
10552 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10553 p->error_indicator = 1;
10554 D(p->level--);
10555 return NULL;
10556 }
10557 int _start_lineno = p->tokens[_mark]->lineno;
10558 UNUSED(_start_lineno); // Only used by EXTRA macro
10559 int _start_col_offset = p->tokens[_mark]->col_offset;
10560 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010561 if (p->call_invalid_rules) { // invalid_expression
10562 if (p->error_indicator) {
10563 D(p->level--);
10564 return NULL;
10565 }
10566 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10567 void *invalid_expression_var;
10568 if (
10569 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10570 )
10571 {
10572 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10573 _res = invalid_expression_var;
10574 goto done;
10575 }
10576 p->mark = _mark;
10577 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10579 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010580 { // disjunction 'if' disjunction 'else' expression
10581 if (p->error_indicator) {
10582 D(p->level--);
10583 return NULL;
10584 }
10585 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10586 Token * _keyword;
10587 Token * _keyword_1;
10588 expr_ty a;
10589 expr_ty b;
10590 expr_ty c;
10591 if (
10592 (a = disjunction_rule(p)) // disjunction
10593 &&
10594 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10595 &&
10596 (b = disjunction_rule(p)) // disjunction
10597 &&
10598 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10599 &&
10600 (c = expression_rule(p)) // expression
10601 )
10602 {
10603 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10604 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10605 if (_token == NULL) {
10606 D(p->level--);
10607 return NULL;
10608 }
10609 int _end_lineno = _token->end_lineno;
10610 UNUSED(_end_lineno); // Only used by EXTRA macro
10611 int _end_col_offset = _token->end_col_offset;
10612 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010613 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010614 if (_res == NULL && PyErr_Occurred()) {
10615 p->error_indicator = 1;
10616 D(p->level--);
10617 return NULL;
10618 }
10619 goto done;
10620 }
10621 p->mark = _mark;
10622 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10624 }
10625 { // disjunction
10626 if (p->error_indicator) {
10627 D(p->level--);
10628 return NULL;
10629 }
10630 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10631 expr_ty disjunction_var;
10632 if (
10633 (disjunction_var = disjunction_rule(p)) // disjunction
10634 )
10635 {
10636 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10637 _res = disjunction_var;
10638 goto done;
10639 }
10640 p->mark = _mark;
10641 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10643 }
10644 { // lambdef
10645 if (p->error_indicator) {
10646 D(p->level--);
10647 return NULL;
10648 }
10649 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10650 expr_ty lambdef_var;
10651 if (
10652 (lambdef_var = lambdef_rule(p)) // lambdef
10653 )
10654 {
10655 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10656 _res = lambdef_var;
10657 goto done;
10658 }
10659 p->mark = _mark;
10660 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10662 }
10663 _res = NULL;
10664 done:
10665 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10666 D(p->level--);
10667 return _res;
10668}
10669
10670// lambdef: 'lambda' lambda_params? ':' expression
10671static expr_ty
10672lambdef_rule(Parser *p)
10673{
10674 D(p->level++);
10675 if (p->error_indicator) {
10676 D(p->level--);
10677 return NULL;
10678 }
10679 expr_ty _res = NULL;
10680 int _mark = p->mark;
10681 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10682 p->error_indicator = 1;
10683 D(p->level--);
10684 return NULL;
10685 }
10686 int _start_lineno = p->tokens[_mark]->lineno;
10687 UNUSED(_start_lineno); // Only used by EXTRA macro
10688 int _start_col_offset = p->tokens[_mark]->col_offset;
10689 UNUSED(_start_col_offset); // Only used by EXTRA macro
10690 { // 'lambda' lambda_params? ':' expression
10691 if (p->error_indicator) {
10692 D(p->level--);
10693 return NULL;
10694 }
10695 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10696 Token * _keyword;
10697 Token * _literal;
10698 void *a;
10699 expr_ty b;
10700 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010701 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010702 &&
10703 (a = lambda_params_rule(p), 1) // lambda_params?
10704 &&
10705 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10706 &&
10707 (b = expression_rule(p)) // expression
10708 )
10709 {
10710 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10711 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10712 if (_token == NULL) {
10713 D(p->level--);
10714 return NULL;
10715 }
10716 int _end_lineno = _token->end_lineno;
10717 UNUSED(_end_lineno); // Only used by EXTRA macro
10718 int _end_col_offset = _token->end_col_offset;
10719 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010720 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010721 if (_res == NULL && PyErr_Occurred()) {
10722 p->error_indicator = 1;
10723 D(p->level--);
10724 return NULL;
10725 }
10726 goto done;
10727 }
10728 p->mark = _mark;
10729 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10731 }
10732 _res = NULL;
10733 done:
10734 D(p->level--);
10735 return _res;
10736}
10737
10738// lambda_params: invalid_lambda_parameters | lambda_parameters
10739static arguments_ty
10740lambda_params_rule(Parser *p)
10741{
10742 D(p->level++);
10743 if (p->error_indicator) {
10744 D(p->level--);
10745 return NULL;
10746 }
10747 arguments_ty _res = NULL;
10748 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010749 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010750 if (p->error_indicator) {
10751 D(p->level--);
10752 return NULL;
10753 }
10754 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10755 void *invalid_lambda_parameters_var;
10756 if (
10757 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10758 )
10759 {
10760 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10761 _res = invalid_lambda_parameters_var;
10762 goto done;
10763 }
10764 p->mark = _mark;
10765 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10767 }
10768 { // lambda_parameters
10769 if (p->error_indicator) {
10770 D(p->level--);
10771 return NULL;
10772 }
10773 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10774 arguments_ty lambda_parameters_var;
10775 if (
10776 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10777 )
10778 {
10779 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10780 _res = lambda_parameters_var;
10781 goto done;
10782 }
10783 p->mark = _mark;
10784 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10786 }
10787 _res = NULL;
10788 done:
10789 D(p->level--);
10790 return _res;
10791}
10792
10793// lambda_parameters:
10794// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10795// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10796// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10797// | lambda_param_with_default+ lambda_star_etc?
10798// | lambda_star_etc
10799static arguments_ty
10800lambda_parameters_rule(Parser *p)
10801{
10802 D(p->level++);
10803 if (p->error_indicator) {
10804 D(p->level--);
10805 return NULL;
10806 }
10807 arguments_ty _res = NULL;
10808 int _mark = p->mark;
10809 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10810 if (p->error_indicator) {
10811 D(p->level--);
10812 return NULL;
10813 }
10814 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 +010010815 asdl_arg_seq* a;
10816 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010817 asdl_seq * c;
10818 void *d;
10819 if (
10820 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10821 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010822 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010823 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010824 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010825 &&
10826 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10827 )
10828 {
10829 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?"));
10830 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10831 if (_res == NULL && PyErr_Occurred()) {
10832 p->error_indicator = 1;
10833 D(p->level--);
10834 return NULL;
10835 }
10836 goto done;
10837 }
10838 p->mark = _mark;
10839 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10841 }
10842 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10843 if (p->error_indicator) {
10844 D(p->level--);
10845 return NULL;
10846 }
10847 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?"));
10848 SlashWithDefault* a;
10849 asdl_seq * b;
10850 void *c;
10851 if (
10852 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10853 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010854 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010855 &&
10856 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10857 )
10858 {
10859 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?"));
10860 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10861 if (_res == NULL && PyErr_Occurred()) {
10862 p->error_indicator = 1;
10863 D(p->level--);
10864 return NULL;
10865 }
10866 goto done;
10867 }
10868 p->mark = _mark;
10869 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10871 }
10872 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10873 if (p->error_indicator) {
10874 D(p->level--);
10875 return NULL;
10876 }
10877 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 +010010878 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010879 asdl_seq * b;
10880 void *c;
10881 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010882 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010883 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010884 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010885 &&
10886 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10887 )
10888 {
10889 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?"));
10890 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10891 if (_res == NULL && PyErr_Occurred()) {
10892 p->error_indicator = 1;
10893 D(p->level--);
10894 return NULL;
10895 }
10896 goto done;
10897 }
10898 p->mark = _mark;
10899 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10901 }
10902 { // lambda_param_with_default+ lambda_star_etc?
10903 if (p->error_indicator) {
10904 D(p->level--);
10905 return NULL;
10906 }
10907 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10908 asdl_seq * a;
10909 void *b;
10910 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010911 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010912 &&
10913 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10914 )
10915 {
10916 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10917 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10918 if (_res == NULL && PyErr_Occurred()) {
10919 p->error_indicator = 1;
10920 D(p->level--);
10921 return NULL;
10922 }
10923 goto done;
10924 }
10925 p->mark = _mark;
10926 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10928 }
10929 { // lambda_star_etc
10930 if (p->error_indicator) {
10931 D(p->level--);
10932 return NULL;
10933 }
10934 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10935 StarEtc* a;
10936 if (
10937 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10938 )
10939 {
10940 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10941 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10942 if (_res == NULL && PyErr_Occurred()) {
10943 p->error_indicator = 1;
10944 D(p->level--);
10945 return NULL;
10946 }
10947 goto done;
10948 }
10949 p->mark = _mark;
10950 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10952 }
10953 _res = NULL;
10954 done:
10955 D(p->level--);
10956 return _res;
10957}
10958
10959// lambda_slash_no_default:
10960// | lambda_param_no_default+ '/' ','
10961// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010962static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010963lambda_slash_no_default_rule(Parser *p)
10964{
10965 D(p->level++);
10966 if (p->error_indicator) {
10967 D(p->level--);
10968 return NULL;
10969 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010970 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010971 int _mark = p->mark;
10972 { // lambda_param_no_default+ '/' ','
10973 if (p->error_indicator) {
10974 D(p->level--);
10975 return NULL;
10976 }
10977 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10978 Token * _literal;
10979 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010980 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010981 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010982 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010983 &&
10984 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10985 &&
10986 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10987 )
10988 {
10989 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10990 _res = a;
10991 if (_res == NULL && PyErr_Occurred()) {
10992 p->error_indicator = 1;
10993 D(p->level--);
10994 return NULL;
10995 }
10996 goto done;
10997 }
10998 p->mark = _mark;
10999 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11001 }
11002 { // lambda_param_no_default+ '/' &':'
11003 if (p->error_indicator) {
11004 D(p->level--);
11005 return NULL;
11006 }
11007 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11008 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011009 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011010 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011011 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011012 &&
11013 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11014 &&
11015 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11016 )
11017 {
11018 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11019 _res = a;
11020 if (_res == NULL && PyErr_Occurred()) {
11021 p->error_indicator = 1;
11022 D(p->level--);
11023 return NULL;
11024 }
11025 goto done;
11026 }
11027 p->mark = _mark;
11028 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11030 }
11031 _res = NULL;
11032 done:
11033 D(p->level--);
11034 return _res;
11035}
11036
11037// lambda_slash_with_default:
11038// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11039// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11040static SlashWithDefault*
11041lambda_slash_with_default_rule(Parser *p)
11042{
11043 D(p->level++);
11044 if (p->error_indicator) {
11045 D(p->level--);
11046 return NULL;
11047 }
11048 SlashWithDefault* _res = NULL;
11049 int _mark = p->mark;
11050 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11051 if (p->error_indicator) {
11052 D(p->level--);
11053 return NULL;
11054 }
11055 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+ '/' ','"));
11056 Token * _literal;
11057 Token * _literal_1;
11058 asdl_seq * a;
11059 asdl_seq * b;
11060 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011061 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011062 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011063 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011064 &&
11065 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11066 &&
11067 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11068 )
11069 {
11070 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 +010011071 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011072 if (_res == NULL && PyErr_Occurred()) {
11073 p->error_indicator = 1;
11074 D(p->level--);
11075 return NULL;
11076 }
11077 goto done;
11078 }
11079 p->mark = _mark;
11080 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11082 }
11083 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11084 if (p->error_indicator) {
11085 D(p->level--);
11086 return NULL;
11087 }
11088 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+ '/' &':'"));
11089 Token * _literal;
11090 asdl_seq * a;
11091 asdl_seq * b;
11092 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011093 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011094 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011095 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011096 &&
11097 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11098 &&
11099 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11100 )
11101 {
11102 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 +010011103 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011104 if (_res == NULL && PyErr_Occurred()) {
11105 p->error_indicator = 1;
11106 D(p->level--);
11107 return NULL;
11108 }
11109 goto done;
11110 }
11111 p->mark = _mark;
11112 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11114 }
11115 _res = NULL;
11116 done:
11117 D(p->level--);
11118 return _res;
11119}
11120
11121// lambda_star_etc:
11122// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11123// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11124// | lambda_kwds
11125// | invalid_lambda_star_etc
11126static StarEtc*
11127lambda_star_etc_rule(Parser *p)
11128{
11129 D(p->level++);
11130 if (p->error_indicator) {
11131 D(p->level--);
11132 return NULL;
11133 }
11134 StarEtc* _res = NULL;
11135 int _mark = p->mark;
11136 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11137 if (p->error_indicator) {
11138 D(p->level--);
11139 return NULL;
11140 }
11141 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?"));
11142 Token * _literal;
11143 arg_ty a;
11144 asdl_seq * b;
11145 void *c;
11146 if (
11147 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11148 &&
11149 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11150 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011151 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011152 &&
11153 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11154 )
11155 {
11156 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?"));
11157 _res = _PyPegen_star_etc ( p , a , b , c );
11158 if (_res == NULL && PyErr_Occurred()) {
11159 p->error_indicator = 1;
11160 D(p->level--);
11161 return NULL;
11162 }
11163 goto done;
11164 }
11165 p->mark = _mark;
11166 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11168 }
11169 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11170 if (p->error_indicator) {
11171 D(p->level--);
11172 return NULL;
11173 }
11174 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11175 Token * _literal;
11176 Token * _literal_1;
11177 asdl_seq * b;
11178 void *c;
11179 if (
11180 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11181 &&
11182 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11183 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011184 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011185 &&
11186 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11187 )
11188 {
11189 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11190 _res = _PyPegen_star_etc ( p , NULL , b , c );
11191 if (_res == NULL && PyErr_Occurred()) {
11192 p->error_indicator = 1;
11193 D(p->level--);
11194 return NULL;
11195 }
11196 goto done;
11197 }
11198 p->mark = _mark;
11199 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11201 }
11202 { // lambda_kwds
11203 if (p->error_indicator) {
11204 D(p->level--);
11205 return NULL;
11206 }
11207 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11208 arg_ty a;
11209 if (
11210 (a = lambda_kwds_rule(p)) // lambda_kwds
11211 )
11212 {
11213 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11214 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11215 if (_res == NULL && PyErr_Occurred()) {
11216 p->error_indicator = 1;
11217 D(p->level--);
11218 return NULL;
11219 }
11220 goto done;
11221 }
11222 p->mark = _mark;
11223 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11224 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11225 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011226 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011227 if (p->error_indicator) {
11228 D(p->level--);
11229 return NULL;
11230 }
11231 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11232 void *invalid_lambda_star_etc_var;
11233 if (
11234 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11235 )
11236 {
11237 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11238 _res = invalid_lambda_star_etc_var;
11239 goto done;
11240 }
11241 p->mark = _mark;
11242 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11244 }
11245 _res = NULL;
11246 done:
11247 D(p->level--);
11248 return _res;
11249}
11250
11251// lambda_kwds: '**' lambda_param_no_default
11252static arg_ty
11253lambda_kwds_rule(Parser *p)
11254{
11255 D(p->level++);
11256 if (p->error_indicator) {
11257 D(p->level--);
11258 return NULL;
11259 }
11260 arg_ty _res = NULL;
11261 int _mark = p->mark;
11262 { // '**' lambda_param_no_default
11263 if (p->error_indicator) {
11264 D(p->level--);
11265 return NULL;
11266 }
11267 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11268 Token * _literal;
11269 arg_ty a;
11270 if (
11271 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11272 &&
11273 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11274 )
11275 {
11276 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11277 _res = a;
11278 if (_res == NULL && PyErr_Occurred()) {
11279 p->error_indicator = 1;
11280 D(p->level--);
11281 return NULL;
11282 }
11283 goto done;
11284 }
11285 p->mark = _mark;
11286 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11288 }
11289 _res = NULL;
11290 done:
11291 D(p->level--);
11292 return _res;
11293}
11294
11295// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11296static arg_ty
11297lambda_param_no_default_rule(Parser *p)
11298{
11299 D(p->level++);
11300 if (p->error_indicator) {
11301 D(p->level--);
11302 return NULL;
11303 }
11304 arg_ty _res = NULL;
11305 int _mark = p->mark;
11306 { // lambda_param ','
11307 if (p->error_indicator) {
11308 D(p->level--);
11309 return NULL;
11310 }
11311 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11312 Token * _literal;
11313 arg_ty a;
11314 if (
11315 (a = lambda_param_rule(p)) // lambda_param
11316 &&
11317 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11318 )
11319 {
11320 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11321 _res = a;
11322 if (_res == NULL && PyErr_Occurred()) {
11323 p->error_indicator = 1;
11324 D(p->level--);
11325 return NULL;
11326 }
11327 goto done;
11328 }
11329 p->mark = _mark;
11330 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11332 }
11333 { // lambda_param &':'
11334 if (p->error_indicator) {
11335 D(p->level--);
11336 return NULL;
11337 }
11338 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11339 arg_ty a;
11340 if (
11341 (a = lambda_param_rule(p)) // lambda_param
11342 &&
11343 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11344 )
11345 {
11346 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11347 _res = a;
11348 if (_res == NULL && PyErr_Occurred()) {
11349 p->error_indicator = 1;
11350 D(p->level--);
11351 return NULL;
11352 }
11353 goto done;
11354 }
11355 p->mark = _mark;
11356 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11358 }
11359 _res = NULL;
11360 done:
11361 D(p->level--);
11362 return _res;
11363}
11364
11365// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11366static NameDefaultPair*
11367lambda_param_with_default_rule(Parser *p)
11368{
11369 D(p->level++);
11370 if (p->error_indicator) {
11371 D(p->level--);
11372 return NULL;
11373 }
11374 NameDefaultPair* _res = NULL;
11375 int _mark = p->mark;
11376 { // lambda_param default ','
11377 if (p->error_indicator) {
11378 D(p->level--);
11379 return NULL;
11380 }
11381 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11382 Token * _literal;
11383 arg_ty a;
11384 expr_ty c;
11385 if (
11386 (a = lambda_param_rule(p)) // lambda_param
11387 &&
11388 (c = default_rule(p)) // default
11389 &&
11390 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11391 )
11392 {
11393 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11394 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11395 if (_res == NULL && PyErr_Occurred()) {
11396 p->error_indicator = 1;
11397 D(p->level--);
11398 return NULL;
11399 }
11400 goto done;
11401 }
11402 p->mark = _mark;
11403 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11405 }
11406 { // lambda_param default &':'
11407 if (p->error_indicator) {
11408 D(p->level--);
11409 return NULL;
11410 }
11411 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11412 arg_ty a;
11413 expr_ty c;
11414 if (
11415 (a = lambda_param_rule(p)) // lambda_param
11416 &&
11417 (c = default_rule(p)) // default
11418 &&
11419 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11420 )
11421 {
11422 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11423 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11424 if (_res == NULL && PyErr_Occurred()) {
11425 p->error_indicator = 1;
11426 D(p->level--);
11427 return NULL;
11428 }
11429 goto done;
11430 }
11431 p->mark = _mark;
11432 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11434 }
11435 _res = NULL;
11436 done:
11437 D(p->level--);
11438 return _res;
11439}
11440
11441// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11442static NameDefaultPair*
11443lambda_param_maybe_default_rule(Parser *p)
11444{
11445 D(p->level++);
11446 if (p->error_indicator) {
11447 D(p->level--);
11448 return NULL;
11449 }
11450 NameDefaultPair* _res = NULL;
11451 int _mark = p->mark;
11452 { // lambda_param default? ','
11453 if (p->error_indicator) {
11454 D(p->level--);
11455 return NULL;
11456 }
11457 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11458 Token * _literal;
11459 arg_ty a;
11460 void *c;
11461 if (
11462 (a = lambda_param_rule(p)) // lambda_param
11463 &&
11464 (c = default_rule(p), 1) // default?
11465 &&
11466 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11467 )
11468 {
11469 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11470 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11471 if (_res == NULL && PyErr_Occurred()) {
11472 p->error_indicator = 1;
11473 D(p->level--);
11474 return NULL;
11475 }
11476 goto done;
11477 }
11478 p->mark = _mark;
11479 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11481 }
11482 { // lambda_param default? &':'
11483 if (p->error_indicator) {
11484 D(p->level--);
11485 return NULL;
11486 }
11487 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11488 arg_ty a;
11489 void *c;
11490 if (
11491 (a = lambda_param_rule(p)) // lambda_param
11492 &&
11493 (c = default_rule(p), 1) // default?
11494 &&
11495 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11496 )
11497 {
11498 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11499 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11500 if (_res == NULL && PyErr_Occurred()) {
11501 p->error_indicator = 1;
11502 D(p->level--);
11503 return NULL;
11504 }
11505 goto done;
11506 }
11507 p->mark = _mark;
11508 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11510 }
11511 _res = NULL;
11512 done:
11513 D(p->level--);
11514 return _res;
11515}
11516
11517// lambda_param: NAME
11518static arg_ty
11519lambda_param_rule(Parser *p)
11520{
11521 D(p->level++);
11522 if (p->error_indicator) {
11523 D(p->level--);
11524 return NULL;
11525 }
11526 arg_ty _res = NULL;
11527 int _mark = p->mark;
11528 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11529 p->error_indicator = 1;
11530 D(p->level--);
11531 return NULL;
11532 }
11533 int _start_lineno = p->tokens[_mark]->lineno;
11534 UNUSED(_start_lineno); // Only used by EXTRA macro
11535 int _start_col_offset = p->tokens[_mark]->col_offset;
11536 UNUSED(_start_col_offset); // Only used by EXTRA macro
11537 { // NAME
11538 if (p->error_indicator) {
11539 D(p->level--);
11540 return NULL;
11541 }
11542 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11543 expr_ty a;
11544 if (
11545 (a = _PyPegen_name_token(p)) // NAME
11546 )
11547 {
11548 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11549 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11550 if (_token == NULL) {
11551 D(p->level--);
11552 return NULL;
11553 }
11554 int _end_lineno = _token->end_lineno;
11555 UNUSED(_end_lineno); // Only used by EXTRA macro
11556 int _end_col_offset = _token->end_col_offset;
11557 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011558 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011559 if (_res == NULL && PyErr_Occurred()) {
11560 p->error_indicator = 1;
11561 D(p->level--);
11562 return NULL;
11563 }
11564 goto done;
11565 }
11566 p->mark = _mark;
11567 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11569 }
11570 _res = NULL;
11571 done:
11572 D(p->level--);
11573 return _res;
11574}
11575
11576// disjunction: conjunction (('or' conjunction))+ | conjunction
11577static expr_ty
11578disjunction_rule(Parser *p)
11579{
11580 D(p->level++);
11581 if (p->error_indicator) {
11582 D(p->level--);
11583 return NULL;
11584 }
11585 expr_ty _res = NULL;
11586 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11587 D(p->level--);
11588 return _res;
11589 }
11590 int _mark = p->mark;
11591 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11592 p->error_indicator = 1;
11593 D(p->level--);
11594 return NULL;
11595 }
11596 int _start_lineno = p->tokens[_mark]->lineno;
11597 UNUSED(_start_lineno); // Only used by EXTRA macro
11598 int _start_col_offset = p->tokens[_mark]->col_offset;
11599 UNUSED(_start_col_offset); // Only used by EXTRA macro
11600 { // conjunction (('or' conjunction))+
11601 if (p->error_indicator) {
11602 D(p->level--);
11603 return NULL;
11604 }
11605 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11606 expr_ty a;
11607 asdl_seq * b;
11608 if (
11609 (a = conjunction_rule(p)) // conjunction
11610 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011611 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011612 )
11613 {
11614 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11615 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11616 if (_token == NULL) {
11617 D(p->level--);
11618 return NULL;
11619 }
11620 int _end_lineno = _token->end_lineno;
11621 UNUSED(_end_lineno); // Only used by EXTRA macro
11622 int _end_col_offset = _token->end_col_offset;
11623 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011624 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011625 if (_res == NULL && PyErr_Occurred()) {
11626 p->error_indicator = 1;
11627 D(p->level--);
11628 return NULL;
11629 }
11630 goto done;
11631 }
11632 p->mark = _mark;
11633 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11635 }
11636 { // conjunction
11637 if (p->error_indicator) {
11638 D(p->level--);
11639 return NULL;
11640 }
11641 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11642 expr_ty conjunction_var;
11643 if (
11644 (conjunction_var = conjunction_rule(p)) // conjunction
11645 )
11646 {
11647 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11648 _res = conjunction_var;
11649 goto done;
11650 }
11651 p->mark = _mark;
11652 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11654 }
11655 _res = NULL;
11656 done:
11657 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11658 D(p->level--);
11659 return _res;
11660}
11661
11662// conjunction: inversion (('and' inversion))+ | inversion
11663static expr_ty
11664conjunction_rule(Parser *p)
11665{
11666 D(p->level++);
11667 if (p->error_indicator) {
11668 D(p->level--);
11669 return NULL;
11670 }
11671 expr_ty _res = NULL;
11672 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11673 D(p->level--);
11674 return _res;
11675 }
11676 int _mark = p->mark;
11677 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11678 p->error_indicator = 1;
11679 D(p->level--);
11680 return NULL;
11681 }
11682 int _start_lineno = p->tokens[_mark]->lineno;
11683 UNUSED(_start_lineno); // Only used by EXTRA macro
11684 int _start_col_offset = p->tokens[_mark]->col_offset;
11685 UNUSED(_start_col_offset); // Only used by EXTRA macro
11686 { // inversion (('and' inversion))+
11687 if (p->error_indicator) {
11688 D(p->level--);
11689 return NULL;
11690 }
11691 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11692 expr_ty a;
11693 asdl_seq * b;
11694 if (
11695 (a = inversion_rule(p)) // inversion
11696 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011697 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011698 )
11699 {
11700 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11701 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11702 if (_token == NULL) {
11703 D(p->level--);
11704 return NULL;
11705 }
11706 int _end_lineno = _token->end_lineno;
11707 UNUSED(_end_lineno); // Only used by EXTRA macro
11708 int _end_col_offset = _token->end_col_offset;
11709 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011710 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011711 if (_res == NULL && PyErr_Occurred()) {
11712 p->error_indicator = 1;
11713 D(p->level--);
11714 return NULL;
11715 }
11716 goto done;
11717 }
11718 p->mark = _mark;
11719 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11721 }
11722 { // inversion
11723 if (p->error_indicator) {
11724 D(p->level--);
11725 return NULL;
11726 }
11727 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11728 expr_ty inversion_var;
11729 if (
11730 (inversion_var = inversion_rule(p)) // inversion
11731 )
11732 {
11733 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11734 _res = inversion_var;
11735 goto done;
11736 }
11737 p->mark = _mark;
11738 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11740 }
11741 _res = NULL;
11742 done:
11743 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11744 D(p->level--);
11745 return _res;
11746}
11747
11748// inversion: 'not' inversion | comparison
11749static expr_ty
11750inversion_rule(Parser *p)
11751{
11752 D(p->level++);
11753 if (p->error_indicator) {
11754 D(p->level--);
11755 return NULL;
11756 }
11757 expr_ty _res = NULL;
11758 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11759 D(p->level--);
11760 return _res;
11761 }
11762 int _mark = p->mark;
11763 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11764 p->error_indicator = 1;
11765 D(p->level--);
11766 return NULL;
11767 }
11768 int _start_lineno = p->tokens[_mark]->lineno;
11769 UNUSED(_start_lineno); // Only used by EXTRA macro
11770 int _start_col_offset = p->tokens[_mark]->col_offset;
11771 UNUSED(_start_col_offset); // Only used by EXTRA macro
11772 { // 'not' inversion
11773 if (p->error_indicator) {
11774 D(p->level--);
11775 return NULL;
11776 }
11777 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11778 Token * _keyword;
11779 expr_ty a;
11780 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011781 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011782 &&
11783 (a = inversion_rule(p)) // inversion
11784 )
11785 {
11786 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11787 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11788 if (_token == NULL) {
11789 D(p->level--);
11790 return NULL;
11791 }
11792 int _end_lineno = _token->end_lineno;
11793 UNUSED(_end_lineno); // Only used by EXTRA macro
11794 int _end_col_offset = _token->end_col_offset;
11795 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011796 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011797 if (_res == NULL && PyErr_Occurred()) {
11798 p->error_indicator = 1;
11799 D(p->level--);
11800 return NULL;
11801 }
11802 goto done;
11803 }
11804 p->mark = _mark;
11805 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11807 }
11808 { // comparison
11809 if (p->error_indicator) {
11810 D(p->level--);
11811 return NULL;
11812 }
11813 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11814 expr_ty comparison_var;
11815 if (
11816 (comparison_var = comparison_rule(p)) // comparison
11817 )
11818 {
11819 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11820 _res = comparison_var;
11821 goto done;
11822 }
11823 p->mark = _mark;
11824 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11826 }
11827 _res = NULL;
11828 done:
11829 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11830 D(p->level--);
11831 return _res;
11832}
11833
11834// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11835static expr_ty
11836comparison_rule(Parser *p)
11837{
11838 D(p->level++);
11839 if (p->error_indicator) {
11840 D(p->level--);
11841 return NULL;
11842 }
11843 expr_ty _res = NULL;
11844 int _mark = p->mark;
11845 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11846 p->error_indicator = 1;
11847 D(p->level--);
11848 return NULL;
11849 }
11850 int _start_lineno = p->tokens[_mark]->lineno;
11851 UNUSED(_start_lineno); // Only used by EXTRA macro
11852 int _start_col_offset = p->tokens[_mark]->col_offset;
11853 UNUSED(_start_col_offset); // Only used by EXTRA macro
11854 { // bitwise_or compare_op_bitwise_or_pair+
11855 if (p->error_indicator) {
11856 D(p->level--);
11857 return NULL;
11858 }
11859 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11860 expr_ty a;
11861 asdl_seq * b;
11862 if (
11863 (a = bitwise_or_rule(p)) // bitwise_or
11864 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011865 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011866 )
11867 {
11868 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11869 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11870 if (_token == NULL) {
11871 D(p->level--);
11872 return NULL;
11873 }
11874 int _end_lineno = _token->end_lineno;
11875 UNUSED(_end_lineno); // Only used by EXTRA macro
11876 int _end_col_offset = _token->end_col_offset;
11877 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011878 _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 +010011879 if (_res == NULL && PyErr_Occurred()) {
11880 p->error_indicator = 1;
11881 D(p->level--);
11882 return NULL;
11883 }
11884 goto done;
11885 }
11886 p->mark = _mark;
11887 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11889 }
11890 { // bitwise_or
11891 if (p->error_indicator) {
11892 D(p->level--);
11893 return NULL;
11894 }
11895 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11896 expr_ty bitwise_or_var;
11897 if (
11898 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11899 )
11900 {
11901 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11902 _res = bitwise_or_var;
11903 goto done;
11904 }
11905 p->mark = _mark;
11906 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11908 }
11909 _res = NULL;
11910 done:
11911 D(p->level--);
11912 return _res;
11913}
11914
11915// compare_op_bitwise_or_pair:
11916// | eq_bitwise_or
11917// | noteq_bitwise_or
11918// | lte_bitwise_or
11919// | lt_bitwise_or
11920// | gte_bitwise_or
11921// | gt_bitwise_or
11922// | notin_bitwise_or
11923// | in_bitwise_or
11924// | isnot_bitwise_or
11925// | is_bitwise_or
11926static CmpopExprPair*
11927compare_op_bitwise_or_pair_rule(Parser *p)
11928{
11929 D(p->level++);
11930 if (p->error_indicator) {
11931 D(p->level--);
11932 return NULL;
11933 }
11934 CmpopExprPair* _res = NULL;
11935 int _mark = p->mark;
11936 { // eq_bitwise_or
11937 if (p->error_indicator) {
11938 D(p->level--);
11939 return NULL;
11940 }
11941 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11942 CmpopExprPair* eq_bitwise_or_var;
11943 if (
11944 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11945 )
11946 {
11947 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11948 _res = eq_bitwise_or_var;
11949 goto done;
11950 }
11951 p->mark = _mark;
11952 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11954 }
11955 { // noteq_bitwise_or
11956 if (p->error_indicator) {
11957 D(p->level--);
11958 return NULL;
11959 }
11960 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11961 CmpopExprPair* noteq_bitwise_or_var;
11962 if (
11963 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11964 )
11965 {
11966 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11967 _res = noteq_bitwise_or_var;
11968 goto done;
11969 }
11970 p->mark = _mark;
11971 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11973 }
11974 { // lte_bitwise_or
11975 if (p->error_indicator) {
11976 D(p->level--);
11977 return NULL;
11978 }
11979 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11980 CmpopExprPair* lte_bitwise_or_var;
11981 if (
11982 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11983 )
11984 {
11985 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11986 _res = lte_bitwise_or_var;
11987 goto done;
11988 }
11989 p->mark = _mark;
11990 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11992 }
11993 { // lt_bitwise_or
11994 if (p->error_indicator) {
11995 D(p->level--);
11996 return NULL;
11997 }
11998 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11999 CmpopExprPair* lt_bitwise_or_var;
12000 if (
12001 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
12002 )
12003 {
12004 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12005 _res = lt_bitwise_or_var;
12006 goto done;
12007 }
12008 p->mark = _mark;
12009 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
12011 }
12012 { // gte_bitwise_or
12013 if (p->error_indicator) {
12014 D(p->level--);
12015 return NULL;
12016 }
12017 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12018 CmpopExprPair* gte_bitwise_or_var;
12019 if (
12020 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
12021 )
12022 {
12023 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12024 _res = gte_bitwise_or_var;
12025 goto done;
12026 }
12027 p->mark = _mark;
12028 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
12030 }
12031 { // gt_bitwise_or
12032 if (p->error_indicator) {
12033 D(p->level--);
12034 return NULL;
12035 }
12036 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12037 CmpopExprPair* gt_bitwise_or_var;
12038 if (
12039 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12040 )
12041 {
12042 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12043 _res = gt_bitwise_or_var;
12044 goto done;
12045 }
12046 p->mark = _mark;
12047 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12049 }
12050 { // notin_bitwise_or
12051 if (p->error_indicator) {
12052 D(p->level--);
12053 return NULL;
12054 }
12055 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12056 CmpopExprPair* notin_bitwise_or_var;
12057 if (
12058 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12059 )
12060 {
12061 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12062 _res = notin_bitwise_or_var;
12063 goto done;
12064 }
12065 p->mark = _mark;
12066 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12068 }
12069 { // in_bitwise_or
12070 if (p->error_indicator) {
12071 D(p->level--);
12072 return NULL;
12073 }
12074 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12075 CmpopExprPair* in_bitwise_or_var;
12076 if (
12077 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12078 )
12079 {
12080 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12081 _res = in_bitwise_or_var;
12082 goto done;
12083 }
12084 p->mark = _mark;
12085 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12087 }
12088 { // isnot_bitwise_or
12089 if (p->error_indicator) {
12090 D(p->level--);
12091 return NULL;
12092 }
12093 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12094 CmpopExprPair* isnot_bitwise_or_var;
12095 if (
12096 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12097 )
12098 {
12099 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12100 _res = isnot_bitwise_or_var;
12101 goto done;
12102 }
12103 p->mark = _mark;
12104 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12106 }
12107 { // is_bitwise_or
12108 if (p->error_indicator) {
12109 D(p->level--);
12110 return NULL;
12111 }
12112 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12113 CmpopExprPair* is_bitwise_or_var;
12114 if (
12115 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12116 )
12117 {
12118 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12119 _res = is_bitwise_or_var;
12120 goto done;
12121 }
12122 p->mark = _mark;
12123 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12125 }
12126 _res = NULL;
12127 done:
12128 D(p->level--);
12129 return _res;
12130}
12131
12132// eq_bitwise_or: '==' bitwise_or
12133static CmpopExprPair*
12134eq_bitwise_or_rule(Parser *p)
12135{
12136 D(p->level++);
12137 if (p->error_indicator) {
12138 D(p->level--);
12139 return NULL;
12140 }
12141 CmpopExprPair* _res = NULL;
12142 int _mark = p->mark;
12143 { // '==' bitwise_or
12144 if (p->error_indicator) {
12145 D(p->level--);
12146 return NULL;
12147 }
12148 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12149 Token * _literal;
12150 expr_ty a;
12151 if (
12152 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12153 &&
12154 (a = bitwise_or_rule(p)) // bitwise_or
12155 )
12156 {
12157 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12158 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12159 if (_res == NULL && PyErr_Occurred()) {
12160 p->error_indicator = 1;
12161 D(p->level--);
12162 return NULL;
12163 }
12164 goto done;
12165 }
12166 p->mark = _mark;
12167 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12169 }
12170 _res = NULL;
12171 done:
12172 D(p->level--);
12173 return _res;
12174}
12175
12176// noteq_bitwise_or: ('!=') bitwise_or
12177static CmpopExprPair*
12178noteq_bitwise_or_rule(Parser *p)
12179{
12180 D(p->level++);
12181 if (p->error_indicator) {
12182 D(p->level--);
12183 return NULL;
12184 }
12185 CmpopExprPair* _res = NULL;
12186 int _mark = p->mark;
12187 { // ('!=') bitwise_or
12188 if (p->error_indicator) {
12189 D(p->level--);
12190 return NULL;
12191 }
12192 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 -080012193 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012194 expr_ty a;
12195 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012196 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012197 &&
12198 (a = bitwise_or_rule(p)) // bitwise_or
12199 )
12200 {
12201 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12202 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12203 if (_res == NULL && PyErr_Occurred()) {
12204 p->error_indicator = 1;
12205 D(p->level--);
12206 return NULL;
12207 }
12208 goto done;
12209 }
12210 p->mark = _mark;
12211 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12213 }
12214 _res = NULL;
12215 done:
12216 D(p->level--);
12217 return _res;
12218}
12219
12220// lte_bitwise_or: '<=' bitwise_or
12221static CmpopExprPair*
12222lte_bitwise_or_rule(Parser *p)
12223{
12224 D(p->level++);
12225 if (p->error_indicator) {
12226 D(p->level--);
12227 return NULL;
12228 }
12229 CmpopExprPair* _res = NULL;
12230 int _mark = p->mark;
12231 { // '<=' bitwise_or
12232 if (p->error_indicator) {
12233 D(p->level--);
12234 return NULL;
12235 }
12236 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12237 Token * _literal;
12238 expr_ty a;
12239 if (
12240 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12241 &&
12242 (a = bitwise_or_rule(p)) // bitwise_or
12243 )
12244 {
12245 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12246 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12247 if (_res == NULL && PyErr_Occurred()) {
12248 p->error_indicator = 1;
12249 D(p->level--);
12250 return NULL;
12251 }
12252 goto done;
12253 }
12254 p->mark = _mark;
12255 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12257 }
12258 _res = NULL;
12259 done:
12260 D(p->level--);
12261 return _res;
12262}
12263
12264// lt_bitwise_or: '<' bitwise_or
12265static CmpopExprPair*
12266lt_bitwise_or_rule(Parser *p)
12267{
12268 D(p->level++);
12269 if (p->error_indicator) {
12270 D(p->level--);
12271 return NULL;
12272 }
12273 CmpopExprPair* _res = NULL;
12274 int _mark = p->mark;
12275 { // '<' bitwise_or
12276 if (p->error_indicator) {
12277 D(p->level--);
12278 return NULL;
12279 }
12280 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12281 Token * _literal;
12282 expr_ty a;
12283 if (
12284 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12285 &&
12286 (a = bitwise_or_rule(p)) // bitwise_or
12287 )
12288 {
12289 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12290 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12291 if (_res == NULL && PyErr_Occurred()) {
12292 p->error_indicator = 1;
12293 D(p->level--);
12294 return NULL;
12295 }
12296 goto done;
12297 }
12298 p->mark = _mark;
12299 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12301 }
12302 _res = NULL;
12303 done:
12304 D(p->level--);
12305 return _res;
12306}
12307
12308// gte_bitwise_or: '>=' bitwise_or
12309static CmpopExprPair*
12310gte_bitwise_or_rule(Parser *p)
12311{
12312 D(p->level++);
12313 if (p->error_indicator) {
12314 D(p->level--);
12315 return NULL;
12316 }
12317 CmpopExprPair* _res = NULL;
12318 int _mark = p->mark;
12319 { // '>=' bitwise_or
12320 if (p->error_indicator) {
12321 D(p->level--);
12322 return NULL;
12323 }
12324 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12325 Token * _literal;
12326 expr_ty a;
12327 if (
12328 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12329 &&
12330 (a = bitwise_or_rule(p)) // bitwise_or
12331 )
12332 {
12333 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12334 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12335 if (_res == NULL && PyErr_Occurred()) {
12336 p->error_indicator = 1;
12337 D(p->level--);
12338 return NULL;
12339 }
12340 goto done;
12341 }
12342 p->mark = _mark;
12343 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12345 }
12346 _res = NULL;
12347 done:
12348 D(p->level--);
12349 return _res;
12350}
12351
12352// gt_bitwise_or: '>' bitwise_or
12353static CmpopExprPair*
12354gt_bitwise_or_rule(Parser *p)
12355{
12356 D(p->level++);
12357 if (p->error_indicator) {
12358 D(p->level--);
12359 return NULL;
12360 }
12361 CmpopExprPair* _res = NULL;
12362 int _mark = p->mark;
12363 { // '>' bitwise_or
12364 if (p->error_indicator) {
12365 D(p->level--);
12366 return NULL;
12367 }
12368 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12369 Token * _literal;
12370 expr_ty a;
12371 if (
12372 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12373 &&
12374 (a = bitwise_or_rule(p)) // bitwise_or
12375 )
12376 {
12377 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12378 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12379 if (_res == NULL && PyErr_Occurred()) {
12380 p->error_indicator = 1;
12381 D(p->level--);
12382 return NULL;
12383 }
12384 goto done;
12385 }
12386 p->mark = _mark;
12387 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12389 }
12390 _res = NULL;
12391 done:
12392 D(p->level--);
12393 return _res;
12394}
12395
12396// notin_bitwise_or: 'not' 'in' bitwise_or
12397static CmpopExprPair*
12398notin_bitwise_or_rule(Parser *p)
12399{
12400 D(p->level++);
12401 if (p->error_indicator) {
12402 D(p->level--);
12403 return NULL;
12404 }
12405 CmpopExprPair* _res = NULL;
12406 int _mark = p->mark;
12407 { // 'not' 'in' bitwise_or
12408 if (p->error_indicator) {
12409 D(p->level--);
12410 return NULL;
12411 }
12412 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12413 Token * _keyword;
12414 Token * _keyword_1;
12415 expr_ty a;
12416 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012417 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012418 &&
12419 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12420 &&
12421 (a = bitwise_or_rule(p)) // bitwise_or
12422 )
12423 {
12424 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12425 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12426 if (_res == NULL && PyErr_Occurred()) {
12427 p->error_indicator = 1;
12428 D(p->level--);
12429 return NULL;
12430 }
12431 goto done;
12432 }
12433 p->mark = _mark;
12434 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12436 }
12437 _res = NULL;
12438 done:
12439 D(p->level--);
12440 return _res;
12441}
12442
12443// in_bitwise_or: 'in' bitwise_or
12444static CmpopExprPair*
12445in_bitwise_or_rule(Parser *p)
12446{
12447 D(p->level++);
12448 if (p->error_indicator) {
12449 D(p->level--);
12450 return NULL;
12451 }
12452 CmpopExprPair* _res = NULL;
12453 int _mark = p->mark;
12454 { // 'in' bitwise_or
12455 if (p->error_indicator) {
12456 D(p->level--);
12457 return NULL;
12458 }
12459 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12460 Token * _keyword;
12461 expr_ty a;
12462 if (
12463 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12464 &&
12465 (a = bitwise_or_rule(p)) // bitwise_or
12466 )
12467 {
12468 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12469 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12470 if (_res == NULL && PyErr_Occurred()) {
12471 p->error_indicator = 1;
12472 D(p->level--);
12473 return NULL;
12474 }
12475 goto done;
12476 }
12477 p->mark = _mark;
12478 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12480 }
12481 _res = NULL;
12482 done:
12483 D(p->level--);
12484 return _res;
12485}
12486
12487// isnot_bitwise_or: 'is' 'not' bitwise_or
12488static CmpopExprPair*
12489isnot_bitwise_or_rule(Parser *p)
12490{
12491 D(p->level++);
12492 if (p->error_indicator) {
12493 D(p->level--);
12494 return NULL;
12495 }
12496 CmpopExprPair* _res = NULL;
12497 int _mark = p->mark;
12498 { // 'is' 'not' bitwise_or
12499 if (p->error_indicator) {
12500 D(p->level--);
12501 return NULL;
12502 }
12503 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12504 Token * _keyword;
12505 Token * _keyword_1;
12506 expr_ty a;
12507 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012508 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012509 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012510 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012511 &&
12512 (a = bitwise_or_rule(p)) // bitwise_or
12513 )
12514 {
12515 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12516 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12517 if (_res == NULL && PyErr_Occurred()) {
12518 p->error_indicator = 1;
12519 D(p->level--);
12520 return NULL;
12521 }
12522 goto done;
12523 }
12524 p->mark = _mark;
12525 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12527 }
12528 _res = NULL;
12529 done:
12530 D(p->level--);
12531 return _res;
12532}
12533
12534// is_bitwise_or: 'is' bitwise_or
12535static CmpopExprPair*
12536is_bitwise_or_rule(Parser *p)
12537{
12538 D(p->level++);
12539 if (p->error_indicator) {
12540 D(p->level--);
12541 return NULL;
12542 }
12543 CmpopExprPair* _res = NULL;
12544 int _mark = p->mark;
12545 { // 'is' bitwise_or
12546 if (p->error_indicator) {
12547 D(p->level--);
12548 return NULL;
12549 }
12550 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12551 Token * _keyword;
12552 expr_ty a;
12553 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012554 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012555 &&
12556 (a = bitwise_or_rule(p)) // bitwise_or
12557 )
12558 {
12559 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12560 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12561 if (_res == NULL && PyErr_Occurred()) {
12562 p->error_indicator = 1;
12563 D(p->level--);
12564 return NULL;
12565 }
12566 goto done;
12567 }
12568 p->mark = _mark;
12569 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12571 }
12572 _res = NULL;
12573 done:
12574 D(p->level--);
12575 return _res;
12576}
12577
12578// Left-recursive
12579// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12580static expr_ty bitwise_or_raw(Parser *);
12581static expr_ty
12582bitwise_or_rule(Parser *p)
12583{
12584 D(p->level++);
12585 expr_ty _res = NULL;
12586 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12587 D(p->level--);
12588 return _res;
12589 }
12590 int _mark = p->mark;
12591 int _resmark = p->mark;
12592 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012593 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12594 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012595 D(p->level--);
12596 return _res;
12597 }
12598 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012599 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012600 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012601 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012602 if (p->error_indicator)
12603 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012604 if (_raw == NULL || p->mark <= _resmark)
12605 break;
12606 _resmark = p->mark;
12607 _res = _raw;
12608 }
12609 p->mark = _resmark;
12610 D(p->level--);
12611 return _res;
12612}
12613static expr_ty
12614bitwise_or_raw(Parser *p)
12615{
12616 D(p->level++);
12617 if (p->error_indicator) {
12618 D(p->level--);
12619 return NULL;
12620 }
12621 expr_ty _res = NULL;
12622 int _mark = p->mark;
12623 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12624 p->error_indicator = 1;
12625 D(p->level--);
12626 return NULL;
12627 }
12628 int _start_lineno = p->tokens[_mark]->lineno;
12629 UNUSED(_start_lineno); // Only used by EXTRA macro
12630 int _start_col_offset = p->tokens[_mark]->col_offset;
12631 UNUSED(_start_col_offset); // Only used by EXTRA macro
12632 { // bitwise_or '|' bitwise_xor
12633 if (p->error_indicator) {
12634 D(p->level--);
12635 return NULL;
12636 }
12637 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12638 Token * _literal;
12639 expr_ty a;
12640 expr_ty b;
12641 if (
12642 (a = bitwise_or_rule(p)) // bitwise_or
12643 &&
12644 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12645 &&
12646 (b = bitwise_xor_rule(p)) // bitwise_xor
12647 )
12648 {
12649 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12650 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12651 if (_token == NULL) {
12652 D(p->level--);
12653 return NULL;
12654 }
12655 int _end_lineno = _token->end_lineno;
12656 UNUSED(_end_lineno); // Only used by EXTRA macro
12657 int _end_col_offset = _token->end_col_offset;
12658 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012659 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012660 if (_res == NULL && PyErr_Occurred()) {
12661 p->error_indicator = 1;
12662 D(p->level--);
12663 return NULL;
12664 }
12665 goto done;
12666 }
12667 p->mark = _mark;
12668 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12670 }
12671 { // bitwise_xor
12672 if (p->error_indicator) {
12673 D(p->level--);
12674 return NULL;
12675 }
12676 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12677 expr_ty bitwise_xor_var;
12678 if (
12679 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12680 )
12681 {
12682 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12683 _res = bitwise_xor_var;
12684 goto done;
12685 }
12686 p->mark = _mark;
12687 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12689 }
12690 _res = NULL;
12691 done:
12692 D(p->level--);
12693 return _res;
12694}
12695
12696// Left-recursive
12697// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12698static expr_ty bitwise_xor_raw(Parser *);
12699static expr_ty
12700bitwise_xor_rule(Parser *p)
12701{
12702 D(p->level++);
12703 expr_ty _res = NULL;
12704 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12705 D(p->level--);
12706 return _res;
12707 }
12708 int _mark = p->mark;
12709 int _resmark = p->mark;
12710 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012711 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12712 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012713 D(p->level--);
12714 return _res;
12715 }
12716 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012717 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012718 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012719 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012720 if (p->error_indicator)
12721 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012722 if (_raw == NULL || p->mark <= _resmark)
12723 break;
12724 _resmark = p->mark;
12725 _res = _raw;
12726 }
12727 p->mark = _resmark;
12728 D(p->level--);
12729 return _res;
12730}
12731static expr_ty
12732bitwise_xor_raw(Parser *p)
12733{
12734 D(p->level++);
12735 if (p->error_indicator) {
12736 D(p->level--);
12737 return NULL;
12738 }
12739 expr_ty _res = NULL;
12740 int _mark = p->mark;
12741 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12742 p->error_indicator = 1;
12743 D(p->level--);
12744 return NULL;
12745 }
12746 int _start_lineno = p->tokens[_mark]->lineno;
12747 UNUSED(_start_lineno); // Only used by EXTRA macro
12748 int _start_col_offset = p->tokens[_mark]->col_offset;
12749 UNUSED(_start_col_offset); // Only used by EXTRA macro
12750 { // bitwise_xor '^' bitwise_and
12751 if (p->error_indicator) {
12752 D(p->level--);
12753 return NULL;
12754 }
12755 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12756 Token * _literal;
12757 expr_ty a;
12758 expr_ty b;
12759 if (
12760 (a = bitwise_xor_rule(p)) // bitwise_xor
12761 &&
12762 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12763 &&
12764 (b = bitwise_and_rule(p)) // bitwise_and
12765 )
12766 {
12767 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12768 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12769 if (_token == NULL) {
12770 D(p->level--);
12771 return NULL;
12772 }
12773 int _end_lineno = _token->end_lineno;
12774 UNUSED(_end_lineno); // Only used by EXTRA macro
12775 int _end_col_offset = _token->end_col_offset;
12776 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012777 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012778 if (_res == NULL && PyErr_Occurred()) {
12779 p->error_indicator = 1;
12780 D(p->level--);
12781 return NULL;
12782 }
12783 goto done;
12784 }
12785 p->mark = _mark;
12786 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12788 }
12789 { // bitwise_and
12790 if (p->error_indicator) {
12791 D(p->level--);
12792 return NULL;
12793 }
12794 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12795 expr_ty bitwise_and_var;
12796 if (
12797 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12798 )
12799 {
12800 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12801 _res = bitwise_and_var;
12802 goto done;
12803 }
12804 p->mark = _mark;
12805 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12807 }
12808 _res = NULL;
12809 done:
12810 D(p->level--);
12811 return _res;
12812}
12813
12814// Left-recursive
12815// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12816static expr_ty bitwise_and_raw(Parser *);
12817static expr_ty
12818bitwise_and_rule(Parser *p)
12819{
12820 D(p->level++);
12821 expr_ty _res = NULL;
12822 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12823 D(p->level--);
12824 return _res;
12825 }
12826 int _mark = p->mark;
12827 int _resmark = p->mark;
12828 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012829 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12830 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012831 D(p->level--);
12832 return _res;
12833 }
12834 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012835 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012836 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012837 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012838 if (p->error_indicator)
12839 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012840 if (_raw == NULL || p->mark <= _resmark)
12841 break;
12842 _resmark = p->mark;
12843 _res = _raw;
12844 }
12845 p->mark = _resmark;
12846 D(p->level--);
12847 return _res;
12848}
12849static expr_ty
12850bitwise_and_raw(Parser *p)
12851{
12852 D(p->level++);
12853 if (p->error_indicator) {
12854 D(p->level--);
12855 return NULL;
12856 }
12857 expr_ty _res = NULL;
12858 int _mark = p->mark;
12859 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12860 p->error_indicator = 1;
12861 D(p->level--);
12862 return NULL;
12863 }
12864 int _start_lineno = p->tokens[_mark]->lineno;
12865 UNUSED(_start_lineno); // Only used by EXTRA macro
12866 int _start_col_offset = p->tokens[_mark]->col_offset;
12867 UNUSED(_start_col_offset); // Only used by EXTRA macro
12868 { // bitwise_and '&' shift_expr
12869 if (p->error_indicator) {
12870 D(p->level--);
12871 return NULL;
12872 }
12873 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12874 Token * _literal;
12875 expr_ty a;
12876 expr_ty b;
12877 if (
12878 (a = bitwise_and_rule(p)) // bitwise_and
12879 &&
12880 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12881 &&
12882 (b = shift_expr_rule(p)) // shift_expr
12883 )
12884 {
12885 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12886 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12887 if (_token == NULL) {
12888 D(p->level--);
12889 return NULL;
12890 }
12891 int _end_lineno = _token->end_lineno;
12892 UNUSED(_end_lineno); // Only used by EXTRA macro
12893 int _end_col_offset = _token->end_col_offset;
12894 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012895 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012896 if (_res == NULL && PyErr_Occurred()) {
12897 p->error_indicator = 1;
12898 D(p->level--);
12899 return NULL;
12900 }
12901 goto done;
12902 }
12903 p->mark = _mark;
12904 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12906 }
12907 { // shift_expr
12908 if (p->error_indicator) {
12909 D(p->level--);
12910 return NULL;
12911 }
12912 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12913 expr_ty shift_expr_var;
12914 if (
12915 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12916 )
12917 {
12918 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12919 _res = shift_expr_var;
12920 goto done;
12921 }
12922 p->mark = _mark;
12923 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12925 }
12926 _res = NULL;
12927 done:
12928 D(p->level--);
12929 return _res;
12930}
12931
12932// Left-recursive
12933// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12934static expr_ty shift_expr_raw(Parser *);
12935static expr_ty
12936shift_expr_rule(Parser *p)
12937{
12938 D(p->level++);
12939 expr_ty _res = NULL;
12940 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12941 D(p->level--);
12942 return _res;
12943 }
12944 int _mark = p->mark;
12945 int _resmark = p->mark;
12946 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012947 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12948 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012949 D(p->level--);
12950 return _res;
12951 }
12952 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012953 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012954 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012955 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012956 if (p->error_indicator)
12957 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012958 if (_raw == NULL || p->mark <= _resmark)
12959 break;
12960 _resmark = p->mark;
12961 _res = _raw;
12962 }
12963 p->mark = _resmark;
12964 D(p->level--);
12965 return _res;
12966}
12967static expr_ty
12968shift_expr_raw(Parser *p)
12969{
12970 D(p->level++);
12971 if (p->error_indicator) {
12972 D(p->level--);
12973 return NULL;
12974 }
12975 expr_ty _res = NULL;
12976 int _mark = p->mark;
12977 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12978 p->error_indicator = 1;
12979 D(p->level--);
12980 return NULL;
12981 }
12982 int _start_lineno = p->tokens[_mark]->lineno;
12983 UNUSED(_start_lineno); // Only used by EXTRA macro
12984 int _start_col_offset = p->tokens[_mark]->col_offset;
12985 UNUSED(_start_col_offset); // Only used by EXTRA macro
12986 { // shift_expr '<<' sum
12987 if (p->error_indicator) {
12988 D(p->level--);
12989 return NULL;
12990 }
12991 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12992 Token * _literal;
12993 expr_ty a;
12994 expr_ty b;
12995 if (
12996 (a = shift_expr_rule(p)) // shift_expr
12997 &&
12998 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12999 &&
13000 (b = sum_rule(p)) // sum
13001 )
13002 {
13003 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13004 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13005 if (_token == NULL) {
13006 D(p->level--);
13007 return NULL;
13008 }
13009 int _end_lineno = _token->end_lineno;
13010 UNUSED(_end_lineno); // Only used by EXTRA macro
13011 int _end_col_offset = _token->end_col_offset;
13012 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013013 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013014 if (_res == NULL && PyErr_Occurred()) {
13015 p->error_indicator = 1;
13016 D(p->level--);
13017 return NULL;
13018 }
13019 goto done;
13020 }
13021 p->mark = _mark;
13022 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
13024 }
13025 { // shift_expr '>>' sum
13026 if (p->error_indicator) {
13027 D(p->level--);
13028 return NULL;
13029 }
13030 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13031 Token * _literal;
13032 expr_ty a;
13033 expr_ty b;
13034 if (
13035 (a = shift_expr_rule(p)) // shift_expr
13036 &&
13037 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13038 &&
13039 (b = sum_rule(p)) // sum
13040 )
13041 {
13042 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13044 if (_token == NULL) {
13045 D(p->level--);
13046 return NULL;
13047 }
13048 int _end_lineno = _token->end_lineno;
13049 UNUSED(_end_lineno); // Only used by EXTRA macro
13050 int _end_col_offset = _token->end_col_offset;
13051 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013052 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013053 if (_res == NULL && PyErr_Occurred()) {
13054 p->error_indicator = 1;
13055 D(p->level--);
13056 return NULL;
13057 }
13058 goto done;
13059 }
13060 p->mark = _mark;
13061 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13063 }
13064 { // sum
13065 if (p->error_indicator) {
13066 D(p->level--);
13067 return NULL;
13068 }
13069 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13070 expr_ty sum_var;
13071 if (
13072 (sum_var = sum_rule(p)) // sum
13073 )
13074 {
13075 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13076 _res = sum_var;
13077 goto done;
13078 }
13079 p->mark = _mark;
13080 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13082 }
13083 _res = NULL;
13084 done:
13085 D(p->level--);
13086 return _res;
13087}
13088
13089// Left-recursive
13090// sum: sum '+' term | sum '-' term | term
13091static expr_ty sum_raw(Parser *);
13092static expr_ty
13093sum_rule(Parser *p)
13094{
13095 D(p->level++);
13096 expr_ty _res = NULL;
13097 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13098 D(p->level--);
13099 return _res;
13100 }
13101 int _mark = p->mark;
13102 int _resmark = p->mark;
13103 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013104 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13105 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013106 D(p->level--);
13107 return _res;
13108 }
13109 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013110 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013111 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013112 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013113 if (p->error_indicator)
13114 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013115 if (_raw == NULL || p->mark <= _resmark)
13116 break;
13117 _resmark = p->mark;
13118 _res = _raw;
13119 }
13120 p->mark = _resmark;
13121 D(p->level--);
13122 return _res;
13123}
13124static expr_ty
13125sum_raw(Parser *p)
13126{
13127 D(p->level++);
13128 if (p->error_indicator) {
13129 D(p->level--);
13130 return NULL;
13131 }
13132 expr_ty _res = NULL;
13133 int _mark = p->mark;
13134 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13135 p->error_indicator = 1;
13136 D(p->level--);
13137 return NULL;
13138 }
13139 int _start_lineno = p->tokens[_mark]->lineno;
13140 UNUSED(_start_lineno); // Only used by EXTRA macro
13141 int _start_col_offset = p->tokens[_mark]->col_offset;
13142 UNUSED(_start_col_offset); // Only used by EXTRA macro
13143 { // sum '+' term
13144 if (p->error_indicator) {
13145 D(p->level--);
13146 return NULL;
13147 }
13148 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13149 Token * _literal;
13150 expr_ty a;
13151 expr_ty b;
13152 if (
13153 (a = sum_rule(p)) // sum
13154 &&
13155 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13156 &&
13157 (b = term_rule(p)) // term
13158 )
13159 {
13160 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13161 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13162 if (_token == NULL) {
13163 D(p->level--);
13164 return NULL;
13165 }
13166 int _end_lineno = _token->end_lineno;
13167 UNUSED(_end_lineno); // Only used by EXTRA macro
13168 int _end_col_offset = _token->end_col_offset;
13169 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013170 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013171 if (_res == NULL && PyErr_Occurred()) {
13172 p->error_indicator = 1;
13173 D(p->level--);
13174 return NULL;
13175 }
13176 goto done;
13177 }
13178 p->mark = _mark;
13179 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13181 }
13182 { // sum '-' term
13183 if (p->error_indicator) {
13184 D(p->level--);
13185 return NULL;
13186 }
13187 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13188 Token * _literal;
13189 expr_ty a;
13190 expr_ty b;
13191 if (
13192 (a = sum_rule(p)) // sum
13193 &&
13194 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13195 &&
13196 (b = term_rule(p)) // term
13197 )
13198 {
13199 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13200 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13201 if (_token == NULL) {
13202 D(p->level--);
13203 return NULL;
13204 }
13205 int _end_lineno = _token->end_lineno;
13206 UNUSED(_end_lineno); // Only used by EXTRA macro
13207 int _end_col_offset = _token->end_col_offset;
13208 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013209 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013210 if (_res == NULL && PyErr_Occurred()) {
13211 p->error_indicator = 1;
13212 D(p->level--);
13213 return NULL;
13214 }
13215 goto done;
13216 }
13217 p->mark = _mark;
13218 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13220 }
13221 { // term
13222 if (p->error_indicator) {
13223 D(p->level--);
13224 return NULL;
13225 }
13226 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13227 expr_ty term_var;
13228 if (
13229 (term_var = term_rule(p)) // term
13230 )
13231 {
13232 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13233 _res = term_var;
13234 goto done;
13235 }
13236 p->mark = _mark;
13237 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13239 }
13240 _res = NULL;
13241 done:
13242 D(p->level--);
13243 return _res;
13244}
13245
13246// Left-recursive
13247// term:
13248// | term '*' factor
13249// | term '/' factor
13250// | term '//' factor
13251// | term '%' factor
13252// | term '@' factor
13253// | factor
13254static expr_ty term_raw(Parser *);
13255static expr_ty
13256term_rule(Parser *p)
13257{
13258 D(p->level++);
13259 expr_ty _res = NULL;
13260 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13261 D(p->level--);
13262 return _res;
13263 }
13264 int _mark = p->mark;
13265 int _resmark = p->mark;
13266 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013267 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13268 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013269 D(p->level--);
13270 return _res;
13271 }
13272 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013273 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013274 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013275 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013276 if (p->error_indicator)
13277 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013278 if (_raw == NULL || p->mark <= _resmark)
13279 break;
13280 _resmark = p->mark;
13281 _res = _raw;
13282 }
13283 p->mark = _resmark;
13284 D(p->level--);
13285 return _res;
13286}
13287static expr_ty
13288term_raw(Parser *p)
13289{
13290 D(p->level++);
13291 if (p->error_indicator) {
13292 D(p->level--);
13293 return NULL;
13294 }
13295 expr_ty _res = NULL;
13296 int _mark = p->mark;
13297 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13298 p->error_indicator = 1;
13299 D(p->level--);
13300 return NULL;
13301 }
13302 int _start_lineno = p->tokens[_mark]->lineno;
13303 UNUSED(_start_lineno); // Only used by EXTRA macro
13304 int _start_col_offset = p->tokens[_mark]->col_offset;
13305 UNUSED(_start_col_offset); // Only used by EXTRA macro
13306 { // term '*' factor
13307 if (p->error_indicator) {
13308 D(p->level--);
13309 return NULL;
13310 }
13311 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13312 Token * _literal;
13313 expr_ty a;
13314 expr_ty b;
13315 if (
13316 (a = term_rule(p)) // term
13317 &&
13318 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13319 &&
13320 (b = factor_rule(p)) // factor
13321 )
13322 {
13323 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13324 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13325 if (_token == NULL) {
13326 D(p->level--);
13327 return NULL;
13328 }
13329 int _end_lineno = _token->end_lineno;
13330 UNUSED(_end_lineno); // Only used by EXTRA macro
13331 int _end_col_offset = _token->end_col_offset;
13332 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013333 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013334 if (_res == NULL && PyErr_Occurred()) {
13335 p->error_indicator = 1;
13336 D(p->level--);
13337 return NULL;
13338 }
13339 goto done;
13340 }
13341 p->mark = _mark;
13342 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13344 }
13345 { // term '/' factor
13346 if (p->error_indicator) {
13347 D(p->level--);
13348 return NULL;
13349 }
13350 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13351 Token * _literal;
13352 expr_ty a;
13353 expr_ty b;
13354 if (
13355 (a = term_rule(p)) // term
13356 &&
13357 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13358 &&
13359 (b = factor_rule(p)) // factor
13360 )
13361 {
13362 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13363 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13364 if (_token == NULL) {
13365 D(p->level--);
13366 return NULL;
13367 }
13368 int _end_lineno = _token->end_lineno;
13369 UNUSED(_end_lineno); // Only used by EXTRA macro
13370 int _end_col_offset = _token->end_col_offset;
13371 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013372 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013373 if (_res == NULL && PyErr_Occurred()) {
13374 p->error_indicator = 1;
13375 D(p->level--);
13376 return NULL;
13377 }
13378 goto done;
13379 }
13380 p->mark = _mark;
13381 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13383 }
13384 { // term '//' factor
13385 if (p->error_indicator) {
13386 D(p->level--);
13387 return NULL;
13388 }
13389 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13390 Token * _literal;
13391 expr_ty a;
13392 expr_ty b;
13393 if (
13394 (a = term_rule(p)) // term
13395 &&
13396 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13397 &&
13398 (b = factor_rule(p)) // factor
13399 )
13400 {
13401 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13402 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13403 if (_token == NULL) {
13404 D(p->level--);
13405 return NULL;
13406 }
13407 int _end_lineno = _token->end_lineno;
13408 UNUSED(_end_lineno); // Only used by EXTRA macro
13409 int _end_col_offset = _token->end_col_offset;
13410 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013411 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013412 if (_res == NULL && PyErr_Occurred()) {
13413 p->error_indicator = 1;
13414 D(p->level--);
13415 return NULL;
13416 }
13417 goto done;
13418 }
13419 p->mark = _mark;
13420 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13422 }
13423 { // term '%' factor
13424 if (p->error_indicator) {
13425 D(p->level--);
13426 return NULL;
13427 }
13428 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13429 Token * _literal;
13430 expr_ty a;
13431 expr_ty b;
13432 if (
13433 (a = term_rule(p)) // term
13434 &&
13435 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13436 &&
13437 (b = factor_rule(p)) // factor
13438 )
13439 {
13440 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13442 if (_token == NULL) {
13443 D(p->level--);
13444 return NULL;
13445 }
13446 int _end_lineno = _token->end_lineno;
13447 UNUSED(_end_lineno); // Only used by EXTRA macro
13448 int _end_col_offset = _token->end_col_offset;
13449 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013450 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013451 if (_res == NULL && PyErr_Occurred()) {
13452 p->error_indicator = 1;
13453 D(p->level--);
13454 return NULL;
13455 }
13456 goto done;
13457 }
13458 p->mark = _mark;
13459 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13461 }
13462 { // term '@' factor
13463 if (p->error_indicator) {
13464 D(p->level--);
13465 return NULL;
13466 }
13467 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13468 Token * _literal;
13469 expr_ty a;
13470 expr_ty b;
13471 if (
13472 (a = term_rule(p)) // term
13473 &&
13474 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13475 &&
13476 (b = factor_rule(p)) // factor
13477 )
13478 {
13479 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13480 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13481 if (_token == NULL) {
13482 D(p->level--);
13483 return NULL;
13484 }
13485 int _end_lineno = _token->end_lineno;
13486 UNUSED(_end_lineno); // Only used by EXTRA macro
13487 int _end_col_offset = _token->end_col_offset;
13488 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013489 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013490 if (_res == NULL && PyErr_Occurred()) {
13491 p->error_indicator = 1;
13492 D(p->level--);
13493 return NULL;
13494 }
13495 goto done;
13496 }
13497 p->mark = _mark;
13498 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13500 }
13501 { // factor
13502 if (p->error_indicator) {
13503 D(p->level--);
13504 return NULL;
13505 }
13506 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13507 expr_ty factor_var;
13508 if (
13509 (factor_var = factor_rule(p)) // factor
13510 )
13511 {
13512 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13513 _res = factor_var;
13514 goto done;
13515 }
13516 p->mark = _mark;
13517 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13519 }
13520 _res = NULL;
13521 done:
13522 D(p->level--);
13523 return _res;
13524}
13525
13526// factor: '+' factor | '-' factor | '~' factor | power
13527static expr_ty
13528factor_rule(Parser *p)
13529{
13530 D(p->level++);
13531 if (p->error_indicator) {
13532 D(p->level--);
13533 return NULL;
13534 }
13535 expr_ty _res = NULL;
13536 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13537 D(p->level--);
13538 return _res;
13539 }
13540 int _mark = p->mark;
13541 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13542 p->error_indicator = 1;
13543 D(p->level--);
13544 return NULL;
13545 }
13546 int _start_lineno = p->tokens[_mark]->lineno;
13547 UNUSED(_start_lineno); // Only used by EXTRA macro
13548 int _start_col_offset = p->tokens[_mark]->col_offset;
13549 UNUSED(_start_col_offset); // Only used by EXTRA macro
13550 { // '+' factor
13551 if (p->error_indicator) {
13552 D(p->level--);
13553 return NULL;
13554 }
13555 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13556 Token * _literal;
13557 expr_ty a;
13558 if (
13559 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13560 &&
13561 (a = factor_rule(p)) // factor
13562 )
13563 {
13564 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13566 if (_token == NULL) {
13567 D(p->level--);
13568 return NULL;
13569 }
13570 int _end_lineno = _token->end_lineno;
13571 UNUSED(_end_lineno); // Only used by EXTRA macro
13572 int _end_col_offset = _token->end_col_offset;
13573 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013574 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013575 if (_res == NULL && PyErr_Occurred()) {
13576 p->error_indicator = 1;
13577 D(p->level--);
13578 return NULL;
13579 }
13580 goto done;
13581 }
13582 p->mark = _mark;
13583 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13585 }
13586 { // '-' factor
13587 if (p->error_indicator) {
13588 D(p->level--);
13589 return NULL;
13590 }
13591 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13592 Token * _literal;
13593 expr_ty a;
13594 if (
13595 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13596 &&
13597 (a = factor_rule(p)) // factor
13598 )
13599 {
13600 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13601 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13602 if (_token == NULL) {
13603 D(p->level--);
13604 return NULL;
13605 }
13606 int _end_lineno = _token->end_lineno;
13607 UNUSED(_end_lineno); // Only used by EXTRA macro
13608 int _end_col_offset = _token->end_col_offset;
13609 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013610 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013611 if (_res == NULL && PyErr_Occurred()) {
13612 p->error_indicator = 1;
13613 D(p->level--);
13614 return NULL;
13615 }
13616 goto done;
13617 }
13618 p->mark = _mark;
13619 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13621 }
13622 { // '~' factor
13623 if (p->error_indicator) {
13624 D(p->level--);
13625 return NULL;
13626 }
13627 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13628 Token * _literal;
13629 expr_ty a;
13630 if (
13631 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13632 &&
13633 (a = factor_rule(p)) // factor
13634 )
13635 {
13636 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13637 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13638 if (_token == NULL) {
13639 D(p->level--);
13640 return NULL;
13641 }
13642 int _end_lineno = _token->end_lineno;
13643 UNUSED(_end_lineno); // Only used by EXTRA macro
13644 int _end_col_offset = _token->end_col_offset;
13645 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013646 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013647 if (_res == NULL && PyErr_Occurred()) {
13648 p->error_indicator = 1;
13649 D(p->level--);
13650 return NULL;
13651 }
13652 goto done;
13653 }
13654 p->mark = _mark;
13655 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13657 }
13658 { // power
13659 if (p->error_indicator) {
13660 D(p->level--);
13661 return NULL;
13662 }
13663 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13664 expr_ty power_var;
13665 if (
13666 (power_var = power_rule(p)) // power
13667 )
13668 {
13669 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13670 _res = power_var;
13671 goto done;
13672 }
13673 p->mark = _mark;
13674 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13676 }
13677 _res = NULL;
13678 done:
13679 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13680 D(p->level--);
13681 return _res;
13682}
13683
13684// power: await_primary '**' factor | await_primary
13685static expr_ty
13686power_rule(Parser *p)
13687{
13688 D(p->level++);
13689 if (p->error_indicator) {
13690 D(p->level--);
13691 return NULL;
13692 }
13693 expr_ty _res = NULL;
13694 int _mark = p->mark;
13695 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13696 p->error_indicator = 1;
13697 D(p->level--);
13698 return NULL;
13699 }
13700 int _start_lineno = p->tokens[_mark]->lineno;
13701 UNUSED(_start_lineno); // Only used by EXTRA macro
13702 int _start_col_offset = p->tokens[_mark]->col_offset;
13703 UNUSED(_start_col_offset); // Only used by EXTRA macro
13704 { // await_primary '**' factor
13705 if (p->error_indicator) {
13706 D(p->level--);
13707 return NULL;
13708 }
13709 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13710 Token * _literal;
13711 expr_ty a;
13712 expr_ty b;
13713 if (
13714 (a = await_primary_rule(p)) // await_primary
13715 &&
13716 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13717 &&
13718 (b = factor_rule(p)) // factor
13719 )
13720 {
13721 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13722 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13723 if (_token == NULL) {
13724 D(p->level--);
13725 return NULL;
13726 }
13727 int _end_lineno = _token->end_lineno;
13728 UNUSED(_end_lineno); // Only used by EXTRA macro
13729 int _end_col_offset = _token->end_col_offset;
13730 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013731 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013732 if (_res == NULL && PyErr_Occurred()) {
13733 p->error_indicator = 1;
13734 D(p->level--);
13735 return NULL;
13736 }
13737 goto done;
13738 }
13739 p->mark = _mark;
13740 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13742 }
13743 { // await_primary
13744 if (p->error_indicator) {
13745 D(p->level--);
13746 return NULL;
13747 }
13748 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13749 expr_ty await_primary_var;
13750 if (
13751 (await_primary_var = await_primary_rule(p)) // await_primary
13752 )
13753 {
13754 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13755 _res = await_primary_var;
13756 goto done;
13757 }
13758 p->mark = _mark;
13759 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13761 }
13762 _res = NULL;
13763 done:
13764 D(p->level--);
13765 return _res;
13766}
13767
13768// await_primary: AWAIT primary | primary
13769static expr_ty
13770await_primary_rule(Parser *p)
13771{
13772 D(p->level++);
13773 if (p->error_indicator) {
13774 D(p->level--);
13775 return NULL;
13776 }
13777 expr_ty _res = NULL;
13778 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13779 D(p->level--);
13780 return _res;
13781 }
13782 int _mark = p->mark;
13783 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13784 p->error_indicator = 1;
13785 D(p->level--);
13786 return NULL;
13787 }
13788 int _start_lineno = p->tokens[_mark]->lineno;
13789 UNUSED(_start_lineno); // Only used by EXTRA macro
13790 int _start_col_offset = p->tokens[_mark]->col_offset;
13791 UNUSED(_start_col_offset); // Only used by EXTRA macro
13792 { // AWAIT primary
13793 if (p->error_indicator) {
13794 D(p->level--);
13795 return NULL;
13796 }
13797 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13798 expr_ty a;
13799 Token * await_var;
13800 if (
13801 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13802 &&
13803 (a = primary_rule(p)) // primary
13804 )
13805 {
13806 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13807 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13808 if (_token == NULL) {
13809 D(p->level--);
13810 return NULL;
13811 }
13812 int _end_lineno = _token->end_lineno;
13813 UNUSED(_end_lineno); // Only used by EXTRA macro
13814 int _end_col_offset = _token->end_col_offset;
13815 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013816 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013817 if (_res == NULL && PyErr_Occurred()) {
13818 p->error_indicator = 1;
13819 D(p->level--);
13820 return NULL;
13821 }
13822 goto done;
13823 }
13824 p->mark = _mark;
13825 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13827 }
13828 { // primary
13829 if (p->error_indicator) {
13830 D(p->level--);
13831 return NULL;
13832 }
13833 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13834 expr_ty primary_var;
13835 if (
13836 (primary_var = primary_rule(p)) // primary
13837 )
13838 {
13839 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13840 _res = primary_var;
13841 goto done;
13842 }
13843 p->mark = _mark;
13844 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13846 }
13847 _res = NULL;
13848 done:
13849 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13850 D(p->level--);
13851 return _res;
13852}
13853
13854// Left-recursive
13855// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013856// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013857// | primary '.' NAME
13858// | primary genexp
13859// | primary '(' arguments? ')'
13860// | primary '[' slices ']'
13861// | atom
13862static expr_ty primary_raw(Parser *);
13863static expr_ty
13864primary_rule(Parser *p)
13865{
13866 D(p->level++);
13867 expr_ty _res = NULL;
13868 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13869 D(p->level--);
13870 return _res;
13871 }
13872 int _mark = p->mark;
13873 int _resmark = p->mark;
13874 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013875 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13876 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013877 D(p->level--);
13878 return _res;
13879 }
13880 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013881 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013882 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013883 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013884 if (p->error_indicator)
13885 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013886 if (_raw == NULL || p->mark <= _resmark)
13887 break;
13888 _resmark = p->mark;
13889 _res = _raw;
13890 }
13891 p->mark = _resmark;
13892 D(p->level--);
13893 return _res;
13894}
13895static expr_ty
13896primary_raw(Parser *p)
13897{
13898 D(p->level++);
13899 if (p->error_indicator) {
13900 D(p->level--);
13901 return NULL;
13902 }
13903 expr_ty _res = NULL;
13904 int _mark = p->mark;
13905 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13906 p->error_indicator = 1;
13907 D(p->level--);
13908 return NULL;
13909 }
13910 int _start_lineno = p->tokens[_mark]->lineno;
13911 UNUSED(_start_lineno); // Only used by EXTRA macro
13912 int _start_col_offset = p->tokens[_mark]->col_offset;
13913 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013914 if (p->call_invalid_rules) { // invalid_primary
13915 if (p->error_indicator) {
13916 D(p->level--);
13917 return NULL;
13918 }
13919 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13920 void *invalid_primary_var;
13921 if (
13922 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13923 )
13924 {
13925 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13926 _res = invalid_primary_var;
13927 goto done;
13928 }
13929 p->mark = _mark;
13930 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13932 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013933 { // primary '.' NAME
13934 if (p->error_indicator) {
13935 D(p->level--);
13936 return NULL;
13937 }
13938 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13939 Token * _literal;
13940 expr_ty a;
13941 expr_ty b;
13942 if (
13943 (a = primary_rule(p)) // primary
13944 &&
13945 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13946 &&
13947 (b = _PyPegen_name_token(p)) // NAME
13948 )
13949 {
13950 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13951 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13952 if (_token == NULL) {
13953 D(p->level--);
13954 return NULL;
13955 }
13956 int _end_lineno = _token->end_lineno;
13957 UNUSED(_end_lineno); // Only used by EXTRA macro
13958 int _end_col_offset = _token->end_col_offset;
13959 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013960 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013961 if (_res == NULL && PyErr_Occurred()) {
13962 p->error_indicator = 1;
13963 D(p->level--);
13964 return NULL;
13965 }
13966 goto done;
13967 }
13968 p->mark = _mark;
13969 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13971 }
13972 { // primary genexp
13973 if (p->error_indicator) {
13974 D(p->level--);
13975 return NULL;
13976 }
13977 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13978 expr_ty a;
13979 expr_ty b;
13980 if (
13981 (a = primary_rule(p)) // primary
13982 &&
13983 (b = genexp_rule(p)) // genexp
13984 )
13985 {
13986 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13988 if (_token == NULL) {
13989 D(p->level--);
13990 return NULL;
13991 }
13992 int _end_lineno = _token->end_lineno;
13993 UNUSED(_end_lineno); // Only used by EXTRA macro
13994 int _end_col_offset = _token->end_col_offset;
13995 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013996 _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 +010013997 if (_res == NULL && PyErr_Occurred()) {
13998 p->error_indicator = 1;
13999 D(p->level--);
14000 return NULL;
14001 }
14002 goto done;
14003 }
14004 p->mark = _mark;
14005 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
14007 }
14008 { // primary '(' arguments? ')'
14009 if (p->error_indicator) {
14010 D(p->level--);
14011 return NULL;
14012 }
14013 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14014 Token * _literal;
14015 Token * _literal_1;
14016 expr_ty a;
14017 void *b;
14018 if (
14019 (a = primary_rule(p)) // primary
14020 &&
14021 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14022 &&
14023 (b = arguments_rule(p), 1) // arguments?
14024 &&
14025 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14026 )
14027 {
14028 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14029 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14030 if (_token == NULL) {
14031 D(p->level--);
14032 return NULL;
14033 }
14034 int _end_lineno = _token->end_lineno;
14035 UNUSED(_end_lineno); // Only used by EXTRA macro
14036 int _end_col_offset = _token->end_col_offset;
14037 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014038 _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 +010014039 if (_res == NULL && PyErr_Occurred()) {
14040 p->error_indicator = 1;
14041 D(p->level--);
14042 return NULL;
14043 }
14044 goto done;
14045 }
14046 p->mark = _mark;
14047 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14049 }
14050 { // primary '[' slices ']'
14051 if (p->error_indicator) {
14052 D(p->level--);
14053 return NULL;
14054 }
14055 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14056 Token * _literal;
14057 Token * _literal_1;
14058 expr_ty a;
14059 expr_ty b;
14060 if (
14061 (a = primary_rule(p)) // primary
14062 &&
14063 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14064 &&
14065 (b = slices_rule(p)) // slices
14066 &&
14067 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14068 )
14069 {
14070 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14071 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14072 if (_token == NULL) {
14073 D(p->level--);
14074 return NULL;
14075 }
14076 int _end_lineno = _token->end_lineno;
14077 UNUSED(_end_lineno); // Only used by EXTRA macro
14078 int _end_col_offset = _token->end_col_offset;
14079 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014080 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014081 if (_res == NULL && PyErr_Occurred()) {
14082 p->error_indicator = 1;
14083 D(p->level--);
14084 return NULL;
14085 }
14086 goto done;
14087 }
14088 p->mark = _mark;
14089 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14091 }
14092 { // atom
14093 if (p->error_indicator) {
14094 D(p->level--);
14095 return NULL;
14096 }
14097 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14098 expr_ty atom_var;
14099 if (
14100 (atom_var = atom_rule(p)) // atom
14101 )
14102 {
14103 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14104 _res = atom_var;
14105 goto done;
14106 }
14107 p->mark = _mark;
14108 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14110 }
14111 _res = NULL;
14112 done:
14113 D(p->level--);
14114 return _res;
14115}
14116
14117// slices: slice !',' | ','.slice+ ','?
14118static expr_ty
14119slices_rule(Parser *p)
14120{
14121 D(p->level++);
14122 if (p->error_indicator) {
14123 D(p->level--);
14124 return NULL;
14125 }
14126 expr_ty _res = NULL;
14127 int _mark = p->mark;
14128 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14129 p->error_indicator = 1;
14130 D(p->level--);
14131 return NULL;
14132 }
14133 int _start_lineno = p->tokens[_mark]->lineno;
14134 UNUSED(_start_lineno); // Only used by EXTRA macro
14135 int _start_col_offset = p->tokens[_mark]->col_offset;
14136 UNUSED(_start_col_offset); // Only used by EXTRA macro
14137 { // slice !','
14138 if (p->error_indicator) {
14139 D(p->level--);
14140 return NULL;
14141 }
14142 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14143 expr_ty a;
14144 if (
14145 (a = slice_rule(p)) // slice
14146 &&
14147 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14148 )
14149 {
14150 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14151 _res = a;
14152 if (_res == NULL && PyErr_Occurred()) {
14153 p->error_indicator = 1;
14154 D(p->level--);
14155 return NULL;
14156 }
14157 goto done;
14158 }
14159 p->mark = _mark;
14160 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14162 }
14163 { // ','.slice+ ','?
14164 if (p->error_indicator) {
14165 D(p->level--);
14166 return NULL;
14167 }
14168 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14169 void *_opt_var;
14170 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014171 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014172 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014173 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014174 &&
14175 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14176 )
14177 {
14178 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14179 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14180 if (_token == NULL) {
14181 D(p->level--);
14182 return NULL;
14183 }
14184 int _end_lineno = _token->end_lineno;
14185 UNUSED(_end_lineno); // Only used by EXTRA macro
14186 int _end_col_offset = _token->end_col_offset;
14187 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014188 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014189 if (_res == NULL && PyErr_Occurred()) {
14190 p->error_indicator = 1;
14191 D(p->level--);
14192 return NULL;
14193 }
14194 goto done;
14195 }
14196 p->mark = _mark;
14197 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14199 }
14200 _res = NULL;
14201 done:
14202 D(p->level--);
14203 return _res;
14204}
14205
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014206// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014207static expr_ty
14208slice_rule(Parser *p)
14209{
14210 D(p->level++);
14211 if (p->error_indicator) {
14212 D(p->level--);
14213 return NULL;
14214 }
14215 expr_ty _res = NULL;
14216 int _mark = p->mark;
14217 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14218 p->error_indicator = 1;
14219 D(p->level--);
14220 return NULL;
14221 }
14222 int _start_lineno = p->tokens[_mark]->lineno;
14223 UNUSED(_start_lineno); // Only used by EXTRA macro
14224 int _start_col_offset = p->tokens[_mark]->col_offset;
14225 UNUSED(_start_col_offset); // Only used by EXTRA macro
14226 { // expression? ':' expression? [':' expression?]
14227 if (p->error_indicator) {
14228 D(p->level--);
14229 return NULL;
14230 }
14231 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14232 Token * _literal;
14233 void *a;
14234 void *b;
14235 void *c;
14236 if (
14237 (a = expression_rule(p), 1) // expression?
14238 &&
14239 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14240 &&
14241 (b = expression_rule(p), 1) // expression?
14242 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014243 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014244 )
14245 {
14246 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14247 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14248 if (_token == NULL) {
14249 D(p->level--);
14250 return NULL;
14251 }
14252 int _end_lineno = _token->end_lineno;
14253 UNUSED(_end_lineno); // Only used by EXTRA macro
14254 int _end_col_offset = _token->end_col_offset;
14255 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014256 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014257 if (_res == NULL && PyErr_Occurred()) {
14258 p->error_indicator = 1;
14259 D(p->level--);
14260 return NULL;
14261 }
14262 goto done;
14263 }
14264 p->mark = _mark;
14265 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14267 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014268 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014269 if (p->error_indicator) {
14270 D(p->level--);
14271 return NULL;
14272 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014273 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014274 expr_ty a;
14275 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014276 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014277 )
14278 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014279 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014280 _res = a;
14281 if (_res == NULL && PyErr_Occurred()) {
14282 p->error_indicator = 1;
14283 D(p->level--);
14284 return NULL;
14285 }
14286 goto done;
14287 }
14288 p->mark = _mark;
14289 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014291 }
14292 _res = NULL;
14293 done:
14294 D(p->level--);
14295 return _res;
14296}
14297
14298// atom:
14299// | NAME
14300// | 'True'
14301// | 'False'
14302// | 'None'
14303// | &STRING strings
14304// | NUMBER
14305// | &'(' (tuple | group | genexp)
14306// | &'[' (list | listcomp)
14307// | &'{' (dict | set | dictcomp | setcomp)
14308// | '...'
14309static expr_ty
14310atom_rule(Parser *p)
14311{
14312 D(p->level++);
14313 if (p->error_indicator) {
14314 D(p->level--);
14315 return NULL;
14316 }
14317 expr_ty _res = NULL;
14318 int _mark = p->mark;
14319 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14320 p->error_indicator = 1;
14321 D(p->level--);
14322 return NULL;
14323 }
14324 int _start_lineno = p->tokens[_mark]->lineno;
14325 UNUSED(_start_lineno); // Only used by EXTRA macro
14326 int _start_col_offset = p->tokens[_mark]->col_offset;
14327 UNUSED(_start_col_offset); // Only used by EXTRA macro
14328 { // NAME
14329 if (p->error_indicator) {
14330 D(p->level--);
14331 return NULL;
14332 }
14333 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14334 expr_ty name_var;
14335 if (
14336 (name_var = _PyPegen_name_token(p)) // NAME
14337 )
14338 {
14339 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14340 _res = name_var;
14341 goto done;
14342 }
14343 p->mark = _mark;
14344 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14346 }
14347 { // 'True'
14348 if (p->error_indicator) {
14349 D(p->level--);
14350 return NULL;
14351 }
14352 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14353 Token * _keyword;
14354 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014355 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014356 )
14357 {
14358 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14359 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14360 if (_token == NULL) {
14361 D(p->level--);
14362 return NULL;
14363 }
14364 int _end_lineno = _token->end_lineno;
14365 UNUSED(_end_lineno); // Only used by EXTRA macro
14366 int _end_col_offset = _token->end_col_offset;
14367 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014368 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014369 if (_res == NULL && PyErr_Occurred()) {
14370 p->error_indicator = 1;
14371 D(p->level--);
14372 return NULL;
14373 }
14374 goto done;
14375 }
14376 p->mark = _mark;
14377 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14379 }
14380 { // 'False'
14381 if (p->error_indicator) {
14382 D(p->level--);
14383 return NULL;
14384 }
14385 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14386 Token * _keyword;
14387 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014388 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014389 )
14390 {
14391 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14392 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14393 if (_token == NULL) {
14394 D(p->level--);
14395 return NULL;
14396 }
14397 int _end_lineno = _token->end_lineno;
14398 UNUSED(_end_lineno); // Only used by EXTRA macro
14399 int _end_col_offset = _token->end_col_offset;
14400 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014401 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014402 if (_res == NULL && PyErr_Occurred()) {
14403 p->error_indicator = 1;
14404 D(p->level--);
14405 return NULL;
14406 }
14407 goto done;
14408 }
14409 p->mark = _mark;
14410 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14412 }
14413 { // 'None'
14414 if (p->error_indicator) {
14415 D(p->level--);
14416 return NULL;
14417 }
14418 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14419 Token * _keyword;
14420 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014421 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014422 )
14423 {
14424 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14425 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14426 if (_token == NULL) {
14427 D(p->level--);
14428 return NULL;
14429 }
14430 int _end_lineno = _token->end_lineno;
14431 UNUSED(_end_lineno); // Only used by EXTRA macro
14432 int _end_col_offset = _token->end_col_offset;
14433 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014434 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014435 if (_res == NULL && PyErr_Occurred()) {
14436 p->error_indicator = 1;
14437 D(p->level--);
14438 return NULL;
14439 }
14440 goto done;
14441 }
14442 p->mark = _mark;
14443 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14445 }
14446 { // &STRING strings
14447 if (p->error_indicator) {
14448 D(p->level--);
14449 return NULL;
14450 }
14451 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14452 expr_ty strings_var;
14453 if (
14454 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14455 &&
14456 (strings_var = strings_rule(p)) // strings
14457 )
14458 {
14459 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14460 _res = strings_var;
14461 goto done;
14462 }
14463 p->mark = _mark;
14464 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14466 }
14467 { // NUMBER
14468 if (p->error_indicator) {
14469 D(p->level--);
14470 return NULL;
14471 }
14472 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14473 expr_ty number_var;
14474 if (
14475 (number_var = _PyPegen_number_token(p)) // NUMBER
14476 )
14477 {
14478 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14479 _res = number_var;
14480 goto done;
14481 }
14482 p->mark = _mark;
14483 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14485 }
14486 { // &'(' (tuple | group | genexp)
14487 if (p->error_indicator) {
14488 D(p->level--);
14489 return NULL;
14490 }
14491 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014492 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014493 if (
14494 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14495 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014496 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014497 )
14498 {
14499 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 -080014500 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014501 goto done;
14502 }
14503 p->mark = _mark;
14504 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14506 }
14507 { // &'[' (list | listcomp)
14508 if (p->error_indicator) {
14509 D(p->level--);
14510 return NULL;
14511 }
14512 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014513 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014514 if (
14515 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14516 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014517 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014518 )
14519 {
14520 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014521 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014522 goto done;
14523 }
14524 p->mark = _mark;
14525 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14527 }
14528 { // &'{' (dict | set | dictcomp | setcomp)
14529 if (p->error_indicator) {
14530 D(p->level--);
14531 return NULL;
14532 }
14533 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 -080014534 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014535 if (
14536 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14537 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014538 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014539 )
14540 {
14541 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 -080014542 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014543 goto done;
14544 }
14545 p->mark = _mark;
14546 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14548 }
14549 { // '...'
14550 if (p->error_indicator) {
14551 D(p->level--);
14552 return NULL;
14553 }
14554 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14555 Token * _literal;
14556 if (
14557 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14558 )
14559 {
14560 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14561 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14562 if (_token == NULL) {
14563 D(p->level--);
14564 return NULL;
14565 }
14566 int _end_lineno = _token->end_lineno;
14567 UNUSED(_end_lineno); // Only used by EXTRA macro
14568 int _end_col_offset = _token->end_col_offset;
14569 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014570 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014571 if (_res == NULL && PyErr_Occurred()) {
14572 p->error_indicator = 1;
14573 D(p->level--);
14574 return NULL;
14575 }
14576 goto done;
14577 }
14578 p->mark = _mark;
14579 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14581 }
14582 _res = NULL;
14583 done:
14584 D(p->level--);
14585 return _res;
14586}
14587
14588// strings: STRING+
14589static expr_ty
14590strings_rule(Parser *p)
14591{
14592 D(p->level++);
14593 if (p->error_indicator) {
14594 D(p->level--);
14595 return NULL;
14596 }
14597 expr_ty _res = NULL;
14598 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14599 D(p->level--);
14600 return _res;
14601 }
14602 int _mark = p->mark;
14603 { // STRING+
14604 if (p->error_indicator) {
14605 D(p->level--);
14606 return NULL;
14607 }
14608 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14609 asdl_seq * a;
14610 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014611 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014612 )
14613 {
14614 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14615 _res = _PyPegen_concatenate_strings ( p , a );
14616 if (_res == NULL && PyErr_Occurred()) {
14617 p->error_indicator = 1;
14618 D(p->level--);
14619 return NULL;
14620 }
14621 goto done;
14622 }
14623 p->mark = _mark;
14624 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14626 }
14627 _res = NULL;
14628 done:
14629 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14630 D(p->level--);
14631 return _res;
14632}
14633
14634// list: '[' star_named_expressions? ']'
14635static expr_ty
14636list_rule(Parser *p)
14637{
14638 D(p->level++);
14639 if (p->error_indicator) {
14640 D(p->level--);
14641 return NULL;
14642 }
14643 expr_ty _res = NULL;
14644 int _mark = p->mark;
14645 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14646 p->error_indicator = 1;
14647 D(p->level--);
14648 return NULL;
14649 }
14650 int _start_lineno = p->tokens[_mark]->lineno;
14651 UNUSED(_start_lineno); // Only used by EXTRA macro
14652 int _start_col_offset = p->tokens[_mark]->col_offset;
14653 UNUSED(_start_col_offset); // Only used by EXTRA macro
14654 { // '[' star_named_expressions? ']'
14655 if (p->error_indicator) {
14656 D(p->level--);
14657 return NULL;
14658 }
14659 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14660 Token * _literal;
14661 Token * _literal_1;
14662 void *a;
14663 if (
14664 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14665 &&
14666 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14667 &&
14668 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14669 )
14670 {
14671 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14672 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14673 if (_token == NULL) {
14674 D(p->level--);
14675 return NULL;
14676 }
14677 int _end_lineno = _token->end_lineno;
14678 UNUSED(_end_lineno); // Only used by EXTRA macro
14679 int _end_col_offset = _token->end_col_offset;
14680 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014681 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014682 if (_res == NULL && PyErr_Occurred()) {
14683 p->error_indicator = 1;
14684 D(p->level--);
14685 return NULL;
14686 }
14687 goto done;
14688 }
14689 p->mark = _mark;
14690 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14692 }
14693 _res = NULL;
14694 done:
14695 D(p->level--);
14696 return _res;
14697}
14698
Pablo Galindo835f14f2021-01-31 22:52:56 +000014699// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014700static expr_ty
14701listcomp_rule(Parser *p)
14702{
14703 D(p->level++);
14704 if (p->error_indicator) {
14705 D(p->level--);
14706 return NULL;
14707 }
14708 expr_ty _res = NULL;
14709 int _mark = p->mark;
14710 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14711 p->error_indicator = 1;
14712 D(p->level--);
14713 return NULL;
14714 }
14715 int _start_lineno = p->tokens[_mark]->lineno;
14716 UNUSED(_start_lineno); // Only used by EXTRA macro
14717 int _start_col_offset = p->tokens[_mark]->col_offset;
14718 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014719 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014720 if (p->error_indicator) {
14721 D(p->level--);
14722 return NULL;
14723 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014724 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 +010014725 Token * _literal;
14726 Token * _literal_1;
14727 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014728 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014729 if (
14730 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14731 &&
14732 (a = named_expression_rule(p)) // named_expression
14733 &&
14734 (b = for_if_clauses_rule(p)) // for_if_clauses
14735 &&
14736 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14737 )
14738 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014739 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 +010014740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14741 if (_token == NULL) {
14742 D(p->level--);
14743 return NULL;
14744 }
14745 int _end_lineno = _token->end_lineno;
14746 UNUSED(_end_lineno); // Only used by EXTRA macro
14747 int _end_col_offset = _token->end_col_offset;
14748 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014749 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014750 if (_res == NULL && PyErr_Occurred()) {
14751 p->error_indicator = 1;
14752 D(p->level--);
14753 return NULL;
14754 }
14755 goto done;
14756 }
14757 p->mark = _mark;
14758 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014760 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014761 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014762 if (p->error_indicator) {
14763 D(p->level--);
14764 return NULL;
14765 }
14766 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14767 void *invalid_comprehension_var;
14768 if (
14769 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14770 )
14771 {
14772 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14773 _res = invalid_comprehension_var;
14774 goto done;
14775 }
14776 p->mark = _mark;
14777 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14779 }
14780 _res = NULL;
14781 done:
14782 D(p->level--);
14783 return _res;
14784}
14785
14786// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14787static expr_ty
14788tuple_rule(Parser *p)
14789{
14790 D(p->level++);
14791 if (p->error_indicator) {
14792 D(p->level--);
14793 return NULL;
14794 }
14795 expr_ty _res = NULL;
14796 int _mark = p->mark;
14797 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14798 p->error_indicator = 1;
14799 D(p->level--);
14800 return NULL;
14801 }
14802 int _start_lineno = p->tokens[_mark]->lineno;
14803 UNUSED(_start_lineno); // Only used by EXTRA macro
14804 int _start_col_offset = p->tokens[_mark]->col_offset;
14805 UNUSED(_start_col_offset); // Only used by EXTRA macro
14806 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14807 if (p->error_indicator) {
14808 D(p->level--);
14809 return NULL;
14810 }
14811 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14812 Token * _literal;
14813 Token * _literal_1;
14814 void *a;
14815 if (
14816 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14817 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014818 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014819 &&
14820 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14821 )
14822 {
14823 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14824 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14825 if (_token == NULL) {
14826 D(p->level--);
14827 return NULL;
14828 }
14829 int _end_lineno = _token->end_lineno;
14830 UNUSED(_end_lineno); // Only used by EXTRA macro
14831 int _end_col_offset = _token->end_col_offset;
14832 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014833 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014834 if (_res == NULL && PyErr_Occurred()) {
14835 p->error_indicator = 1;
14836 D(p->level--);
14837 return NULL;
14838 }
14839 goto done;
14840 }
14841 p->mark = _mark;
14842 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14844 }
14845 _res = NULL;
14846 done:
14847 D(p->level--);
14848 return _res;
14849}
14850
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014851// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014852static expr_ty
14853group_rule(Parser *p)
14854{
14855 D(p->level++);
14856 if (p->error_indicator) {
14857 D(p->level--);
14858 return NULL;
14859 }
14860 expr_ty _res = NULL;
14861 int _mark = p->mark;
14862 { // '(' (yield_expr | named_expression) ')'
14863 if (p->error_indicator) {
14864 D(p->level--);
14865 return NULL;
14866 }
14867 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14868 Token * _literal;
14869 Token * _literal_1;
14870 void *a;
14871 if (
14872 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14873 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014874 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014875 &&
14876 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14877 )
14878 {
14879 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14880 _res = a;
14881 if (_res == NULL && PyErr_Occurred()) {
14882 p->error_indicator = 1;
14883 D(p->level--);
14884 return NULL;
14885 }
14886 goto done;
14887 }
14888 p->mark = _mark;
14889 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14891 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014892 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014893 if (p->error_indicator) {
14894 D(p->level--);
14895 return NULL;
14896 }
14897 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14898 void *invalid_group_var;
14899 if (
14900 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14901 )
14902 {
14903 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14904 _res = invalid_group_var;
14905 goto done;
14906 }
14907 p->mark = _mark;
14908 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14910 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014911 _res = NULL;
14912 done:
14913 D(p->level--);
14914 return _res;
14915}
14916
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014917// genexp:
14918// | '(' (assigment_expression | expression !':=') for_if_clauses ')'
14919// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014920static expr_ty
14921genexp_rule(Parser *p)
14922{
14923 D(p->level++);
14924 if (p->error_indicator) {
14925 D(p->level--);
14926 return NULL;
14927 }
14928 expr_ty _res = NULL;
14929 int _mark = p->mark;
14930 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14931 p->error_indicator = 1;
14932 D(p->level--);
14933 return NULL;
14934 }
14935 int _start_lineno = p->tokens[_mark]->lineno;
14936 UNUSED(_start_lineno); // Only used by EXTRA macro
14937 int _start_col_offset = p->tokens[_mark]->col_offset;
14938 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014939 { // '(' (assigment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014940 if (p->error_indicator) {
14941 D(p->level--);
14942 return NULL;
14943 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014944 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014945 Token * _literal;
14946 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014947 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014948 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014949 if (
14950 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14951 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014952 (a = _tmp_117_rule(p)) // assigment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014953 &&
14954 (b = for_if_clauses_rule(p)) // for_if_clauses
14955 &&
14956 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14957 )
14958 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014959 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014960 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14961 if (_token == NULL) {
14962 D(p->level--);
14963 return NULL;
14964 }
14965 int _end_lineno = _token->end_lineno;
14966 UNUSED(_end_lineno); // Only used by EXTRA macro
14967 int _end_col_offset = _token->end_col_offset;
14968 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014969 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014970 if (_res == NULL && PyErr_Occurred()) {
14971 p->error_indicator = 1;
14972 D(p->level--);
14973 return NULL;
14974 }
14975 goto done;
14976 }
14977 p->mark = _mark;
14978 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014980 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014981 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014982 if (p->error_indicator) {
14983 D(p->level--);
14984 return NULL;
14985 }
14986 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14987 void *invalid_comprehension_var;
14988 if (
14989 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14990 )
14991 {
14992 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14993 _res = invalid_comprehension_var;
14994 goto done;
14995 }
14996 p->mark = _mark;
14997 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14999 }
15000 _res = NULL;
15001 done:
15002 D(p->level--);
15003 return _res;
15004}
15005
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015006// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015007static expr_ty
15008set_rule(Parser *p)
15009{
15010 D(p->level++);
15011 if (p->error_indicator) {
15012 D(p->level--);
15013 return NULL;
15014 }
15015 expr_ty _res = NULL;
15016 int _mark = p->mark;
15017 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15018 p->error_indicator = 1;
15019 D(p->level--);
15020 return NULL;
15021 }
15022 int _start_lineno = p->tokens[_mark]->lineno;
15023 UNUSED(_start_lineno); // Only used by EXTRA macro
15024 int _start_col_offset = p->tokens[_mark]->col_offset;
15025 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015026 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015027 if (p->error_indicator) {
15028 D(p->level--);
15029 return NULL;
15030 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015031 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015032 Token * _literal;
15033 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015034 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015035 if (
15036 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15037 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015038 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015039 &&
15040 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15041 )
15042 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015043 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 +010015044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15045 if (_token == NULL) {
15046 D(p->level--);
15047 return NULL;
15048 }
15049 int _end_lineno = _token->end_lineno;
15050 UNUSED(_end_lineno); // Only used by EXTRA macro
15051 int _end_col_offset = _token->end_col_offset;
15052 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015053 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015054 if (_res == NULL && PyErr_Occurred()) {
15055 p->error_indicator = 1;
15056 D(p->level--);
15057 return NULL;
15058 }
15059 goto done;
15060 }
15061 p->mark = _mark;
15062 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015064 }
15065 _res = NULL;
15066 done:
15067 D(p->level--);
15068 return _res;
15069}
15070
Pablo Galindo835f14f2021-01-31 22:52:56 +000015071// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015072static expr_ty
15073setcomp_rule(Parser *p)
15074{
15075 D(p->level++);
15076 if (p->error_indicator) {
15077 D(p->level--);
15078 return NULL;
15079 }
15080 expr_ty _res = NULL;
15081 int _mark = p->mark;
15082 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15083 p->error_indicator = 1;
15084 D(p->level--);
15085 return NULL;
15086 }
15087 int _start_lineno = p->tokens[_mark]->lineno;
15088 UNUSED(_start_lineno); // Only used by EXTRA macro
15089 int _start_col_offset = p->tokens[_mark]->col_offset;
15090 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015091 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015092 if (p->error_indicator) {
15093 D(p->level--);
15094 return NULL;
15095 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015096 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 +010015097 Token * _literal;
15098 Token * _literal_1;
15099 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015100 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015101 if (
15102 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15103 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015104 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015105 &&
15106 (b = for_if_clauses_rule(p)) // for_if_clauses
15107 &&
15108 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15109 )
15110 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015111 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 +010015112 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15113 if (_token == NULL) {
15114 D(p->level--);
15115 return NULL;
15116 }
15117 int _end_lineno = _token->end_lineno;
15118 UNUSED(_end_lineno); // Only used by EXTRA macro
15119 int _end_col_offset = _token->end_col_offset;
15120 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015121 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015122 if (_res == NULL && PyErr_Occurred()) {
15123 p->error_indicator = 1;
15124 D(p->level--);
15125 return NULL;
15126 }
15127 goto done;
15128 }
15129 p->mark = _mark;
15130 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015132 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015133 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015134 if (p->error_indicator) {
15135 D(p->level--);
15136 return NULL;
15137 }
15138 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15139 void *invalid_comprehension_var;
15140 if (
15141 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15142 )
15143 {
15144 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15145 _res = invalid_comprehension_var;
15146 goto done;
15147 }
15148 p->mark = _mark;
15149 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15151 }
15152 _res = NULL;
15153 done:
15154 D(p->level--);
15155 return _res;
15156}
15157
Pablo Galindoda743502021-04-15 14:06:39 +010015158// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015159static expr_ty
15160dict_rule(Parser *p)
15161{
15162 D(p->level++);
15163 if (p->error_indicator) {
15164 D(p->level--);
15165 return NULL;
15166 }
15167 expr_ty _res = NULL;
15168 int _mark = p->mark;
15169 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15170 p->error_indicator = 1;
15171 D(p->level--);
15172 return NULL;
15173 }
15174 int _start_lineno = p->tokens[_mark]->lineno;
15175 UNUSED(_start_lineno); // Only used by EXTRA macro
15176 int _start_col_offset = p->tokens[_mark]->col_offset;
15177 UNUSED(_start_col_offset); // Only used by EXTRA macro
15178 { // '{' double_starred_kvpairs? '}'
15179 if (p->error_indicator) {
15180 D(p->level--);
15181 return NULL;
15182 }
15183 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15184 Token * _literal;
15185 Token * _literal_1;
15186 void *a;
15187 if (
15188 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15189 &&
15190 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15191 &&
15192 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15193 )
15194 {
15195 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15196 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15197 if (_token == NULL) {
15198 D(p->level--);
15199 return NULL;
15200 }
15201 int _end_lineno = _token->end_lineno;
15202 UNUSED(_end_lineno); // Only used by EXTRA macro
15203 int _end_col_offset = _token->end_col_offset;
15204 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015205 _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 +010015206 if (_res == NULL && PyErr_Occurred()) {
15207 p->error_indicator = 1;
15208 D(p->level--);
15209 return NULL;
15210 }
15211 goto done;
15212 }
15213 p->mark = _mark;
15214 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15216 }
Pablo Galindoda743502021-04-15 14:06:39 +010015217 { // '{' invalid_double_starred_kvpairs '}'
15218 if (p->error_indicator) {
15219 D(p->level--);
15220 return NULL;
15221 }
15222 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15223 Token * _literal;
15224 Token * _literal_1;
15225 void *invalid_double_starred_kvpairs_var;
15226 if (
15227 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15228 &&
15229 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15230 &&
15231 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15232 )
15233 {
15234 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15235 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15236 goto done;
15237 }
15238 p->mark = _mark;
15239 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15241 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015242 _res = NULL;
15243 done:
15244 D(p->level--);
15245 return _res;
15246}
15247
15248// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15249static expr_ty
15250dictcomp_rule(Parser *p)
15251{
15252 D(p->level++);
15253 if (p->error_indicator) {
15254 D(p->level--);
15255 return NULL;
15256 }
15257 expr_ty _res = NULL;
15258 int _mark = p->mark;
15259 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15260 p->error_indicator = 1;
15261 D(p->level--);
15262 return NULL;
15263 }
15264 int _start_lineno = p->tokens[_mark]->lineno;
15265 UNUSED(_start_lineno); // Only used by EXTRA macro
15266 int _start_col_offset = p->tokens[_mark]->col_offset;
15267 UNUSED(_start_col_offset); // Only used by EXTRA macro
15268 { // '{' kvpair for_if_clauses '}'
15269 if (p->error_indicator) {
15270 D(p->level--);
15271 return NULL;
15272 }
15273 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15274 Token * _literal;
15275 Token * _literal_1;
15276 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015277 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015278 if (
15279 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15280 &&
15281 (a = kvpair_rule(p)) // kvpair
15282 &&
15283 (b = for_if_clauses_rule(p)) // for_if_clauses
15284 &&
15285 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15286 )
15287 {
15288 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15289 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15290 if (_token == NULL) {
15291 D(p->level--);
15292 return NULL;
15293 }
15294 int _end_lineno = _token->end_lineno;
15295 UNUSED(_end_lineno); // Only used by EXTRA macro
15296 int _end_col_offset = _token->end_col_offset;
15297 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015298 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015299 if (_res == NULL && PyErr_Occurred()) {
15300 p->error_indicator = 1;
15301 D(p->level--);
15302 return NULL;
15303 }
15304 goto done;
15305 }
15306 p->mark = _mark;
15307 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15309 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015310 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015311 if (p->error_indicator) {
15312 D(p->level--);
15313 return NULL;
15314 }
15315 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15316 void *invalid_dict_comprehension_var;
15317 if (
15318 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15319 )
15320 {
15321 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15322 _res = invalid_dict_comprehension_var;
15323 goto done;
15324 }
15325 p->mark = _mark;
15326 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15328 }
15329 _res = NULL;
15330 done:
15331 D(p->level--);
15332 return _res;
15333}
15334
15335// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15336static asdl_seq*
15337double_starred_kvpairs_rule(Parser *p)
15338{
15339 D(p->level++);
15340 if (p->error_indicator) {
15341 D(p->level--);
15342 return NULL;
15343 }
15344 asdl_seq* _res = NULL;
15345 int _mark = p->mark;
15346 { // ','.double_starred_kvpair+ ','?
15347 if (p->error_indicator) {
15348 D(p->level--);
15349 return NULL;
15350 }
15351 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15352 void *_opt_var;
15353 UNUSED(_opt_var); // Silence compiler warnings
15354 asdl_seq * a;
15355 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015356 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015357 &&
15358 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15359 )
15360 {
15361 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15362 _res = a;
15363 if (_res == NULL && PyErr_Occurred()) {
15364 p->error_indicator = 1;
15365 D(p->level--);
15366 return NULL;
15367 }
15368 goto done;
15369 }
15370 p->mark = _mark;
15371 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15373 }
15374 _res = NULL;
15375 done:
15376 D(p->level--);
15377 return _res;
15378}
15379
15380// double_starred_kvpair: '**' bitwise_or | kvpair
15381static KeyValuePair*
15382double_starred_kvpair_rule(Parser *p)
15383{
15384 D(p->level++);
15385 if (p->error_indicator) {
15386 D(p->level--);
15387 return NULL;
15388 }
15389 KeyValuePair* _res = NULL;
15390 int _mark = p->mark;
15391 { // '**' bitwise_or
15392 if (p->error_indicator) {
15393 D(p->level--);
15394 return NULL;
15395 }
15396 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15397 Token * _literal;
15398 expr_ty a;
15399 if (
15400 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15401 &&
15402 (a = bitwise_or_rule(p)) // bitwise_or
15403 )
15404 {
15405 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15406 _res = _PyPegen_key_value_pair ( p , NULL , a );
15407 if (_res == NULL && PyErr_Occurred()) {
15408 p->error_indicator = 1;
15409 D(p->level--);
15410 return NULL;
15411 }
15412 goto done;
15413 }
15414 p->mark = _mark;
15415 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15417 }
15418 { // kvpair
15419 if (p->error_indicator) {
15420 D(p->level--);
15421 return NULL;
15422 }
15423 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15424 KeyValuePair* kvpair_var;
15425 if (
15426 (kvpair_var = kvpair_rule(p)) // kvpair
15427 )
15428 {
15429 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15430 _res = kvpair_var;
15431 goto done;
15432 }
15433 p->mark = _mark;
15434 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15436 }
15437 _res = NULL;
15438 done:
15439 D(p->level--);
15440 return _res;
15441}
15442
15443// kvpair: expression ':' expression
15444static KeyValuePair*
15445kvpair_rule(Parser *p)
15446{
15447 D(p->level++);
15448 if (p->error_indicator) {
15449 D(p->level--);
15450 return NULL;
15451 }
15452 KeyValuePair* _res = NULL;
15453 int _mark = p->mark;
15454 { // expression ':' expression
15455 if (p->error_indicator) {
15456 D(p->level--);
15457 return NULL;
15458 }
15459 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15460 Token * _literal;
15461 expr_ty a;
15462 expr_ty b;
15463 if (
15464 (a = expression_rule(p)) // expression
15465 &&
15466 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15467 &&
15468 (b = expression_rule(p)) // expression
15469 )
15470 {
15471 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15472 _res = _PyPegen_key_value_pair ( p , a , b );
15473 if (_res == NULL && PyErr_Occurred()) {
15474 p->error_indicator = 1;
15475 D(p->level--);
15476 return NULL;
15477 }
15478 goto done;
15479 }
15480 p->mark = _mark;
15481 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15483 }
15484 _res = NULL;
15485 done:
15486 D(p->level--);
15487 return _res;
15488}
15489
15490// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015491static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015492for_if_clauses_rule(Parser *p)
15493{
15494 D(p->level++);
15495 if (p->error_indicator) {
15496 D(p->level--);
15497 return NULL;
15498 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015499 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015500 int _mark = p->mark;
15501 { // for_if_clause+
15502 if (p->error_indicator) {
15503 D(p->level--);
15504 return NULL;
15505 }
15506 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 +010015507 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015508 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015509 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015510 )
15511 {
15512 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 +010015513 _res = a;
15514 if (_res == NULL && PyErr_Occurred()) {
15515 p->error_indicator = 1;
15516 D(p->level--);
15517 return NULL;
15518 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015519 goto done;
15520 }
15521 p->mark = _mark;
15522 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15524 }
15525 _res = NULL;
15526 done:
15527 D(p->level--);
15528 return _res;
15529}
15530
15531// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015532// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15533// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15534// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015535static comprehension_ty
15536for_if_clause_rule(Parser *p)
15537{
15538 D(p->level++);
15539 if (p->error_indicator) {
15540 D(p->level--);
15541 return NULL;
15542 }
15543 comprehension_ty _res = NULL;
15544 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015545 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015546 if (p->error_indicator) {
15547 D(p->level--);
15548 return NULL;
15549 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015550 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15551 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015552 Token * _keyword;
15553 Token * _keyword_1;
15554 expr_ty a;
15555 Token * async_var;
15556 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015557 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015558 if (
15559 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15560 &&
15561 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15562 &&
15563 (a = star_targets_rule(p)) // star_targets
15564 &&
15565 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15566 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015567 (_cut_var = 1)
15568 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015569 (b = disjunction_rule(p)) // disjunction
15570 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015571 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015572 )
15573 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015574 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 +020015575 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015576 if (_res == NULL && PyErr_Occurred()) {
15577 p->error_indicator = 1;
15578 D(p->level--);
15579 return NULL;
15580 }
15581 goto done;
15582 }
15583 p->mark = _mark;
15584 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15586 if (_cut_var) {
15587 D(p->level--);
15588 return NULL;
15589 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015590 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015591 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015592 if (p->error_indicator) {
15593 D(p->level--);
15594 return NULL;
15595 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015596 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15597 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015598 Token * _keyword;
15599 Token * _keyword_1;
15600 expr_ty a;
15601 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015602 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015603 if (
15604 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15605 &&
15606 (a = star_targets_rule(p)) // star_targets
15607 &&
15608 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15609 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015610 (_cut_var = 1)
15611 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015612 (b = disjunction_rule(p)) // disjunction
15613 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015614 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015615 )
15616 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015617 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 +020015618 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015619 if (_res == NULL && PyErr_Occurred()) {
15620 p->error_indicator = 1;
15621 D(p->level--);
15622 return NULL;
15623 }
15624 goto done;
15625 }
15626 p->mark = _mark;
15627 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15629 if (_cut_var) {
15630 D(p->level--);
15631 return NULL;
15632 }
15633 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015634 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015635 if (p->error_indicator) {
15636 D(p->level--);
15637 return NULL;
15638 }
15639 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15640 void *invalid_for_target_var;
15641 if (
15642 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15643 )
15644 {
15645 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15646 _res = invalid_for_target_var;
15647 goto done;
15648 }
15649 p->mark = _mark;
15650 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015652 }
15653 _res = NULL;
15654 done:
15655 D(p->level--);
15656 return _res;
15657}
15658
15659// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15660static expr_ty
15661yield_expr_rule(Parser *p)
15662{
15663 D(p->level++);
15664 if (p->error_indicator) {
15665 D(p->level--);
15666 return NULL;
15667 }
15668 expr_ty _res = NULL;
15669 int _mark = p->mark;
15670 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15671 p->error_indicator = 1;
15672 D(p->level--);
15673 return NULL;
15674 }
15675 int _start_lineno = p->tokens[_mark]->lineno;
15676 UNUSED(_start_lineno); // Only used by EXTRA macro
15677 int _start_col_offset = p->tokens[_mark]->col_offset;
15678 UNUSED(_start_col_offset); // Only used by EXTRA macro
15679 { // 'yield' 'from' expression
15680 if (p->error_indicator) {
15681 D(p->level--);
15682 return NULL;
15683 }
15684 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15685 Token * _keyword;
15686 Token * _keyword_1;
15687 expr_ty a;
15688 if (
15689 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15690 &&
15691 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15692 &&
15693 (a = expression_rule(p)) // expression
15694 )
15695 {
15696 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15697 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15698 if (_token == NULL) {
15699 D(p->level--);
15700 return NULL;
15701 }
15702 int _end_lineno = _token->end_lineno;
15703 UNUSED(_end_lineno); // Only used by EXTRA macro
15704 int _end_col_offset = _token->end_col_offset;
15705 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015706 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015707 if (_res == NULL && PyErr_Occurred()) {
15708 p->error_indicator = 1;
15709 D(p->level--);
15710 return NULL;
15711 }
15712 goto done;
15713 }
15714 p->mark = _mark;
15715 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15717 }
15718 { // 'yield' star_expressions?
15719 if (p->error_indicator) {
15720 D(p->level--);
15721 return NULL;
15722 }
15723 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15724 Token * _keyword;
15725 void *a;
15726 if (
15727 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15728 &&
15729 (a = star_expressions_rule(p), 1) // star_expressions?
15730 )
15731 {
15732 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15733 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15734 if (_token == NULL) {
15735 D(p->level--);
15736 return NULL;
15737 }
15738 int _end_lineno = _token->end_lineno;
15739 UNUSED(_end_lineno); // Only used by EXTRA macro
15740 int _end_col_offset = _token->end_col_offset;
15741 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015742 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015743 if (_res == NULL && PyErr_Occurred()) {
15744 p->error_indicator = 1;
15745 D(p->level--);
15746 return NULL;
15747 }
15748 goto done;
15749 }
15750 p->mark = _mark;
15751 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15753 }
15754 _res = NULL;
15755 done:
15756 D(p->level--);
15757 return _res;
15758}
15759
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015760// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015761static expr_ty
15762arguments_rule(Parser *p)
15763{
15764 D(p->level++);
15765 if (p->error_indicator) {
15766 D(p->level--);
15767 return NULL;
15768 }
15769 expr_ty _res = NULL;
15770 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15771 D(p->level--);
15772 return _res;
15773 }
15774 int _mark = p->mark;
15775 { // args ','? &')'
15776 if (p->error_indicator) {
15777 D(p->level--);
15778 return NULL;
15779 }
15780 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15781 void *_opt_var;
15782 UNUSED(_opt_var); // Silence compiler warnings
15783 expr_ty a;
15784 if (
15785 (a = args_rule(p)) // args
15786 &&
15787 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15788 &&
15789 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15790 )
15791 {
15792 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15793 _res = a;
15794 if (_res == NULL && PyErr_Occurred()) {
15795 p->error_indicator = 1;
15796 D(p->level--);
15797 return NULL;
15798 }
15799 goto done;
15800 }
15801 p->mark = _mark;
15802 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15804 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015805 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015806 if (p->error_indicator) {
15807 D(p->level--);
15808 return NULL;
15809 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015810 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15811 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015812 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015813 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015814 )
15815 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015816 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15817 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015818 goto done;
15819 }
15820 p->mark = _mark;
15821 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015823 }
15824 _res = NULL;
15825 done:
15826 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15827 D(p->level--);
15828 return _res;
15829}
15830
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015831// args:
15832// | ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
15833// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015834static expr_ty
15835args_rule(Parser *p)
15836{
15837 D(p->level++);
15838 if (p->error_indicator) {
15839 D(p->level--);
15840 return NULL;
15841 }
15842 expr_ty _res = NULL;
15843 int _mark = p->mark;
15844 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15845 p->error_indicator = 1;
15846 D(p->level--);
15847 return NULL;
15848 }
15849 int _start_lineno = p->tokens[_mark]->lineno;
15850 UNUSED(_start_lineno); // Only used by EXTRA macro
15851 int _start_col_offset = p->tokens[_mark]->col_offset;
15852 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015853 { // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015854 if (p->error_indicator) {
15855 D(p->level--);
15856 return NULL;
15857 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015858 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015859 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015860 void *b;
15861 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015862 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015863 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015864 (b = _tmp_125_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015865 )
15866 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015867 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15869 if (_token == NULL) {
15870 D(p->level--);
15871 return NULL;
15872 }
15873 int _end_lineno = _token->end_lineno;
15874 UNUSED(_end_lineno); // Only used by EXTRA macro
15875 int _end_col_offset = _token->end_col_offset;
15876 UNUSED(_end_col_offset); // Only used by EXTRA macro
15877 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015878 if (_res == NULL && PyErr_Occurred()) {
15879 p->error_indicator = 1;
15880 D(p->level--);
15881 return NULL;
15882 }
15883 goto done;
15884 }
15885 p->mark = _mark;
15886 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015888 }
15889 { // kwargs
15890 if (p->error_indicator) {
15891 D(p->level--);
15892 return NULL;
15893 }
15894 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15895 asdl_seq* a;
15896 if (
15897 (a = kwargs_rule(p)) // kwargs
15898 )
15899 {
15900 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15901 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15902 if (_token == NULL) {
15903 D(p->level--);
15904 return NULL;
15905 }
15906 int _end_lineno = _token->end_lineno;
15907 UNUSED(_end_lineno); // Only used by EXTRA macro
15908 int _end_col_offset = _token->end_col_offset;
15909 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015910 _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 +010015911 if (_res == NULL && PyErr_Occurred()) {
15912 p->error_indicator = 1;
15913 D(p->level--);
15914 return NULL;
15915 }
15916 goto done;
15917 }
15918 p->mark = _mark;
15919 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15921 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015922 _res = NULL;
15923 done:
15924 D(p->level--);
15925 return _res;
15926}
15927
15928// kwargs:
15929// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15930// | ','.kwarg_or_starred+
15931// | ','.kwarg_or_double_starred+
15932static asdl_seq*
15933kwargs_rule(Parser *p)
15934{
15935 D(p->level++);
15936 if (p->error_indicator) {
15937 D(p->level--);
15938 return NULL;
15939 }
15940 asdl_seq* _res = NULL;
15941 int _mark = p->mark;
15942 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15943 if (p->error_indicator) {
15944 D(p->level--);
15945 return NULL;
15946 }
15947 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15948 Token * _literal;
15949 asdl_seq * a;
15950 asdl_seq * b;
15951 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015952 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015953 &&
15954 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15955 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015956 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015957 )
15958 {
15959 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15960 _res = _PyPegen_join_sequences ( p , a , b );
15961 if (_res == NULL && PyErr_Occurred()) {
15962 p->error_indicator = 1;
15963 D(p->level--);
15964 return NULL;
15965 }
15966 goto done;
15967 }
15968 p->mark = _mark;
15969 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15971 }
15972 { // ','.kwarg_or_starred+
15973 if (p->error_indicator) {
15974 D(p->level--);
15975 return NULL;
15976 }
15977 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015978 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015979 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015980 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015981 )
15982 {
15983 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015984 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015985 goto done;
15986 }
15987 p->mark = _mark;
15988 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15990 }
15991 { // ','.kwarg_or_double_starred+
15992 if (p->error_indicator) {
15993 D(p->level--);
15994 return NULL;
15995 }
15996 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015997 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015998 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015999 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016000 )
16001 {
16002 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016003 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016004 goto done;
16005 }
16006 p->mark = _mark;
16007 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
16009 }
16010 _res = NULL;
16011 done:
16012 D(p->level--);
16013 return _res;
16014}
16015
16016// starred_expression: '*' expression
16017static expr_ty
16018starred_expression_rule(Parser *p)
16019{
16020 D(p->level++);
16021 if (p->error_indicator) {
16022 D(p->level--);
16023 return NULL;
16024 }
16025 expr_ty _res = NULL;
16026 int _mark = p->mark;
16027 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16028 p->error_indicator = 1;
16029 D(p->level--);
16030 return NULL;
16031 }
16032 int _start_lineno = p->tokens[_mark]->lineno;
16033 UNUSED(_start_lineno); // Only used by EXTRA macro
16034 int _start_col_offset = p->tokens[_mark]->col_offset;
16035 UNUSED(_start_col_offset); // Only used by EXTRA macro
16036 { // '*' expression
16037 if (p->error_indicator) {
16038 D(p->level--);
16039 return NULL;
16040 }
16041 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16042 Token * _literal;
16043 expr_ty a;
16044 if (
16045 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16046 &&
16047 (a = expression_rule(p)) // expression
16048 )
16049 {
16050 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16051 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16052 if (_token == NULL) {
16053 D(p->level--);
16054 return NULL;
16055 }
16056 int _end_lineno = _token->end_lineno;
16057 UNUSED(_end_lineno); // Only used by EXTRA macro
16058 int _end_col_offset = _token->end_col_offset;
16059 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016060 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016061 if (_res == NULL && PyErr_Occurred()) {
16062 p->error_indicator = 1;
16063 D(p->level--);
16064 return NULL;
16065 }
16066 goto done;
16067 }
16068 p->mark = _mark;
16069 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16071 }
16072 _res = NULL;
16073 done:
16074 D(p->level--);
16075 return _res;
16076}
16077
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016078// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016079static KeywordOrStarred*
16080kwarg_or_starred_rule(Parser *p)
16081{
16082 D(p->level++);
16083 if (p->error_indicator) {
16084 D(p->level--);
16085 return NULL;
16086 }
16087 KeywordOrStarred* _res = NULL;
16088 int _mark = p->mark;
16089 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16090 p->error_indicator = 1;
16091 D(p->level--);
16092 return NULL;
16093 }
16094 int _start_lineno = p->tokens[_mark]->lineno;
16095 UNUSED(_start_lineno); // Only used by EXTRA macro
16096 int _start_col_offset = p->tokens[_mark]->col_offset;
16097 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016098 if (p->call_invalid_rules) { // invalid_kwarg
16099 if (p->error_indicator) {
16100 D(p->level--);
16101 return NULL;
16102 }
16103 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16104 void *invalid_kwarg_var;
16105 if (
16106 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16107 )
16108 {
16109 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16110 _res = invalid_kwarg_var;
16111 goto done;
16112 }
16113 p->mark = _mark;
16114 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16115 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16116 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016117 { // NAME '=' expression
16118 if (p->error_indicator) {
16119 D(p->level--);
16120 return NULL;
16121 }
16122 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16123 Token * _literal;
16124 expr_ty a;
16125 expr_ty b;
16126 if (
16127 (a = _PyPegen_name_token(p)) // NAME
16128 &&
16129 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16130 &&
16131 (b = expression_rule(p)) // expression
16132 )
16133 {
16134 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16135 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16136 if (_token == NULL) {
16137 D(p->level--);
16138 return NULL;
16139 }
16140 int _end_lineno = _token->end_lineno;
16141 UNUSED(_end_lineno); // Only used by EXTRA macro
16142 int _end_col_offset = _token->end_col_offset;
16143 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016144 _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 +010016145 if (_res == NULL && PyErr_Occurred()) {
16146 p->error_indicator = 1;
16147 D(p->level--);
16148 return NULL;
16149 }
16150 goto done;
16151 }
16152 p->mark = _mark;
16153 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16155 }
16156 { // starred_expression
16157 if (p->error_indicator) {
16158 D(p->level--);
16159 return NULL;
16160 }
16161 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16162 expr_ty a;
16163 if (
16164 (a = starred_expression_rule(p)) // starred_expression
16165 )
16166 {
16167 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16168 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16169 if (_res == NULL && PyErr_Occurred()) {
16170 p->error_indicator = 1;
16171 D(p->level--);
16172 return NULL;
16173 }
16174 goto done;
16175 }
16176 p->mark = _mark;
16177 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16179 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016180 _res = NULL;
16181 done:
16182 D(p->level--);
16183 return _res;
16184}
16185
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016186// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016187static KeywordOrStarred*
16188kwarg_or_double_starred_rule(Parser *p)
16189{
16190 D(p->level++);
16191 if (p->error_indicator) {
16192 D(p->level--);
16193 return NULL;
16194 }
16195 KeywordOrStarred* _res = NULL;
16196 int _mark = p->mark;
16197 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16198 p->error_indicator = 1;
16199 D(p->level--);
16200 return NULL;
16201 }
16202 int _start_lineno = p->tokens[_mark]->lineno;
16203 UNUSED(_start_lineno); // Only used by EXTRA macro
16204 int _start_col_offset = p->tokens[_mark]->col_offset;
16205 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016206 if (p->call_invalid_rules) { // invalid_kwarg
16207 if (p->error_indicator) {
16208 D(p->level--);
16209 return NULL;
16210 }
16211 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16212 void *invalid_kwarg_var;
16213 if (
16214 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16215 )
16216 {
16217 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16218 _res = invalid_kwarg_var;
16219 goto done;
16220 }
16221 p->mark = _mark;
16222 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16224 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016225 { // NAME '=' expression
16226 if (p->error_indicator) {
16227 D(p->level--);
16228 return NULL;
16229 }
16230 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16231 Token * _literal;
16232 expr_ty a;
16233 expr_ty b;
16234 if (
16235 (a = _PyPegen_name_token(p)) // NAME
16236 &&
16237 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16238 &&
16239 (b = expression_rule(p)) // expression
16240 )
16241 {
16242 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16243 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16244 if (_token == NULL) {
16245 D(p->level--);
16246 return NULL;
16247 }
16248 int _end_lineno = _token->end_lineno;
16249 UNUSED(_end_lineno); // Only used by EXTRA macro
16250 int _end_col_offset = _token->end_col_offset;
16251 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016252 _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 +010016253 if (_res == NULL && PyErr_Occurred()) {
16254 p->error_indicator = 1;
16255 D(p->level--);
16256 return NULL;
16257 }
16258 goto done;
16259 }
16260 p->mark = _mark;
16261 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16263 }
16264 { // '**' expression
16265 if (p->error_indicator) {
16266 D(p->level--);
16267 return NULL;
16268 }
16269 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16270 Token * _literal;
16271 expr_ty a;
16272 if (
16273 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16274 &&
16275 (a = expression_rule(p)) // expression
16276 )
16277 {
16278 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16279 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16280 if (_token == NULL) {
16281 D(p->level--);
16282 return NULL;
16283 }
16284 int _end_lineno = _token->end_lineno;
16285 UNUSED(_end_lineno); // Only used by EXTRA macro
16286 int _end_col_offset = _token->end_col_offset;
16287 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016288 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016289 if (_res == NULL && PyErr_Occurred()) {
16290 p->error_indicator = 1;
16291 D(p->level--);
16292 return NULL;
16293 }
16294 goto done;
16295 }
16296 p->mark = _mark;
16297 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16299 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016300 _res = NULL;
16301 done:
16302 D(p->level--);
16303 return _res;
16304}
16305
16306// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16307static expr_ty
16308star_targets_rule(Parser *p)
16309{
16310 D(p->level++);
16311 if (p->error_indicator) {
16312 D(p->level--);
16313 return NULL;
16314 }
16315 expr_ty _res = NULL;
16316 int _mark = p->mark;
16317 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16318 p->error_indicator = 1;
16319 D(p->level--);
16320 return NULL;
16321 }
16322 int _start_lineno = p->tokens[_mark]->lineno;
16323 UNUSED(_start_lineno); // Only used by EXTRA macro
16324 int _start_col_offset = p->tokens[_mark]->col_offset;
16325 UNUSED(_start_col_offset); // Only used by EXTRA macro
16326 { // star_target !','
16327 if (p->error_indicator) {
16328 D(p->level--);
16329 return NULL;
16330 }
16331 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16332 expr_ty a;
16333 if (
16334 (a = star_target_rule(p)) // star_target
16335 &&
16336 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16337 )
16338 {
16339 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16340 _res = a;
16341 if (_res == NULL && PyErr_Occurred()) {
16342 p->error_indicator = 1;
16343 D(p->level--);
16344 return NULL;
16345 }
16346 goto done;
16347 }
16348 p->mark = _mark;
16349 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16351 }
16352 { // star_target ((',' star_target))* ','?
16353 if (p->error_indicator) {
16354 D(p->level--);
16355 return NULL;
16356 }
16357 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16358 void *_opt_var;
16359 UNUSED(_opt_var); // Silence compiler warnings
16360 expr_ty a;
16361 asdl_seq * b;
16362 if (
16363 (a = star_target_rule(p)) // star_target
16364 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016365 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016366 &&
16367 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16368 )
16369 {
16370 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16371 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16372 if (_token == NULL) {
16373 D(p->level--);
16374 return NULL;
16375 }
16376 int _end_lineno = _token->end_lineno;
16377 UNUSED(_end_lineno); // Only used by EXTRA macro
16378 int _end_col_offset = _token->end_col_offset;
16379 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016380 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016381 if (_res == NULL && PyErr_Occurred()) {
16382 p->error_indicator = 1;
16383 D(p->level--);
16384 return NULL;
16385 }
16386 goto done;
16387 }
16388 p->mark = _mark;
16389 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16391 }
16392 _res = NULL;
16393 done:
16394 D(p->level--);
16395 return _res;
16396}
16397
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016398// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016399static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016400star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016401{
16402 D(p->level++);
16403 if (p->error_indicator) {
16404 D(p->level--);
16405 return NULL;
16406 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016407 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016408 int _mark = p->mark;
16409 { // ','.star_target+ ','?
16410 if (p->error_indicator) {
16411 D(p->level--);
16412 return NULL;
16413 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016414 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 +010016415 void *_opt_var;
16416 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016417 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016418 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016419 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016420 &&
16421 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16422 )
16423 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016424 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 +010016425 _res = a;
16426 if (_res == NULL && PyErr_Occurred()) {
16427 p->error_indicator = 1;
16428 D(p->level--);
16429 return NULL;
16430 }
16431 goto done;
16432 }
16433 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016434 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16436 }
16437 _res = NULL;
16438 done:
16439 D(p->level--);
16440 return _res;
16441}
16442
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016443// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16444static asdl_expr_seq*
16445star_targets_tuple_seq_rule(Parser *p)
16446{
16447 D(p->level++);
16448 if (p->error_indicator) {
16449 D(p->level--);
16450 return NULL;
16451 }
16452 asdl_expr_seq* _res = NULL;
16453 int _mark = p->mark;
16454 { // star_target ((',' star_target))+ ','?
16455 if (p->error_indicator) {
16456 D(p->level--);
16457 return NULL;
16458 }
16459 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16460 void *_opt_var;
16461 UNUSED(_opt_var); // Silence compiler warnings
16462 expr_ty a;
16463 asdl_seq * b;
16464 if (
16465 (a = star_target_rule(p)) // star_target
16466 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016467 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016468 &&
16469 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16470 )
16471 {
16472 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16473 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16474 if (_res == NULL && PyErr_Occurred()) {
16475 p->error_indicator = 1;
16476 D(p->level--);
16477 return NULL;
16478 }
16479 goto done;
16480 }
16481 p->mark = _mark;
16482 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16484 }
16485 { // star_target ','
16486 if (p->error_indicator) {
16487 D(p->level--);
16488 return NULL;
16489 }
16490 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16491 Token * _literal;
16492 expr_ty a;
16493 if (
16494 (a = star_target_rule(p)) // star_target
16495 &&
16496 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16497 )
16498 {
16499 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16500 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16501 if (_res == NULL && PyErr_Occurred()) {
16502 p->error_indicator = 1;
16503 D(p->level--);
16504 return NULL;
16505 }
16506 goto done;
16507 }
16508 p->mark = _mark;
16509 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16511 }
16512 _res = NULL;
16513 done:
16514 D(p->level--);
16515 return _res;
16516}
16517
16518// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016519static expr_ty
16520star_target_rule(Parser *p)
16521{
16522 D(p->level++);
16523 if (p->error_indicator) {
16524 D(p->level--);
16525 return NULL;
16526 }
16527 expr_ty _res = NULL;
16528 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16529 D(p->level--);
16530 return _res;
16531 }
16532 int _mark = p->mark;
16533 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16534 p->error_indicator = 1;
16535 D(p->level--);
16536 return NULL;
16537 }
16538 int _start_lineno = p->tokens[_mark]->lineno;
16539 UNUSED(_start_lineno); // Only used by EXTRA macro
16540 int _start_col_offset = p->tokens[_mark]->col_offset;
16541 UNUSED(_start_col_offset); // Only used by EXTRA macro
16542 { // '*' (!'*' star_target)
16543 if (p->error_indicator) {
16544 D(p->level--);
16545 return NULL;
16546 }
16547 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16548 Token * _literal;
16549 void *a;
16550 if (
16551 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16552 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016553 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016554 )
16555 {
16556 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16557 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16558 if (_token == NULL) {
16559 D(p->level--);
16560 return NULL;
16561 }
16562 int _end_lineno = _token->end_lineno;
16563 UNUSED(_end_lineno); // Only used by EXTRA macro
16564 int _end_col_offset = _token->end_col_offset;
16565 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016566 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016567 if (_res == NULL && PyErr_Occurred()) {
16568 p->error_indicator = 1;
16569 D(p->level--);
16570 return NULL;
16571 }
16572 goto done;
16573 }
16574 p->mark = _mark;
16575 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16577 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016578 { // target_with_star_atom
16579 if (p->error_indicator) {
16580 D(p->level--);
16581 return NULL;
16582 }
16583 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16584 expr_ty target_with_star_atom_var;
16585 if (
16586 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16587 )
16588 {
16589 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16590 _res = target_with_star_atom_var;
16591 goto done;
16592 }
16593 p->mark = _mark;
16594 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16596 }
16597 _res = NULL;
16598 done:
16599 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16600 D(p->level--);
16601 return _res;
16602}
16603
16604// target_with_star_atom:
16605// | t_primary '.' NAME !t_lookahead
16606// | t_primary '[' slices ']' !t_lookahead
16607// | star_atom
16608static expr_ty
16609target_with_star_atom_rule(Parser *p)
16610{
16611 D(p->level++);
16612 if (p->error_indicator) {
16613 D(p->level--);
16614 return NULL;
16615 }
16616 expr_ty _res = NULL;
16617 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16618 D(p->level--);
16619 return _res;
16620 }
16621 int _mark = p->mark;
16622 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16623 p->error_indicator = 1;
16624 D(p->level--);
16625 return NULL;
16626 }
16627 int _start_lineno = p->tokens[_mark]->lineno;
16628 UNUSED(_start_lineno); // Only used by EXTRA macro
16629 int _start_col_offset = p->tokens[_mark]->col_offset;
16630 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016631 { // t_primary '.' NAME !t_lookahead
16632 if (p->error_indicator) {
16633 D(p->level--);
16634 return NULL;
16635 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016636 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 +010016637 Token * _literal;
16638 expr_ty a;
16639 expr_ty b;
16640 if (
16641 (a = t_primary_rule(p)) // t_primary
16642 &&
16643 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16644 &&
16645 (b = _PyPegen_name_token(p)) // NAME
16646 &&
16647 _PyPegen_lookahead(0, t_lookahead_rule, p)
16648 )
16649 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016650 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 +010016651 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16652 if (_token == NULL) {
16653 D(p->level--);
16654 return NULL;
16655 }
16656 int _end_lineno = _token->end_lineno;
16657 UNUSED(_end_lineno); // Only used by EXTRA macro
16658 int _end_col_offset = _token->end_col_offset;
16659 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016660 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016661 if (_res == NULL && PyErr_Occurred()) {
16662 p->error_indicator = 1;
16663 D(p->level--);
16664 return NULL;
16665 }
16666 goto done;
16667 }
16668 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016669 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16671 }
16672 { // t_primary '[' slices ']' !t_lookahead
16673 if (p->error_indicator) {
16674 D(p->level--);
16675 return NULL;
16676 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016677 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 +010016678 Token * _literal;
16679 Token * _literal_1;
16680 expr_ty a;
16681 expr_ty b;
16682 if (
16683 (a = t_primary_rule(p)) // t_primary
16684 &&
16685 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16686 &&
16687 (b = slices_rule(p)) // slices
16688 &&
16689 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16690 &&
16691 _PyPegen_lookahead(0, t_lookahead_rule, p)
16692 )
16693 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016694 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 +010016695 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16696 if (_token == NULL) {
16697 D(p->level--);
16698 return NULL;
16699 }
16700 int _end_lineno = _token->end_lineno;
16701 UNUSED(_end_lineno); // Only used by EXTRA macro
16702 int _end_col_offset = _token->end_col_offset;
16703 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016704 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016705 if (_res == NULL && PyErr_Occurred()) {
16706 p->error_indicator = 1;
16707 D(p->level--);
16708 return NULL;
16709 }
16710 goto done;
16711 }
16712 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016713 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16715 }
16716 { // star_atom
16717 if (p->error_indicator) {
16718 D(p->level--);
16719 return NULL;
16720 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016721 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 +010016722 expr_ty star_atom_var;
16723 if (
16724 (star_atom_var = star_atom_rule(p)) // star_atom
16725 )
16726 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016727 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 +010016728 _res = star_atom_var;
16729 goto done;
16730 }
16731 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016732 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16734 }
16735 _res = NULL;
16736 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016737 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016738 D(p->level--);
16739 return _res;
16740}
16741
16742// star_atom:
16743// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016744// | '(' target_with_star_atom ')'
16745// | '(' star_targets_tuple_seq? ')'
16746// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016747static expr_ty
16748star_atom_rule(Parser *p)
16749{
16750 D(p->level++);
16751 if (p->error_indicator) {
16752 D(p->level--);
16753 return NULL;
16754 }
16755 expr_ty _res = NULL;
16756 int _mark = p->mark;
16757 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16758 p->error_indicator = 1;
16759 D(p->level--);
16760 return NULL;
16761 }
16762 int _start_lineno = p->tokens[_mark]->lineno;
16763 UNUSED(_start_lineno); // Only used by EXTRA macro
16764 int _start_col_offset = p->tokens[_mark]->col_offset;
16765 UNUSED(_start_col_offset); // Only used by EXTRA macro
16766 { // NAME
16767 if (p->error_indicator) {
16768 D(p->level--);
16769 return NULL;
16770 }
16771 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16772 expr_ty a;
16773 if (
16774 (a = _PyPegen_name_token(p)) // NAME
16775 )
16776 {
16777 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16778 _res = _PyPegen_set_expr_context ( p , a , Store );
16779 if (_res == NULL && PyErr_Occurred()) {
16780 p->error_indicator = 1;
16781 D(p->level--);
16782 return NULL;
16783 }
16784 goto done;
16785 }
16786 p->mark = _mark;
16787 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16789 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016790 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016791 if (p->error_indicator) {
16792 D(p->level--);
16793 return NULL;
16794 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016795 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 +010016796 Token * _literal;
16797 Token * _literal_1;
16798 expr_ty a;
16799 if (
16800 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16801 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016802 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016803 &&
16804 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16805 )
16806 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016807 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 +010016808 _res = _PyPegen_set_expr_context ( p , a , Store );
16809 if (_res == NULL && PyErr_Occurred()) {
16810 p->error_indicator = 1;
16811 D(p->level--);
16812 return NULL;
16813 }
16814 goto done;
16815 }
16816 p->mark = _mark;
16817 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016819 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016820 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016821 if (p->error_indicator) {
16822 D(p->level--);
16823 return NULL;
16824 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016825 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 +010016826 Token * _literal;
16827 Token * _literal_1;
16828 void *a;
16829 if (
16830 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16831 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016832 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016833 &&
16834 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16835 )
16836 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016837 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 +010016838 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16839 if (_token == NULL) {
16840 D(p->level--);
16841 return NULL;
16842 }
16843 int _end_lineno = _token->end_lineno;
16844 UNUSED(_end_lineno); // Only used by EXTRA macro
16845 int _end_col_offset = _token->end_col_offset;
16846 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016847 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016848 if (_res == NULL && PyErr_Occurred()) {
16849 p->error_indicator = 1;
16850 D(p->level--);
16851 return NULL;
16852 }
16853 goto done;
16854 }
16855 p->mark = _mark;
16856 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016858 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016859 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016860 if (p->error_indicator) {
16861 D(p->level--);
16862 return NULL;
16863 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016864 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 +010016865 Token * _literal;
16866 Token * _literal_1;
16867 void *a;
16868 if (
16869 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16870 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016871 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016872 &&
16873 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16874 )
16875 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016876 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 +010016877 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_List ( a , 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 star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016897 }
16898 _res = NULL;
16899 done:
16900 D(p->level--);
16901 return _res;
16902}
16903
16904// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16905static expr_ty
16906single_target_rule(Parser *p)
16907{
16908 D(p->level++);
16909 if (p->error_indicator) {
16910 D(p->level--);
16911 return NULL;
16912 }
16913 expr_ty _res = NULL;
16914 int _mark = p->mark;
16915 { // single_subscript_attribute_target
16916 if (p->error_indicator) {
16917 D(p->level--);
16918 return NULL;
16919 }
16920 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16921 expr_ty single_subscript_attribute_target_var;
16922 if (
16923 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16924 )
16925 {
16926 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16927 _res = single_subscript_attribute_target_var;
16928 goto done;
16929 }
16930 p->mark = _mark;
16931 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16933 }
16934 { // NAME
16935 if (p->error_indicator) {
16936 D(p->level--);
16937 return NULL;
16938 }
16939 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16940 expr_ty a;
16941 if (
16942 (a = _PyPegen_name_token(p)) // NAME
16943 )
16944 {
16945 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16946 _res = _PyPegen_set_expr_context ( p , a , Store );
16947 if (_res == NULL && PyErr_Occurred()) {
16948 p->error_indicator = 1;
16949 D(p->level--);
16950 return NULL;
16951 }
16952 goto done;
16953 }
16954 p->mark = _mark;
16955 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16957 }
16958 { // '(' single_target ')'
16959 if (p->error_indicator) {
16960 D(p->level--);
16961 return NULL;
16962 }
16963 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16964 Token * _literal;
16965 Token * _literal_1;
16966 expr_ty a;
16967 if (
16968 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16969 &&
16970 (a = single_target_rule(p)) // single_target
16971 &&
16972 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16973 )
16974 {
16975 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16976 _res = a;
16977 if (_res == NULL && PyErr_Occurred()) {
16978 p->error_indicator = 1;
16979 D(p->level--);
16980 return NULL;
16981 }
16982 goto done;
16983 }
16984 p->mark = _mark;
16985 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16987 }
16988 _res = NULL;
16989 done:
16990 D(p->level--);
16991 return _res;
16992}
16993
16994// single_subscript_attribute_target:
16995// | t_primary '.' NAME !t_lookahead
16996// | t_primary '[' slices ']' !t_lookahead
16997static expr_ty
16998single_subscript_attribute_target_rule(Parser *p)
16999{
17000 D(p->level++);
17001 if (p->error_indicator) {
17002 D(p->level--);
17003 return NULL;
17004 }
17005 expr_ty _res = NULL;
17006 int _mark = p->mark;
17007 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17008 p->error_indicator = 1;
17009 D(p->level--);
17010 return NULL;
17011 }
17012 int _start_lineno = p->tokens[_mark]->lineno;
17013 UNUSED(_start_lineno); // Only used by EXTRA macro
17014 int _start_col_offset = p->tokens[_mark]->col_offset;
17015 UNUSED(_start_col_offset); // Only used by EXTRA macro
17016 { // t_primary '.' NAME !t_lookahead
17017 if (p->error_indicator) {
17018 D(p->level--);
17019 return NULL;
17020 }
17021 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17022 Token * _literal;
17023 expr_ty a;
17024 expr_ty b;
17025 if (
17026 (a = t_primary_rule(p)) // t_primary
17027 &&
17028 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17029 &&
17030 (b = _PyPegen_name_token(p)) // NAME
17031 &&
17032 _PyPegen_lookahead(0, t_lookahead_rule, p)
17033 )
17034 {
17035 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17036 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17037 if (_token == NULL) {
17038 D(p->level--);
17039 return NULL;
17040 }
17041 int _end_lineno = _token->end_lineno;
17042 UNUSED(_end_lineno); // Only used by EXTRA macro
17043 int _end_col_offset = _token->end_col_offset;
17044 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017045 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017046 if (_res == NULL && PyErr_Occurred()) {
17047 p->error_indicator = 1;
17048 D(p->level--);
17049 return NULL;
17050 }
17051 goto done;
17052 }
17053 p->mark = _mark;
17054 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17056 }
17057 { // t_primary '[' slices ']' !t_lookahead
17058 if (p->error_indicator) {
17059 D(p->level--);
17060 return NULL;
17061 }
17062 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17063 Token * _literal;
17064 Token * _literal_1;
17065 expr_ty a;
17066 expr_ty b;
17067 if (
17068 (a = t_primary_rule(p)) // t_primary
17069 &&
17070 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17071 &&
17072 (b = slices_rule(p)) // slices
17073 &&
17074 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17075 &&
17076 _PyPegen_lookahead(0, t_lookahead_rule, p)
17077 )
17078 {
17079 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17080 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17081 if (_token == NULL) {
17082 D(p->level--);
17083 return NULL;
17084 }
17085 int _end_lineno = _token->end_lineno;
17086 UNUSED(_end_lineno); // Only used by EXTRA macro
17087 int _end_col_offset = _token->end_col_offset;
17088 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017089 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017090 if (_res == NULL && PyErr_Occurred()) {
17091 p->error_indicator = 1;
17092 D(p->level--);
17093 return NULL;
17094 }
17095 goto done;
17096 }
17097 p->mark = _mark;
17098 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17100 }
17101 _res = NULL;
17102 done:
17103 D(p->level--);
17104 return _res;
17105}
17106
17107// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017108static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017109del_targets_rule(Parser *p)
17110{
17111 D(p->level++);
17112 if (p->error_indicator) {
17113 D(p->level--);
17114 return NULL;
17115 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017116 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017117 int _mark = p->mark;
17118 { // ','.del_target+ ','?
17119 if (p->error_indicator) {
17120 D(p->level--);
17121 return NULL;
17122 }
17123 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17124 void *_opt_var;
17125 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017126 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017127 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017128 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017129 &&
17130 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17131 )
17132 {
17133 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17134 _res = a;
17135 if (_res == NULL && PyErr_Occurred()) {
17136 p->error_indicator = 1;
17137 D(p->level--);
17138 return NULL;
17139 }
17140 goto done;
17141 }
17142 p->mark = _mark;
17143 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17145 }
17146 _res = NULL;
17147 done:
17148 D(p->level--);
17149 return _res;
17150}
17151
17152// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017153// | t_primary '.' NAME !t_lookahead
17154// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017155// | del_t_atom
17156static expr_ty
17157del_target_rule(Parser *p)
17158{
17159 D(p->level++);
17160 if (p->error_indicator) {
17161 D(p->level--);
17162 return NULL;
17163 }
17164 expr_ty _res = NULL;
17165 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17166 D(p->level--);
17167 return _res;
17168 }
17169 int _mark = p->mark;
17170 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17171 p->error_indicator = 1;
17172 D(p->level--);
17173 return NULL;
17174 }
17175 int _start_lineno = p->tokens[_mark]->lineno;
17176 UNUSED(_start_lineno); // Only used by EXTRA macro
17177 int _start_col_offset = p->tokens[_mark]->col_offset;
17178 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017179 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017180 if (p->error_indicator) {
17181 D(p->level--);
17182 return NULL;
17183 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017184 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 +010017185 Token * _literal;
17186 expr_ty a;
17187 expr_ty b;
17188 if (
17189 (a = t_primary_rule(p)) // t_primary
17190 &&
17191 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17192 &&
17193 (b = _PyPegen_name_token(p)) // NAME
17194 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017195 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017196 )
17197 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017198 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 +010017199 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17200 if (_token == NULL) {
17201 D(p->level--);
17202 return NULL;
17203 }
17204 int _end_lineno = _token->end_lineno;
17205 UNUSED(_end_lineno); // Only used by EXTRA macro
17206 int _end_col_offset = _token->end_col_offset;
17207 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017208 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017209 if (_res == NULL && PyErr_Occurred()) {
17210 p->error_indicator = 1;
17211 D(p->level--);
17212 return NULL;
17213 }
17214 goto done;
17215 }
17216 p->mark = _mark;
17217 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017219 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017220 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017221 if (p->error_indicator) {
17222 D(p->level--);
17223 return NULL;
17224 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017225 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 +010017226 Token * _literal;
17227 Token * _literal_1;
17228 expr_ty a;
17229 expr_ty b;
17230 if (
17231 (a = t_primary_rule(p)) // t_primary
17232 &&
17233 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17234 &&
17235 (b = slices_rule(p)) // slices
17236 &&
17237 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17238 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017239 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017240 )
17241 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017242 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 +010017243 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17244 if (_token == NULL) {
17245 D(p->level--);
17246 return NULL;
17247 }
17248 int _end_lineno = _token->end_lineno;
17249 UNUSED(_end_lineno); // Only used by EXTRA macro
17250 int _end_col_offset = _token->end_col_offset;
17251 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017252 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017253 if (_res == NULL && PyErr_Occurred()) {
17254 p->error_indicator = 1;
17255 D(p->level--);
17256 return NULL;
17257 }
17258 goto done;
17259 }
17260 p->mark = _mark;
17261 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017263 }
17264 { // del_t_atom
17265 if (p->error_indicator) {
17266 D(p->level--);
17267 return NULL;
17268 }
17269 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17270 expr_ty del_t_atom_var;
17271 if (
17272 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17273 )
17274 {
17275 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17276 _res = del_t_atom_var;
17277 goto done;
17278 }
17279 p->mark = _mark;
17280 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17282 }
17283 _res = NULL;
17284 done:
17285 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17286 D(p->level--);
17287 return _res;
17288}
17289
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017290// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017291static expr_ty
17292del_t_atom_rule(Parser *p)
17293{
17294 D(p->level++);
17295 if (p->error_indicator) {
17296 D(p->level--);
17297 return NULL;
17298 }
17299 expr_ty _res = NULL;
17300 int _mark = p->mark;
17301 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17302 p->error_indicator = 1;
17303 D(p->level--);
17304 return NULL;
17305 }
17306 int _start_lineno = p->tokens[_mark]->lineno;
17307 UNUSED(_start_lineno); // Only used by EXTRA macro
17308 int _start_col_offset = p->tokens[_mark]->col_offset;
17309 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017310 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017311 if (p->error_indicator) {
17312 D(p->level--);
17313 return NULL;
17314 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017315 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017316 expr_ty a;
17317 if (
17318 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017319 )
17320 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017321 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 +010017322 _res = _PyPegen_set_expr_context ( p , a , Del );
17323 if (_res == NULL && PyErr_Occurred()) {
17324 p->error_indicator = 1;
17325 D(p->level--);
17326 return NULL;
17327 }
17328 goto done;
17329 }
17330 p->mark = _mark;
17331 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017333 }
17334 { // '(' del_target ')'
17335 if (p->error_indicator) {
17336 D(p->level--);
17337 return NULL;
17338 }
17339 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17340 Token * _literal;
17341 Token * _literal_1;
17342 expr_ty a;
17343 if (
17344 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17345 &&
17346 (a = del_target_rule(p)) // del_target
17347 &&
17348 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17349 )
17350 {
17351 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17352 _res = _PyPegen_set_expr_context ( p , a , Del );
17353 if (_res == NULL && PyErr_Occurred()) {
17354 p->error_indicator = 1;
17355 D(p->level--);
17356 return NULL;
17357 }
17358 goto done;
17359 }
17360 p->mark = _mark;
17361 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17363 }
17364 { // '(' del_targets? ')'
17365 if (p->error_indicator) {
17366 D(p->level--);
17367 return NULL;
17368 }
17369 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17370 Token * _literal;
17371 Token * _literal_1;
17372 void *a;
17373 if (
17374 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17375 &&
17376 (a = del_targets_rule(p), 1) // del_targets?
17377 &&
17378 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17379 )
17380 {
17381 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17382 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17383 if (_token == NULL) {
17384 D(p->level--);
17385 return NULL;
17386 }
17387 int _end_lineno = _token->end_lineno;
17388 UNUSED(_end_lineno); // Only used by EXTRA macro
17389 int _end_col_offset = _token->end_col_offset;
17390 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017391 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017392 if (_res == NULL && PyErr_Occurred()) {
17393 p->error_indicator = 1;
17394 D(p->level--);
17395 return NULL;
17396 }
17397 goto done;
17398 }
17399 p->mark = _mark;
17400 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17402 }
17403 { // '[' del_targets? ']'
17404 if (p->error_indicator) {
17405 D(p->level--);
17406 return NULL;
17407 }
17408 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17409 Token * _literal;
17410 Token * _literal_1;
17411 void *a;
17412 if (
17413 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17414 &&
17415 (a = del_targets_rule(p), 1) // del_targets?
17416 &&
17417 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17418 )
17419 {
17420 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17421 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17422 if (_token == NULL) {
17423 D(p->level--);
17424 return NULL;
17425 }
17426 int _end_lineno = _token->end_lineno;
17427 UNUSED(_end_lineno); // Only used by EXTRA macro
17428 int _end_col_offset = _token->end_col_offset;
17429 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017430 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017431 if (_res == NULL && PyErr_Occurred()) {
17432 p->error_indicator = 1;
17433 D(p->level--);
17434 return NULL;
17435 }
17436 goto done;
17437 }
17438 p->mark = _mark;
17439 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17441 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017442 _res = NULL;
17443 done:
17444 D(p->level--);
17445 return _res;
17446}
17447
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017448// Left-recursive
17449// t_primary:
17450// | t_primary '.' NAME &t_lookahead
17451// | t_primary '[' slices ']' &t_lookahead
17452// | t_primary genexp &t_lookahead
17453// | t_primary '(' arguments? ')' &t_lookahead
17454// | atom &t_lookahead
17455static expr_ty t_primary_raw(Parser *);
17456static expr_ty
17457t_primary_rule(Parser *p)
17458{
17459 D(p->level++);
17460 expr_ty _res = NULL;
17461 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17462 D(p->level--);
17463 return _res;
17464 }
17465 int _mark = p->mark;
17466 int _resmark = p->mark;
17467 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017468 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17469 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017470 D(p->level--);
17471 return _res;
17472 }
17473 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017474 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017475 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017476 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017477 if (p->error_indicator)
17478 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017479 if (_raw == NULL || p->mark <= _resmark)
17480 break;
17481 _resmark = p->mark;
17482 _res = _raw;
17483 }
17484 p->mark = _resmark;
17485 D(p->level--);
17486 return _res;
17487}
17488static expr_ty
17489t_primary_raw(Parser *p)
17490{
17491 D(p->level++);
17492 if (p->error_indicator) {
17493 D(p->level--);
17494 return NULL;
17495 }
17496 expr_ty _res = NULL;
17497 int _mark = p->mark;
17498 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17499 p->error_indicator = 1;
17500 D(p->level--);
17501 return NULL;
17502 }
17503 int _start_lineno = p->tokens[_mark]->lineno;
17504 UNUSED(_start_lineno); // Only used by EXTRA macro
17505 int _start_col_offset = p->tokens[_mark]->col_offset;
17506 UNUSED(_start_col_offset); // Only used by EXTRA macro
17507 { // t_primary '.' NAME &t_lookahead
17508 if (p->error_indicator) {
17509 D(p->level--);
17510 return NULL;
17511 }
17512 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17513 Token * _literal;
17514 expr_ty a;
17515 expr_ty b;
17516 if (
17517 (a = t_primary_rule(p)) // t_primary
17518 &&
17519 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17520 &&
17521 (b = _PyPegen_name_token(p)) // NAME
17522 &&
17523 _PyPegen_lookahead(1, t_lookahead_rule, p)
17524 )
17525 {
17526 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17527 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17528 if (_token == NULL) {
17529 D(p->level--);
17530 return NULL;
17531 }
17532 int _end_lineno = _token->end_lineno;
17533 UNUSED(_end_lineno); // Only used by EXTRA macro
17534 int _end_col_offset = _token->end_col_offset;
17535 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017536 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017537 if (_res == NULL && PyErr_Occurred()) {
17538 p->error_indicator = 1;
17539 D(p->level--);
17540 return NULL;
17541 }
17542 goto done;
17543 }
17544 p->mark = _mark;
17545 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17547 }
17548 { // t_primary '[' slices ']' &t_lookahead
17549 if (p->error_indicator) {
17550 D(p->level--);
17551 return NULL;
17552 }
17553 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17554 Token * _literal;
17555 Token * _literal_1;
17556 expr_ty a;
17557 expr_ty b;
17558 if (
17559 (a = t_primary_rule(p)) // t_primary
17560 &&
17561 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17562 &&
17563 (b = slices_rule(p)) // slices
17564 &&
17565 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17566 &&
17567 _PyPegen_lookahead(1, t_lookahead_rule, p)
17568 )
17569 {
17570 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17571 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17572 if (_token == NULL) {
17573 D(p->level--);
17574 return NULL;
17575 }
17576 int _end_lineno = _token->end_lineno;
17577 UNUSED(_end_lineno); // Only used by EXTRA macro
17578 int _end_col_offset = _token->end_col_offset;
17579 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017580 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017581 if (_res == NULL && PyErr_Occurred()) {
17582 p->error_indicator = 1;
17583 D(p->level--);
17584 return NULL;
17585 }
17586 goto done;
17587 }
17588 p->mark = _mark;
17589 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17591 }
17592 { // t_primary genexp &t_lookahead
17593 if (p->error_indicator) {
17594 D(p->level--);
17595 return NULL;
17596 }
17597 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17598 expr_ty a;
17599 expr_ty b;
17600 if (
17601 (a = t_primary_rule(p)) // t_primary
17602 &&
17603 (b = genexp_rule(p)) // genexp
17604 &&
17605 _PyPegen_lookahead(1, t_lookahead_rule, p)
17606 )
17607 {
17608 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17609 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17610 if (_token == NULL) {
17611 D(p->level--);
17612 return NULL;
17613 }
17614 int _end_lineno = _token->end_lineno;
17615 UNUSED(_end_lineno); // Only used by EXTRA macro
17616 int _end_col_offset = _token->end_col_offset;
17617 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017618 _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 +010017619 if (_res == NULL && PyErr_Occurred()) {
17620 p->error_indicator = 1;
17621 D(p->level--);
17622 return NULL;
17623 }
17624 goto done;
17625 }
17626 p->mark = _mark;
17627 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17629 }
17630 { // t_primary '(' arguments? ')' &t_lookahead
17631 if (p->error_indicator) {
17632 D(p->level--);
17633 return NULL;
17634 }
17635 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17636 Token * _literal;
17637 Token * _literal_1;
17638 expr_ty a;
17639 void *b;
17640 if (
17641 (a = t_primary_rule(p)) // t_primary
17642 &&
17643 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17644 &&
17645 (b = arguments_rule(p), 1) // arguments?
17646 &&
17647 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17648 &&
17649 _PyPegen_lookahead(1, t_lookahead_rule, p)
17650 )
17651 {
17652 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17653 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17654 if (_token == NULL) {
17655 D(p->level--);
17656 return NULL;
17657 }
17658 int _end_lineno = _token->end_lineno;
17659 UNUSED(_end_lineno); // Only used by EXTRA macro
17660 int _end_col_offset = _token->end_col_offset;
17661 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017662 _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 +010017663 if (_res == NULL && PyErr_Occurred()) {
17664 p->error_indicator = 1;
17665 D(p->level--);
17666 return NULL;
17667 }
17668 goto done;
17669 }
17670 p->mark = _mark;
17671 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17673 }
17674 { // atom &t_lookahead
17675 if (p->error_indicator) {
17676 D(p->level--);
17677 return NULL;
17678 }
17679 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17680 expr_ty a;
17681 if (
17682 (a = atom_rule(p)) // atom
17683 &&
17684 _PyPegen_lookahead(1, t_lookahead_rule, p)
17685 )
17686 {
17687 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17688 _res = a;
17689 if (_res == NULL && PyErr_Occurred()) {
17690 p->error_indicator = 1;
17691 D(p->level--);
17692 return NULL;
17693 }
17694 goto done;
17695 }
17696 p->mark = _mark;
17697 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17699 }
17700 _res = NULL;
17701 done:
17702 D(p->level--);
17703 return _res;
17704}
17705
17706// t_lookahead: '(' | '[' | '.'
17707static void *
17708t_lookahead_rule(Parser *p)
17709{
17710 D(p->level++);
17711 if (p->error_indicator) {
17712 D(p->level--);
17713 return NULL;
17714 }
17715 void * _res = NULL;
17716 int _mark = p->mark;
17717 { // '('
17718 if (p->error_indicator) {
17719 D(p->level--);
17720 return NULL;
17721 }
17722 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17723 Token * _literal;
17724 if (
17725 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17726 )
17727 {
17728 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17729 _res = _literal;
17730 goto done;
17731 }
17732 p->mark = _mark;
17733 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17735 }
17736 { // '['
17737 if (p->error_indicator) {
17738 D(p->level--);
17739 return NULL;
17740 }
17741 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17742 Token * _literal;
17743 if (
17744 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17745 )
17746 {
17747 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17748 _res = _literal;
17749 goto done;
17750 }
17751 p->mark = _mark;
17752 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17754 }
17755 { // '.'
17756 if (p->error_indicator) {
17757 D(p->level--);
17758 return NULL;
17759 }
17760 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17761 Token * _literal;
17762 if (
17763 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17764 )
17765 {
17766 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17767 _res = _literal;
17768 goto done;
17769 }
17770 p->mark = _mark;
17771 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17773 }
17774 _res = NULL;
17775 done:
17776 D(p->level--);
17777 return _res;
17778}
17779
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017780// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017781// | args ',' '*'
17782// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017783// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017784// | args for_if_clauses
17785// | args ',' expression for_if_clauses
17786// | args ',' args
17787static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017788invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017789{
17790 D(p->level++);
17791 if (p->error_indicator) {
17792 D(p->level--);
17793 return NULL;
17794 }
17795 void * _res = NULL;
17796 int _mark = p->mark;
17797 { // args ',' '*'
17798 if (p->error_indicator) {
17799 D(p->level--);
17800 return NULL;
17801 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017802 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017803 Token * _literal;
17804 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017805 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017806 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010017807 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017808 &&
17809 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17810 &&
17811 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17812 )
17813 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017814 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017815 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017816 if (_res == NULL && PyErr_Occurred()) {
17817 p->error_indicator = 1;
17818 D(p->level--);
17819 return NULL;
17820 }
17821 goto done;
17822 }
17823 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017824 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17826 }
17827 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17828 if (p->error_indicator) {
17829 D(p->level--);
17830 return NULL;
17831 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017832 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 +010017833 Token * _literal;
17834 void *_opt_var;
17835 UNUSED(_opt_var); // Silence compiler warnings
17836 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017837 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017838 if (
17839 (a = expression_rule(p)) // expression
17840 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017841 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017842 &&
17843 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17844 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070017845 (_opt_var = _tmp_141_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017846 )
17847 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017848 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 +010017849 _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 +010017850 if (_res == NULL && PyErr_Occurred()) {
17851 p->error_indicator = 1;
17852 D(p->level--);
17853 return NULL;
17854 }
17855 goto done;
17856 }
17857 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017858 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17860 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017861 { // NAME '=' expression for_if_clauses
17862 if (p->error_indicator) {
17863 D(p->level--);
17864 return NULL;
17865 }
17866 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17867 expr_ty a;
17868 Token * b;
17869 expr_ty expression_var;
17870 asdl_comprehension_seq* for_if_clauses_var;
17871 if (
17872 (a = _PyPegen_name_token(p)) // NAME
17873 &&
17874 (b = _PyPegen_expect_token(p, 22)) // token='='
17875 &&
17876 (expression_var = expression_rule(p)) // expression
17877 &&
17878 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17879 )
17880 {
17881 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17882 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17883 if (_res == NULL && PyErr_Occurred()) {
17884 p->error_indicator = 1;
17885 D(p->level--);
17886 return NULL;
17887 }
17888 goto done;
17889 }
17890 p->mark = _mark;
17891 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
17892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
17893 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017894 { // args for_if_clauses
17895 if (p->error_indicator) {
17896 D(p->level--);
17897 return NULL;
17898 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017899 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 +010017900 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017901 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017902 if (
17903 (a = args_rule(p)) // args
17904 &&
17905 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17906 )
17907 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017908 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 +010017909 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
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;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017918 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17920 }
17921 { // args ',' expression for_if_clauses
17922 if (p->error_indicator) {
17923 D(p->level--);
17924 return NULL;
17925 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017926 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 +010017927 Token * _literal;
17928 expr_ty a;
17929 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017930 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017931 if (
17932 (args_var = args_rule(p)) // args
17933 &&
17934 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17935 &&
17936 (a = expression_rule(p)) // expression
17937 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017938 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017939 )
17940 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017941 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 +010017942 _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 +010017943 if (_res == NULL && PyErr_Occurred()) {
17944 p->error_indicator = 1;
17945 D(p->level--);
17946 return NULL;
17947 }
17948 goto done;
17949 }
17950 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017951 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17953 }
17954 { // args ',' args
17955 if (p->error_indicator) {
17956 D(p->level--);
17957 return NULL;
17958 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017959 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017960 Token * _literal;
17961 expr_ty a;
17962 expr_ty args_var;
17963 if (
17964 (a = args_rule(p)) // args
17965 &&
17966 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17967 &&
17968 (args_var = args_rule(p)) // args
17969 )
17970 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017971 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 +010017972 _res = _PyPegen_arguments_parsing_error ( p , a );
17973 if (_res == NULL && PyErr_Occurred()) {
17974 p->error_indicator = 1;
17975 D(p->level--);
17976 return NULL;
17977 }
17978 goto done;
17979 }
17980 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017981 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17983 }
17984 _res = NULL;
17985 done:
17986 D(p->level--);
17987 return _res;
17988}
17989
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017990// invalid_kwarg: NAME '=' expression for_if_clauses | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017991static void *
17992invalid_kwarg_rule(Parser *p)
17993{
17994 D(p->level++);
17995 if (p->error_indicator) {
17996 D(p->level--);
17997 return NULL;
17998 }
17999 void * _res = NULL;
18000 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018001 { // NAME '=' expression for_if_clauses
18002 if (p->error_indicator) {
18003 D(p->level--);
18004 return NULL;
18005 }
18006 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18007 expr_ty a;
18008 Token * b;
18009 expr_ty expression_var;
18010 asdl_comprehension_seq* for_if_clauses_var;
18011 if (
18012 (a = _PyPegen_name_token(p)) // NAME
18013 &&
18014 (b = _PyPegen_expect_token(p, 22)) // token='='
18015 &&
18016 (expression_var = expression_rule(p)) // expression
18017 &&
18018 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18019 )
18020 {
18021 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18022 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18023 if (_res == NULL && PyErr_Occurred()) {
18024 p->error_indicator = 1;
18025 D(p->level--);
18026 return NULL;
18027 }
18028 goto done;
18029 }
18030 p->mark = _mark;
18031 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18033 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018034 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018035 if (p->error_indicator) {
18036 D(p->level--);
18037 return NULL;
18038 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018039 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018040 expr_ty a;
18041 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018042 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018043 _PyPegen_lookahead(0, _tmp_142_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018044 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018045 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018046 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018047 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018048 )
18049 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018050 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018051 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018052 if (_res == NULL && PyErr_Occurred()) {
18053 p->error_indicator = 1;
18054 D(p->level--);
18055 return NULL;
18056 }
18057 goto done;
18058 }
18059 p->mark = _mark;
18060 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018062 }
18063 _res = NULL;
18064 done:
18065 D(p->level--);
18066 return _res;
18067}
18068
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018069// expression_without_invalid:
18070// | disjunction 'if' disjunction 'else' expression
18071// | disjunction
18072// | lambdef
18073static expr_ty
18074expression_without_invalid_rule(Parser *p)
18075{
18076 D(p->level++);
18077 if (p->error_indicator) {
18078 D(p->level--);
18079 return NULL;
18080 }
18081 expr_ty _res = NULL;
18082 int _mark = p->mark;
18083 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18084 p->error_indicator = 1;
18085 D(p->level--);
18086 return NULL;
18087 }
18088 int _start_lineno = p->tokens[_mark]->lineno;
18089 UNUSED(_start_lineno); // Only used by EXTRA macro
18090 int _start_col_offset = p->tokens[_mark]->col_offset;
18091 UNUSED(_start_col_offset); // Only used by EXTRA macro
18092 { // disjunction 'if' disjunction 'else' expression
18093 if (p->error_indicator) {
18094 D(p->level--);
18095 return NULL;
18096 }
18097 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18098 Token * _keyword;
18099 Token * _keyword_1;
18100 expr_ty a;
18101 expr_ty b;
18102 expr_ty c;
18103 if (
18104 (a = disjunction_rule(p)) // disjunction
18105 &&
18106 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18107 &&
18108 (b = disjunction_rule(p)) // disjunction
18109 &&
18110 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18111 &&
18112 (c = expression_rule(p)) // expression
18113 )
18114 {
18115 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18116 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18117 if (_token == NULL) {
18118 D(p->level--);
18119 return NULL;
18120 }
18121 int _end_lineno = _token->end_lineno;
18122 UNUSED(_end_lineno); // Only used by EXTRA macro
18123 int _end_col_offset = _token->end_col_offset;
18124 UNUSED(_end_col_offset); // Only used by EXTRA macro
18125 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18126 if (_res == NULL && PyErr_Occurred()) {
18127 p->error_indicator = 1;
18128 D(p->level--);
18129 return NULL;
18130 }
18131 goto done;
18132 }
18133 p->mark = _mark;
18134 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18136 }
18137 { // disjunction
18138 if (p->error_indicator) {
18139 D(p->level--);
18140 return NULL;
18141 }
18142 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18143 expr_ty disjunction_var;
18144 if (
18145 (disjunction_var = disjunction_rule(p)) // disjunction
18146 )
18147 {
18148 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18149 _res = disjunction_var;
18150 goto done;
18151 }
18152 p->mark = _mark;
18153 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18155 }
18156 { // lambdef
18157 if (p->error_indicator) {
18158 D(p->level--);
18159 return NULL;
18160 }
18161 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18162 expr_ty lambdef_var;
18163 if (
18164 (lambdef_var = lambdef_rule(p)) // lambdef
18165 )
18166 {
18167 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18168 _res = lambdef_var;
18169 goto done;
18170 }
18171 p->mark = _mark;
18172 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18174 }
18175 _res = NULL;
18176 done:
18177 D(p->level--);
18178 return _res;
18179}
18180
18181// invalid_expression:
18182// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018183static void *
18184invalid_expression_rule(Parser *p)
18185{
18186 D(p->level++);
18187 if (p->error_indicator) {
18188 D(p->level--);
18189 return NULL;
18190 }
18191 void * _res = NULL;
18192 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018193 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018194 if (p->error_indicator) {
18195 D(p->level--);
18196 return NULL;
18197 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018198 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018199 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018200 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018201 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018202 _PyPegen_lookahead(0, _tmp_143_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018203 &&
18204 (a = disjunction_rule(p)) // disjunction
18205 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018206 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018207 )
18208 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018209 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018210 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018211 if (_res == NULL && PyErr_Occurred()) {
18212 p->error_indicator = 1;
18213 D(p->level--);
18214 return NULL;
18215 }
18216 goto done;
18217 }
18218 p->mark = _mark;
18219 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018221 }
18222 _res = NULL;
18223 done:
18224 D(p->level--);
18225 return _res;
18226}
18227
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018228// invalid_named_expression:
18229// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018230// | NAME '=' bitwise_or !('=' | ':=')
18231// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018232static void *
18233invalid_named_expression_rule(Parser *p)
18234{
18235 D(p->level++);
18236 if (p->error_indicator) {
18237 D(p->level--);
18238 return NULL;
18239 }
18240 void * _res = NULL;
18241 int _mark = p->mark;
18242 { // expression ':=' expression
18243 if (p->error_indicator) {
18244 D(p->level--);
18245 return NULL;
18246 }
18247 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18248 Token * _literal;
18249 expr_ty a;
18250 expr_ty expression_var;
18251 if (
18252 (a = expression_rule(p)) // expression
18253 &&
18254 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18255 &&
18256 (expression_var = expression_rule(p)) // expression
18257 )
18258 {
18259 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18260 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18261 if (_res == NULL && PyErr_Occurred()) {
18262 p->error_indicator = 1;
18263 D(p->level--);
18264 return NULL;
18265 }
18266 goto done;
18267 }
18268 p->mark = _mark;
18269 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18271 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018272 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018273 if (p->error_indicator) {
18274 D(p->level--);
18275 return NULL;
18276 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018277 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 +010018278 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018279 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018280 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018281 if (
18282 (a = _PyPegen_name_token(p)) // NAME
18283 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018284 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018285 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018286 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018287 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018288 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018289 )
18290 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018291 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
18292 _res = p -> in_raw_rule ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018293 if (_res == NULL && PyErr_Occurred()) {
18294 p->error_indicator = 1;
18295 D(p->level--);
18296 return NULL;
18297 }
18298 goto done;
18299 }
18300 p->mark = _mark;
18301 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018303 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018304 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018305 if (p->error_indicator) {
18306 D(p->level--);
18307 return NULL;
18308 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018309 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 !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018310 expr_ty a;
18311 Token * b;
18312 expr_ty bitwise_or_var;
18313 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018314 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018315 &&
18316 (a = bitwise_or_rule(p)) // bitwise_or
18317 &&
18318 (b = _PyPegen_expect_token(p, 22)) // token='='
18319 &&
18320 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18321 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018322 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018323 )
18324 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018325 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 !('=' | ':=')"));
18326 _res = p -> in_raw_rule ? NULL : 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 +010018327 if (_res == NULL && PyErr_Occurred()) {
18328 p->error_indicator = 1;
18329 D(p->level--);
18330 return NULL;
18331 }
18332 goto done;
18333 }
18334 p->mark = _mark;
18335 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018337 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018338 _res = NULL;
18339 done:
18340 D(p->level--);
18341 return _res;
18342}
18343
18344// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018345// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018346// | star_named_expression ',' star_named_expressions* ':' expression
18347// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018348// | ((star_targets '='))* star_expressions '='
18349// | ((star_targets '='))* yield_expr '='
18350// | star_expressions augassign (yield_expr | star_expressions)
18351static void *
18352invalid_assignment_rule(Parser *p)
18353{
18354 D(p->level++);
18355 if (p->error_indicator) {
18356 D(p->level--);
18357 return NULL;
18358 }
18359 void * _res = NULL;
18360 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018361 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018362 if (p->error_indicator) {
18363 D(p->level--);
18364 return NULL;
18365 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018366 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 +010018367 Token * _literal;
18368 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018369 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018370 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018371 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018372 &&
18373 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018374 &&
18375 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018376 )
18377 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018378 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18379 _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 +010018380 if (_res == NULL && PyErr_Occurred()) {
18381 p->error_indicator = 1;
18382 D(p->level--);
18383 return NULL;
18384 }
18385 goto done;
18386 }
18387 p->mark = _mark;
18388 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018390 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018391 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018392 if (p->error_indicator) {
18393 D(p->level--);
18394 return NULL;
18395 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018396 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 +010018397 Token * _literal;
18398 Token * _literal_1;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018399 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018400 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018401 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018402 if (
18403 (a = star_named_expression_rule(p)) // star_named_expression
18404 &&
18405 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18406 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018407 (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018408 &&
18409 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018410 &&
18411 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018412 )
18413 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018414 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 +010018415 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18416 if (_res == NULL && PyErr_Occurred()) {
18417 p->error_indicator = 1;
18418 D(p->level--);
18419 return NULL;
18420 }
18421 goto done;
18422 }
18423 p->mark = _mark;
18424 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018426 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018427 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018428 if (p->error_indicator) {
18429 D(p->level--);
18430 return NULL;
18431 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018432 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018433 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018434 expr_ty a;
18435 expr_ty expression_var;
18436 if (
18437 (a = expression_rule(p)) // expression
18438 &&
18439 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18440 &&
18441 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018442 )
18443 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018444 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 +010018445 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18446 if (_res == NULL && PyErr_Occurred()) {
18447 p->error_indicator = 1;
18448 D(p->level--);
18449 return NULL;
18450 }
18451 goto done;
18452 }
18453 p->mark = _mark;
18454 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018456 }
18457 { // ((star_targets '='))* star_expressions '='
18458 if (p->error_indicator) {
18459 D(p->level--);
18460 return NULL;
18461 }
18462 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18463 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018464 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018465 expr_ty a;
18466 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018467 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018468 &&
18469 (a = star_expressions_rule(p)) // star_expressions
18470 &&
18471 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18472 )
18473 {
18474 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 +030018475 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018476 if (_res == NULL && PyErr_Occurred()) {
18477 p->error_indicator = 1;
18478 D(p->level--);
18479 return NULL;
18480 }
18481 goto done;
18482 }
18483 p->mark = _mark;
18484 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18486 }
18487 { // ((star_targets '='))* yield_expr '='
18488 if (p->error_indicator) {
18489 D(p->level--);
18490 return NULL;
18491 }
18492 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18493 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018494 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018495 expr_ty a;
18496 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018497 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018498 &&
18499 (a = yield_expr_rule(p)) // yield_expr
18500 &&
18501 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18502 )
18503 {
18504 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18505 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18506 if (_res == NULL && PyErr_Occurred()) {
18507 p->error_indicator = 1;
18508 D(p->level--);
18509 return NULL;
18510 }
18511 goto done;
18512 }
18513 p->mark = _mark;
18514 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18516 }
18517 { // star_expressions augassign (yield_expr | star_expressions)
18518 if (p->error_indicator) {
18519 D(p->level--);
18520 return NULL;
18521 }
18522 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018523 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018524 expr_ty a;
18525 AugOperator* augassign_var;
18526 if (
18527 (a = star_expressions_rule(p)) // star_expressions
18528 &&
18529 (augassign_var = augassign_rule(p)) // augassign
18530 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018531 (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018532 )
18533 {
18534 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18535 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18536 if (_res == NULL && PyErr_Occurred()) {
18537 p->error_indicator = 1;
18538 D(p->level--);
18539 return NULL;
18540 }
18541 goto done;
18542 }
18543 p->mark = _mark;
18544 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18546 }
18547 _res = NULL;
18548 done:
18549 D(p->level--);
18550 return _res;
18551}
18552
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018553// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18554static expr_ty
18555invalid_ann_assign_target_rule(Parser *p)
18556{
18557 D(p->level++);
18558 if (p->error_indicator) {
18559 D(p->level--);
18560 return NULL;
18561 }
18562 expr_ty _res = NULL;
18563 int _mark = p->mark;
18564 { // list
18565 if (p->error_indicator) {
18566 D(p->level--);
18567 return NULL;
18568 }
18569 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18570 expr_ty list_var;
18571 if (
18572 (list_var = list_rule(p)) // list
18573 )
18574 {
18575 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18576 _res = list_var;
18577 goto done;
18578 }
18579 p->mark = _mark;
18580 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18582 }
18583 { // tuple
18584 if (p->error_indicator) {
18585 D(p->level--);
18586 return NULL;
18587 }
18588 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18589 expr_ty tuple_var;
18590 if (
18591 (tuple_var = tuple_rule(p)) // tuple
18592 )
18593 {
18594 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18595 _res = tuple_var;
18596 goto done;
18597 }
18598 p->mark = _mark;
18599 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18601 }
18602 { // '(' invalid_ann_assign_target ')'
18603 if (p->error_indicator) {
18604 D(p->level--);
18605 return NULL;
18606 }
18607 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18608 Token * _literal;
18609 Token * _literal_1;
18610 expr_ty a;
18611 if (
18612 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18613 &&
18614 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18615 &&
18616 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18617 )
18618 {
18619 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18620 _res = a;
18621 if (_res == NULL && PyErr_Occurred()) {
18622 p->error_indicator = 1;
18623 D(p->level--);
18624 return NULL;
18625 }
18626 goto done;
18627 }
18628 p->mark = _mark;
18629 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18631 }
18632 _res = NULL;
18633 done:
18634 D(p->level--);
18635 return _res;
18636}
18637
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018638// invalid_del_stmt: 'del' star_expressions
18639static void *
18640invalid_del_stmt_rule(Parser *p)
18641{
18642 D(p->level++);
18643 if (p->error_indicator) {
18644 D(p->level--);
18645 return NULL;
18646 }
18647 void * _res = NULL;
18648 int _mark = p->mark;
18649 { // 'del' star_expressions
18650 if (p->error_indicator) {
18651 D(p->level--);
18652 return NULL;
18653 }
18654 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18655 Token * _keyword;
18656 expr_ty a;
18657 if (
18658 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18659 &&
18660 (a = star_expressions_rule(p)) // star_expressions
18661 )
18662 {
18663 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 +030018664 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018665 if (_res == NULL && PyErr_Occurred()) {
18666 p->error_indicator = 1;
18667 D(p->level--);
18668 return NULL;
18669 }
18670 goto done;
18671 }
18672 p->mark = _mark;
18673 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18675 }
18676 _res = NULL;
18677 done:
18678 D(p->level--);
18679 return _res;
18680}
18681
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018682// invalid_block: NEWLINE !INDENT
18683static void *
18684invalid_block_rule(Parser *p)
18685{
18686 D(p->level++);
18687 if (p->error_indicator) {
18688 D(p->level--);
18689 return NULL;
18690 }
18691 void * _res = NULL;
18692 int _mark = p->mark;
18693 { // NEWLINE !INDENT
18694 if (p->error_indicator) {
18695 D(p->level--);
18696 return NULL;
18697 }
18698 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18699 Token * newline_var;
18700 if (
18701 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18702 &&
18703 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18704 )
18705 {
18706 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18707 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18708 if (_res == NULL && PyErr_Occurred()) {
18709 p->error_indicator = 1;
18710 D(p->level--);
18711 return NULL;
18712 }
18713 goto done;
18714 }
18715 p->mark = _mark;
18716 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18718 }
18719 _res = NULL;
18720 done:
18721 D(p->level--);
18722 return _res;
18723}
18724
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018725// Left-recursive
18726// invalid_primary: primary '{'
18727static void *
18728invalid_primary_rule(Parser *p)
18729{
18730 D(p->level++);
18731 if (p->error_indicator) {
18732 D(p->level--);
18733 return NULL;
18734 }
18735 void * _res = NULL;
18736 int _mark = p->mark;
18737 { // primary '{'
18738 if (p->error_indicator) {
18739 D(p->level--);
18740 return NULL;
18741 }
18742 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18743 Token * a;
18744 expr_ty primary_var;
18745 if (
18746 (primary_var = primary_rule(p)) // primary
18747 &&
18748 (a = _PyPegen_expect_token(p, 25)) // token='{'
18749 )
18750 {
18751 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18752 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18753 if (_res == NULL && PyErr_Occurred()) {
18754 p->error_indicator = 1;
18755 D(p->level--);
18756 return NULL;
18757 }
18758 goto done;
18759 }
18760 p->mark = _mark;
18761 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18763 }
18764 _res = NULL;
18765 done:
18766 D(p->level--);
18767 return _res;
18768}
18769
Pablo Galindo835f14f2021-01-31 22:52:56 +000018770// invalid_comprehension:
18771// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018772// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18773// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018774static void *
18775invalid_comprehension_rule(Parser *p)
18776{
18777 D(p->level++);
18778 if (p->error_indicator) {
18779 D(p->level--);
18780 return NULL;
18781 }
18782 void * _res = NULL;
18783 int _mark = p->mark;
18784 { // ('[' | '(' | '{') starred_expression for_if_clauses
18785 if (p->error_indicator) {
18786 D(p->level--);
18787 return NULL;
18788 }
18789 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018790 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018791 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018792 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018793 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018794 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018795 &&
18796 (a = starred_expression_rule(p)) // starred_expression
18797 &&
18798 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18799 )
18800 {
18801 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18802 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18803 if (_res == NULL && PyErr_Occurred()) {
18804 p->error_indicator = 1;
18805 D(p->level--);
18806 return NULL;
18807 }
18808 goto done;
18809 }
18810 p->mark = _mark;
18811 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18813 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018814 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018815 if (p->error_indicator) {
18816 D(p->level--);
18817 return NULL;
18818 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018819 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 +000018820 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018821 void *_tmp_152_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018822 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018823 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018824 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018825 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018826 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018827 &&
18828 (a = star_named_expression_rule(p)) // star_named_expression
18829 &&
18830 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18831 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018832 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018833 &&
18834 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018835 )
18836 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018837 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"));
18838 _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 +000018839 if (_res == NULL && PyErr_Occurred()) {
18840 p->error_indicator = 1;
18841 D(p->level--);
18842 return NULL;
18843 }
18844 goto done;
18845 }
18846 p->mark = _mark;
18847 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18849 }
18850 { // ('[' | '{') star_named_expression ',' for_if_clauses
18851 if (p->error_indicator) {
18852 D(p->level--);
18853 return NULL;
18854 }
18855 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018856 void *_tmp_153_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018857 expr_ty a;
18858 Token * b;
18859 asdl_comprehension_seq* for_if_clauses_var;
18860 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018861 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010018862 &&
18863 (a = star_named_expression_rule(p)) // star_named_expression
18864 &&
18865 (b = _PyPegen_expect_token(p, 12)) // token=','
18866 &&
18867 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18868 )
18869 {
18870 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18871 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
18872 if (_res == NULL && PyErr_Occurred()) {
18873 p->error_indicator = 1;
18874 D(p->level--);
18875 return NULL;
18876 }
18877 goto done;
18878 }
18879 p->mark = _mark;
18880 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018882 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018883 _res = NULL;
18884 done:
18885 D(p->level--);
18886 return _res;
18887}
18888
18889// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18890static void *
18891invalid_dict_comprehension_rule(Parser *p)
18892{
18893 D(p->level++);
18894 if (p->error_indicator) {
18895 D(p->level--);
18896 return NULL;
18897 }
18898 void * _res = NULL;
18899 int _mark = p->mark;
18900 { // '{' '**' bitwise_or for_if_clauses '}'
18901 if (p->error_indicator) {
18902 D(p->level--);
18903 return NULL;
18904 }
18905 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18906 Token * _literal;
18907 Token * _literal_1;
18908 Token * a;
18909 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018910 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018911 if (
18912 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18913 &&
18914 (a = _PyPegen_expect_token(p, 35)) // token='**'
18915 &&
18916 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18917 &&
18918 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18919 &&
18920 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18921 )
18922 {
18923 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18924 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18925 if (_res == NULL && PyErr_Occurred()) {
18926 p->error_indicator = 1;
18927 D(p->level--);
18928 return NULL;
18929 }
18930 goto done;
18931 }
18932 p->mark = _mark;
18933 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18935 }
18936 _res = NULL;
18937 done:
18938 D(p->level--);
18939 return _res;
18940}
18941
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018942// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018943static void *
18944invalid_parameters_rule(Parser *p)
18945{
18946 D(p->level++);
18947 if (p->error_indicator) {
18948 D(p->level--);
18949 return NULL;
18950 }
18951 void * _res = NULL;
18952 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018953 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018954 if (p->error_indicator) {
18955 D(p->level--);
18956 return NULL;
18957 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018958 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018959 asdl_seq * _loop0_154_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018960 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018961 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018962 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018963 (_loop0_154_var = _loop0_154_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018964 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018965 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018966 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018967 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018968 )
18969 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018970 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 +010018971 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018972 if (_res == NULL && PyErr_Occurred()) {
18973 p->error_indicator = 1;
18974 D(p->level--);
18975 return NULL;
18976 }
18977 goto done;
18978 }
18979 p->mark = _mark;
18980 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
18982 }
18983 _res = NULL;
18984 done:
18985 D(p->level--);
18986 return _res;
18987}
18988
18989// invalid_parameters_helper: slash_with_default | param_with_default+
18990static void *
18991invalid_parameters_helper_rule(Parser *p)
18992{
18993 D(p->level++);
18994 if (p->error_indicator) {
18995 D(p->level--);
18996 return NULL;
18997 }
18998 void * _res = NULL;
18999 int _mark = p->mark;
19000 { // slash_with_default
19001 if (p->error_indicator) {
19002 D(p->level--);
19003 return NULL;
19004 }
19005 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19006 SlashWithDefault* a;
19007 if (
19008 (a = slash_with_default_rule(p)) // slash_with_default
19009 )
19010 {
19011 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19012 _res = _PyPegen_singleton_seq ( p , a );
19013 if (_res == NULL && PyErr_Occurred()) {
19014 p->error_indicator = 1;
19015 D(p->level--);
19016 return NULL;
19017 }
19018 goto done;
19019 }
19020 p->mark = _mark;
19021 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19023 }
19024 { // param_with_default+
19025 if (p->error_indicator) {
19026 D(p->level--);
19027 return NULL;
19028 }
19029 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019030 asdl_seq * _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019031 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019032 (_loop1_155_var = _loop1_155_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019033 )
19034 {
19035 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019036 _res = _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019037 goto done;
19038 }
19039 p->mark = _mark;
19040 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019042 }
19043 _res = NULL;
19044 done:
19045 D(p->level--);
19046 return _res;
19047}
19048
19049// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019050// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019051static void *
19052invalid_lambda_parameters_rule(Parser *p)
19053{
19054 D(p->level++);
19055 if (p->error_indicator) {
19056 D(p->level--);
19057 return NULL;
19058 }
19059 void * _res = NULL;
19060 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019061 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019062 if (p->error_indicator) {
19063 D(p->level--);
19064 return NULL;
19065 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019066 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"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019067 asdl_seq * _loop0_156_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019068 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019069 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019070 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019071 (_loop0_156_var = _loop0_156_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019072 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019073 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019074 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019075 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019076 )
19077 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019078 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 +010019079 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019080 if (_res == NULL && PyErr_Occurred()) {
19081 p->error_indicator = 1;
19082 D(p->level--);
19083 return NULL;
19084 }
19085 goto done;
19086 }
19087 p->mark = _mark;
19088 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19090 }
19091 _res = NULL;
19092 done:
19093 D(p->level--);
19094 return _res;
19095}
19096
19097// invalid_lambda_parameters_helper:
19098// | lambda_slash_with_default
19099// | lambda_param_with_default+
19100static void *
19101invalid_lambda_parameters_helper_rule(Parser *p)
19102{
19103 D(p->level++);
19104 if (p->error_indicator) {
19105 D(p->level--);
19106 return NULL;
19107 }
19108 void * _res = NULL;
19109 int _mark = p->mark;
19110 { // lambda_slash_with_default
19111 if (p->error_indicator) {
19112 D(p->level--);
19113 return NULL;
19114 }
19115 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19116 SlashWithDefault* a;
19117 if (
19118 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19119 )
19120 {
19121 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19122 _res = _PyPegen_singleton_seq ( p , a );
19123 if (_res == NULL && PyErr_Occurred()) {
19124 p->error_indicator = 1;
19125 D(p->level--);
19126 return NULL;
19127 }
19128 goto done;
19129 }
19130 p->mark = _mark;
19131 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19133 }
19134 { // lambda_param_with_default+
19135 if (p->error_indicator) {
19136 D(p->level--);
19137 return NULL;
19138 }
19139 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019140 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019141 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019142 (_loop1_157_var = _loop1_157_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019143 )
19144 {
19145 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019146 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019147 goto done;
19148 }
19149 p->mark = _mark;
19150 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019152 }
19153 _res = NULL;
19154 done:
19155 D(p->level--);
19156 return _res;
19157}
19158
19159// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19160static void *
19161invalid_star_etc_rule(Parser *p)
19162{
19163 D(p->level++);
19164 if (p->error_indicator) {
19165 D(p->level--);
19166 return NULL;
19167 }
19168 void * _res = NULL;
19169 int _mark = p->mark;
19170 { // '*' (')' | ',' (')' | '**'))
19171 if (p->error_indicator) {
19172 D(p->level--);
19173 return NULL;
19174 }
19175 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019176 void *_tmp_158_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019177 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019178 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019179 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019180 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019181 (_tmp_158_var = _tmp_158_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019182 )
19183 {
19184 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019185 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019186 if (_res == NULL && PyErr_Occurred()) {
19187 p->error_indicator = 1;
19188 D(p->level--);
19189 return NULL;
19190 }
19191 goto done;
19192 }
19193 p->mark = _mark;
19194 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19196 }
19197 { // '*' ',' TYPE_COMMENT
19198 if (p->error_indicator) {
19199 D(p->level--);
19200 return NULL;
19201 }
19202 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19203 Token * _literal;
19204 Token * _literal_1;
19205 Token * type_comment_var;
19206 if (
19207 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19208 &&
19209 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19210 &&
19211 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19212 )
19213 {
19214 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19215 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19216 if (_res == NULL && PyErr_Occurred()) {
19217 p->error_indicator = 1;
19218 D(p->level--);
19219 return NULL;
19220 }
19221 goto done;
19222 }
19223 p->mark = _mark;
19224 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19226 }
19227 _res = NULL;
19228 done:
19229 D(p->level--);
19230 return _res;
19231}
19232
19233// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19234static void *
19235invalid_lambda_star_etc_rule(Parser *p)
19236{
19237 D(p->level++);
19238 if (p->error_indicator) {
19239 D(p->level--);
19240 return NULL;
19241 }
19242 void * _res = NULL;
19243 int _mark = p->mark;
19244 { // '*' (':' | ',' (':' | '**'))
19245 if (p->error_indicator) {
19246 D(p->level--);
19247 return NULL;
19248 }
19249 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19250 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019251 void *_tmp_159_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019252 if (
19253 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19254 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019255 (_tmp_159_var = _tmp_159_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019256 )
19257 {
19258 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19259 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19260 if (_res == NULL && PyErr_Occurred()) {
19261 p->error_indicator = 1;
19262 D(p->level--);
19263 return NULL;
19264 }
19265 goto done;
19266 }
19267 p->mark = _mark;
19268 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19270 }
19271 _res = NULL;
19272 done:
19273 D(p->level--);
19274 return _res;
19275}
19276
19277// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19278static void *
19279invalid_double_type_comments_rule(Parser *p)
19280{
19281 D(p->level++);
19282 if (p->error_indicator) {
19283 D(p->level--);
19284 return NULL;
19285 }
19286 void * _res = NULL;
19287 int _mark = p->mark;
19288 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19289 if (p->error_indicator) {
19290 D(p->level--);
19291 return NULL;
19292 }
19293 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19294 Token * indent_var;
19295 Token * newline_var;
19296 Token * newline_var_1;
19297 Token * type_comment_var;
19298 Token * type_comment_var_1;
19299 if (
19300 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19301 &&
19302 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19303 &&
19304 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19305 &&
19306 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19307 &&
19308 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19309 )
19310 {
19311 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"));
19312 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19313 if (_res == NULL && PyErr_Occurred()) {
19314 p->error_indicator = 1;
19315 D(p->level--);
19316 return NULL;
19317 }
19318 goto done;
19319 }
19320 p->mark = _mark;
19321 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19323 }
19324 _res = NULL;
19325 done:
19326 D(p->level--);
19327 return _res;
19328}
19329
Pablo Galindo58fb1562021-02-02 19:54:22 +000019330// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019331static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019332invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019333{
19334 D(p->level++);
19335 if (p->error_indicator) {
19336 D(p->level--);
19337 return NULL;
19338 }
19339 void * _res = NULL;
19340 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019341 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019342 if (p->error_indicator) {
19343 D(p->level--);
19344 return NULL;
19345 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019346 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 +030019347 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019348 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019349 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019350 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019351 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019352 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019353 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19354 &&
19355 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019356 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019357 _PyPegen_lookahead(1, _tmp_160_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019358 )
19359 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019360 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 +030019361 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019362 if (_res == NULL && PyErr_Occurred()) {
19363 p->error_indicator = 1;
19364 D(p->level--);
19365 return NULL;
19366 }
19367 goto done;
19368 }
19369 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019370 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019371 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019372 }
19373 _res = NULL;
19374 done:
19375 D(p->level--);
19376 return _res;
19377}
19378
19379// invalid_for_target: ASYNC? 'for' star_expressions
19380static void *
19381invalid_for_target_rule(Parser *p)
19382{
19383 D(p->level++);
19384 if (p->error_indicator) {
19385 D(p->level--);
19386 return NULL;
19387 }
19388 void * _res = NULL;
19389 int _mark = p->mark;
19390 { // ASYNC? 'for' star_expressions
19391 if (p->error_indicator) {
19392 D(p->level--);
19393 return NULL;
19394 }
19395 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19396 Token * _keyword;
19397 void *_opt_var;
19398 UNUSED(_opt_var); // Silence compiler warnings
19399 expr_ty a;
19400 if (
19401 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19402 &&
19403 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19404 &&
19405 (a = star_expressions_rule(p)) // star_expressions
19406 )
19407 {
19408 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 +030019409 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019410 if (_res == NULL && PyErr_Occurred()) {
19411 p->error_indicator = 1;
19412 D(p->level--);
19413 return NULL;
19414 }
19415 goto done;
19416 }
19417 p->mark = _mark;
19418 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19420 }
19421 _res = NULL;
19422 done:
19423 D(p->level--);
19424 return _res;
19425}
19426
Pablo Galindo8efad612021-03-24 19:34:17 +000019427// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019428static void *
19429invalid_group_rule(Parser *p)
19430{
19431 D(p->level++);
19432 if (p->error_indicator) {
19433 D(p->level--);
19434 return NULL;
19435 }
19436 void * _res = NULL;
19437 int _mark = p->mark;
19438 { // '(' starred_expression ')'
19439 if (p->error_indicator) {
19440 D(p->level--);
19441 return NULL;
19442 }
19443 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19444 Token * _literal;
19445 Token * _literal_1;
19446 expr_ty a;
19447 if (
19448 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19449 &&
19450 (a = starred_expression_rule(p)) // starred_expression
19451 &&
19452 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19453 )
19454 {
19455 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 +010019456 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019457 if (_res == NULL && PyErr_Occurred()) {
19458 p->error_indicator = 1;
19459 D(p->level--);
19460 return NULL;
19461 }
19462 goto done;
19463 }
19464 p->mark = _mark;
19465 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019467 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019468 { // '(' '**' expression ')'
19469 if (p->error_indicator) {
19470 D(p->level--);
19471 return NULL;
19472 }
19473 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19474 Token * _literal;
19475 Token * _literal_1;
19476 Token * a;
19477 expr_ty expression_var;
19478 if (
19479 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19480 &&
19481 (a = _PyPegen_expect_token(p, 35)) // token='**'
19482 &&
19483 (expression_var = expression_rule(p)) // expression
19484 &&
19485 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19486 )
19487 {
19488 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019489 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019490 if (_res == NULL && PyErr_Occurred()) {
19491 p->error_indicator = 1;
19492 D(p->level--);
19493 return NULL;
19494 }
19495 goto done;
19496 }
19497 p->mark = _mark;
19498 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19500 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019501 _res = NULL;
19502 done:
19503 D(p->level--);
19504 return _res;
19505}
19506
19507// invalid_import_from_targets: import_from_as_names ','
19508static void *
19509invalid_import_from_targets_rule(Parser *p)
19510{
19511 D(p->level++);
19512 if (p->error_indicator) {
19513 D(p->level--);
19514 return NULL;
19515 }
19516 void * _res = NULL;
19517 int _mark = p->mark;
19518 { // import_from_as_names ','
19519 if (p->error_indicator) {
19520 D(p->level--);
19521 return NULL;
19522 }
19523 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19524 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019525 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019526 if (
19527 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19528 &&
19529 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19530 )
19531 {
19532 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19533 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19534 if (_res == NULL && PyErr_Occurred()) {
19535 p->error_indicator = 1;
19536 D(p->level--);
19537 return NULL;
19538 }
19539 goto done;
19540 }
19541 p->mark = _mark;
19542 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19544 }
19545 _res = NULL;
19546 done:
19547 D(p->level--);
19548 return _res;
19549}
19550
Pablo Galindo58fb1562021-02-02 19:54:22 +000019551// invalid_with_stmt:
19552// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19553// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19554static void *
19555invalid_with_stmt_rule(Parser *p)
19556{
19557 D(p->level++);
19558 if (p->error_indicator) {
19559 D(p->level--);
19560 return NULL;
19561 }
19562 void * _res = NULL;
19563 int _mark = p->mark;
19564 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19565 if (p->error_indicator) {
19566 D(p->level--);
19567 return NULL;
19568 }
19569 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019570 asdl_seq * _gather_161_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019571 Token * _keyword;
19572 Token * _literal;
19573 void *_opt_var;
19574 UNUSED(_opt_var); // Silence compiler warnings
19575 if (
19576 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19577 &&
19578 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19579 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019580 (_gather_161_var = _gather_161_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019581 &&
19582 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19583 )
19584 {
19585 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019586 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_161_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019587 goto done;
19588 }
19589 p->mark = _mark;
19590 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19592 }
19593 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19594 if (p->error_indicator) {
19595 D(p->level--);
19596 return NULL;
19597 }
19598 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019599 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019600 Token * _keyword;
19601 Token * _literal;
19602 Token * _literal_1;
19603 Token * _literal_2;
19604 void *_opt_var;
19605 UNUSED(_opt_var); // Silence compiler warnings
19606 void *_opt_var_1;
19607 UNUSED(_opt_var_1); // Silence compiler warnings
19608 if (
19609 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19610 &&
19611 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19612 &&
19613 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19614 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019615 (_gather_163_var = _gather_163_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019616 &&
19617 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19618 &&
19619 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19620 &&
19621 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19622 )
19623 {
19624 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019625 _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 +000019626 goto done;
19627 }
19628 p->mark = _mark;
19629 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19631 }
19632 _res = NULL;
19633 done:
19634 D(p->level--);
19635 return _res;
19636}
19637
Pablo Galindo56c95df2021-04-21 15:28:21 +010019638// invalid_with_stmt_indent:
19639// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19640// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019641static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019642invalid_with_stmt_indent_rule(Parser *p)
19643{
19644 D(p->level++);
19645 if (p->error_indicator) {
19646 D(p->level--);
19647 return NULL;
19648 }
19649 void * _res = NULL;
19650 int _mark = p->mark;
19651 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19652 if (p->error_indicator) {
19653 D(p->level--);
19654 return NULL;
19655 }
19656 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"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019657 asdl_seq * _gather_165_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019658 Token * _literal;
19659 void *_opt_var;
19660 UNUSED(_opt_var); // Silence compiler warnings
19661 Token * a;
19662 Token * newline_var;
19663 if (
19664 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19665 &&
19666 (a = _PyPegen_expect_token(p, 519)) // token='with'
19667 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019668 (_gather_165_var = _gather_165_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019669 &&
19670 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19671 &&
19672 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19673 &&
19674 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19675 )
19676 {
19677 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"));
19678 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19679 if (_res == NULL && PyErr_Occurred()) {
19680 p->error_indicator = 1;
19681 D(p->level--);
19682 return NULL;
19683 }
19684 goto done;
19685 }
19686 p->mark = _mark;
19687 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19689 }
19690 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19691 if (p->error_indicator) {
19692 D(p->level--);
19693 return NULL;
19694 }
19695 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"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019696 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019697 Token * _literal;
19698 Token * _literal_1;
19699 Token * _literal_2;
19700 void *_opt_var;
19701 UNUSED(_opt_var); // Silence compiler warnings
19702 void *_opt_var_1;
19703 UNUSED(_opt_var_1); // Silence compiler warnings
19704 Token * a;
19705 Token * newline_var;
19706 if (
19707 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19708 &&
19709 (a = _PyPegen_expect_token(p, 519)) // token='with'
19710 &&
19711 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19712 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019713 (_gather_167_var = _gather_167_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019714 &&
19715 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19716 &&
19717 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19718 &&
19719 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19720 &&
19721 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19722 &&
19723 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19724 )
19725 {
19726 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"));
19727 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19728 if (_res == NULL && PyErr_Occurred()) {
19729 p->error_indicator = 1;
19730 D(p->level--);
19731 return NULL;
19732 }
19733 goto done;
19734 }
19735 p->mark = _mark;
19736 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19738 }
19739 _res = NULL;
19740 done:
19741 D(p->level--);
19742 return _res;
19743}
19744
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019745// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
Pablo Galindo56c95df2021-04-21 15:28:21 +010019746static void *
19747invalid_try_stmt_rule(Parser *p)
19748{
19749 D(p->level++);
19750 if (p->error_indicator) {
19751 D(p->level--);
19752 return NULL;
19753 }
19754 void * _res = NULL;
19755 int _mark = p->mark;
19756 { // 'try' ':' NEWLINE !INDENT
19757 if (p->error_indicator) {
19758 D(p->level--);
19759 return NULL;
19760 }
19761 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19762 Token * _literal;
19763 Token * a;
19764 Token * newline_var;
19765 if (
19766 (a = _PyPegen_expect_token(p, 511)) // token='try'
19767 &&
19768 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19769 &&
19770 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19771 &&
19772 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19773 )
19774 {
19775 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19776 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19777 if (_res == NULL && PyErr_Occurred()) {
19778 p->error_indicator = 1;
19779 D(p->level--);
19780 return NULL;
19781 }
19782 goto done;
19783 }
19784 p->mark = _mark;
19785 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19787 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019788 { // 'try' ':' block !('except' | 'finally')
19789 if (p->error_indicator) {
19790 D(p->level--);
19791 return NULL;
19792 }
19793 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19794 Token * _keyword;
19795 Token * _literal;
19796 asdl_stmt_seq* block_var;
19797 if (
19798 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
19799 &&
19800 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19801 &&
19802 (block_var = block_rule(p)) // block
19803 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019804 _PyPegen_lookahead(0, _tmp_169_rule, p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019805 )
19806 {
19807 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19808 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
19809 if (_res == NULL && PyErr_Occurred()) {
19810 p->error_indicator = 1;
19811 D(p->level--);
19812 return NULL;
19813 }
19814 goto done;
19815 }
19816 p->mark = _mark;
19817 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19819 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019820 _res = NULL;
19821 done:
19822 D(p->level--);
19823 return _res;
19824}
19825
19826// invalid_except_stmt:
19827// | 'except' expression ',' expressions ['as' NAME] ':'
19828// | 'except' expression ['as' NAME] NEWLINE
19829// | 'except' NEWLINE
19830static void *
19831invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019832{
19833 D(p->level++);
19834 if (p->error_indicator) {
19835 D(p->level--);
19836 return NULL;
19837 }
19838 void * _res = NULL;
19839 int _mark = p->mark;
19840 { // 'except' expression ',' expressions ['as' NAME] ':'
19841 if (p->error_indicator) {
19842 D(p->level--);
19843 return NULL;
19844 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019845 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 +000019846 Token * _keyword;
19847 Token * _literal;
19848 Token * _literal_1;
19849 void *_opt_var;
19850 UNUSED(_opt_var); // Silence compiler warnings
19851 expr_ty a;
19852 expr_ty expressions_var;
19853 if (
19854 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19855 &&
19856 (a = expression_rule(p)) // expression
19857 &&
19858 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19859 &&
19860 (expressions_var = expressions_rule(p)) // expressions
19861 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019862 (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019863 &&
19864 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19865 )
19866 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019867 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Miss Islington (bot)9a0e65c2021-05-09 14:13:50 -070019868 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019869 if (_res == NULL && PyErr_Occurred()) {
19870 p->error_indicator = 1;
19871 D(p->level--);
19872 return NULL;
19873 }
19874 goto done;
19875 }
19876 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019877 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19879 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019880 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019881 if (p->error_indicator) {
19882 D(p->level--);
19883 return NULL;
19884 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019885 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 +000019886 void *_opt_var;
19887 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010019888 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019889 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019890 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019891 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019892 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019893 &&
19894 (expression_var = expression_rule(p)) // expression
19895 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019896 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019897 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019898 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019899 )
19900 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019901 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
19902 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19903 if (_res == NULL && PyErr_Occurred()) {
19904 p->error_indicator = 1;
19905 D(p->level--);
19906 return NULL;
19907 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019908 goto done;
19909 }
19910 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019911 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019913 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019914 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019915 if (p->error_indicator) {
19916 D(p->level--);
19917 return NULL;
19918 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019919 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19920 Token * a;
19921 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019922 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019923 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019924 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019925 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019926 )
19927 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019928 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19929 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19930 if (_res == NULL && PyErr_Occurred()) {
19931 p->error_indicator = 1;
19932 D(p->level--);
19933 return NULL;
19934 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019935 goto done;
19936 }
19937 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019938 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019940 }
19941 _res = NULL;
19942 done:
19943 D(p->level--);
19944 return _res;
19945}
19946
Pablo Galindo56c95df2021-04-21 15:28:21 +010019947// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
19948static void *
19949invalid_finally_stmt_rule(Parser *p)
19950{
19951 D(p->level++);
19952 if (p->error_indicator) {
19953 D(p->level--);
19954 return NULL;
19955 }
19956 void * _res = NULL;
19957 int _mark = p->mark;
19958 { // 'finally' ':' NEWLINE !INDENT
19959 if (p->error_indicator) {
19960 D(p->level--);
19961 return NULL;
19962 }
19963 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19964 Token * _literal;
19965 Token * a;
19966 Token * newline_var;
19967 if (
19968 (a = _PyPegen_expect_token(p, 522)) // token='finally'
19969 &&
19970 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19971 &&
19972 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19973 &&
19974 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19975 )
19976 {
19977 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19978 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
19979 if (_res == NULL && PyErr_Occurred()) {
19980 p->error_indicator = 1;
19981 D(p->level--);
19982 return NULL;
19983 }
19984 goto done;
19985 }
19986 p->mark = _mark;
19987 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19989 }
19990 _res = NULL;
19991 done:
19992 D(p->level--);
19993 return _res;
19994}
19995
19996// invalid_except_stmt_indent:
19997// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19998// | 'except' ':' NEWLINE !INDENT
19999static void *
20000invalid_except_stmt_indent_rule(Parser *p)
20001{
20002 D(p->level++);
20003 if (p->error_indicator) {
20004 D(p->level--);
20005 return NULL;
20006 }
20007 void * _res = NULL;
20008 int _mark = p->mark;
20009 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20010 if (p->error_indicator) {
20011 D(p->level--);
20012 return NULL;
20013 }
20014 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20015 Token * _literal;
20016 void *_opt_var;
20017 UNUSED(_opt_var); // Silence compiler warnings
20018 Token * a;
20019 expr_ty expression_var;
20020 Token * newline_var;
20021 if (
20022 (a = _PyPegen_expect_token(p, 521)) // token='except'
20023 &&
20024 (expression_var = expression_rule(p)) // expression
20025 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020026 (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020027 &&
20028 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20029 &&
20030 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20031 &&
20032 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20033 )
20034 {
20035 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20036 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20037 if (_res == NULL && PyErr_Occurred()) {
20038 p->error_indicator = 1;
20039 D(p->level--);
20040 return NULL;
20041 }
20042 goto done;
20043 }
20044 p->mark = _mark;
20045 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20047 }
20048 { // 'except' ':' NEWLINE !INDENT
20049 if (p->error_indicator) {
20050 D(p->level--);
20051 return NULL;
20052 }
20053 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20054 Token * _literal;
20055 Token * a;
20056 Token * newline_var;
20057 if (
20058 (a = _PyPegen_expect_token(p, 521)) // token='except'
20059 &&
20060 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20061 &&
20062 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20063 &&
20064 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20065 )
20066 {
20067 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20068 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20069 if (_res == NULL && PyErr_Occurred()) {
20070 p->error_indicator = 1;
20071 D(p->level--);
20072 return NULL;
20073 }
20074 goto done;
20075 }
20076 p->mark = _mark;
20077 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20079 }
20080 _res = NULL;
20081 done:
20082 D(p->level--);
20083 return _res;
20084}
20085
20086// invalid_match_stmt:
20087// | "match" subject_expr !':'
20088// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020089static void *
20090invalid_match_stmt_rule(Parser *p)
20091{
20092 D(p->level++);
20093 if (p->error_indicator) {
20094 D(p->level--);
20095 return NULL;
20096 }
20097 void * _res = NULL;
20098 int _mark = p->mark;
20099 { // "match" subject_expr !':'
20100 if (p->error_indicator) {
20101 D(p->level--);
20102 return NULL;
20103 }
20104 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20105 expr_ty _keyword;
20106 expr_ty subject_expr_var;
20107 if (
20108 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20109 &&
20110 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20111 &&
20112 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20113 )
20114 {
20115 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20116 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20117 if (_res == NULL && PyErr_Occurred()) {
20118 p->error_indicator = 1;
20119 D(p->level--);
20120 return NULL;
20121 }
20122 goto done;
20123 }
20124 p->mark = _mark;
20125 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20127 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020128 { // "match" subject_expr ':' NEWLINE !INDENT
20129 if (p->error_indicator) {
20130 D(p->level--);
20131 return NULL;
20132 }
20133 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20134 Token * _literal;
20135 expr_ty a;
20136 Token * newline_var;
20137 expr_ty subject;
20138 if (
20139 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20140 &&
20141 (subject = subject_expr_rule(p)) // subject_expr
20142 &&
20143 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20144 &&
20145 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20146 &&
20147 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20148 )
20149 {
20150 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20151 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20152 if (_res == NULL && PyErr_Occurred()) {
20153 p->error_indicator = 1;
20154 D(p->level--);
20155 return NULL;
20156 }
20157 goto done;
20158 }
20159 p->mark = _mark;
20160 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20162 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020163 _res = NULL;
20164 done:
20165 D(p->level--);
20166 return _res;
20167}
20168
Pablo Galindo56c95df2021-04-21 15:28:21 +010020169// invalid_case_block:
20170// | "case" patterns guard? !':'
20171// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020172static void *
20173invalid_case_block_rule(Parser *p)
20174{
20175 D(p->level++);
20176 if (p->error_indicator) {
20177 D(p->level--);
20178 return NULL;
20179 }
20180 void * _res = NULL;
20181 int _mark = p->mark;
20182 { // "case" patterns guard? !':'
20183 if (p->error_indicator) {
20184 D(p->level--);
20185 return NULL;
20186 }
20187 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20188 expr_ty _keyword;
20189 void *_opt_var;
20190 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020191 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020192 if (
20193 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20194 &&
20195 (patterns_var = patterns_rule(p)) // patterns
20196 &&
20197 (_opt_var = guard_rule(p), 1) // guard?
20198 &&
20199 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20200 )
20201 {
20202 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20203 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20204 if (_res == NULL && PyErr_Occurred()) {
20205 p->error_indicator = 1;
20206 D(p->level--);
20207 return NULL;
20208 }
20209 goto done;
20210 }
20211 p->mark = _mark;
20212 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20214 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020215 { // "case" patterns guard? ':' NEWLINE !INDENT
20216 if (p->error_indicator) {
20217 D(p->level--);
20218 return NULL;
20219 }
20220 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20221 Token * _literal;
20222 void *_opt_var;
20223 UNUSED(_opt_var); // Silence compiler warnings
20224 expr_ty a;
20225 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020226 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020227 if (
20228 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20229 &&
20230 (patterns_var = patterns_rule(p)) // patterns
20231 &&
20232 (_opt_var = guard_rule(p), 1) // guard?
20233 &&
20234 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20235 &&
20236 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20237 &&
20238 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20239 )
20240 {
20241 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20242 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20243 if (_res == NULL && PyErr_Occurred()) {
20244 p->error_indicator = 1;
20245 D(p->level--);
20246 return NULL;
20247 }
20248 goto done;
20249 }
20250 p->mark = _mark;
20251 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20253 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020254 _res = NULL;
20255 done:
20256 D(p->level--);
20257 return _res;
20258}
20259
Pablo Galindoa8c418d2021-06-18 22:15:57 +010020260// invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' !NAME expression
20261static void *
20262invalid_as_pattern_rule(Parser *p)
20263{
20264 D(p->level++);
20265 if (p->error_indicator) {
20266 D(p->level--);
20267 return NULL;
20268 }
20269 void * _res = NULL;
20270 int _mark = p->mark;
20271 { // or_pattern 'as' "_"
20272 if (p->error_indicator) {
20273 D(p->level--);
20274 return NULL;
20275 }
20276 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20277 Token * _keyword;
20278 expr_ty a;
20279 pattern_ty or_pattern_var;
20280 if (
20281 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20282 &&
20283 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20284 &&
20285 (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
20286 )
20287 {
20288 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20289 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
20290 if (_res == NULL && PyErr_Occurred()) {
20291 p->error_indicator = 1;
20292 D(p->level--);
20293 return NULL;
20294 }
20295 goto done;
20296 }
20297 p->mark = _mark;
20298 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
20300 }
20301 { // or_pattern 'as' !NAME expression
20302 if (p->error_indicator) {
20303 D(p->level--);
20304 return NULL;
20305 }
20306 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20307 Token * _keyword;
20308 expr_ty a;
20309 pattern_ty or_pattern_var;
20310 if (
20311 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20312 &&
20313 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20314 &&
20315 _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
20316 &&
20317 (a = expression_rule(p)) // expression
20318 )
20319 {
20320 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20321 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid pattern target" );
20322 if (_res == NULL && PyErr_Occurred()) {
20323 p->error_indicator = 1;
20324 D(p->level--);
20325 return NULL;
20326 }
20327 goto done;
20328 }
20329 p->mark = _mark;
20330 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' !NAME expression"));
20332 }
20333 _res = NULL;
20334 done:
20335 D(p->level--);
20336 return _res;
20337}
20338
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020339// invalid_class_pattern: name_or_attr '(' invalid_class_argument_pattern
20340static void *
20341invalid_class_pattern_rule(Parser *p)
20342{
20343 D(p->level++);
20344 if (p->error_indicator) {
20345 D(p->level--);
20346 return NULL;
20347 }
20348 void * _res = NULL;
20349 int _mark = p->mark;
20350 { // name_or_attr '(' invalid_class_argument_pattern
20351 if (p->error_indicator) {
20352 D(p->level--);
20353 return NULL;
20354 }
20355 D(fprintf(stderr, "%*c> invalid_class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20356 Token * _literal;
20357 asdl_pattern_seq* a;
20358 expr_ty name_or_attr_var;
20359 if (
20360 (name_or_attr_var = name_or_attr_rule(p)) // name_or_attr
20361 &&
20362 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20363 &&
20364 (a = invalid_class_argument_pattern_rule(p)) // invalid_class_argument_pattern
20365 )
20366 {
20367 D(fprintf(stderr, "%*c+ invalid_class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20368 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , pattern_ty ) , PyPegen_last_item ( a , pattern_ty ) , "positional patterns follow keyword patterns" );
20369 if (_res == NULL && PyErr_Occurred()) {
20370 p->error_indicator = 1;
20371 D(p->level--);
20372 return NULL;
20373 }
20374 goto done;
20375 }
20376 p->mark = _mark;
20377 D(fprintf(stderr, "%*c%s invalid_class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20379 }
20380 _res = NULL;
20381 done:
20382 D(p->level--);
20383 return _res;
20384}
20385
20386// invalid_class_argument_pattern:
20387// | [positional_patterns ','] keyword_patterns ',' positional_patterns
20388static asdl_pattern_seq*
20389invalid_class_argument_pattern_rule(Parser *p)
20390{
20391 D(p->level++);
20392 if (p->error_indicator) {
20393 D(p->level--);
20394 return NULL;
20395 }
20396 asdl_pattern_seq* _res = NULL;
20397 int _mark = p->mark;
20398 { // [positional_patterns ','] keyword_patterns ',' positional_patterns
20399 if (p->error_indicator) {
20400 D(p->level--);
20401 return NULL;
20402 }
20403 D(fprintf(stderr, "%*c> invalid_class_argument_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20404 Token * _literal;
20405 void *_opt_var;
20406 UNUSED(_opt_var); // Silence compiler warnings
20407 asdl_pattern_seq* a;
20408 asdl_seq* keyword_patterns_var;
20409 if (
20410 (_opt_var = _tmp_173_rule(p), 1) // [positional_patterns ',']
20411 &&
20412 (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns
20413 &&
20414 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20415 &&
20416 (a = positional_patterns_rule(p)) // positional_patterns
20417 )
20418 {
20419 D(fprintf(stderr, "%*c+ invalid_class_argument_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20420 _res = a;
20421 if (_res == NULL && PyErr_Occurred()) {
20422 p->error_indicator = 1;
20423 D(p->level--);
20424 return NULL;
20425 }
20426 goto done;
20427 }
20428 p->mark = _mark;
20429 D(fprintf(stderr, "%*c%s invalid_class_argument_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20431 }
20432 _res = NULL;
20433 done:
20434 D(p->level--);
20435 return _res;
20436}
20437
Pablo Galindo56c95df2021-04-21 15:28:21 +010020438// invalid_if_stmt:
20439// | 'if' named_expression NEWLINE
20440// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020441static void *
20442invalid_if_stmt_rule(Parser *p)
20443{
20444 D(p->level++);
20445 if (p->error_indicator) {
20446 D(p->level--);
20447 return NULL;
20448 }
20449 void * _res = NULL;
20450 int _mark = p->mark;
20451 { // 'if' named_expression NEWLINE
20452 if (p->error_indicator) {
20453 D(p->level--);
20454 return NULL;
20455 }
20456 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20457 Token * _keyword;
20458 expr_ty named_expression_var;
20459 Token * newline_var;
20460 if (
20461 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20462 &&
20463 (named_expression_var = named_expression_rule(p)) // named_expression
20464 &&
20465 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20466 )
20467 {
20468 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20469 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20470 if (_res == NULL && PyErr_Occurred()) {
20471 p->error_indicator = 1;
20472 D(p->level--);
20473 return NULL;
20474 }
20475 goto done;
20476 }
20477 p->mark = _mark;
20478 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20480 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020481 { // 'if' named_expression ':' NEWLINE !INDENT
20482 if (p->error_indicator) {
20483 D(p->level--);
20484 return NULL;
20485 }
20486 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20487 Token * _literal;
20488 Token * a;
20489 expr_ty a_1;
20490 Token * newline_var;
20491 if (
20492 (a = _PyPegen_expect_token(p, 510)) // token='if'
20493 &&
20494 (a_1 = named_expression_rule(p)) // named_expression
20495 &&
20496 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20497 &&
20498 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20499 &&
20500 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20501 )
20502 {
20503 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20504 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20505 if (_res == NULL && PyErr_Occurred()) {
20506 p->error_indicator = 1;
20507 D(p->level--);
20508 return NULL;
20509 }
20510 goto done;
20511 }
20512 p->mark = _mark;
20513 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20515 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020516 _res = NULL;
20517 done:
20518 D(p->level--);
20519 return _res;
20520}
20521
Pablo Galindo56c95df2021-04-21 15:28:21 +010020522// invalid_elif_stmt:
20523// | 'elif' named_expression NEWLINE
20524// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020525static void *
20526invalid_elif_stmt_rule(Parser *p)
20527{
20528 D(p->level++);
20529 if (p->error_indicator) {
20530 D(p->level--);
20531 return NULL;
20532 }
20533 void * _res = NULL;
20534 int _mark = p->mark;
20535 { // 'elif' named_expression NEWLINE
20536 if (p->error_indicator) {
20537 D(p->level--);
20538 return NULL;
20539 }
20540 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20541 Token * _keyword;
20542 expr_ty named_expression_var;
20543 Token * newline_var;
20544 if (
20545 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20546 &&
20547 (named_expression_var = named_expression_rule(p)) // named_expression
20548 &&
20549 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20550 )
20551 {
20552 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20553 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20554 if (_res == NULL && PyErr_Occurred()) {
20555 p->error_indicator = 1;
20556 D(p->level--);
20557 return NULL;
20558 }
20559 goto done;
20560 }
20561 p->mark = _mark;
20562 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20564 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020565 { // 'elif' named_expression ':' NEWLINE !INDENT
20566 if (p->error_indicator) {
20567 D(p->level--);
20568 return NULL;
20569 }
20570 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20571 Token * _literal;
20572 Token * a;
20573 expr_ty named_expression_var;
20574 Token * newline_var;
20575 if (
20576 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20577 &&
20578 (named_expression_var = named_expression_rule(p)) // named_expression
20579 &&
20580 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20581 &&
20582 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20583 &&
20584 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20585 )
20586 {
20587 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20588 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20589 if (_res == NULL && PyErr_Occurred()) {
20590 p->error_indicator = 1;
20591 D(p->level--);
20592 return NULL;
20593 }
20594 goto done;
20595 }
20596 p->mark = _mark;
20597 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20599 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020600 _res = NULL;
20601 done:
20602 D(p->level--);
20603 return _res;
20604}
20605
Pablo Galindo56c95df2021-04-21 15:28:21 +010020606// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20607static void *
20608invalid_else_stmt_rule(Parser *p)
20609{
20610 D(p->level++);
20611 if (p->error_indicator) {
20612 D(p->level--);
20613 return NULL;
20614 }
20615 void * _res = NULL;
20616 int _mark = p->mark;
20617 { // 'else' ':' NEWLINE !INDENT
20618 if (p->error_indicator) {
20619 D(p->level--);
20620 return NULL;
20621 }
20622 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20623 Token * _literal;
20624 Token * a;
20625 Token * newline_var;
20626 if (
20627 (a = _PyPegen_expect_token(p, 516)) // token='else'
20628 &&
20629 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20630 &&
20631 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20632 &&
20633 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20634 )
20635 {
20636 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20637 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20638 if (_res == NULL && PyErr_Occurred()) {
20639 p->error_indicator = 1;
20640 D(p->level--);
20641 return NULL;
20642 }
20643 goto done;
20644 }
20645 p->mark = _mark;
20646 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20648 }
20649 _res = NULL;
20650 done:
20651 D(p->level--);
20652 return _res;
20653}
20654
20655// invalid_while_stmt:
20656// | 'while' named_expression NEWLINE
20657// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020658static void *
20659invalid_while_stmt_rule(Parser *p)
20660{
20661 D(p->level++);
20662 if (p->error_indicator) {
20663 D(p->level--);
20664 return NULL;
20665 }
20666 void * _res = NULL;
20667 int _mark = p->mark;
20668 { // 'while' named_expression NEWLINE
20669 if (p->error_indicator) {
20670 D(p->level--);
20671 return NULL;
20672 }
20673 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20674 Token * _keyword;
20675 expr_ty named_expression_var;
20676 Token * newline_var;
20677 if (
20678 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20679 &&
20680 (named_expression_var = named_expression_rule(p)) // named_expression
20681 &&
20682 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20683 )
20684 {
20685 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20686 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20687 if (_res == NULL && PyErr_Occurred()) {
20688 p->error_indicator = 1;
20689 D(p->level--);
20690 return NULL;
20691 }
20692 goto done;
20693 }
20694 p->mark = _mark;
20695 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20697 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020698 { // 'while' named_expression ':' NEWLINE !INDENT
20699 if (p->error_indicator) {
20700 D(p->level--);
20701 return NULL;
20702 }
20703 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20704 Token * _literal;
20705 Token * a;
20706 expr_ty named_expression_var;
20707 Token * newline_var;
20708 if (
20709 (a = _PyPegen_expect_token(p, 512)) // token='while'
20710 &&
20711 (named_expression_var = named_expression_rule(p)) // named_expression
20712 &&
20713 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20714 &&
20715 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20716 &&
20717 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20718 )
20719 {
20720 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20721 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20722 if (_res == NULL && PyErr_Occurred()) {
20723 p->error_indicator = 1;
20724 D(p->level--);
20725 return NULL;
20726 }
20727 goto done;
20728 }
20729 p->mark = _mark;
20730 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20732 }
20733 _res = NULL;
20734 done:
20735 D(p->level--);
20736 return _res;
20737}
20738
20739// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20740static void *
20741invalid_for_stmt_rule(Parser *p)
20742{
20743 D(p->level++);
20744 if (p->error_indicator) {
20745 D(p->level--);
20746 return NULL;
20747 }
20748 void * _res = NULL;
20749 int _mark = p->mark;
20750 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20751 if (p->error_indicator) {
20752 D(p->level--);
20753 return NULL;
20754 }
20755 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"));
20756 Token * _keyword;
20757 Token * _literal;
20758 void *_opt_var;
20759 UNUSED(_opt_var); // Silence compiler warnings
20760 Token * a;
20761 Token * newline_var;
20762 expr_ty star_expressions_var;
20763 expr_ty star_targets_var;
20764 if (
20765 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20766 &&
20767 (a = _PyPegen_expect_token(p, 517)) // token='for'
20768 &&
20769 (star_targets_var = star_targets_rule(p)) // star_targets
20770 &&
20771 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20772 &&
20773 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20774 &&
20775 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20776 &&
20777 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20778 &&
20779 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20780 )
20781 {
20782 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"));
20783 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20784 if (_res == NULL && PyErr_Occurred()) {
20785 p->error_indicator = 1;
20786 D(p->level--);
20787 return NULL;
20788 }
20789 goto done;
20790 }
20791 p->mark = _mark;
20792 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20794 }
20795 _res = NULL;
20796 done:
20797 D(p->level--);
20798 return _res;
20799}
20800
20801// invalid_def_raw:
20802// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20803static void *
20804invalid_def_raw_rule(Parser *p)
20805{
20806 D(p->level++);
20807 if (p->error_indicator) {
20808 D(p->level--);
20809 return NULL;
20810 }
20811 void * _res = NULL;
20812 int _mark = p->mark;
20813 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20814 if (p->error_indicator) {
20815 D(p->level--);
20816 return NULL;
20817 }
20818 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20819 Token * _literal;
20820 Token * _literal_1;
20821 Token * _literal_2;
20822 void *_opt_var;
20823 UNUSED(_opt_var); // Silence compiler warnings
20824 void *_opt_var_1;
20825 UNUSED(_opt_var_1); // Silence compiler warnings
20826 void *_opt_var_2;
20827 UNUSED(_opt_var_2); // Silence compiler warnings
20828 Token * a;
20829 expr_ty name_var;
20830 Token * newline_var;
20831 if (
20832 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20833 &&
20834 (a = _PyPegen_expect_token(p, 526)) // token='def'
20835 &&
20836 (name_var = _PyPegen_name_token(p)) // NAME
20837 &&
20838 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20839 &&
20840 (_opt_var_1 = params_rule(p), 1) // params?
20841 &&
20842 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20843 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020844 (_opt_var_2 = _tmp_174_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020845 &&
20846 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20847 &&
20848 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20849 &&
20850 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20851 )
20852 {
20853 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20854 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20855 if (_res == NULL && PyErr_Occurred()) {
20856 p->error_indicator = 1;
20857 D(p->level--);
20858 return NULL;
20859 }
20860 goto done;
20861 }
20862 p->mark = _mark;
20863 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20865 }
20866 _res = NULL;
20867 done:
20868 D(p->level--);
20869 return _res;
20870}
20871
20872// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20873static void *
20874invalid_class_def_raw_rule(Parser *p)
20875{
20876 D(p->level++);
20877 if (p->error_indicator) {
20878 D(p->level--);
20879 return NULL;
20880 }
20881 void * _res = NULL;
20882 int _mark = p->mark;
20883 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20884 if (p->error_indicator) {
20885 D(p->level--);
20886 return NULL;
20887 }
20888 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20889 Token * _literal;
20890 void *_opt_var;
20891 UNUSED(_opt_var); // Silence compiler warnings
20892 Token * a;
20893 expr_ty name_var;
20894 Token * newline_var;
20895 if (
20896 (a = _PyPegen_expect_token(p, 527)) // token='class'
20897 &&
20898 (name_var = _PyPegen_name_token(p)) // NAME
20899 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020900 (_opt_var = _tmp_175_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010020901 &&
20902 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20903 &&
20904 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20905 &&
20906 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20907 )
20908 {
20909 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20910 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
20911 if (_res == NULL && PyErr_Occurred()) {
20912 p->error_indicator = 1;
20913 D(p->level--);
20914 return NULL;
20915 }
20916 goto done;
20917 }
20918 p->mark = _mark;
20919 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20921 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020922 _res = NULL;
20923 done:
20924 D(p->level--);
20925 return _res;
20926}
20927
Pablo Galindoda743502021-04-15 14:06:39 +010020928// invalid_double_starred_kvpairs:
20929// | ','.double_starred_kvpair+ ',' invalid_kvpair
20930// | expression ':' '*' bitwise_or
20931// | expression ':' &('}' | ',')
20932static void *
20933invalid_double_starred_kvpairs_rule(Parser *p)
20934{
20935 D(p->level++);
20936 if (p->error_indicator) {
20937 D(p->level--);
20938 return NULL;
20939 }
20940 void * _res = NULL;
20941 int _mark = p->mark;
20942 { // ','.double_starred_kvpair+ ',' invalid_kvpair
20943 if (p->error_indicator) {
20944 D(p->level--);
20945 return NULL;
20946 }
20947 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020948 asdl_seq * _gather_176_var;
Pablo Galindoda743502021-04-15 14:06:39 +010020949 Token * _literal;
20950 void *invalid_kvpair_var;
20951 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020952 (_gather_176_var = _gather_176_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010020953 &&
20954 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20955 &&
20956 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
20957 )
20958 {
20959 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020960 _res = _PyPegen_dummy_name(p, _gather_176_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010020961 goto done;
20962 }
20963 p->mark = _mark;
20964 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
20966 }
20967 { // expression ':' '*' bitwise_or
20968 if (p->error_indicator) {
20969 D(p->level--);
20970 return NULL;
20971 }
20972 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20973 Token * _literal;
20974 Token * a;
20975 expr_ty bitwise_or_var;
20976 expr_ty expression_var;
20977 if (
20978 (expression_var = expression_rule(p)) // expression
20979 &&
20980 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20981 &&
20982 (a = _PyPegen_expect_token(p, 16)) // token='*'
20983 &&
20984 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20985 )
20986 {
20987 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 +010020988 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020989 if (_res == NULL && PyErr_Occurred()) {
20990 p->error_indicator = 1;
20991 D(p->level--);
20992 return NULL;
20993 }
20994 goto done;
20995 }
20996 p->mark = _mark;
20997 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20999 }
21000 { // expression ':' &('}' | ',')
21001 if (p->error_indicator) {
21002 D(p->level--);
21003 return NULL;
21004 }
21005 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21006 Token * a;
21007 expr_ty expression_var;
21008 if (
21009 (expression_var = expression_rule(p)) // expression
21010 &&
21011 (a = _PyPegen_expect_token(p, 11)) // token=':'
21012 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070021013 _PyPegen_lookahead(1, _tmp_178_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010021014 )
21015 {
21016 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21017 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21018 if (_res == NULL && PyErr_Occurred()) {
21019 p->error_indicator = 1;
21020 D(p->level--);
21021 return NULL;
21022 }
21023 goto done;
21024 }
21025 p->mark = _mark;
21026 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
21028 }
21029 _res = NULL;
21030 done:
21031 D(p->level--);
21032 return _res;
21033}
21034
21035// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
21036static void *
21037invalid_kvpair_rule(Parser *p)
21038{
21039 D(p->level++);
21040 if (p->error_indicator) {
21041 D(p->level--);
21042 return NULL;
21043 }
21044 void * _res = NULL;
21045 int _mark = p->mark;
21046 { // expression !(':')
21047 if (p->error_indicator) {
21048 D(p->level--);
21049 return NULL;
21050 }
21051 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
21052 expr_ty a;
21053 if (
21054 (a = expression_rule(p)) // expression
21055 &&
21056 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
21057 )
21058 {
21059 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021060 _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 +010021061 if (_res == NULL && PyErr_Occurred()) {
21062 p->error_indicator = 1;
21063 D(p->level--);
21064 return NULL;
21065 }
21066 goto done;
21067 }
21068 p->mark = _mark;
21069 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21071 }
21072 { // expression ':' '*' bitwise_or
21073 if (p->error_indicator) {
21074 D(p->level--);
21075 return NULL;
21076 }
21077 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21078 Token * _literal;
21079 Token * a;
21080 expr_ty bitwise_or_var;
21081 expr_ty expression_var;
21082 if (
21083 (expression_var = expression_rule(p)) // expression
21084 &&
21085 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21086 &&
21087 (a = _PyPegen_expect_token(p, 16)) // token='*'
21088 &&
21089 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21090 )
21091 {
21092 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 +010021093 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021094 if (_res == NULL && PyErr_Occurred()) {
21095 p->error_indicator = 1;
21096 D(p->level--);
21097 return NULL;
21098 }
21099 goto done;
21100 }
21101 p->mark = _mark;
21102 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21104 }
21105 { // expression ':'
21106 if (p->error_indicator) {
21107 D(p->level--);
21108 return NULL;
21109 }
21110 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21111 Token * a;
21112 expr_ty expression_var;
21113 if (
21114 (expression_var = expression_rule(p)) // expression
21115 &&
21116 (a = _PyPegen_expect_token(p, 11)) // token=':'
21117 )
21118 {
21119 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21120 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21121 if (_res == NULL && PyErr_Occurred()) {
21122 p->error_indicator = 1;
21123 D(p->level--);
21124 return NULL;
21125 }
21126 goto done;
21127 }
21128 p->mark = _mark;
21129 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21131 }
21132 _res = NULL;
21133 done:
21134 D(p->level--);
21135 return _res;
21136}
21137
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021138// _loop0_1: NEWLINE
21139static asdl_seq *
21140_loop0_1_rule(Parser *p)
21141{
21142 D(p->level++);
21143 if (p->error_indicator) {
21144 D(p->level--);
21145 return NULL;
21146 }
21147 void *_res = NULL;
21148 int _mark = p->mark;
21149 int _start_mark = p->mark;
21150 void **_children = PyMem_Malloc(sizeof(void *));
21151 if (!_children) {
21152 p->error_indicator = 1;
21153 PyErr_NoMemory();
21154 D(p->level--);
21155 return NULL;
21156 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021157 Py_ssize_t _children_capacity = 1;
21158 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021159 { // NEWLINE
21160 if (p->error_indicator) {
21161 D(p->level--);
21162 return NULL;
21163 }
21164 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21165 Token * newline_var;
21166 while (
21167 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21168 )
21169 {
21170 _res = newline_var;
21171 if (_n == _children_capacity) {
21172 _children_capacity *= 2;
21173 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21174 if (!_new_children) {
21175 p->error_indicator = 1;
21176 PyErr_NoMemory();
21177 D(p->level--);
21178 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021179 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021180 _children = _new_children;
21181 }
21182 _children[_n++] = _res;
21183 _mark = p->mark;
21184 }
21185 p->mark = _mark;
21186 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21188 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021189 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021190 if (!_seq) {
21191 PyMem_Free(_children);
21192 p->error_indicator = 1;
21193 PyErr_NoMemory();
21194 D(p->level--);
21195 return NULL;
21196 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021197 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021198 PyMem_Free(_children);
21199 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21200 D(p->level--);
21201 return _seq;
21202}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021203
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021204// _loop0_2: NEWLINE
21205static asdl_seq *
21206_loop0_2_rule(Parser *p)
21207{
21208 D(p->level++);
21209 if (p->error_indicator) {
21210 D(p->level--);
21211 return NULL;
21212 }
21213 void *_res = NULL;
21214 int _mark = p->mark;
21215 int _start_mark = p->mark;
21216 void **_children = PyMem_Malloc(sizeof(void *));
21217 if (!_children) {
21218 p->error_indicator = 1;
21219 PyErr_NoMemory();
21220 D(p->level--);
21221 return NULL;
21222 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021223 Py_ssize_t _children_capacity = 1;
21224 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021225 { // NEWLINE
21226 if (p->error_indicator) {
21227 D(p->level--);
21228 return NULL;
21229 }
21230 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21231 Token * newline_var;
21232 while (
21233 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21234 )
21235 {
21236 _res = newline_var;
21237 if (_n == _children_capacity) {
21238 _children_capacity *= 2;
21239 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21240 if (!_new_children) {
21241 p->error_indicator = 1;
21242 PyErr_NoMemory();
21243 D(p->level--);
21244 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021245 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021246 _children = _new_children;
21247 }
21248 _children[_n++] = _res;
21249 _mark = p->mark;
21250 }
21251 p->mark = _mark;
21252 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21254 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021255 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021256 if (!_seq) {
21257 PyMem_Free(_children);
21258 p->error_indicator = 1;
21259 PyErr_NoMemory();
21260 D(p->level--);
21261 return NULL;
21262 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021263 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021264 PyMem_Free(_children);
21265 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21266 D(p->level--);
21267 return _seq;
21268}
21269
21270// _loop0_4: ',' expression
21271static asdl_seq *
21272_loop0_4_rule(Parser *p)
21273{
21274 D(p->level++);
21275 if (p->error_indicator) {
21276 D(p->level--);
21277 return NULL;
21278 }
21279 void *_res = NULL;
21280 int _mark = p->mark;
21281 int _start_mark = p->mark;
21282 void **_children = PyMem_Malloc(sizeof(void *));
21283 if (!_children) {
21284 p->error_indicator = 1;
21285 PyErr_NoMemory();
21286 D(p->level--);
21287 return NULL;
21288 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021289 Py_ssize_t _children_capacity = 1;
21290 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021291 { // ',' expression
21292 if (p->error_indicator) {
21293 D(p->level--);
21294 return NULL;
21295 }
21296 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21297 Token * _literal;
21298 expr_ty elem;
21299 while (
21300 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21301 &&
21302 (elem = expression_rule(p)) // expression
21303 )
21304 {
21305 _res = elem;
21306 if (_res == NULL && PyErr_Occurred()) {
21307 p->error_indicator = 1;
21308 PyMem_Free(_children);
21309 D(p->level--);
21310 return NULL;
21311 }
21312 if (_n == _children_capacity) {
21313 _children_capacity *= 2;
21314 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21315 if (!_new_children) {
21316 p->error_indicator = 1;
21317 PyErr_NoMemory();
21318 D(p->level--);
21319 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021320 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021321 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021322 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021323 _children[_n++] = _res;
21324 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021325 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021326 p->mark = _mark;
21327 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021329 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021330 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021331 if (!_seq) {
21332 PyMem_Free(_children);
21333 p->error_indicator = 1;
21334 PyErr_NoMemory();
21335 D(p->level--);
21336 return NULL;
21337 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021338 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021339 PyMem_Free(_children);
21340 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21341 D(p->level--);
21342 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021343}
21344
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021345// _gather_3: expression _loop0_4
21346static asdl_seq *
21347_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021348{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021349 D(p->level++);
21350 if (p->error_indicator) {
21351 D(p->level--);
21352 return NULL;
21353 }
21354 asdl_seq * _res = NULL;
21355 int _mark = p->mark;
21356 { // expression _loop0_4
21357 if (p->error_indicator) {
21358 D(p->level--);
21359 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021360 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021361 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21362 expr_ty elem;
21363 asdl_seq * seq;
21364 if (
21365 (elem = expression_rule(p)) // expression
21366 &&
21367 (seq = _loop0_4_rule(p)) // _loop0_4
21368 )
21369 {
21370 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21371 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21372 goto done;
21373 }
21374 p->mark = _mark;
21375 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021377 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021378 _res = NULL;
21379 done:
21380 D(p->level--);
21381 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021382}
21383
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021384// _loop0_6: ',' expression
21385static asdl_seq *
21386_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021387{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021388 D(p->level++);
21389 if (p->error_indicator) {
21390 D(p->level--);
21391 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021392 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021393 void *_res = NULL;
21394 int _mark = p->mark;
21395 int _start_mark = p->mark;
21396 void **_children = PyMem_Malloc(sizeof(void *));
21397 if (!_children) {
21398 p->error_indicator = 1;
21399 PyErr_NoMemory();
21400 D(p->level--);
21401 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021402 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021403 Py_ssize_t _children_capacity = 1;
21404 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021405 { // ',' expression
21406 if (p->error_indicator) {
21407 D(p->level--);
21408 return NULL;
21409 }
21410 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21411 Token * _literal;
21412 expr_ty elem;
21413 while (
21414 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21415 &&
21416 (elem = expression_rule(p)) // expression
21417 )
21418 {
21419 _res = elem;
21420 if (_res == NULL && PyErr_Occurred()) {
21421 p->error_indicator = 1;
21422 PyMem_Free(_children);
21423 D(p->level--);
21424 return NULL;
21425 }
21426 if (_n == _children_capacity) {
21427 _children_capacity *= 2;
21428 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21429 if (!_new_children) {
21430 p->error_indicator = 1;
21431 PyErr_NoMemory();
21432 D(p->level--);
21433 return NULL;
21434 }
21435 _children = _new_children;
21436 }
21437 _children[_n++] = _res;
21438 _mark = p->mark;
21439 }
21440 p->mark = _mark;
21441 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021444 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021445 if (!_seq) {
21446 PyMem_Free(_children);
21447 p->error_indicator = 1;
21448 PyErr_NoMemory();
21449 D(p->level--);
21450 return NULL;
21451 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021452 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021453 PyMem_Free(_children);
21454 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21455 D(p->level--);
21456 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021457}
21458
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021459// _gather_5: expression _loop0_6
21460static asdl_seq *
21461_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021462{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021463 D(p->level++);
21464 if (p->error_indicator) {
21465 D(p->level--);
21466 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021467 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021468 asdl_seq * _res = NULL;
21469 int _mark = p->mark;
21470 { // expression _loop0_6
21471 if (p->error_indicator) {
21472 D(p->level--);
21473 return NULL;
21474 }
21475 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21476 expr_ty elem;
21477 asdl_seq * seq;
21478 if (
21479 (elem = expression_rule(p)) // expression
21480 &&
21481 (seq = _loop0_6_rule(p)) // _loop0_6
21482 )
21483 {
21484 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21485 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21486 goto done;
21487 }
21488 p->mark = _mark;
21489 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21491 }
21492 _res = NULL;
21493 done:
21494 D(p->level--);
21495 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021496}
21497
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021498// _loop0_8: ',' expression
21499static asdl_seq *
21500_loop0_8_rule(Parser *p)
21501{
21502 D(p->level++);
21503 if (p->error_indicator) {
21504 D(p->level--);
21505 return NULL;
21506 }
21507 void *_res = NULL;
21508 int _mark = p->mark;
21509 int _start_mark = p->mark;
21510 void **_children = PyMem_Malloc(sizeof(void *));
21511 if (!_children) {
21512 p->error_indicator = 1;
21513 PyErr_NoMemory();
21514 D(p->level--);
21515 return NULL;
21516 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021517 Py_ssize_t _children_capacity = 1;
21518 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021519 { // ',' expression
21520 if (p->error_indicator) {
21521 D(p->level--);
21522 return NULL;
21523 }
21524 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21525 Token * _literal;
21526 expr_ty elem;
21527 while (
21528 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21529 &&
21530 (elem = expression_rule(p)) // expression
21531 )
21532 {
21533 _res = elem;
21534 if (_res == NULL && PyErr_Occurred()) {
21535 p->error_indicator = 1;
21536 PyMem_Free(_children);
21537 D(p->level--);
21538 return NULL;
21539 }
21540 if (_n == _children_capacity) {
21541 _children_capacity *= 2;
21542 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21543 if (!_new_children) {
21544 p->error_indicator = 1;
21545 PyErr_NoMemory();
21546 D(p->level--);
21547 return NULL;
21548 }
21549 _children = _new_children;
21550 }
21551 _children[_n++] = _res;
21552 _mark = p->mark;
21553 }
21554 p->mark = _mark;
21555 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21557 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021558 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021559 if (!_seq) {
21560 PyMem_Free(_children);
21561 p->error_indicator = 1;
21562 PyErr_NoMemory();
21563 D(p->level--);
21564 return NULL;
21565 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021566 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021567 PyMem_Free(_children);
21568 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21569 D(p->level--);
21570 return _seq;
21571}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021572
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021573// _gather_7: expression _loop0_8
21574static asdl_seq *
21575_gather_7_rule(Parser *p)
21576{
21577 D(p->level++);
21578 if (p->error_indicator) {
21579 D(p->level--);
21580 return NULL;
21581 }
21582 asdl_seq * _res = NULL;
21583 int _mark = p->mark;
21584 { // expression _loop0_8
21585 if (p->error_indicator) {
21586 D(p->level--);
21587 return NULL;
21588 }
21589 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21590 expr_ty elem;
21591 asdl_seq * seq;
21592 if (
21593 (elem = expression_rule(p)) // expression
21594 &&
21595 (seq = _loop0_8_rule(p)) // _loop0_8
21596 )
21597 {
21598 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21599 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21600 goto done;
21601 }
21602 p->mark = _mark;
21603 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21605 }
21606 _res = NULL;
21607 done:
21608 D(p->level--);
21609 return _res;
21610}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021611
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021612// _loop0_10: ',' expression
21613static asdl_seq *
21614_loop0_10_rule(Parser *p)
21615{
21616 D(p->level++);
21617 if (p->error_indicator) {
21618 D(p->level--);
21619 return NULL;
21620 }
21621 void *_res = NULL;
21622 int _mark = p->mark;
21623 int _start_mark = p->mark;
21624 void **_children = PyMem_Malloc(sizeof(void *));
21625 if (!_children) {
21626 p->error_indicator = 1;
21627 PyErr_NoMemory();
21628 D(p->level--);
21629 return NULL;
21630 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021631 Py_ssize_t _children_capacity = 1;
21632 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021633 { // ',' expression
21634 if (p->error_indicator) {
21635 D(p->level--);
21636 return NULL;
21637 }
21638 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21639 Token * _literal;
21640 expr_ty elem;
21641 while (
21642 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21643 &&
21644 (elem = expression_rule(p)) // expression
21645 )
21646 {
21647 _res = elem;
21648 if (_res == NULL && PyErr_Occurred()) {
21649 p->error_indicator = 1;
21650 PyMem_Free(_children);
21651 D(p->level--);
21652 return NULL;
21653 }
21654 if (_n == _children_capacity) {
21655 _children_capacity *= 2;
21656 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21657 if (!_new_children) {
21658 p->error_indicator = 1;
21659 PyErr_NoMemory();
21660 D(p->level--);
21661 return NULL;
21662 }
21663 _children = _new_children;
21664 }
21665 _children[_n++] = _res;
21666 _mark = p->mark;
21667 }
21668 p->mark = _mark;
21669 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21671 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021672 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021673 if (!_seq) {
21674 PyMem_Free(_children);
21675 p->error_indicator = 1;
21676 PyErr_NoMemory();
21677 D(p->level--);
21678 return NULL;
21679 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021680 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021681 PyMem_Free(_children);
21682 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21683 D(p->level--);
21684 return _seq;
21685}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021686
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021687// _gather_9: expression _loop0_10
21688static asdl_seq *
21689_gather_9_rule(Parser *p)
21690{
21691 D(p->level++);
21692 if (p->error_indicator) {
21693 D(p->level--);
21694 return NULL;
21695 }
21696 asdl_seq * _res = NULL;
21697 int _mark = p->mark;
21698 { // expression _loop0_10
21699 if (p->error_indicator) {
21700 D(p->level--);
21701 return NULL;
21702 }
21703 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21704 expr_ty elem;
21705 asdl_seq * seq;
21706 if (
21707 (elem = expression_rule(p)) // expression
21708 &&
21709 (seq = _loop0_10_rule(p)) // _loop0_10
21710 )
21711 {
21712 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21713 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21714 goto done;
21715 }
21716 p->mark = _mark;
21717 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21719 }
21720 _res = NULL;
21721 done:
21722 D(p->level--);
21723 return _res;
21724}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021725
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021726// _loop1_11: statement
21727static asdl_seq *
21728_loop1_11_rule(Parser *p)
21729{
21730 D(p->level++);
21731 if (p->error_indicator) {
21732 D(p->level--);
21733 return NULL;
21734 }
21735 void *_res = NULL;
21736 int _mark = p->mark;
21737 int _start_mark = p->mark;
21738 void **_children = PyMem_Malloc(sizeof(void *));
21739 if (!_children) {
21740 p->error_indicator = 1;
21741 PyErr_NoMemory();
21742 D(p->level--);
21743 return NULL;
21744 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021745 Py_ssize_t _children_capacity = 1;
21746 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021747 { // statement
21748 if (p->error_indicator) {
21749 D(p->level--);
21750 return NULL;
21751 }
21752 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021753 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021754 while (
21755 (statement_var = statement_rule(p)) // statement
21756 )
21757 {
21758 _res = statement_var;
21759 if (_n == _children_capacity) {
21760 _children_capacity *= 2;
21761 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21762 if (!_new_children) {
21763 p->error_indicator = 1;
21764 PyErr_NoMemory();
21765 D(p->level--);
21766 return NULL;
21767 }
21768 _children = _new_children;
21769 }
21770 _children[_n++] = _res;
21771 _mark = p->mark;
21772 }
21773 p->mark = _mark;
21774 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21776 }
21777 if (_n == 0 || p->error_indicator) {
21778 PyMem_Free(_children);
21779 D(p->level--);
21780 return NULL;
21781 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021782 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021783 if (!_seq) {
21784 PyMem_Free(_children);
21785 p->error_indicator = 1;
21786 PyErr_NoMemory();
21787 D(p->level--);
21788 return NULL;
21789 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021790 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021791 PyMem_Free(_children);
21792 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21793 D(p->level--);
21794 return _seq;
21795}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021796
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021797// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021798static asdl_seq *
21799_loop0_13_rule(Parser *p)
21800{
21801 D(p->level++);
21802 if (p->error_indicator) {
21803 D(p->level--);
21804 return NULL;
21805 }
21806 void *_res = NULL;
21807 int _mark = p->mark;
21808 int _start_mark = p->mark;
21809 void **_children = PyMem_Malloc(sizeof(void *));
21810 if (!_children) {
21811 p->error_indicator = 1;
21812 PyErr_NoMemory();
21813 D(p->level--);
21814 return NULL;
21815 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021816 Py_ssize_t _children_capacity = 1;
21817 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021818 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021819 if (p->error_indicator) {
21820 D(p->level--);
21821 return NULL;
21822 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021823 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021824 Token * _literal;
21825 stmt_ty elem;
21826 while (
21827 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21828 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021829 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021830 )
21831 {
21832 _res = elem;
21833 if (_res == NULL && PyErr_Occurred()) {
21834 p->error_indicator = 1;
21835 PyMem_Free(_children);
21836 D(p->level--);
21837 return NULL;
21838 }
21839 if (_n == _children_capacity) {
21840 _children_capacity *= 2;
21841 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21842 if (!_new_children) {
21843 p->error_indicator = 1;
21844 PyErr_NoMemory();
21845 D(p->level--);
21846 return NULL;
21847 }
21848 _children = _new_children;
21849 }
21850 _children[_n++] = _res;
21851 _mark = p->mark;
21852 }
21853 p->mark = _mark;
21854 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021856 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021857 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021858 if (!_seq) {
21859 PyMem_Free(_children);
21860 p->error_indicator = 1;
21861 PyErr_NoMemory();
21862 D(p->level--);
21863 return NULL;
21864 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021865 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021866 PyMem_Free(_children);
21867 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21868 D(p->level--);
21869 return _seq;
21870}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021871
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021872// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021873static asdl_seq *
21874_gather_12_rule(Parser *p)
21875{
21876 D(p->level++);
21877 if (p->error_indicator) {
21878 D(p->level--);
21879 return NULL;
21880 }
21881 asdl_seq * _res = NULL;
21882 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021883 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021884 if (p->error_indicator) {
21885 D(p->level--);
21886 return NULL;
21887 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021888 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 +010021889 stmt_ty elem;
21890 asdl_seq * seq;
21891 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021892 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021893 &&
21894 (seq = _loop0_13_rule(p)) // _loop0_13
21895 )
21896 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021897 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 +010021898 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21899 goto done;
21900 }
21901 p->mark = _mark;
21902 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021904 }
21905 _res = NULL;
21906 done:
21907 D(p->level--);
21908 return _res;
21909}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021910
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021911// _tmp_14: 'import' | 'from'
21912static void *
21913_tmp_14_rule(Parser *p)
21914{
21915 D(p->level++);
21916 if (p->error_indicator) {
21917 D(p->level--);
21918 return NULL;
21919 }
21920 void * _res = NULL;
21921 int _mark = p->mark;
21922 { // 'import'
21923 if (p->error_indicator) {
21924 D(p->level--);
21925 return NULL;
21926 }
21927 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
21928 Token * _keyword;
21929 if (
21930 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
21931 )
21932 {
21933 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
21934 _res = _keyword;
21935 goto done;
21936 }
21937 p->mark = _mark;
21938 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
21940 }
21941 { // 'from'
21942 if (p->error_indicator) {
21943 D(p->level--);
21944 return NULL;
21945 }
21946 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
21947 Token * _keyword;
21948 if (
21949 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
21950 )
21951 {
21952 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
21953 _res = _keyword;
21954 goto done;
21955 }
21956 p->mark = _mark;
21957 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
21959 }
21960 _res = NULL;
21961 done:
21962 D(p->level--);
21963 return _res;
21964}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021965
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021966// _tmp_15: 'def' | '@' | ASYNC
21967static void *
21968_tmp_15_rule(Parser *p)
21969{
21970 D(p->level++);
21971 if (p->error_indicator) {
21972 D(p->level--);
21973 return NULL;
21974 }
21975 void * _res = NULL;
21976 int _mark = p->mark;
21977 { // 'def'
21978 if (p->error_indicator) {
21979 D(p->level--);
21980 return NULL;
21981 }
21982 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
21983 Token * _keyword;
21984 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021985 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021986 )
21987 {
21988 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
21989 _res = _keyword;
21990 goto done;
21991 }
21992 p->mark = _mark;
21993 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
21995 }
21996 { // '@'
21997 if (p->error_indicator) {
21998 D(p->level--);
21999 return NULL;
22000 }
22001 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22002 Token * _literal;
22003 if (
22004 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22005 )
22006 {
22007 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22008 _res = _literal;
22009 goto done;
22010 }
22011 p->mark = _mark;
22012 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22014 }
22015 { // ASYNC
22016 if (p->error_indicator) {
22017 D(p->level--);
22018 return NULL;
22019 }
22020 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22021 Token * async_var;
22022 if (
22023 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22024 )
22025 {
22026 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22027 _res = async_var;
22028 goto done;
22029 }
22030 p->mark = _mark;
22031 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22033 }
22034 _res = NULL;
22035 done:
22036 D(p->level--);
22037 return _res;
22038}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022039
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022040// _tmp_16: 'class' | '@'
22041static void *
22042_tmp_16_rule(Parser *p)
22043{
22044 D(p->level++);
22045 if (p->error_indicator) {
22046 D(p->level--);
22047 return NULL;
22048 }
22049 void * _res = NULL;
22050 int _mark = p->mark;
22051 { // 'class'
22052 if (p->error_indicator) {
22053 D(p->level--);
22054 return NULL;
22055 }
22056 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
22057 Token * _keyword;
22058 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022059 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022060 )
22061 {
22062 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
22063 _res = _keyword;
22064 goto done;
22065 }
22066 p->mark = _mark;
22067 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22069 }
22070 { // '@'
22071 if (p->error_indicator) {
22072 D(p->level--);
22073 return NULL;
22074 }
22075 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22076 Token * _literal;
22077 if (
22078 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22079 )
22080 {
22081 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22082 _res = _literal;
22083 goto done;
22084 }
22085 p->mark = _mark;
22086 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22088 }
22089 _res = NULL;
22090 done:
22091 D(p->level--);
22092 return _res;
22093}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022094
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022095// _tmp_17: 'with' | ASYNC
22096static void *
22097_tmp_17_rule(Parser *p)
22098{
22099 D(p->level++);
22100 if (p->error_indicator) {
22101 D(p->level--);
22102 return NULL;
22103 }
22104 void * _res = NULL;
22105 int _mark = p->mark;
22106 { // 'with'
22107 if (p->error_indicator) {
22108 D(p->level--);
22109 return NULL;
22110 }
22111 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22112 Token * _keyword;
22113 if (
22114 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22115 )
22116 {
22117 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22118 _res = _keyword;
22119 goto done;
22120 }
22121 p->mark = _mark;
22122 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22124 }
22125 { // ASYNC
22126 if (p->error_indicator) {
22127 D(p->level--);
22128 return NULL;
22129 }
22130 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22131 Token * async_var;
22132 if (
22133 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22134 )
22135 {
22136 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22137 _res = async_var;
22138 goto done;
22139 }
22140 p->mark = _mark;
22141 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22143 }
22144 _res = NULL;
22145 done:
22146 D(p->level--);
22147 return _res;
22148}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022149
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022150// _tmp_18: 'for' | ASYNC
22151static void *
22152_tmp_18_rule(Parser *p)
22153{
22154 D(p->level++);
22155 if (p->error_indicator) {
22156 D(p->level--);
22157 return NULL;
22158 }
22159 void * _res = NULL;
22160 int _mark = p->mark;
22161 { // 'for'
22162 if (p->error_indicator) {
22163 D(p->level--);
22164 return NULL;
22165 }
22166 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22167 Token * _keyword;
22168 if (
22169 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22170 )
22171 {
22172 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22173 _res = _keyword;
22174 goto done;
22175 }
22176 p->mark = _mark;
22177 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22179 }
22180 { // ASYNC
22181 if (p->error_indicator) {
22182 D(p->level--);
22183 return NULL;
22184 }
22185 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22186 Token * async_var;
22187 if (
22188 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22189 )
22190 {
22191 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22192 _res = async_var;
22193 goto done;
22194 }
22195 p->mark = _mark;
22196 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22198 }
22199 _res = NULL;
22200 done:
22201 D(p->level--);
22202 return _res;
22203}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022204
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022205// _tmp_19: '=' annotated_rhs
22206static void *
22207_tmp_19_rule(Parser *p)
22208{
22209 D(p->level++);
22210 if (p->error_indicator) {
22211 D(p->level--);
22212 return NULL;
22213 }
22214 void * _res = NULL;
22215 int _mark = p->mark;
22216 { // '=' annotated_rhs
22217 if (p->error_indicator) {
22218 D(p->level--);
22219 return NULL;
22220 }
22221 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22222 Token * _literal;
22223 expr_ty d;
22224 if (
22225 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22226 &&
22227 (d = annotated_rhs_rule(p)) // annotated_rhs
22228 )
22229 {
22230 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22231 _res = d;
22232 if (_res == NULL && PyErr_Occurred()) {
22233 p->error_indicator = 1;
22234 D(p->level--);
22235 return NULL;
22236 }
22237 goto done;
22238 }
22239 p->mark = _mark;
22240 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22242 }
22243 _res = NULL;
22244 done:
22245 D(p->level--);
22246 return _res;
22247}
22248
22249// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22250static void *
22251_tmp_20_rule(Parser *p)
22252{
22253 D(p->level++);
22254 if (p->error_indicator) {
22255 D(p->level--);
22256 return NULL;
22257 }
22258 void * _res = NULL;
22259 int _mark = p->mark;
22260 { // '(' single_target ')'
22261 if (p->error_indicator) {
22262 D(p->level--);
22263 return NULL;
22264 }
22265 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22266 Token * _literal;
22267 Token * _literal_1;
22268 expr_ty b;
22269 if (
22270 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22271 &&
22272 (b = single_target_rule(p)) // single_target
22273 &&
22274 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22275 )
22276 {
22277 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22278 _res = b;
22279 if (_res == NULL && PyErr_Occurred()) {
22280 p->error_indicator = 1;
22281 D(p->level--);
22282 return NULL;
22283 }
22284 goto done;
22285 }
22286 p->mark = _mark;
22287 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22289 }
22290 { // single_subscript_attribute_target
22291 if (p->error_indicator) {
22292 D(p->level--);
22293 return NULL;
22294 }
22295 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22296 expr_ty single_subscript_attribute_target_var;
22297 if (
22298 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22299 )
22300 {
22301 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22302 _res = single_subscript_attribute_target_var;
22303 goto done;
22304 }
22305 p->mark = _mark;
22306 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22308 }
22309 _res = NULL;
22310 done:
22311 D(p->level--);
22312 return _res;
22313}
22314
22315// _tmp_21: '=' annotated_rhs
22316static void *
22317_tmp_21_rule(Parser *p)
22318{
22319 D(p->level++);
22320 if (p->error_indicator) {
22321 D(p->level--);
22322 return NULL;
22323 }
22324 void * _res = NULL;
22325 int _mark = p->mark;
22326 { // '=' annotated_rhs
22327 if (p->error_indicator) {
22328 D(p->level--);
22329 return NULL;
22330 }
22331 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22332 Token * _literal;
22333 expr_ty d;
22334 if (
22335 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22336 &&
22337 (d = annotated_rhs_rule(p)) // annotated_rhs
22338 )
22339 {
22340 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22341 _res = d;
22342 if (_res == NULL && PyErr_Occurred()) {
22343 p->error_indicator = 1;
22344 D(p->level--);
22345 return NULL;
22346 }
22347 goto done;
22348 }
22349 p->mark = _mark;
22350 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22352 }
22353 _res = NULL;
22354 done:
22355 D(p->level--);
22356 return _res;
22357}
22358
22359// _loop1_22: (star_targets '=')
22360static asdl_seq *
22361_loop1_22_rule(Parser *p)
22362{
22363 D(p->level++);
22364 if (p->error_indicator) {
22365 D(p->level--);
22366 return NULL;
22367 }
22368 void *_res = NULL;
22369 int _mark = p->mark;
22370 int _start_mark = p->mark;
22371 void **_children = PyMem_Malloc(sizeof(void *));
22372 if (!_children) {
22373 p->error_indicator = 1;
22374 PyErr_NoMemory();
22375 D(p->level--);
22376 return NULL;
22377 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022378 Py_ssize_t _children_capacity = 1;
22379 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022380 { // (star_targets '=')
22381 if (p->error_indicator) {
22382 D(p->level--);
22383 return NULL;
22384 }
22385 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022386 void *_tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022387 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022388 (_tmp_179_var = _tmp_179_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022389 )
22390 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022391 _res = _tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022392 if (_n == _children_capacity) {
22393 _children_capacity *= 2;
22394 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22395 if (!_new_children) {
22396 p->error_indicator = 1;
22397 PyErr_NoMemory();
22398 D(p->level--);
22399 return NULL;
22400 }
22401 _children = _new_children;
22402 }
22403 _children[_n++] = _res;
22404 _mark = p->mark;
22405 }
22406 p->mark = _mark;
22407 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22409 }
22410 if (_n == 0 || p->error_indicator) {
22411 PyMem_Free(_children);
22412 D(p->level--);
22413 return NULL;
22414 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022415 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022416 if (!_seq) {
22417 PyMem_Free(_children);
22418 p->error_indicator = 1;
22419 PyErr_NoMemory();
22420 D(p->level--);
22421 return NULL;
22422 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022423 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022424 PyMem_Free(_children);
22425 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22426 D(p->level--);
22427 return _seq;
22428}
22429
22430// _tmp_23: yield_expr | star_expressions
22431static void *
22432_tmp_23_rule(Parser *p)
22433{
22434 D(p->level++);
22435 if (p->error_indicator) {
22436 D(p->level--);
22437 return NULL;
22438 }
22439 void * _res = NULL;
22440 int _mark = p->mark;
22441 { // yield_expr
22442 if (p->error_indicator) {
22443 D(p->level--);
22444 return NULL;
22445 }
22446 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22447 expr_ty yield_expr_var;
22448 if (
22449 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22450 )
22451 {
22452 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22453 _res = yield_expr_var;
22454 goto done;
22455 }
22456 p->mark = _mark;
22457 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22459 }
22460 { // star_expressions
22461 if (p->error_indicator) {
22462 D(p->level--);
22463 return NULL;
22464 }
22465 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22466 expr_ty star_expressions_var;
22467 if (
22468 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22469 )
22470 {
22471 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22472 _res = star_expressions_var;
22473 goto done;
22474 }
22475 p->mark = _mark;
22476 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22478 }
22479 _res = NULL;
22480 done:
22481 D(p->level--);
22482 return _res;
22483}
22484
22485// _tmp_24: yield_expr | star_expressions
22486static void *
22487_tmp_24_rule(Parser *p)
22488{
22489 D(p->level++);
22490 if (p->error_indicator) {
22491 D(p->level--);
22492 return NULL;
22493 }
22494 void * _res = NULL;
22495 int _mark = p->mark;
22496 { // yield_expr
22497 if (p->error_indicator) {
22498 D(p->level--);
22499 return NULL;
22500 }
22501 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22502 expr_ty yield_expr_var;
22503 if (
22504 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22505 )
22506 {
22507 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22508 _res = yield_expr_var;
22509 goto done;
22510 }
22511 p->mark = _mark;
22512 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22514 }
22515 { // star_expressions
22516 if (p->error_indicator) {
22517 D(p->level--);
22518 return NULL;
22519 }
22520 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22521 expr_ty star_expressions_var;
22522 if (
22523 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22524 )
22525 {
22526 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22527 _res = star_expressions_var;
22528 goto done;
22529 }
22530 p->mark = _mark;
22531 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22533 }
22534 _res = NULL;
22535 done:
22536 D(p->level--);
22537 return _res;
22538}
22539
22540// _loop0_26: ',' NAME
22541static asdl_seq *
22542_loop0_26_rule(Parser *p)
22543{
22544 D(p->level++);
22545 if (p->error_indicator) {
22546 D(p->level--);
22547 return NULL;
22548 }
22549 void *_res = NULL;
22550 int _mark = p->mark;
22551 int _start_mark = p->mark;
22552 void **_children = PyMem_Malloc(sizeof(void *));
22553 if (!_children) {
22554 p->error_indicator = 1;
22555 PyErr_NoMemory();
22556 D(p->level--);
22557 return NULL;
22558 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022559 Py_ssize_t _children_capacity = 1;
22560 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022561 { // ',' NAME
22562 if (p->error_indicator) {
22563 D(p->level--);
22564 return NULL;
22565 }
22566 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22567 Token * _literal;
22568 expr_ty elem;
22569 while (
22570 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22571 &&
22572 (elem = _PyPegen_name_token(p)) // NAME
22573 )
22574 {
22575 _res = elem;
22576 if (_res == NULL && PyErr_Occurred()) {
22577 p->error_indicator = 1;
22578 PyMem_Free(_children);
22579 D(p->level--);
22580 return NULL;
22581 }
22582 if (_n == _children_capacity) {
22583 _children_capacity *= 2;
22584 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22585 if (!_new_children) {
22586 p->error_indicator = 1;
22587 PyErr_NoMemory();
22588 D(p->level--);
22589 return NULL;
22590 }
22591 _children = _new_children;
22592 }
22593 _children[_n++] = _res;
22594 _mark = p->mark;
22595 }
22596 p->mark = _mark;
22597 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22599 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022600 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022601 if (!_seq) {
22602 PyMem_Free(_children);
22603 p->error_indicator = 1;
22604 PyErr_NoMemory();
22605 D(p->level--);
22606 return NULL;
22607 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022608 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022609 PyMem_Free(_children);
22610 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22611 D(p->level--);
22612 return _seq;
22613}
22614
22615// _gather_25: NAME _loop0_26
22616static asdl_seq *
22617_gather_25_rule(Parser *p)
22618{
22619 D(p->level++);
22620 if (p->error_indicator) {
22621 D(p->level--);
22622 return NULL;
22623 }
22624 asdl_seq * _res = NULL;
22625 int _mark = p->mark;
22626 { // NAME _loop0_26
22627 if (p->error_indicator) {
22628 D(p->level--);
22629 return NULL;
22630 }
22631 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22632 expr_ty elem;
22633 asdl_seq * seq;
22634 if (
22635 (elem = _PyPegen_name_token(p)) // NAME
22636 &&
22637 (seq = _loop0_26_rule(p)) // _loop0_26
22638 )
22639 {
22640 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22641 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22642 goto done;
22643 }
22644 p->mark = _mark;
22645 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22647 }
22648 _res = NULL;
22649 done:
22650 D(p->level--);
22651 return _res;
22652}
22653
22654// _loop0_28: ',' NAME
22655static asdl_seq *
22656_loop0_28_rule(Parser *p)
22657{
22658 D(p->level++);
22659 if (p->error_indicator) {
22660 D(p->level--);
22661 return NULL;
22662 }
22663 void *_res = NULL;
22664 int _mark = p->mark;
22665 int _start_mark = p->mark;
22666 void **_children = PyMem_Malloc(sizeof(void *));
22667 if (!_children) {
22668 p->error_indicator = 1;
22669 PyErr_NoMemory();
22670 D(p->level--);
22671 return NULL;
22672 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022673 Py_ssize_t _children_capacity = 1;
22674 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022675 { // ',' NAME
22676 if (p->error_indicator) {
22677 D(p->level--);
22678 return NULL;
22679 }
22680 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22681 Token * _literal;
22682 expr_ty elem;
22683 while (
22684 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22685 &&
22686 (elem = _PyPegen_name_token(p)) // NAME
22687 )
22688 {
22689 _res = elem;
22690 if (_res == NULL && PyErr_Occurred()) {
22691 p->error_indicator = 1;
22692 PyMem_Free(_children);
22693 D(p->level--);
22694 return NULL;
22695 }
22696 if (_n == _children_capacity) {
22697 _children_capacity *= 2;
22698 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22699 if (!_new_children) {
22700 p->error_indicator = 1;
22701 PyErr_NoMemory();
22702 D(p->level--);
22703 return NULL;
22704 }
22705 _children = _new_children;
22706 }
22707 _children[_n++] = _res;
22708 _mark = p->mark;
22709 }
22710 p->mark = _mark;
22711 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22713 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022714 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022715 if (!_seq) {
22716 PyMem_Free(_children);
22717 p->error_indicator = 1;
22718 PyErr_NoMemory();
22719 D(p->level--);
22720 return NULL;
22721 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022722 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022723 PyMem_Free(_children);
22724 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22725 D(p->level--);
22726 return _seq;
22727}
22728
22729// _gather_27: NAME _loop0_28
22730static asdl_seq *
22731_gather_27_rule(Parser *p)
22732{
22733 D(p->level++);
22734 if (p->error_indicator) {
22735 D(p->level--);
22736 return NULL;
22737 }
22738 asdl_seq * _res = NULL;
22739 int _mark = p->mark;
22740 { // NAME _loop0_28
22741 if (p->error_indicator) {
22742 D(p->level--);
22743 return NULL;
22744 }
22745 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22746 expr_ty elem;
22747 asdl_seq * seq;
22748 if (
22749 (elem = _PyPegen_name_token(p)) // NAME
22750 &&
22751 (seq = _loop0_28_rule(p)) // _loop0_28
22752 )
22753 {
22754 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22755 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22756 goto done;
22757 }
22758 p->mark = _mark;
22759 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22761 }
22762 _res = NULL;
22763 done:
22764 D(p->level--);
22765 return _res;
22766}
22767
22768// _tmp_29: ',' expression
22769static void *
22770_tmp_29_rule(Parser *p)
22771{
22772 D(p->level++);
22773 if (p->error_indicator) {
22774 D(p->level--);
22775 return NULL;
22776 }
22777 void * _res = NULL;
22778 int _mark = p->mark;
22779 { // ',' expression
22780 if (p->error_indicator) {
22781 D(p->level--);
22782 return NULL;
22783 }
22784 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22785 Token * _literal;
22786 expr_ty z;
22787 if (
22788 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22789 &&
22790 (z = expression_rule(p)) // expression
22791 )
22792 {
22793 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22794 _res = z;
22795 if (_res == NULL && PyErr_Occurred()) {
22796 p->error_indicator = 1;
22797 D(p->level--);
22798 return NULL;
22799 }
22800 goto done;
22801 }
22802 p->mark = _mark;
22803 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22805 }
22806 _res = NULL;
22807 done:
22808 D(p->level--);
22809 return _res;
22810}
22811
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022812// _tmp_30: ';' | NEWLINE
22813static void *
22814_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022815{
22816 D(p->level++);
22817 if (p->error_indicator) {
22818 D(p->level--);
22819 return NULL;
22820 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022821 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022822 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022823 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022824 if (p->error_indicator) {
22825 D(p->level--);
22826 return NULL;
22827 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022828 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22829 Token * _literal;
22830 if (
22831 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022832 )
22833 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022834 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22835 _res = _literal;
22836 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022837 }
22838 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022839 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022841 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022842 { // NEWLINE
22843 if (p->error_indicator) {
22844 D(p->level--);
22845 return NULL;
22846 }
22847 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22848 Token * newline_var;
22849 if (
22850 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22851 )
22852 {
22853 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22854 _res = newline_var;
22855 goto done;
22856 }
22857 p->mark = _mark;
22858 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022860 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022861 _res = NULL;
22862 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022863 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022864 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022865}
22866
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022867// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022868static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022869_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022870{
22871 D(p->level++);
22872 if (p->error_indicator) {
22873 D(p->level--);
22874 return NULL;
22875 }
22876 void *_res = NULL;
22877 int _mark = p->mark;
22878 int _start_mark = p->mark;
22879 void **_children = PyMem_Malloc(sizeof(void *));
22880 if (!_children) {
22881 p->error_indicator = 1;
22882 PyErr_NoMemory();
22883 D(p->level--);
22884 return NULL;
22885 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022886 Py_ssize_t _children_capacity = 1;
22887 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022888 { // ('.' | '...')
22889 if (p->error_indicator) {
22890 D(p->level--);
22891 return NULL;
22892 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022893 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022894 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022895 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022896 (_tmp_180_var = _tmp_180_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022897 )
22898 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022899 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022900 if (_n == _children_capacity) {
22901 _children_capacity *= 2;
22902 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22903 if (!_new_children) {
22904 p->error_indicator = 1;
22905 PyErr_NoMemory();
22906 D(p->level--);
22907 return NULL;
22908 }
22909 _children = _new_children;
22910 }
22911 _children[_n++] = _res;
22912 _mark = p->mark;
22913 }
22914 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022915 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
22916 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22917 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022918 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022919 if (!_seq) {
22920 PyMem_Free(_children);
22921 p->error_indicator = 1;
22922 PyErr_NoMemory();
22923 D(p->level--);
22924 return NULL;
22925 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022926 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022927 PyMem_Free(_children);
22928 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
22929 D(p->level--);
22930 return _seq;
22931}
22932
22933// _loop1_32: ('.' | '...')
22934static asdl_seq *
22935_loop1_32_rule(Parser *p)
22936{
22937 D(p->level++);
22938 if (p->error_indicator) {
22939 D(p->level--);
22940 return NULL;
22941 }
22942 void *_res = NULL;
22943 int _mark = p->mark;
22944 int _start_mark = p->mark;
22945 void **_children = PyMem_Malloc(sizeof(void *));
22946 if (!_children) {
22947 p->error_indicator = 1;
22948 PyErr_NoMemory();
22949 D(p->level--);
22950 return NULL;
22951 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022952 Py_ssize_t _children_capacity = 1;
22953 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022954 { // ('.' | '...')
22955 if (p->error_indicator) {
22956 D(p->level--);
22957 return NULL;
22958 }
22959 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022960 void *_tmp_181_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022961 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022962 (_tmp_181_var = _tmp_181_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022963 )
22964 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070022965 _res = _tmp_181_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022966 if (_n == _children_capacity) {
22967 _children_capacity *= 2;
22968 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22969 if (!_new_children) {
22970 p->error_indicator = 1;
22971 PyErr_NoMemory();
22972 D(p->level--);
22973 return NULL;
22974 }
22975 _children = _new_children;
22976 }
22977 _children[_n++] = _res;
22978 _mark = p->mark;
22979 }
22980 p->mark = _mark;
22981 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22983 }
22984 if (_n == 0 || p->error_indicator) {
22985 PyMem_Free(_children);
22986 D(p->level--);
22987 return NULL;
22988 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022989 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022990 if (!_seq) {
22991 PyMem_Free(_children);
22992 p->error_indicator = 1;
22993 PyErr_NoMemory();
22994 D(p->level--);
22995 return NULL;
22996 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022997 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022998 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022999 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023000 D(p->level--);
23001 return _seq;
23002}
23003
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023004// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023005static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023006_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023007{
23008 D(p->level++);
23009 if (p->error_indicator) {
23010 D(p->level--);
23011 return NULL;
23012 }
23013 void *_res = NULL;
23014 int _mark = p->mark;
23015 int _start_mark = p->mark;
23016 void **_children = PyMem_Malloc(sizeof(void *));
23017 if (!_children) {
23018 p->error_indicator = 1;
23019 PyErr_NoMemory();
23020 D(p->level--);
23021 return NULL;
23022 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023023 Py_ssize_t _children_capacity = 1;
23024 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023025 { // ',' import_from_as_name
23026 if (p->error_indicator) {
23027 D(p->level--);
23028 return NULL;
23029 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023030 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 +010023031 Token * _literal;
23032 alias_ty elem;
23033 while (
23034 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23035 &&
23036 (elem = import_from_as_name_rule(p)) // import_from_as_name
23037 )
23038 {
23039 _res = elem;
23040 if (_res == NULL && PyErr_Occurred()) {
23041 p->error_indicator = 1;
23042 PyMem_Free(_children);
23043 D(p->level--);
23044 return NULL;
23045 }
23046 if (_n == _children_capacity) {
23047 _children_capacity *= 2;
23048 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23049 if (!_new_children) {
23050 p->error_indicator = 1;
23051 PyErr_NoMemory();
23052 D(p->level--);
23053 return NULL;
23054 }
23055 _children = _new_children;
23056 }
23057 _children[_n++] = _res;
23058 _mark = p->mark;
23059 }
23060 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023061 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
23063 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023064 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023065 if (!_seq) {
23066 PyMem_Free(_children);
23067 p->error_indicator = 1;
23068 PyErr_NoMemory();
23069 D(p->level--);
23070 return NULL;
23071 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023072 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023073 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023074 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023075 D(p->level--);
23076 return _seq;
23077}
23078
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023079// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023080static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023081_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023082{
23083 D(p->level++);
23084 if (p->error_indicator) {
23085 D(p->level--);
23086 return NULL;
23087 }
23088 asdl_seq * _res = NULL;
23089 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023090 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023091 if (p->error_indicator) {
23092 D(p->level--);
23093 return NULL;
23094 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023095 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 +010023096 alias_ty elem;
23097 asdl_seq * seq;
23098 if (
23099 (elem = import_from_as_name_rule(p)) // import_from_as_name
23100 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023101 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023102 )
23103 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023104 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 +010023105 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23106 goto done;
23107 }
23108 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023109 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023111 }
23112 _res = NULL;
23113 done:
23114 D(p->level--);
23115 return _res;
23116}
23117
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023118// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023119static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023120_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023121{
23122 D(p->level++);
23123 if (p->error_indicator) {
23124 D(p->level--);
23125 return NULL;
23126 }
23127 void * _res = NULL;
23128 int _mark = p->mark;
23129 { // 'as' NAME
23130 if (p->error_indicator) {
23131 D(p->level--);
23132 return NULL;
23133 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023134 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023135 Token * _keyword;
23136 expr_ty z;
23137 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023138 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023139 &&
23140 (z = _PyPegen_name_token(p)) // NAME
23141 )
23142 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023143 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 +010023144 _res = z;
23145 if (_res == NULL && PyErr_Occurred()) {
23146 p->error_indicator = 1;
23147 D(p->level--);
23148 return NULL;
23149 }
23150 goto done;
23151 }
23152 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023153 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23155 }
23156 _res = NULL;
23157 done:
23158 D(p->level--);
23159 return _res;
23160}
23161
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023162// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023163static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023164_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023165{
23166 D(p->level++);
23167 if (p->error_indicator) {
23168 D(p->level--);
23169 return NULL;
23170 }
23171 void *_res = NULL;
23172 int _mark = p->mark;
23173 int _start_mark = p->mark;
23174 void **_children = PyMem_Malloc(sizeof(void *));
23175 if (!_children) {
23176 p->error_indicator = 1;
23177 PyErr_NoMemory();
23178 D(p->level--);
23179 return NULL;
23180 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023181 Py_ssize_t _children_capacity = 1;
23182 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023183 { // ',' dotted_as_name
23184 if (p->error_indicator) {
23185 D(p->level--);
23186 return NULL;
23187 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023188 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 +010023189 Token * _literal;
23190 alias_ty elem;
23191 while (
23192 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23193 &&
23194 (elem = dotted_as_name_rule(p)) // dotted_as_name
23195 )
23196 {
23197 _res = elem;
23198 if (_res == NULL && PyErr_Occurred()) {
23199 p->error_indicator = 1;
23200 PyMem_Free(_children);
23201 D(p->level--);
23202 return NULL;
23203 }
23204 if (_n == _children_capacity) {
23205 _children_capacity *= 2;
23206 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23207 if (!_new_children) {
23208 p->error_indicator = 1;
23209 PyErr_NoMemory();
23210 D(p->level--);
23211 return NULL;
23212 }
23213 _children = _new_children;
23214 }
23215 _children[_n++] = _res;
23216 _mark = p->mark;
23217 }
23218 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023219 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23221 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023222 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023223 if (!_seq) {
23224 PyMem_Free(_children);
23225 p->error_indicator = 1;
23226 PyErr_NoMemory();
23227 D(p->level--);
23228 return NULL;
23229 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023230 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023231 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023232 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023233 D(p->level--);
23234 return _seq;
23235}
23236
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023237// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023238static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023239_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023240{
23241 D(p->level++);
23242 if (p->error_indicator) {
23243 D(p->level--);
23244 return NULL;
23245 }
23246 asdl_seq * _res = NULL;
23247 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023248 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023249 if (p->error_indicator) {
23250 D(p->level--);
23251 return NULL;
23252 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023253 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 +010023254 alias_ty elem;
23255 asdl_seq * seq;
23256 if (
23257 (elem = dotted_as_name_rule(p)) // dotted_as_name
23258 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023259 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023260 )
23261 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023262 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 +010023263 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23264 goto done;
23265 }
23266 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023267 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023269 }
23270 _res = NULL;
23271 done:
23272 D(p->level--);
23273 return _res;
23274}
23275
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023276// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023277static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023278_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023279{
23280 D(p->level++);
23281 if (p->error_indicator) {
23282 D(p->level--);
23283 return NULL;
23284 }
23285 void * _res = NULL;
23286 int _mark = p->mark;
23287 { // 'as' NAME
23288 if (p->error_indicator) {
23289 D(p->level--);
23290 return NULL;
23291 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023292 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023293 Token * _keyword;
23294 expr_ty z;
23295 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023296 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023297 &&
23298 (z = _PyPegen_name_token(p)) // NAME
23299 )
23300 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023301 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 +010023302 _res = z;
23303 if (_res == NULL && PyErr_Occurred()) {
23304 p->error_indicator = 1;
23305 D(p->level--);
23306 return NULL;
23307 }
23308 goto done;
23309 }
23310 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023311 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23313 }
23314 _res = NULL;
23315 done:
23316 D(p->level--);
23317 return _res;
23318}
23319
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023320// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023321static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023322_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023323{
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;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023341 { // ',' with_item
23342 if (p->error_indicator) {
23343 D(p->level--);
23344 return NULL;
23345 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023346 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023347 Token * _literal;
23348 withitem_ty elem;
23349 while (
23350 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23351 &&
23352 (elem = with_item_rule(p)) // with_item
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;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023377 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23379 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023380 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023381 if (!_seq) {
23382 PyMem_Free(_children);
23383 p->error_indicator = 1;
23384 PyErr_NoMemory();
23385 D(p->level--);
23386 return NULL;
23387 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023388 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023389 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023390 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023391 D(p->level--);
23392 return _seq;
23393}
23394
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023395// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023396static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023397_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023398{
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;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023406 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023407 if (p->error_indicator) {
23408 D(p->level--);
23409 return NULL;
23410 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023411 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 +010023412 withitem_ty elem;
23413 asdl_seq * seq;
23414 if (
23415 (elem = with_item_rule(p)) // with_item
23416 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023417 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023418 )
23419 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023420 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 +010023421 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23422 goto done;
23423 }
23424 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023425 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023427 }
23428 _res = NULL;
23429 done:
23430 D(p->level--);
23431 return _res;
23432}
23433
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023434// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023435static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023436_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023437{
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 int _start_mark = p->mark;
23446 void **_children = PyMem_Malloc(sizeof(void *));
23447 if (!_children) {
23448 p->error_indicator = 1;
23449 PyErr_NoMemory();
23450 D(p->level--);
23451 return NULL;
23452 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023453 Py_ssize_t _children_capacity = 1;
23454 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023455 { // ',' with_item
23456 if (p->error_indicator) {
23457 D(p->level--);
23458 return NULL;
23459 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023460 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023461 Token * _literal;
23462 withitem_ty elem;
23463 while (
23464 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23465 &&
23466 (elem = with_item_rule(p)) // with_item
23467 )
23468 {
23469 _res = elem;
23470 if (_res == NULL && PyErr_Occurred()) {
23471 p->error_indicator = 1;
23472 PyMem_Free(_children);
23473 D(p->level--);
23474 return NULL;
23475 }
23476 if (_n == _children_capacity) {
23477 _children_capacity *= 2;
23478 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23479 if (!_new_children) {
23480 p->error_indicator = 1;
23481 PyErr_NoMemory();
23482 D(p->level--);
23483 return NULL;
23484 }
23485 _children = _new_children;
23486 }
23487 _children[_n++] = _res;
23488 _mark = p->mark;
23489 }
23490 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023491 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23493 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023494 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023495 if (!_seq) {
23496 PyMem_Free(_children);
23497 p->error_indicator = 1;
23498 PyErr_NoMemory();
23499 D(p->level--);
23500 return NULL;
23501 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023502 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023503 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023504 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023505 D(p->level--);
23506 return _seq;
23507}
23508
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023509// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023510static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023511_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023512{
23513 D(p->level++);
23514 if (p->error_indicator) {
23515 D(p->level--);
23516 return NULL;
23517 }
23518 asdl_seq * _res = NULL;
23519 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023520 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023521 if (p->error_indicator) {
23522 D(p->level--);
23523 return NULL;
23524 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023525 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 +010023526 withitem_ty elem;
23527 asdl_seq * seq;
23528 if (
23529 (elem = with_item_rule(p)) // with_item
23530 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023531 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023532 )
23533 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023534 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 +010023535 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23536 goto done;
23537 }
23538 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023539 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023541 }
23542 _res = NULL;
23543 done:
23544 D(p->level--);
23545 return _res;
23546}
23547
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023548// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023549static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023550_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023551{
23552 D(p->level++);
23553 if (p->error_indicator) {
23554 D(p->level--);
23555 return NULL;
23556 }
23557 void *_res = NULL;
23558 int _mark = p->mark;
23559 int _start_mark = p->mark;
23560 void **_children = PyMem_Malloc(sizeof(void *));
23561 if (!_children) {
23562 p->error_indicator = 1;
23563 PyErr_NoMemory();
23564 D(p->level--);
23565 return NULL;
23566 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023567 Py_ssize_t _children_capacity = 1;
23568 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023569 { // ',' with_item
23570 if (p->error_indicator) {
23571 D(p->level--);
23572 return NULL;
23573 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023574 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023575 Token * _literal;
23576 withitem_ty elem;
23577 while (
23578 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23579 &&
23580 (elem = with_item_rule(p)) // with_item
23581 )
23582 {
23583 _res = elem;
23584 if (_res == NULL && PyErr_Occurred()) {
23585 p->error_indicator = 1;
23586 PyMem_Free(_children);
23587 D(p->level--);
23588 return NULL;
23589 }
23590 if (_n == _children_capacity) {
23591 _children_capacity *= 2;
23592 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23593 if (!_new_children) {
23594 p->error_indicator = 1;
23595 PyErr_NoMemory();
23596 D(p->level--);
23597 return NULL;
23598 }
23599 _children = _new_children;
23600 }
23601 _children[_n++] = _res;
23602 _mark = p->mark;
23603 }
23604 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023605 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23607 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023608 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023609 if (!_seq) {
23610 PyMem_Free(_children);
23611 p->error_indicator = 1;
23612 PyErr_NoMemory();
23613 D(p->level--);
23614 return NULL;
23615 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023616 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023617 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023618 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023619 D(p->level--);
23620 return _seq;
23621}
23622
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023623// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023624static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023625_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023626{
23627 D(p->level++);
23628 if (p->error_indicator) {
23629 D(p->level--);
23630 return NULL;
23631 }
23632 asdl_seq * _res = NULL;
23633 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023634 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023635 if (p->error_indicator) {
23636 D(p->level--);
23637 return NULL;
23638 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023639 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 +010023640 withitem_ty elem;
23641 asdl_seq * seq;
23642 if (
23643 (elem = with_item_rule(p)) // with_item
23644 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023645 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023646 )
23647 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023648 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 +010023649 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23650 goto done;
23651 }
23652 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023653 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023655 }
23656 _res = NULL;
23657 done:
23658 D(p->level--);
23659 return _res;
23660}
23661
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023662// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023663static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023664_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023665{
23666 D(p->level++);
23667 if (p->error_indicator) {
23668 D(p->level--);
23669 return NULL;
23670 }
23671 void *_res = NULL;
23672 int _mark = p->mark;
23673 int _start_mark = p->mark;
23674 void **_children = PyMem_Malloc(sizeof(void *));
23675 if (!_children) {
23676 p->error_indicator = 1;
23677 PyErr_NoMemory();
23678 D(p->level--);
23679 return NULL;
23680 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023681 Py_ssize_t _children_capacity = 1;
23682 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023683 { // ',' with_item
23684 if (p->error_indicator) {
23685 D(p->level--);
23686 return NULL;
23687 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023688 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023689 Token * _literal;
23690 withitem_ty elem;
23691 while (
23692 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23693 &&
23694 (elem = with_item_rule(p)) // with_item
23695 )
23696 {
23697 _res = elem;
23698 if (_res == NULL && PyErr_Occurred()) {
23699 p->error_indicator = 1;
23700 PyMem_Free(_children);
23701 D(p->level--);
23702 return NULL;
23703 }
23704 if (_n == _children_capacity) {
23705 _children_capacity *= 2;
23706 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23707 if (!_new_children) {
23708 p->error_indicator = 1;
23709 PyErr_NoMemory();
23710 D(p->level--);
23711 return NULL;
23712 }
23713 _children = _new_children;
23714 }
23715 _children[_n++] = _res;
23716 _mark = p->mark;
23717 }
23718 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023719 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23721 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023722 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023723 if (!_seq) {
23724 PyMem_Free(_children);
23725 p->error_indicator = 1;
23726 PyErr_NoMemory();
23727 D(p->level--);
23728 return NULL;
23729 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023730 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023731 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023732 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023733 D(p->level--);
23734 return _seq;
23735}
23736
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023737// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023738static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023739_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023740{
23741 D(p->level++);
23742 if (p->error_indicator) {
23743 D(p->level--);
23744 return NULL;
23745 }
23746 asdl_seq * _res = NULL;
23747 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023748 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023749 if (p->error_indicator) {
23750 D(p->level--);
23751 return NULL;
23752 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023753 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 +010023754 withitem_ty elem;
23755 asdl_seq * seq;
23756 if (
23757 (elem = with_item_rule(p)) // with_item
23758 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023759 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023760 )
23761 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023762 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 +010023763 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23764 goto done;
23765 }
23766 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023767 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023769 }
23770 _res = NULL;
23771 done:
23772 D(p->level--);
23773 return _res;
23774}
23775
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023776// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023777static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023778_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023779{
23780 D(p->level++);
23781 if (p->error_indicator) {
23782 D(p->level--);
23783 return NULL;
23784 }
23785 void * _res = NULL;
23786 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023787 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023788 if (p->error_indicator) {
23789 D(p->level--);
23790 return NULL;
23791 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023792 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23793 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023794 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023795 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023796 )
23797 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023798 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23799 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023800 goto done;
23801 }
23802 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023803 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23805 }
23806 { // ')'
23807 if (p->error_indicator) {
23808 D(p->level--);
23809 return NULL;
23810 }
23811 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23812 Token * _literal;
23813 if (
23814 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23815 )
23816 {
23817 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23818 _res = _literal;
23819 goto done;
23820 }
23821 p->mark = _mark;
23822 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23824 }
23825 { // ':'
23826 if (p->error_indicator) {
23827 D(p->level--);
23828 return NULL;
23829 }
23830 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23831 Token * _literal;
23832 if (
23833 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23834 )
23835 {
23836 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23837 _res = _literal;
23838 goto done;
23839 }
23840 p->mark = _mark;
23841 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023843 }
23844 _res = NULL;
23845 done:
23846 D(p->level--);
23847 return _res;
23848}
23849
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023850// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023851static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023852_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023853{
23854 D(p->level++);
23855 if (p->error_indicator) {
23856 D(p->level--);
23857 return NULL;
23858 }
23859 void *_res = NULL;
23860 int _mark = p->mark;
23861 int _start_mark = p->mark;
23862 void **_children = PyMem_Malloc(sizeof(void *));
23863 if (!_children) {
23864 p->error_indicator = 1;
23865 PyErr_NoMemory();
23866 D(p->level--);
23867 return NULL;
23868 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023869 Py_ssize_t _children_capacity = 1;
23870 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023871 { // except_block
23872 if (p->error_indicator) {
23873 D(p->level--);
23874 return NULL;
23875 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023876 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023877 excepthandler_ty except_block_var;
23878 while (
23879 (except_block_var = except_block_rule(p)) // except_block
23880 )
23881 {
23882 _res = except_block_var;
23883 if (_n == _children_capacity) {
23884 _children_capacity *= 2;
23885 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23886 if (!_new_children) {
23887 p->error_indicator = 1;
23888 PyErr_NoMemory();
23889 D(p->level--);
23890 return NULL;
23891 }
23892 _children = _new_children;
23893 }
23894 _children[_n++] = _res;
23895 _mark = p->mark;
23896 }
23897 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023898 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23900 }
23901 if (_n == 0 || p->error_indicator) {
23902 PyMem_Free(_children);
23903 D(p->level--);
23904 return NULL;
23905 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023906 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023907 if (!_seq) {
23908 PyMem_Free(_children);
23909 p->error_indicator = 1;
23910 PyErr_NoMemory();
23911 D(p->level--);
23912 return NULL;
23913 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023914 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023915 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023916 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023917 D(p->level--);
23918 return _seq;
23919}
23920
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023921// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023922static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023923_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023924{
23925 D(p->level++);
23926 if (p->error_indicator) {
23927 D(p->level--);
23928 return NULL;
23929 }
23930 void * _res = NULL;
23931 int _mark = p->mark;
23932 { // 'as' NAME
23933 if (p->error_indicator) {
23934 D(p->level--);
23935 return NULL;
23936 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023937 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023938 Token * _keyword;
23939 expr_ty z;
23940 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023941 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023942 &&
23943 (z = _PyPegen_name_token(p)) // NAME
23944 )
23945 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023946 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 +010023947 _res = z;
23948 if (_res == NULL && PyErr_Occurred()) {
23949 p->error_indicator = 1;
23950 D(p->level--);
23951 return NULL;
23952 }
23953 goto done;
23954 }
23955 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023956 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23958 }
23959 _res = NULL;
23960 done:
23961 D(p->level--);
23962 return _res;
23963}
23964
Brandt Bucher145bf262021-02-26 14:51:55 -080023965// _loop1_50: case_block
23966static asdl_seq *
23967_loop1_50_rule(Parser *p)
23968{
23969 D(p->level++);
23970 if (p->error_indicator) {
23971 D(p->level--);
23972 return NULL;
23973 }
23974 void *_res = NULL;
23975 int _mark = p->mark;
23976 int _start_mark = p->mark;
23977 void **_children = PyMem_Malloc(sizeof(void *));
23978 if (!_children) {
23979 p->error_indicator = 1;
23980 PyErr_NoMemory();
23981 D(p->level--);
23982 return NULL;
23983 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023984 Py_ssize_t _children_capacity = 1;
23985 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023986 { // case_block
23987 if (p->error_indicator) {
23988 D(p->level--);
23989 return NULL;
23990 }
23991 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
23992 match_case_ty case_block_var;
23993 while (
23994 (case_block_var = case_block_rule(p)) // case_block
23995 )
23996 {
23997 _res = case_block_var;
23998 if (_n == _children_capacity) {
23999 _children_capacity *= 2;
24000 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24001 if (!_new_children) {
24002 p->error_indicator = 1;
24003 PyErr_NoMemory();
24004 D(p->level--);
24005 return NULL;
24006 }
24007 _children = _new_children;
24008 }
24009 _children[_n++] = _res;
24010 _mark = p->mark;
24011 }
24012 p->mark = _mark;
24013 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
24014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
24015 }
24016 if (_n == 0 || p->error_indicator) {
24017 PyMem_Free(_children);
24018 D(p->level--);
24019 return NULL;
24020 }
24021 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24022 if (!_seq) {
24023 PyMem_Free(_children);
24024 p->error_indicator = 1;
24025 PyErr_NoMemory();
24026 D(p->level--);
24027 return NULL;
24028 }
24029 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24030 PyMem_Free(_children);
24031 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
24032 D(p->level--);
24033 return _seq;
24034}
24035
24036// _loop0_52: '|' closed_pattern
24037static asdl_seq *
24038_loop0_52_rule(Parser *p)
24039{
24040 D(p->level++);
24041 if (p->error_indicator) {
24042 D(p->level--);
24043 return NULL;
24044 }
24045 void *_res = NULL;
24046 int _mark = p->mark;
24047 int _start_mark = p->mark;
24048 void **_children = PyMem_Malloc(sizeof(void *));
24049 if (!_children) {
24050 p->error_indicator = 1;
24051 PyErr_NoMemory();
24052 D(p->level--);
24053 return NULL;
24054 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024055 Py_ssize_t _children_capacity = 1;
24056 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024057 { // '|' closed_pattern
24058 if (p->error_indicator) {
24059 D(p->level--);
24060 return NULL;
24061 }
24062 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
24063 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024064 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024065 while (
24066 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
24067 &&
24068 (elem = closed_pattern_rule(p)) // closed_pattern
24069 )
24070 {
24071 _res = elem;
24072 if (_res == NULL && PyErr_Occurred()) {
24073 p->error_indicator = 1;
24074 PyMem_Free(_children);
24075 D(p->level--);
24076 return NULL;
24077 }
24078 if (_n == _children_capacity) {
24079 _children_capacity *= 2;
24080 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24081 if (!_new_children) {
24082 p->error_indicator = 1;
24083 PyErr_NoMemory();
24084 D(p->level--);
24085 return NULL;
24086 }
24087 _children = _new_children;
24088 }
24089 _children[_n++] = _res;
24090 _mark = p->mark;
24091 }
24092 p->mark = _mark;
24093 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
24094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
24095 }
24096 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24097 if (!_seq) {
24098 PyMem_Free(_children);
24099 p->error_indicator = 1;
24100 PyErr_NoMemory();
24101 D(p->level--);
24102 return NULL;
24103 }
24104 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24105 PyMem_Free(_children);
24106 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
24107 D(p->level--);
24108 return _seq;
24109}
24110
24111// _gather_51: closed_pattern _loop0_52
24112static asdl_seq *
24113_gather_51_rule(Parser *p)
24114{
24115 D(p->level++);
24116 if (p->error_indicator) {
24117 D(p->level--);
24118 return NULL;
24119 }
24120 asdl_seq * _res = NULL;
24121 int _mark = p->mark;
24122 { // closed_pattern _loop0_52
24123 if (p->error_indicator) {
24124 D(p->level--);
24125 return NULL;
24126 }
24127 D(fprintf(stderr, "%*c> _gather_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024128 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024129 asdl_seq * seq;
24130 if (
24131 (elem = closed_pattern_rule(p)) // closed_pattern
24132 &&
24133 (seq = _loop0_52_rule(p)) // _loop0_52
24134 )
24135 {
24136 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24137 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24138 goto done;
24139 }
24140 p->mark = _mark;
24141 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24143 }
24144 _res = NULL;
24145 done:
24146 D(p->level--);
24147 return _res;
24148}
24149
24150// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024151static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024152_tmp_53_rule(Parser *p)
24153{
24154 D(p->level++);
24155 if (p->error_indicator) {
24156 D(p->level--);
24157 return NULL;
24158 }
24159 void * _res = NULL;
24160 int _mark = p->mark;
24161 { // '+'
24162 if (p->error_indicator) {
24163 D(p->level--);
24164 return NULL;
24165 }
24166 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24167 Token * _literal;
24168 if (
24169 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24170 )
24171 {
24172 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24173 _res = _literal;
24174 goto done;
24175 }
24176 p->mark = _mark;
24177 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24179 }
24180 { // '-'
24181 if (p->error_indicator) {
24182 D(p->level--);
24183 return NULL;
24184 }
24185 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24186 Token * _literal;
24187 if (
24188 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24189 )
24190 {
24191 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24192 _res = _literal;
24193 goto done;
24194 }
24195 p->mark = _mark;
24196 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24198 }
24199 _res = NULL;
24200 done:
24201 D(p->level--);
24202 return _res;
24203}
24204
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024205// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024206static void *
24207_tmp_54_rule(Parser *p)
24208{
24209 D(p->level++);
24210 if (p->error_indicator) {
24211 D(p->level--);
24212 return NULL;
24213 }
24214 void * _res = NULL;
24215 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024216 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024217 if (p->error_indicator) {
24218 D(p->level--);
24219 return NULL;
24220 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024221 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024222 Token * _literal;
24223 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024224 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024225 )
24226 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024227 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024228 _res = _literal;
24229 goto done;
24230 }
24231 p->mark = _mark;
24232 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024234 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024235 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024236 if (p->error_indicator) {
24237 D(p->level--);
24238 return NULL;
24239 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024240 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024241 Token * _literal;
24242 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024243 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024244 )
24245 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024246 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024247 _res = _literal;
24248 goto done;
24249 }
24250 p->mark = _mark;
24251 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024253 }
24254 _res = NULL;
24255 done:
24256 D(p->level--);
24257 return _res;
24258}
24259
24260// _tmp_55: '.' | '(' | '='
24261static void *
24262_tmp_55_rule(Parser *p)
24263{
24264 D(p->level++);
24265 if (p->error_indicator) {
24266 D(p->level--);
24267 return NULL;
24268 }
24269 void * _res = NULL;
24270 int _mark = p->mark;
24271 { // '.'
24272 if (p->error_indicator) {
24273 D(p->level--);
24274 return NULL;
24275 }
24276 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24277 Token * _literal;
24278 if (
24279 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24280 )
24281 {
24282 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24283 _res = _literal;
24284 goto done;
24285 }
24286 p->mark = _mark;
24287 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24289 }
24290 { // '('
24291 if (p->error_indicator) {
24292 D(p->level--);
24293 return NULL;
24294 }
24295 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24296 Token * _literal;
24297 if (
24298 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24299 )
24300 {
24301 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24302 _res = _literal;
24303 goto done;
24304 }
24305 p->mark = _mark;
24306 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24308 }
24309 { // '='
24310 if (p->error_indicator) {
24311 D(p->level--);
24312 return NULL;
24313 }
24314 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24315 Token * _literal;
24316 if (
24317 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24318 )
24319 {
24320 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24321 _res = _literal;
24322 goto done;
24323 }
24324 p->mark = _mark;
24325 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24327 }
24328 _res = NULL;
24329 done:
24330 D(p->level--);
24331 return _res;
24332}
24333
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024334// _tmp_56: '.' | '(' | '='
24335static void *
24336_tmp_56_rule(Parser *p)
24337{
24338 D(p->level++);
24339 if (p->error_indicator) {
24340 D(p->level--);
24341 return NULL;
24342 }
24343 void * _res = NULL;
24344 int _mark = p->mark;
24345 { // '.'
24346 if (p->error_indicator) {
24347 D(p->level--);
24348 return NULL;
24349 }
24350 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24351 Token * _literal;
24352 if (
24353 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24354 )
24355 {
24356 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24357 _res = _literal;
24358 goto done;
24359 }
24360 p->mark = _mark;
24361 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24363 }
24364 { // '('
24365 if (p->error_indicator) {
24366 D(p->level--);
24367 return NULL;
24368 }
24369 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24370 Token * _literal;
24371 if (
24372 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24373 )
24374 {
24375 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24376 _res = _literal;
24377 goto done;
24378 }
24379 p->mark = _mark;
24380 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24382 }
24383 { // '='
24384 if (p->error_indicator) {
24385 D(p->level--);
24386 return NULL;
24387 }
24388 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24389 Token * _literal;
24390 if (
24391 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24392 )
24393 {
24394 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24395 _res = _literal;
24396 goto done;
24397 }
24398 p->mark = _mark;
24399 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24401 }
24402 _res = NULL;
24403 done:
24404 D(p->level--);
24405 return _res;
24406}
24407
24408// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024409static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024410_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024411{
24412 D(p->level++);
24413 if (p->error_indicator) {
24414 D(p->level--);
24415 return NULL;
24416 }
24417 void *_res = NULL;
24418 int _mark = p->mark;
24419 int _start_mark = p->mark;
24420 void **_children = PyMem_Malloc(sizeof(void *));
24421 if (!_children) {
24422 p->error_indicator = 1;
24423 PyErr_NoMemory();
24424 D(p->level--);
24425 return NULL;
24426 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024427 Py_ssize_t _children_capacity = 1;
24428 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024429 { // ',' maybe_star_pattern
24430 if (p->error_indicator) {
24431 D(p->level--);
24432 return NULL;
24433 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024434 D(fprintf(stderr, "%*c> _loop0_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' maybe_star_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024435 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024436 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024437 while (
24438 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24439 &&
24440 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24441 )
24442 {
24443 _res = elem;
24444 if (_res == NULL && PyErr_Occurred()) {
24445 p->error_indicator = 1;
24446 PyMem_Free(_children);
24447 D(p->level--);
24448 return NULL;
24449 }
24450 if (_n == _children_capacity) {
24451 _children_capacity *= 2;
24452 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24453 if (!_new_children) {
24454 p->error_indicator = 1;
24455 PyErr_NoMemory();
24456 D(p->level--);
24457 return NULL;
24458 }
24459 _children = _new_children;
24460 }
24461 _children[_n++] = _res;
24462 _mark = p->mark;
24463 }
24464 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024465 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24467 }
24468 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24469 if (!_seq) {
24470 PyMem_Free(_children);
24471 p->error_indicator = 1;
24472 PyErr_NoMemory();
24473 D(p->level--);
24474 return NULL;
24475 }
24476 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24477 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024478 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024479 D(p->level--);
24480 return _seq;
24481}
24482
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024483// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024484static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024485_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024486{
24487 D(p->level++);
24488 if (p->error_indicator) {
24489 D(p->level--);
24490 return NULL;
24491 }
24492 asdl_seq * _res = NULL;
24493 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024494 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024495 if (p->error_indicator) {
24496 D(p->level--);
24497 return NULL;
24498 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024499 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24500 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024501 asdl_seq * seq;
24502 if (
24503 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24504 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024505 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024506 )
24507 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024508 D(fprintf(stderr, "%*c+ _gather_57[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024509 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24510 goto done;
24511 }
24512 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024513 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024515 }
24516 _res = NULL;
24517 done:
24518 D(p->level--);
24519 return _res;
24520}
24521
24522// _loop0_60: ',' key_value_pattern
24523static asdl_seq *
24524_loop0_60_rule(Parser *p)
24525{
24526 D(p->level++);
24527 if (p->error_indicator) {
24528 D(p->level--);
24529 return NULL;
24530 }
24531 void *_res = NULL;
24532 int _mark = p->mark;
24533 int _start_mark = p->mark;
24534 void **_children = PyMem_Malloc(sizeof(void *));
24535 if (!_children) {
24536 p->error_indicator = 1;
24537 PyErr_NoMemory();
24538 D(p->level--);
24539 return NULL;
24540 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024541 Py_ssize_t _children_capacity = 1;
24542 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024543 { // ',' key_value_pattern
24544 if (p->error_indicator) {
24545 D(p->level--);
24546 return NULL;
24547 }
24548 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24549 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024550 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024551 while (
24552 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24553 &&
24554 (elem = key_value_pattern_rule(p)) // key_value_pattern
24555 )
24556 {
24557 _res = elem;
24558 if (_res == NULL && PyErr_Occurred()) {
24559 p->error_indicator = 1;
24560 PyMem_Free(_children);
24561 D(p->level--);
24562 return NULL;
24563 }
24564 if (_n == _children_capacity) {
24565 _children_capacity *= 2;
24566 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24567 if (!_new_children) {
24568 p->error_indicator = 1;
24569 PyErr_NoMemory();
24570 D(p->level--);
24571 return NULL;
24572 }
24573 _children = _new_children;
24574 }
24575 _children[_n++] = _res;
24576 _mark = p->mark;
24577 }
24578 p->mark = _mark;
24579 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24581 }
24582 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24583 if (!_seq) {
24584 PyMem_Free(_children);
24585 p->error_indicator = 1;
24586 PyErr_NoMemory();
24587 D(p->level--);
24588 return NULL;
24589 }
24590 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24591 PyMem_Free(_children);
24592 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24593 D(p->level--);
24594 return _seq;
24595}
24596
24597// _gather_59: key_value_pattern _loop0_60
24598static asdl_seq *
24599_gather_59_rule(Parser *p)
24600{
24601 D(p->level++);
24602 if (p->error_indicator) {
24603 D(p->level--);
24604 return NULL;
24605 }
24606 asdl_seq * _res = NULL;
24607 int _mark = p->mark;
24608 { // key_value_pattern _loop0_60
24609 if (p->error_indicator) {
24610 D(p->level--);
24611 return NULL;
24612 }
24613 D(fprintf(stderr, "%*c> _gather_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024614 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024615 asdl_seq * seq;
24616 if (
24617 (elem = key_value_pattern_rule(p)) // key_value_pattern
24618 &&
24619 (seq = _loop0_60_rule(p)) // _loop0_60
24620 )
24621 {
24622 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24623 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24624 goto done;
24625 }
24626 p->mark = _mark;
24627 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24629 }
24630 _res = NULL;
24631 done:
24632 D(p->level--);
24633 return _res;
24634}
24635
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024636// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024637static void *
24638_tmp_61_rule(Parser *p)
24639{
24640 D(p->level++);
24641 if (p->error_indicator) {
24642 D(p->level--);
24643 return NULL;
24644 }
24645 void * _res = NULL;
24646 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024647 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024648 if (p->error_indicator) {
24649 D(p->level--);
24650 return NULL;
24651 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024652 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24653 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024654 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024655 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024656 )
24657 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024658 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24659 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024660 goto done;
24661 }
24662 p->mark = _mark;
24663 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024665 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024666 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024667 if (p->error_indicator) {
24668 D(p->level--);
24669 return NULL;
24670 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024671 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24672 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024673 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024674 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024675 )
24676 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024677 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24678 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024679 goto done;
24680 }
24681 p->mark = _mark;
24682 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024684 }
24685 _res = NULL;
24686 done:
24687 D(p->level--);
24688 return _res;
24689}
24690
24691// _loop0_63: ',' pattern
24692static asdl_seq *
24693_loop0_63_rule(Parser *p)
24694{
24695 D(p->level++);
24696 if (p->error_indicator) {
24697 D(p->level--);
24698 return NULL;
24699 }
24700 void *_res = NULL;
24701 int _mark = p->mark;
24702 int _start_mark = p->mark;
24703 void **_children = PyMem_Malloc(sizeof(void *));
24704 if (!_children) {
24705 p->error_indicator = 1;
24706 PyErr_NoMemory();
24707 D(p->level--);
24708 return NULL;
24709 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024710 Py_ssize_t _children_capacity = 1;
24711 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024712 { // ',' pattern
24713 if (p->error_indicator) {
24714 D(p->level--);
24715 return NULL;
24716 }
24717 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24718 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024719 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024720 while (
24721 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24722 &&
24723 (elem = pattern_rule(p)) // pattern
24724 )
24725 {
24726 _res = elem;
24727 if (_res == NULL && PyErr_Occurred()) {
24728 p->error_indicator = 1;
24729 PyMem_Free(_children);
24730 D(p->level--);
24731 return NULL;
24732 }
24733 if (_n == _children_capacity) {
24734 _children_capacity *= 2;
24735 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24736 if (!_new_children) {
24737 p->error_indicator = 1;
24738 PyErr_NoMemory();
24739 D(p->level--);
24740 return NULL;
24741 }
24742 _children = _new_children;
24743 }
24744 _children[_n++] = _res;
24745 _mark = p->mark;
24746 }
24747 p->mark = _mark;
24748 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24750 }
24751 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24752 if (!_seq) {
24753 PyMem_Free(_children);
24754 p->error_indicator = 1;
24755 PyErr_NoMemory();
24756 D(p->level--);
24757 return NULL;
24758 }
24759 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24760 PyMem_Free(_children);
24761 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24762 D(p->level--);
24763 return _seq;
24764}
24765
24766// _gather_62: pattern _loop0_63
24767static asdl_seq *
24768_gather_62_rule(Parser *p)
24769{
24770 D(p->level++);
24771 if (p->error_indicator) {
24772 D(p->level--);
24773 return NULL;
24774 }
24775 asdl_seq * _res = NULL;
24776 int _mark = p->mark;
24777 { // pattern _loop0_63
24778 if (p->error_indicator) {
24779 D(p->level--);
24780 return NULL;
24781 }
24782 D(fprintf(stderr, "%*c> _gather_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024783 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024784 asdl_seq * seq;
24785 if (
24786 (elem = pattern_rule(p)) // pattern
24787 &&
24788 (seq = _loop0_63_rule(p)) // _loop0_63
24789 )
24790 {
24791 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24792 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24793 goto done;
24794 }
24795 p->mark = _mark;
24796 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24798 }
24799 _res = NULL;
24800 done:
24801 D(p->level--);
24802 return _res;
24803}
24804
24805// _loop0_65: ',' keyword_pattern
24806static asdl_seq *
24807_loop0_65_rule(Parser *p)
24808{
24809 D(p->level++);
24810 if (p->error_indicator) {
24811 D(p->level--);
24812 return NULL;
24813 }
24814 void *_res = NULL;
24815 int _mark = p->mark;
24816 int _start_mark = p->mark;
24817 void **_children = PyMem_Malloc(sizeof(void *));
24818 if (!_children) {
24819 p->error_indicator = 1;
24820 PyErr_NoMemory();
24821 D(p->level--);
24822 return NULL;
24823 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024824 Py_ssize_t _children_capacity = 1;
24825 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024826 { // ',' keyword_pattern
24827 if (p->error_indicator) {
24828 D(p->level--);
24829 return NULL;
24830 }
24831 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24832 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024833 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024834 while (
24835 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24836 &&
24837 (elem = keyword_pattern_rule(p)) // keyword_pattern
24838 )
24839 {
24840 _res = elem;
24841 if (_res == NULL && PyErr_Occurred()) {
24842 p->error_indicator = 1;
24843 PyMem_Free(_children);
24844 D(p->level--);
24845 return NULL;
24846 }
24847 if (_n == _children_capacity) {
24848 _children_capacity *= 2;
24849 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24850 if (!_new_children) {
24851 p->error_indicator = 1;
24852 PyErr_NoMemory();
24853 D(p->level--);
24854 return NULL;
24855 }
24856 _children = _new_children;
24857 }
24858 _children[_n++] = _res;
24859 _mark = p->mark;
24860 }
24861 p->mark = _mark;
24862 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24864 }
24865 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24866 if (!_seq) {
24867 PyMem_Free(_children);
24868 p->error_indicator = 1;
24869 PyErr_NoMemory();
24870 D(p->level--);
24871 return NULL;
24872 }
24873 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24874 PyMem_Free(_children);
24875 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24876 D(p->level--);
24877 return _seq;
24878}
24879
24880// _gather_64: keyword_pattern _loop0_65
24881static asdl_seq *
24882_gather_64_rule(Parser *p)
24883{
24884 D(p->level++);
24885 if (p->error_indicator) {
24886 D(p->level--);
24887 return NULL;
24888 }
24889 asdl_seq * _res = NULL;
24890 int _mark = p->mark;
24891 { // keyword_pattern _loop0_65
24892 if (p->error_indicator) {
24893 D(p->level--);
24894 return NULL;
24895 }
24896 D(fprintf(stderr, "%*c> _gather_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024897 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024898 asdl_seq * seq;
24899 if (
24900 (elem = keyword_pattern_rule(p)) // keyword_pattern
24901 &&
24902 (seq = _loop0_65_rule(p)) // _loop0_65
24903 )
24904 {
24905 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24906 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24907 goto done;
24908 }
24909 p->mark = _mark;
24910 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
24911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
24912 }
24913 _res = NULL;
24914 done:
24915 D(p->level--);
24916 return _res;
24917}
24918
24919// _tmp_66: 'from' expression
24920static void *
24921_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024922{
24923 D(p->level++);
24924 if (p->error_indicator) {
24925 D(p->level--);
24926 return NULL;
24927 }
24928 void * _res = NULL;
24929 int _mark = p->mark;
24930 { // 'from' expression
24931 if (p->error_indicator) {
24932 D(p->level--);
24933 return NULL;
24934 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024935 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024936 Token * _keyword;
24937 expr_ty z;
24938 if (
24939 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
24940 &&
24941 (z = expression_rule(p)) // expression
24942 )
24943 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024944 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 +010024945 _res = z;
24946 if (_res == NULL && PyErr_Occurred()) {
24947 p->error_indicator = 1;
24948 D(p->level--);
24949 return NULL;
24950 }
24951 goto done;
24952 }
24953 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024954 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024956 }
24957 _res = NULL;
24958 done:
24959 D(p->level--);
24960 return _res;
24961}
24962
Brandt Bucher145bf262021-02-26 14:51:55 -080024963// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024964static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024965_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024966{
24967 D(p->level++);
24968 if (p->error_indicator) {
24969 D(p->level--);
24970 return NULL;
24971 }
24972 void * _res = NULL;
24973 int _mark = p->mark;
24974 { // '->' expression
24975 if (p->error_indicator) {
24976 D(p->level--);
24977 return NULL;
24978 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024979 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024980 Token * _literal;
24981 expr_ty z;
24982 if (
24983 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24984 &&
24985 (z = expression_rule(p)) // expression
24986 )
24987 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024988 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024989 _res = z;
24990 if (_res == NULL && PyErr_Occurred()) {
24991 p->error_indicator = 1;
24992 D(p->level--);
24993 return NULL;
24994 }
24995 goto done;
24996 }
24997 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024998 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25000 }
25001 _res = NULL;
25002 done:
25003 D(p->level--);
25004 return _res;
25005}
25006
Brandt Bucher145bf262021-02-26 14:51:55 -080025007// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025008static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025009_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025010{
25011 D(p->level++);
25012 if (p->error_indicator) {
25013 D(p->level--);
25014 return NULL;
25015 }
25016 void * _res = NULL;
25017 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025018 { // '->' expression
25019 if (p->error_indicator) {
25020 D(p->level--);
25021 return NULL;
25022 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025023 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025024 Token * _literal;
25025 expr_ty z;
25026 if (
25027 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25028 &&
25029 (z = expression_rule(p)) // expression
25030 )
25031 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025032 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025033 _res = z;
25034 if (_res == NULL && PyErr_Occurred()) {
25035 p->error_indicator = 1;
25036 D(p->level--);
25037 return NULL;
25038 }
25039 goto done;
25040 }
25041 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025042 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25044 }
25045 _res = NULL;
25046 done:
25047 D(p->level--);
25048 return _res;
25049}
25050
Brandt Bucher145bf262021-02-26 14:51:55 -080025051// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025052static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025053_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025054{
25055 D(p->level++);
25056 if (p->error_indicator) {
25057 D(p->level--);
25058 return NULL;
25059 }
25060 void * _res = NULL;
25061 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025062 { // NEWLINE INDENT
25063 if (p->error_indicator) {
25064 D(p->level--);
25065 return NULL;
25066 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025067 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025068 Token * indent_var;
25069 Token * newline_var;
25070 if (
25071 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25072 &&
25073 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
25074 )
25075 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025076 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 +010025077 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
25078 goto done;
25079 }
25080 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025081 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
25083 }
25084 _res = NULL;
25085 done:
25086 D(p->level--);
25087 return _res;
25088}
25089
Brandt Bucher145bf262021-02-26 14:51:55 -080025090// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025091static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025092_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025093{
25094 D(p->level++);
25095 if (p->error_indicator) {
25096 D(p->level--);
25097 return NULL;
25098 }
25099 void *_res = NULL;
25100 int _mark = p->mark;
25101 int _start_mark = p->mark;
25102 void **_children = PyMem_Malloc(sizeof(void *));
25103 if (!_children) {
25104 p->error_indicator = 1;
25105 PyErr_NoMemory();
25106 D(p->level--);
25107 return NULL;
25108 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025109 Py_ssize_t _children_capacity = 1;
25110 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025111 { // param_no_default
25112 if (p->error_indicator) {
25113 D(p->level--);
25114 return NULL;
25115 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025116 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 +010025117 arg_ty param_no_default_var;
25118 while (
25119 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25120 )
25121 {
25122 _res = param_no_default_var;
25123 if (_n == _children_capacity) {
25124 _children_capacity *= 2;
25125 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25126 if (!_new_children) {
25127 p->error_indicator = 1;
25128 PyErr_NoMemory();
25129 D(p->level--);
25130 return NULL;
25131 }
25132 _children = _new_children;
25133 }
25134 _children[_n++] = _res;
25135 _mark = p->mark;
25136 }
25137 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025138 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025140 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025141 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025142 if (!_seq) {
25143 PyMem_Free(_children);
25144 p->error_indicator = 1;
25145 PyErr_NoMemory();
25146 D(p->level--);
25147 return NULL;
25148 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025149 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025150 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025151 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025152 D(p->level--);
25153 return _seq;
25154}
25155
Brandt Bucher145bf262021-02-26 14:51:55 -080025156// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025157static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025158_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025159{
25160 D(p->level++);
25161 if (p->error_indicator) {
25162 D(p->level--);
25163 return NULL;
25164 }
25165 void *_res = NULL;
25166 int _mark = p->mark;
25167 int _start_mark = p->mark;
25168 void **_children = PyMem_Malloc(sizeof(void *));
25169 if (!_children) {
25170 p->error_indicator = 1;
25171 PyErr_NoMemory();
25172 D(p->level--);
25173 return NULL;
25174 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025175 Py_ssize_t _children_capacity = 1;
25176 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025177 { // param_with_default
25178 if (p->error_indicator) {
25179 D(p->level--);
25180 return NULL;
25181 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025182 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 +010025183 NameDefaultPair* param_with_default_var;
25184 while (
25185 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25186 )
25187 {
25188 _res = param_with_default_var;
25189 if (_n == _children_capacity) {
25190 _children_capacity *= 2;
25191 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25192 if (!_new_children) {
25193 p->error_indicator = 1;
25194 PyErr_NoMemory();
25195 D(p->level--);
25196 return NULL;
25197 }
25198 _children = _new_children;
25199 }
25200 _children[_n++] = _res;
25201 _mark = p->mark;
25202 }
25203 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025204 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25206 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025207 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025208 if (!_seq) {
25209 PyMem_Free(_children);
25210 p->error_indicator = 1;
25211 PyErr_NoMemory();
25212 D(p->level--);
25213 return NULL;
25214 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025215 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025216 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025217 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025218 D(p->level--);
25219 return _seq;
25220}
25221
Brandt Bucher145bf262021-02-26 14:51:55 -080025222// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025223static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025224_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025225{
25226 D(p->level++);
25227 if (p->error_indicator) {
25228 D(p->level--);
25229 return NULL;
25230 }
25231 void *_res = NULL;
25232 int _mark = p->mark;
25233 int _start_mark = p->mark;
25234 void **_children = PyMem_Malloc(sizeof(void *));
25235 if (!_children) {
25236 p->error_indicator = 1;
25237 PyErr_NoMemory();
25238 D(p->level--);
25239 return NULL;
25240 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025241 Py_ssize_t _children_capacity = 1;
25242 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025243 { // param_with_default
25244 if (p->error_indicator) {
25245 D(p->level--);
25246 return NULL;
25247 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025248 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 +030025249 NameDefaultPair* param_with_default_var;
25250 while (
25251 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25252 )
25253 {
25254 _res = param_with_default_var;
25255 if (_n == _children_capacity) {
25256 _children_capacity *= 2;
25257 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25258 if (!_new_children) {
25259 p->error_indicator = 1;
25260 PyErr_NoMemory();
25261 D(p->level--);
25262 return NULL;
25263 }
25264 _children = _new_children;
25265 }
25266 _children[_n++] = _res;
25267 _mark = p->mark;
25268 }
25269 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025270 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25272 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025273 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025274 if (!_seq) {
25275 PyMem_Free(_children);
25276 p->error_indicator = 1;
25277 PyErr_NoMemory();
25278 D(p->level--);
25279 return NULL;
25280 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025281 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025282 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025283 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025284 D(p->level--);
25285 return _seq;
25286}
25287
Brandt Bucher145bf262021-02-26 14:51:55 -080025288// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025289static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025290_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025291{
25292 D(p->level++);
25293 if (p->error_indicator) {
25294 D(p->level--);
25295 return NULL;
25296 }
25297 void *_res = NULL;
25298 int _mark = p->mark;
25299 int _start_mark = p->mark;
25300 void **_children = PyMem_Malloc(sizeof(void *));
25301 if (!_children) {
25302 p->error_indicator = 1;
25303 PyErr_NoMemory();
25304 D(p->level--);
25305 return NULL;
25306 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025307 Py_ssize_t _children_capacity = 1;
25308 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025309 { // param_no_default
25310 if (p->error_indicator) {
25311 D(p->level--);
25312 return NULL;
25313 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025314 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 +010025315 arg_ty param_no_default_var;
25316 while (
25317 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25318 )
25319 {
25320 _res = param_no_default_var;
25321 if (_n == _children_capacity) {
25322 _children_capacity *= 2;
25323 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25324 if (!_new_children) {
25325 p->error_indicator = 1;
25326 PyErr_NoMemory();
25327 D(p->level--);
25328 return NULL;
25329 }
25330 _children = _new_children;
25331 }
25332 _children[_n++] = _res;
25333 _mark = p->mark;
25334 }
25335 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025336 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25338 }
25339 if (_n == 0 || p->error_indicator) {
25340 PyMem_Free(_children);
25341 D(p->level--);
25342 return NULL;
25343 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025344 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025345 if (!_seq) {
25346 PyMem_Free(_children);
25347 p->error_indicator = 1;
25348 PyErr_NoMemory();
25349 D(p->level--);
25350 return NULL;
25351 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025352 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025353 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025354 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025355 D(p->level--);
25356 return _seq;
25357}
25358
Brandt Bucher145bf262021-02-26 14:51:55 -080025359// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025360static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025361_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025362{
25363 D(p->level++);
25364 if (p->error_indicator) {
25365 D(p->level--);
25366 return NULL;
25367 }
25368 void *_res = NULL;
25369 int _mark = p->mark;
25370 int _start_mark = p->mark;
25371 void **_children = PyMem_Malloc(sizeof(void *));
25372 if (!_children) {
25373 p->error_indicator = 1;
25374 PyErr_NoMemory();
25375 D(p->level--);
25376 return NULL;
25377 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025378 Py_ssize_t _children_capacity = 1;
25379 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025380 { // param_with_default
25381 if (p->error_indicator) {
25382 D(p->level--);
25383 return NULL;
25384 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025385 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 +010025386 NameDefaultPair* param_with_default_var;
25387 while (
25388 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25389 )
25390 {
25391 _res = param_with_default_var;
25392 if (_n == _children_capacity) {
25393 _children_capacity *= 2;
25394 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25395 if (!_new_children) {
25396 p->error_indicator = 1;
25397 PyErr_NoMemory();
25398 D(p->level--);
25399 return NULL;
25400 }
25401 _children = _new_children;
25402 }
25403 _children[_n++] = _res;
25404 _mark = p->mark;
25405 }
25406 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025407 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25409 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025410 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025411 if (!_seq) {
25412 PyMem_Free(_children);
25413 p->error_indicator = 1;
25414 PyErr_NoMemory();
25415 D(p->level--);
25416 return NULL;
25417 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025418 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025419 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025420 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025421 D(p->level--);
25422 return _seq;
25423}
25424
Brandt Bucher145bf262021-02-26 14:51:55 -080025425// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025426static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025427_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025428{
25429 D(p->level++);
25430 if (p->error_indicator) {
25431 D(p->level--);
25432 return NULL;
25433 }
25434 void *_res = NULL;
25435 int _mark = p->mark;
25436 int _start_mark = p->mark;
25437 void **_children = PyMem_Malloc(sizeof(void *));
25438 if (!_children) {
25439 p->error_indicator = 1;
25440 PyErr_NoMemory();
25441 D(p->level--);
25442 return NULL;
25443 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025444 Py_ssize_t _children_capacity = 1;
25445 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025446 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025447 if (p->error_indicator) {
25448 D(p->level--);
25449 return NULL;
25450 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025451 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 +030025452 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025453 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025454 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025455 )
25456 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025457 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025458 if (_n == _children_capacity) {
25459 _children_capacity *= 2;
25460 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25461 if (!_new_children) {
25462 p->error_indicator = 1;
25463 PyErr_NoMemory();
25464 D(p->level--);
25465 return NULL;
25466 }
25467 _children = _new_children;
25468 }
25469 _children[_n++] = _res;
25470 _mark = p->mark;
25471 }
25472 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025473 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025475 }
25476 if (_n == 0 || p->error_indicator) {
25477 PyMem_Free(_children);
25478 D(p->level--);
25479 return NULL;
25480 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025481 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025482 if (!_seq) {
25483 PyMem_Free(_children);
25484 p->error_indicator = 1;
25485 PyErr_NoMemory();
25486 D(p->level--);
25487 return NULL;
25488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025489 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025490 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025491 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025492 D(p->level--);
25493 return _seq;
25494}
25495
Brandt Bucher145bf262021-02-26 14:51:55 -080025496// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025497static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025498_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025499{
25500 D(p->level++);
25501 if (p->error_indicator) {
25502 D(p->level--);
25503 return NULL;
25504 }
25505 void *_res = NULL;
25506 int _mark = p->mark;
25507 int _start_mark = p->mark;
25508 void **_children = PyMem_Malloc(sizeof(void *));
25509 if (!_children) {
25510 p->error_indicator = 1;
25511 PyErr_NoMemory();
25512 D(p->level--);
25513 return NULL;
25514 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025515 Py_ssize_t _children_capacity = 1;
25516 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025517 { // param_no_default
25518 if (p->error_indicator) {
25519 D(p->level--);
25520 return NULL;
25521 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025522 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 +010025523 arg_ty param_no_default_var;
25524 while (
25525 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25526 )
25527 {
25528 _res = param_no_default_var;
25529 if (_n == _children_capacity) {
25530 _children_capacity *= 2;
25531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25532 if (!_new_children) {
25533 p->error_indicator = 1;
25534 PyErr_NoMemory();
25535 D(p->level--);
25536 return NULL;
25537 }
25538 _children = _new_children;
25539 }
25540 _children[_n++] = _res;
25541 _mark = p->mark;
25542 }
25543 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025544 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25546 }
25547 if (_n == 0 || p->error_indicator) {
25548 PyMem_Free(_children);
25549 D(p->level--);
25550 return NULL;
25551 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025552 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025553 if (!_seq) {
25554 PyMem_Free(_children);
25555 p->error_indicator = 1;
25556 PyErr_NoMemory();
25557 D(p->level--);
25558 return NULL;
25559 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025560 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025561 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025562 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025563 D(p->level--);
25564 return _seq;
25565}
25566
Brandt Bucher145bf262021-02-26 14:51:55 -080025567// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025568static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025569_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025570{
25571 D(p->level++);
25572 if (p->error_indicator) {
25573 D(p->level--);
25574 return NULL;
25575 }
25576 void *_res = NULL;
25577 int _mark = p->mark;
25578 int _start_mark = p->mark;
25579 void **_children = PyMem_Malloc(sizeof(void *));
25580 if (!_children) {
25581 p->error_indicator = 1;
25582 PyErr_NoMemory();
25583 D(p->level--);
25584 return NULL;
25585 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025586 Py_ssize_t _children_capacity = 1;
25587 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025588 { // param_no_default
25589 if (p->error_indicator) {
25590 D(p->level--);
25591 return NULL;
25592 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025593 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 +010025594 arg_ty param_no_default_var;
25595 while (
25596 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25597 )
25598 {
25599 _res = param_no_default_var;
25600 if (_n == _children_capacity) {
25601 _children_capacity *= 2;
25602 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25603 if (!_new_children) {
25604 p->error_indicator = 1;
25605 PyErr_NoMemory();
25606 D(p->level--);
25607 return NULL;
25608 }
25609 _children = _new_children;
25610 }
25611 _children[_n++] = _res;
25612 _mark = p->mark;
25613 }
25614 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025615 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25617 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025618 if (_n == 0 || p->error_indicator) {
25619 PyMem_Free(_children);
25620 D(p->level--);
25621 return NULL;
25622 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025623 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025624 if (!_seq) {
25625 PyMem_Free(_children);
25626 p->error_indicator = 1;
25627 PyErr_NoMemory();
25628 D(p->level--);
25629 return NULL;
25630 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025631 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025632 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025633 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025634 D(p->level--);
25635 return _seq;
25636}
25637
Brandt Bucher145bf262021-02-26 14:51:55 -080025638// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025639static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025640_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025641{
25642 D(p->level++);
25643 if (p->error_indicator) {
25644 D(p->level--);
25645 return NULL;
25646 }
25647 void *_res = NULL;
25648 int _mark = p->mark;
25649 int _start_mark = p->mark;
25650 void **_children = PyMem_Malloc(sizeof(void *));
25651 if (!_children) {
25652 p->error_indicator = 1;
25653 PyErr_NoMemory();
25654 D(p->level--);
25655 return NULL;
25656 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025657 Py_ssize_t _children_capacity = 1;
25658 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025659 { // param_no_default
25660 if (p->error_indicator) {
25661 D(p->level--);
25662 return NULL;
25663 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025664 D(fprintf(stderr, "%*c> _loop0_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025665 arg_ty param_no_default_var;
25666 while (
25667 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25668 )
25669 {
25670 _res = param_no_default_var;
25671 if (_n == _children_capacity) {
25672 _children_capacity *= 2;
25673 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25674 if (!_new_children) {
25675 p->error_indicator = 1;
25676 PyErr_NoMemory();
25677 D(p->level--);
25678 return NULL;
25679 }
25680 _children = _new_children;
25681 }
25682 _children[_n++] = _res;
25683 _mark = p->mark;
25684 }
25685 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025686 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25688 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025689 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025690 if (!_seq) {
25691 PyMem_Free(_children);
25692 p->error_indicator = 1;
25693 PyErr_NoMemory();
25694 D(p->level--);
25695 return NULL;
25696 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025697 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025698 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025699 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025700 D(p->level--);
25701 return _seq;
25702}
25703
Brandt Bucher145bf262021-02-26 14:51:55 -080025704// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025705static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025706_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025707{
25708 D(p->level++);
25709 if (p->error_indicator) {
25710 D(p->level--);
25711 return NULL;
25712 }
25713 void *_res = NULL;
25714 int _mark = p->mark;
25715 int _start_mark = p->mark;
25716 void **_children = PyMem_Malloc(sizeof(void *));
25717 if (!_children) {
25718 p->error_indicator = 1;
25719 PyErr_NoMemory();
25720 D(p->level--);
25721 return NULL;
25722 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025723 Py_ssize_t _children_capacity = 1;
25724 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025725 { // param_with_default
25726 if (p->error_indicator) {
25727 D(p->level--);
25728 return NULL;
25729 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025730 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 +010025731 NameDefaultPair* param_with_default_var;
25732 while (
25733 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25734 )
25735 {
25736 _res = param_with_default_var;
25737 if (_n == _children_capacity) {
25738 _children_capacity *= 2;
25739 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25740 if (!_new_children) {
25741 p->error_indicator = 1;
25742 PyErr_NoMemory();
25743 D(p->level--);
25744 return NULL;
25745 }
25746 _children = _new_children;
25747 }
25748 _children[_n++] = _res;
25749 _mark = p->mark;
25750 }
25751 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025752 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25754 }
25755 if (_n == 0 || p->error_indicator) {
25756 PyMem_Free(_children);
25757 D(p->level--);
25758 return NULL;
25759 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025760 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025761 if (!_seq) {
25762 PyMem_Free(_children);
25763 p->error_indicator = 1;
25764 PyErr_NoMemory();
25765 D(p->level--);
25766 return NULL;
25767 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025768 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025769 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025770 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025771 D(p->level--);
25772 return _seq;
25773}
25774
Brandt Bucher145bf262021-02-26 14:51:55 -080025775// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025776static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025777_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025778{
25779 D(p->level++);
25780 if (p->error_indicator) {
25781 D(p->level--);
25782 return NULL;
25783 }
25784 void *_res = NULL;
25785 int _mark = p->mark;
25786 int _start_mark = p->mark;
25787 void **_children = PyMem_Malloc(sizeof(void *));
25788 if (!_children) {
25789 p->error_indicator = 1;
25790 PyErr_NoMemory();
25791 D(p->level--);
25792 return NULL;
25793 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025794 Py_ssize_t _children_capacity = 1;
25795 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025796 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025797 if (p->error_indicator) {
25798 D(p->level--);
25799 return NULL;
25800 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025801 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 +030025802 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025803 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025804 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025805 )
25806 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025807 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025808 if (_n == _children_capacity) {
25809 _children_capacity *= 2;
25810 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25811 if (!_new_children) {
25812 p->error_indicator = 1;
25813 PyErr_NoMemory();
25814 D(p->level--);
25815 return NULL;
25816 }
25817 _children = _new_children;
25818 }
25819 _children[_n++] = _res;
25820 _mark = p->mark;
25821 }
25822 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025823 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025825 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025826 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025827 if (!_seq) {
25828 PyMem_Free(_children);
25829 p->error_indicator = 1;
25830 PyErr_NoMemory();
25831 D(p->level--);
25832 return NULL;
25833 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025834 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025835 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025836 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025837 D(p->level--);
25838 return _seq;
25839}
25840
Brandt Bucher145bf262021-02-26 14:51:55 -080025841// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025842static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025843_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025844{
25845 D(p->level++);
25846 if (p->error_indicator) {
25847 D(p->level--);
25848 return NULL;
25849 }
25850 void *_res = NULL;
25851 int _mark = p->mark;
25852 int _start_mark = p->mark;
25853 void **_children = PyMem_Malloc(sizeof(void *));
25854 if (!_children) {
25855 p->error_indicator = 1;
25856 PyErr_NoMemory();
25857 D(p->level--);
25858 return NULL;
25859 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025860 Py_ssize_t _children_capacity = 1;
25861 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025862 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025863 if (p->error_indicator) {
25864 D(p->level--);
25865 return NULL;
25866 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025867 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 +030025868 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025869 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025870 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025871 )
25872 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025873 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025874 if (_n == _children_capacity) {
25875 _children_capacity *= 2;
25876 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25877 if (!_new_children) {
25878 p->error_indicator = 1;
25879 PyErr_NoMemory();
25880 D(p->level--);
25881 return NULL;
25882 }
25883 _children = _new_children;
25884 }
25885 _children[_n++] = _res;
25886 _mark = p->mark;
25887 }
25888 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025889 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025891 }
25892 if (_n == 0 || p->error_indicator) {
25893 PyMem_Free(_children);
25894 D(p->level--);
25895 return NULL;
25896 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025897 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025898 if (!_seq) {
25899 PyMem_Free(_children);
25900 p->error_indicator = 1;
25901 PyErr_NoMemory();
25902 D(p->level--);
25903 return NULL;
25904 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025905 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025906 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025907 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025908 D(p->level--);
25909 return _seq;
25910}
25911
Brandt Bucher145bf262021-02-26 14:51:55 -080025912// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025913static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025914_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025915{
25916 D(p->level++);
25917 if (p->error_indicator) {
25918 D(p->level--);
25919 return NULL;
25920 }
25921 void *_res = NULL;
25922 int _mark = p->mark;
25923 int _start_mark = p->mark;
25924 void **_children = PyMem_Malloc(sizeof(void *));
25925 if (!_children) {
25926 p->error_indicator = 1;
25927 PyErr_NoMemory();
25928 D(p->level--);
25929 return NULL;
25930 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025931 Py_ssize_t _children_capacity = 1;
25932 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025933 { // param_maybe_default
25934 if (p->error_indicator) {
25935 D(p->level--);
25936 return NULL;
25937 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025938 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 +030025939 NameDefaultPair* param_maybe_default_var;
25940 while (
25941 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25942 )
25943 {
25944 _res = param_maybe_default_var;
25945 if (_n == _children_capacity) {
25946 _children_capacity *= 2;
25947 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25948 if (!_new_children) {
25949 p->error_indicator = 1;
25950 PyErr_NoMemory();
25951 D(p->level--);
25952 return NULL;
25953 }
25954 _children = _new_children;
25955 }
25956 _children[_n++] = _res;
25957 _mark = p->mark;
25958 }
25959 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025960 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25962 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025963 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025964 if (!_seq) {
25965 PyMem_Free(_children);
25966 p->error_indicator = 1;
25967 PyErr_NoMemory();
25968 D(p->level--);
25969 return NULL;
25970 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025971 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025972 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025973 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025974 D(p->level--);
25975 return _seq;
25976}
25977
Brandt Bucher145bf262021-02-26 14:51:55 -080025978// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025979static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025980_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025981{
25982 D(p->level++);
25983 if (p->error_indicator) {
25984 D(p->level--);
25985 return NULL;
25986 }
25987 void *_res = NULL;
25988 int _mark = p->mark;
25989 int _start_mark = p->mark;
25990 void **_children = PyMem_Malloc(sizeof(void *));
25991 if (!_children) {
25992 p->error_indicator = 1;
25993 PyErr_NoMemory();
25994 D(p->level--);
25995 return NULL;
25996 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025997 Py_ssize_t _children_capacity = 1;
25998 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025999 { // param_maybe_default
26000 if (p->error_indicator) {
26001 D(p->level--);
26002 return NULL;
26003 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026004 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 +030026005 NameDefaultPair* param_maybe_default_var;
26006 while (
26007 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26008 )
26009 {
26010 _res = param_maybe_default_var;
26011 if (_n == _children_capacity) {
26012 _children_capacity *= 2;
26013 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26014 if (!_new_children) {
26015 p->error_indicator = 1;
26016 PyErr_NoMemory();
26017 D(p->level--);
26018 return NULL;
26019 }
26020 _children = _new_children;
26021 }
26022 _children[_n++] = _res;
26023 _mark = p->mark;
26024 }
26025 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026026 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26028 }
26029 if (_n == 0 || p->error_indicator) {
26030 PyMem_Free(_children);
26031 D(p->level--);
26032 return NULL;
26033 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026034 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026035 if (!_seq) {
26036 PyMem_Free(_children);
26037 p->error_indicator = 1;
26038 PyErr_NoMemory();
26039 D(p->level--);
26040 return NULL;
26041 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026042 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026043 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026044 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026045 D(p->level--);
26046 return _seq;
26047}
26048
Brandt Bucher145bf262021-02-26 14:51:55 -080026049// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026050static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026051_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026052{
26053 D(p->level++);
26054 if (p->error_indicator) {
26055 D(p->level--);
26056 return NULL;
26057 }
26058 void *_res = NULL;
26059 int _mark = p->mark;
26060 int _start_mark = p->mark;
26061 void **_children = PyMem_Malloc(sizeof(void *));
26062 if (!_children) {
26063 p->error_indicator = 1;
26064 PyErr_NoMemory();
26065 D(p->level--);
26066 return NULL;
26067 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026068 Py_ssize_t _children_capacity = 1;
26069 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026070 { // ('@' named_expression NEWLINE)
26071 if (p->error_indicator) {
26072 D(p->level--);
26073 return NULL;
26074 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026075 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026076 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026077 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026078 (_tmp_182_var = _tmp_182_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026079 )
26080 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026081 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026082 if (_n == _children_capacity) {
26083 _children_capacity *= 2;
26084 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26085 if (!_new_children) {
26086 p->error_indicator = 1;
26087 PyErr_NoMemory();
26088 D(p->level--);
26089 return NULL;
26090 }
26091 _children = _new_children;
26092 }
26093 _children[_n++] = _res;
26094 _mark = p->mark;
26095 }
26096 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026097 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
26099 }
26100 if (_n == 0 || p->error_indicator) {
26101 PyMem_Free(_children);
26102 D(p->level--);
26103 return NULL;
26104 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026105 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026106 if (!_seq) {
26107 PyMem_Free(_children);
26108 p->error_indicator = 1;
26109 PyErr_NoMemory();
26110 D(p->level--);
26111 return NULL;
26112 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026113 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026114 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026115 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026116 D(p->level--);
26117 return _seq;
26118}
26119
Brandt Bucher145bf262021-02-26 14:51:55 -080026120// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026121static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026122_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026123{
26124 D(p->level++);
26125 if (p->error_indicator) {
26126 D(p->level--);
26127 return NULL;
26128 }
26129 void * _res = NULL;
26130 int _mark = p->mark;
26131 { // '(' arguments? ')'
26132 if (p->error_indicator) {
26133 D(p->level--);
26134 return NULL;
26135 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026136 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026137 Token * _literal;
26138 Token * _literal_1;
26139 void *z;
26140 if (
26141 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26142 &&
26143 (z = arguments_rule(p), 1) // arguments?
26144 &&
26145 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26146 )
26147 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026148 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026149 _res = z;
26150 if (_res == NULL && PyErr_Occurred()) {
26151 p->error_indicator = 1;
26152 D(p->level--);
26153 return NULL;
26154 }
26155 goto done;
26156 }
26157 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026158 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26160 }
26161 _res = NULL;
26162 done:
26163 D(p->level--);
26164 return _res;
26165}
26166
Brandt Bucher145bf262021-02-26 14:51:55 -080026167// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026168static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026169_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026170{
26171 D(p->level++);
26172 if (p->error_indicator) {
26173 D(p->level--);
26174 return NULL;
26175 }
26176 void *_res = NULL;
26177 int _mark = p->mark;
26178 int _start_mark = p->mark;
26179 void **_children = PyMem_Malloc(sizeof(void *));
26180 if (!_children) {
26181 p->error_indicator = 1;
26182 PyErr_NoMemory();
26183 D(p->level--);
26184 return NULL;
26185 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026186 Py_ssize_t _children_capacity = 1;
26187 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026188 { // (',' star_expression)
26189 if (p->error_indicator) {
26190 D(p->level--);
26191 return NULL;
26192 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026193 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026194 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026195 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026196 (_tmp_183_var = _tmp_183_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026197 )
26198 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026199 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026200 if (_n == _children_capacity) {
26201 _children_capacity *= 2;
26202 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26203 if (!_new_children) {
26204 p->error_indicator = 1;
26205 PyErr_NoMemory();
26206 D(p->level--);
26207 return NULL;
26208 }
26209 _children = _new_children;
26210 }
26211 _children[_n++] = _res;
26212 _mark = p->mark;
26213 }
26214 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026215 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26217 }
26218 if (_n == 0 || p->error_indicator) {
26219 PyMem_Free(_children);
26220 D(p->level--);
26221 return NULL;
26222 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026223 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026224 if (!_seq) {
26225 PyMem_Free(_children);
26226 p->error_indicator = 1;
26227 PyErr_NoMemory();
26228 D(p->level--);
26229 return NULL;
26230 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026231 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026232 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026233 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026234 D(p->level--);
26235 return _seq;
26236}
26237
Brandt Bucher145bf262021-02-26 14:51:55 -080026238// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026239static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026240_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026241{
26242 D(p->level++);
26243 if (p->error_indicator) {
26244 D(p->level--);
26245 return NULL;
26246 }
26247 void *_res = NULL;
26248 int _mark = p->mark;
26249 int _start_mark = p->mark;
26250 void **_children = PyMem_Malloc(sizeof(void *));
26251 if (!_children) {
26252 p->error_indicator = 1;
26253 PyErr_NoMemory();
26254 D(p->level--);
26255 return NULL;
26256 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026257 Py_ssize_t _children_capacity = 1;
26258 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026259 { // ',' star_named_expression
26260 if (p->error_indicator) {
26261 D(p->level--);
26262 return NULL;
26263 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026264 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 +010026265 Token * _literal;
26266 expr_ty elem;
26267 while (
26268 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26269 &&
26270 (elem = star_named_expression_rule(p)) // star_named_expression
26271 )
26272 {
26273 _res = elem;
26274 if (_res == NULL && PyErr_Occurred()) {
26275 p->error_indicator = 1;
26276 PyMem_Free(_children);
26277 D(p->level--);
26278 return NULL;
26279 }
26280 if (_n == _children_capacity) {
26281 _children_capacity *= 2;
26282 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26283 if (!_new_children) {
26284 p->error_indicator = 1;
26285 PyErr_NoMemory();
26286 D(p->level--);
26287 return NULL;
26288 }
26289 _children = _new_children;
26290 }
26291 _children[_n++] = _res;
26292 _mark = p->mark;
26293 }
26294 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026295 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26297 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026298 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026299 if (!_seq) {
26300 PyMem_Free(_children);
26301 p->error_indicator = 1;
26302 PyErr_NoMemory();
26303 D(p->level--);
26304 return NULL;
26305 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026306 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026307 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026308 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026309 D(p->level--);
26310 return _seq;
26311}
26312
Brandt Bucher145bf262021-02-26 14:51:55 -080026313// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026314static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026315_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026316{
26317 D(p->level++);
26318 if (p->error_indicator) {
26319 D(p->level--);
26320 return NULL;
26321 }
26322 asdl_seq * _res = NULL;
26323 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026324 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026325 if (p->error_indicator) {
26326 D(p->level--);
26327 return NULL;
26328 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026329 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 +010026330 expr_ty elem;
26331 asdl_seq * seq;
26332 if (
26333 (elem = star_named_expression_rule(p)) // star_named_expression
26334 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026335 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026336 )
26337 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026338 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 +010026339 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26340 goto done;
26341 }
26342 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026343 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026345 }
26346 _res = NULL;
26347 done:
26348 D(p->level--);
26349 return _res;
26350}
26351
Brandt Bucher145bf262021-02-26 14:51:55 -080026352// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026353static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026354_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026355{
26356 D(p->level++);
26357 if (p->error_indicator) {
26358 D(p->level--);
26359 return NULL;
26360 }
26361 void *_res = NULL;
26362 int _mark = p->mark;
26363 int _start_mark = p->mark;
26364 void **_children = PyMem_Malloc(sizeof(void *));
26365 if (!_children) {
26366 p->error_indicator = 1;
26367 PyErr_NoMemory();
26368 D(p->level--);
26369 return NULL;
26370 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026371 Py_ssize_t _children_capacity = 1;
26372 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026373 { // (',' expression)
26374 if (p->error_indicator) {
26375 D(p->level--);
26376 return NULL;
26377 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026378 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026379 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026380 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026381 (_tmp_184_var = _tmp_184_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026382 )
26383 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070026384 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026385 if (_n == _children_capacity) {
26386 _children_capacity *= 2;
26387 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26388 if (!_new_children) {
26389 p->error_indicator = 1;
26390 PyErr_NoMemory();
26391 D(p->level--);
26392 return NULL;
26393 }
26394 _children = _new_children;
26395 }
26396 _children[_n++] = _res;
26397 _mark = p->mark;
26398 }
26399 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026400 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26402 }
26403 if (_n == 0 || p->error_indicator) {
26404 PyMem_Free(_children);
26405 D(p->level--);
26406 return NULL;
26407 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026408 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026409 if (!_seq) {
26410 PyMem_Free(_children);
26411 p->error_indicator = 1;
26412 PyErr_NoMemory();
26413 D(p->level--);
26414 return NULL;
26415 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026416 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026417 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026418 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026419 D(p->level--);
26420 return _seq;
26421}
26422
Brandt Bucher145bf262021-02-26 14:51:55 -080026423// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026424static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026425_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026426{
26427 D(p->level++);
26428 if (p->error_indicator) {
26429 D(p->level--);
26430 return NULL;
26431 }
26432 void *_res = NULL;
26433 int _mark = p->mark;
26434 int _start_mark = p->mark;
26435 void **_children = PyMem_Malloc(sizeof(void *));
26436 if (!_children) {
26437 p->error_indicator = 1;
26438 PyErr_NoMemory();
26439 D(p->level--);
26440 return NULL;
26441 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026442 Py_ssize_t _children_capacity = 1;
26443 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026444 { // lambda_param_no_default
26445 if (p->error_indicator) {
26446 D(p->level--);
26447 return NULL;
26448 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026449 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 +010026450 arg_ty lambda_param_no_default_var;
26451 while (
26452 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26453 )
26454 {
26455 _res = lambda_param_no_default_var;
26456 if (_n == _children_capacity) {
26457 _children_capacity *= 2;
26458 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26459 if (!_new_children) {
26460 p->error_indicator = 1;
26461 PyErr_NoMemory();
26462 D(p->level--);
26463 return NULL;
26464 }
26465 _children = _new_children;
26466 }
26467 _children[_n++] = _res;
26468 _mark = p->mark;
26469 }
26470 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026471 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026473 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026474 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026475 if (!_seq) {
26476 PyMem_Free(_children);
26477 p->error_indicator = 1;
26478 PyErr_NoMemory();
26479 D(p->level--);
26480 return NULL;
26481 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026482 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026483 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026484 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026485 D(p->level--);
26486 return _seq;
26487}
26488
Brandt Bucher145bf262021-02-26 14:51:55 -080026489// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026490static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026491_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026492{
26493 D(p->level++);
26494 if (p->error_indicator) {
26495 D(p->level--);
26496 return NULL;
26497 }
26498 void *_res = NULL;
26499 int _mark = p->mark;
26500 int _start_mark = p->mark;
26501 void **_children = PyMem_Malloc(sizeof(void *));
26502 if (!_children) {
26503 p->error_indicator = 1;
26504 PyErr_NoMemory();
26505 D(p->level--);
26506 return NULL;
26507 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026508 Py_ssize_t _children_capacity = 1;
26509 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026510 { // lambda_param_with_default
26511 if (p->error_indicator) {
26512 D(p->level--);
26513 return NULL;
26514 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026515 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 +010026516 NameDefaultPair* lambda_param_with_default_var;
26517 while (
26518 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26519 )
26520 {
26521 _res = lambda_param_with_default_var;
26522 if (_n == _children_capacity) {
26523 _children_capacity *= 2;
26524 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26525 if (!_new_children) {
26526 p->error_indicator = 1;
26527 PyErr_NoMemory();
26528 D(p->level--);
26529 return NULL;
26530 }
26531 _children = _new_children;
26532 }
26533 _children[_n++] = _res;
26534 _mark = p->mark;
26535 }
26536 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026537 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26539 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026540 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026541 if (!_seq) {
26542 PyMem_Free(_children);
26543 p->error_indicator = 1;
26544 PyErr_NoMemory();
26545 D(p->level--);
26546 return NULL;
26547 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026548 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026549 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026550 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026551 D(p->level--);
26552 return _seq;
26553}
26554
Brandt Bucher145bf262021-02-26 14:51:55 -080026555// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026556static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026557_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026558{
26559 D(p->level++);
26560 if (p->error_indicator) {
26561 D(p->level--);
26562 return NULL;
26563 }
26564 void *_res = NULL;
26565 int _mark = p->mark;
26566 int _start_mark = p->mark;
26567 void **_children = PyMem_Malloc(sizeof(void *));
26568 if (!_children) {
26569 p->error_indicator = 1;
26570 PyErr_NoMemory();
26571 D(p->level--);
26572 return NULL;
26573 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026574 Py_ssize_t _children_capacity = 1;
26575 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026576 { // lambda_param_with_default
26577 if (p->error_indicator) {
26578 D(p->level--);
26579 return NULL;
26580 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026581 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 +000026582 NameDefaultPair* lambda_param_with_default_var;
26583 while (
26584 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26585 )
26586 {
26587 _res = lambda_param_with_default_var;
26588 if (_n == _children_capacity) {
26589 _children_capacity *= 2;
26590 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26591 if (!_new_children) {
26592 p->error_indicator = 1;
26593 PyErr_NoMemory();
26594 D(p->level--);
26595 return NULL;
26596 }
26597 _children = _new_children;
26598 }
26599 _children[_n++] = _res;
26600 _mark = p->mark;
26601 }
26602 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026603 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26605 }
26606 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26607 if (!_seq) {
26608 PyMem_Free(_children);
26609 p->error_indicator = 1;
26610 PyErr_NoMemory();
26611 D(p->level--);
26612 return NULL;
26613 }
26614 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26615 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026616 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026617 D(p->level--);
26618 return _seq;
26619}
26620
Brandt Bucher145bf262021-02-26 14:51:55 -080026621// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026622static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026623_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026624{
26625 D(p->level++);
26626 if (p->error_indicator) {
26627 D(p->level--);
26628 return NULL;
26629 }
26630 void *_res = NULL;
26631 int _mark = p->mark;
26632 int _start_mark = p->mark;
26633 void **_children = PyMem_Malloc(sizeof(void *));
26634 if (!_children) {
26635 p->error_indicator = 1;
26636 PyErr_NoMemory();
26637 D(p->level--);
26638 return NULL;
26639 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026640 Py_ssize_t _children_capacity = 1;
26641 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026642 { // lambda_param_no_default
26643 if (p->error_indicator) {
26644 D(p->level--);
26645 return NULL;
26646 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026647 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 +000026648 arg_ty lambda_param_no_default_var;
26649 while (
26650 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26651 )
26652 {
26653 _res = lambda_param_no_default_var;
26654 if (_n == _children_capacity) {
26655 _children_capacity *= 2;
26656 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26657 if (!_new_children) {
26658 p->error_indicator = 1;
26659 PyErr_NoMemory();
26660 D(p->level--);
26661 return NULL;
26662 }
26663 _children = _new_children;
26664 }
26665 _children[_n++] = _res;
26666 _mark = p->mark;
26667 }
26668 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026669 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26671 }
26672 if (_n == 0 || p->error_indicator) {
26673 PyMem_Free(_children);
26674 D(p->level--);
26675 return NULL;
26676 }
26677 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26678 if (!_seq) {
26679 PyMem_Free(_children);
26680 p->error_indicator = 1;
26681 PyErr_NoMemory();
26682 D(p->level--);
26683 return NULL;
26684 }
26685 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26686 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026687 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026688 D(p->level--);
26689 return _seq;
26690}
26691
Brandt Bucher145bf262021-02-26 14:51:55 -080026692// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026693static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026694_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026695{
26696 D(p->level++);
26697 if (p->error_indicator) {
26698 D(p->level--);
26699 return NULL;
26700 }
26701 void *_res = NULL;
26702 int _mark = p->mark;
26703 int _start_mark = p->mark;
26704 void **_children = PyMem_Malloc(sizeof(void *));
26705 if (!_children) {
26706 p->error_indicator = 1;
26707 PyErr_NoMemory();
26708 D(p->level--);
26709 return NULL;
26710 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026711 Py_ssize_t _children_capacity = 1;
26712 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026713 { // lambda_param_with_default
26714 if (p->error_indicator) {
26715 D(p->level--);
26716 return NULL;
26717 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026718 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 +030026719 NameDefaultPair* lambda_param_with_default_var;
26720 while (
26721 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26722 )
26723 {
26724 _res = lambda_param_with_default_var;
26725 if (_n == _children_capacity) {
26726 _children_capacity *= 2;
26727 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26728 if (!_new_children) {
26729 p->error_indicator = 1;
26730 PyErr_NoMemory();
26731 D(p->level--);
26732 return NULL;
26733 }
26734 _children = _new_children;
26735 }
26736 _children[_n++] = _res;
26737 _mark = p->mark;
26738 }
26739 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026740 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26742 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026743 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026744 if (!_seq) {
26745 PyMem_Free(_children);
26746 p->error_indicator = 1;
26747 PyErr_NoMemory();
26748 D(p->level--);
26749 return NULL;
26750 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026751 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026752 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026753 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026754 D(p->level--);
26755 return _seq;
26756}
26757
Brandt Bucher145bf262021-02-26 14:51:55 -080026758// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026759static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026760_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026761{
26762 D(p->level++);
26763 if (p->error_indicator) {
26764 D(p->level--);
26765 return NULL;
26766 }
26767 void *_res = NULL;
26768 int _mark = p->mark;
26769 int _start_mark = p->mark;
26770 void **_children = PyMem_Malloc(sizeof(void *));
26771 if (!_children) {
26772 p->error_indicator = 1;
26773 PyErr_NoMemory();
26774 D(p->level--);
26775 return NULL;
26776 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026777 Py_ssize_t _children_capacity = 1;
26778 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026779 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026780 if (p->error_indicator) {
26781 D(p->level--);
26782 return NULL;
26783 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026784 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 +000026785 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026786 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026787 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026788 )
26789 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026790 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026791 if (_n == _children_capacity) {
26792 _children_capacity *= 2;
26793 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26794 if (!_new_children) {
26795 p->error_indicator = 1;
26796 PyErr_NoMemory();
26797 D(p->level--);
26798 return NULL;
26799 }
26800 _children = _new_children;
26801 }
26802 _children[_n++] = _res;
26803 _mark = p->mark;
26804 }
26805 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026806 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026808 }
26809 if (_n == 0 || p->error_indicator) {
26810 PyMem_Free(_children);
26811 D(p->level--);
26812 return NULL;
26813 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026814 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026815 if (!_seq) {
26816 PyMem_Free(_children);
26817 p->error_indicator = 1;
26818 PyErr_NoMemory();
26819 D(p->level--);
26820 return NULL;
26821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026822 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026823 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026824 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026825 D(p->level--);
26826 return _seq;
26827}
26828
Brandt Bucher145bf262021-02-26 14:51:55 -080026829// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026830static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026831_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026832{
26833 D(p->level++);
26834 if (p->error_indicator) {
26835 D(p->level--);
26836 return NULL;
26837 }
26838 void *_res = NULL;
26839 int _mark = p->mark;
26840 int _start_mark = p->mark;
26841 void **_children = PyMem_Malloc(sizeof(void *));
26842 if (!_children) {
26843 p->error_indicator = 1;
26844 PyErr_NoMemory();
26845 D(p->level--);
26846 return NULL;
26847 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026848 Py_ssize_t _children_capacity = 1;
26849 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026850 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026851 if (p->error_indicator) {
26852 D(p->level--);
26853 return NULL;
26854 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026855 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 +000026856 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026857 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026858 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026859 )
26860 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026861 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026862 if (_n == _children_capacity) {
26863 _children_capacity *= 2;
26864 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26865 if (!_new_children) {
26866 p->error_indicator = 1;
26867 PyErr_NoMemory();
26868 D(p->level--);
26869 return NULL;
26870 }
26871 _children = _new_children;
26872 }
26873 _children[_n++] = _res;
26874 _mark = p->mark;
26875 }
26876 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026877 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26879 }
26880 if (_n == 0 || p->error_indicator) {
26881 PyMem_Free(_children);
26882 D(p->level--);
26883 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026884 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026885 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026886 if (!_seq) {
26887 PyMem_Free(_children);
26888 p->error_indicator = 1;
26889 PyErr_NoMemory();
26890 D(p->level--);
26891 return NULL;
26892 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026893 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026894 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026895 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026896 D(p->level--);
26897 return _seq;
26898}
26899
Brandt Bucher145bf262021-02-26 14:51:55 -080026900// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026901static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026902_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026903{
26904 D(p->level++);
26905 if (p->error_indicator) {
26906 D(p->level--);
26907 return NULL;
26908 }
26909 void *_res = NULL;
26910 int _mark = p->mark;
26911 int _start_mark = p->mark;
26912 void **_children = PyMem_Malloc(sizeof(void *));
26913 if (!_children) {
26914 p->error_indicator = 1;
26915 PyErr_NoMemory();
26916 D(p->level--);
26917 return NULL;
26918 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026919 Py_ssize_t _children_capacity = 1;
26920 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026921 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026922 if (p->error_indicator) {
26923 D(p->level--);
26924 return NULL;
26925 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026926 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 +000026927 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026928 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026929 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026930 )
26931 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026932 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026933 if (_n == _children_capacity) {
26934 _children_capacity *= 2;
26935 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26936 if (!_new_children) {
26937 p->error_indicator = 1;
26938 PyErr_NoMemory();
26939 D(p->level--);
26940 return NULL;
26941 }
26942 _children = _new_children;
26943 }
26944 _children[_n++] = _res;
26945 _mark = p->mark;
26946 }
26947 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026948 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026950 }
26951 if (_n == 0 || p->error_indicator) {
26952 PyMem_Free(_children);
26953 D(p->level--);
26954 return NULL;
26955 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026956 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026957 if (!_seq) {
26958 PyMem_Free(_children);
26959 p->error_indicator = 1;
26960 PyErr_NoMemory();
26961 D(p->level--);
26962 return NULL;
26963 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026964 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026965 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026966 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026967 D(p->level--);
26968 return _seq;
26969}
26970
Brandt Bucher145bf262021-02-26 14:51:55 -080026971// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026972static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026973_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026974{
26975 D(p->level++);
26976 if (p->error_indicator) {
26977 D(p->level--);
26978 return NULL;
26979 }
26980 void *_res = NULL;
26981 int _mark = p->mark;
26982 int _start_mark = p->mark;
26983 void **_children = PyMem_Malloc(sizeof(void *));
26984 if (!_children) {
26985 p->error_indicator = 1;
26986 PyErr_NoMemory();
26987 D(p->level--);
26988 return NULL;
26989 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026990 Py_ssize_t _children_capacity = 1;
26991 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026992 { // lambda_param_no_default
26993 if (p->error_indicator) {
26994 D(p->level--);
26995 return NULL;
26996 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026997 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 +010026998 arg_ty lambda_param_no_default_var;
26999 while (
27000 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27001 )
27002 {
27003 _res = lambda_param_no_default_var;
27004 if (_n == _children_capacity) {
27005 _children_capacity *= 2;
27006 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27007 if (!_new_children) {
27008 p->error_indicator = 1;
27009 PyErr_NoMemory();
27010 D(p->level--);
27011 return NULL;
27012 }
27013 _children = _new_children;
27014 }
27015 _children[_n++] = _res;
27016 _mark = p->mark;
27017 }
27018 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027019 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27021 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027022 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027023 if (!_seq) {
27024 PyMem_Free(_children);
27025 p->error_indicator = 1;
27026 PyErr_NoMemory();
27027 D(p->level--);
27028 return NULL;
27029 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027030 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027031 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027032 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027033 D(p->level--);
27034 return _seq;
27035}
27036
Brandt Bucher145bf262021-02-26 14:51:55 -080027037// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027038static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027039_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027040{
27041 D(p->level++);
27042 if (p->error_indicator) {
27043 D(p->level--);
27044 return NULL;
27045 }
27046 void *_res = NULL;
27047 int _mark = p->mark;
27048 int _start_mark = p->mark;
27049 void **_children = PyMem_Malloc(sizeof(void *));
27050 if (!_children) {
27051 p->error_indicator = 1;
27052 PyErr_NoMemory();
27053 D(p->level--);
27054 return NULL;
27055 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027056 Py_ssize_t _children_capacity = 1;
27057 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027058 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027059 if (p->error_indicator) {
27060 D(p->level--);
27061 return NULL;
27062 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027063 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 +000027064 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027065 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027066 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027067 )
27068 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027069 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027070 if (_n == _children_capacity) {
27071 _children_capacity *= 2;
27072 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27073 if (!_new_children) {
27074 p->error_indicator = 1;
27075 PyErr_NoMemory();
27076 D(p->level--);
27077 return NULL;
27078 }
27079 _children = _new_children;
27080 }
27081 _children[_n++] = _res;
27082 _mark = p->mark;
27083 }
27084 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027085 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027087 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027088 if (_n == 0 || p->error_indicator) {
27089 PyMem_Free(_children);
27090 D(p->level--);
27091 return NULL;
27092 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027093 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027094 if (!_seq) {
27095 PyMem_Free(_children);
27096 p->error_indicator = 1;
27097 PyErr_NoMemory();
27098 D(p->level--);
27099 return NULL;
27100 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027101 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027102 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027103 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027104 D(p->level--);
27105 return _seq;
27106}
27107
Brandt Bucher145bf262021-02-26 14:51:55 -080027108// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027109static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027110_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027111{
27112 D(p->level++);
27113 if (p->error_indicator) {
27114 D(p->level--);
27115 return NULL;
27116 }
27117 void *_res = NULL;
27118 int _mark = p->mark;
27119 int _start_mark = p->mark;
27120 void **_children = PyMem_Malloc(sizeof(void *));
27121 if (!_children) {
27122 p->error_indicator = 1;
27123 PyErr_NoMemory();
27124 D(p->level--);
27125 return NULL;
27126 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027127 Py_ssize_t _children_capacity = 1;
27128 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027129 { // lambda_param_no_default
27130 if (p->error_indicator) {
27131 D(p->level--);
27132 return NULL;
27133 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027134 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 +010027135 arg_ty lambda_param_no_default_var;
27136 while (
27137 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27138 )
27139 {
27140 _res = lambda_param_no_default_var;
27141 if (_n == _children_capacity) {
27142 _children_capacity *= 2;
27143 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27144 if (!_new_children) {
27145 p->error_indicator = 1;
27146 PyErr_NoMemory();
27147 D(p->level--);
27148 return NULL;
27149 }
27150 _children = _new_children;
27151 }
27152 _children[_n++] = _res;
27153 _mark = p->mark;
27154 }
27155 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027156 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27158 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027159 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027160 if (!_seq) {
27161 PyMem_Free(_children);
27162 p->error_indicator = 1;
27163 PyErr_NoMemory();
27164 D(p->level--);
27165 return NULL;
27166 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027167 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027168 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027169 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027170 D(p->level--);
27171 return _seq;
27172}
27173
Brandt Bucher145bf262021-02-26 14:51:55 -080027174// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027175static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027176_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027177{
27178 D(p->level++);
27179 if (p->error_indicator) {
27180 D(p->level--);
27181 return NULL;
27182 }
27183 void *_res = NULL;
27184 int _mark = p->mark;
27185 int _start_mark = p->mark;
27186 void **_children = PyMem_Malloc(sizeof(void *));
27187 if (!_children) {
27188 p->error_indicator = 1;
27189 PyErr_NoMemory();
27190 D(p->level--);
27191 return NULL;
27192 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027193 Py_ssize_t _children_capacity = 1;
27194 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027195 { // lambda_param_with_default
27196 if (p->error_indicator) {
27197 D(p->level--);
27198 return NULL;
27199 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027200 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 +010027201 NameDefaultPair* lambda_param_with_default_var;
27202 while (
27203 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27204 )
27205 {
27206 _res = lambda_param_with_default_var;
27207 if (_n == _children_capacity) {
27208 _children_capacity *= 2;
27209 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27210 if (!_new_children) {
27211 p->error_indicator = 1;
27212 PyErr_NoMemory();
27213 D(p->level--);
27214 return NULL;
27215 }
27216 _children = _new_children;
27217 }
27218 _children[_n++] = _res;
27219 _mark = p->mark;
27220 }
27221 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027222 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27224 }
27225 if (_n == 0 || p->error_indicator) {
27226 PyMem_Free(_children);
27227 D(p->level--);
27228 return NULL;
27229 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027230 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027231 if (!_seq) {
27232 PyMem_Free(_children);
27233 p->error_indicator = 1;
27234 PyErr_NoMemory();
27235 D(p->level--);
27236 return NULL;
27237 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027238 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027239 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027240 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027241 D(p->level--);
27242 return _seq;
27243}
27244
Brandt Bucher145bf262021-02-26 14:51:55 -080027245// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027246static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027247_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027248{
27249 D(p->level++);
27250 if (p->error_indicator) {
27251 D(p->level--);
27252 return NULL;
27253 }
27254 void *_res = NULL;
27255 int _mark = p->mark;
27256 int _start_mark = p->mark;
27257 void **_children = PyMem_Malloc(sizeof(void *));
27258 if (!_children) {
27259 p->error_indicator = 1;
27260 PyErr_NoMemory();
27261 D(p->level--);
27262 return NULL;
27263 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027264 Py_ssize_t _children_capacity = 1;
27265 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027266 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027267 if (p->error_indicator) {
27268 D(p->level--);
27269 return NULL;
27270 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027271 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 +000027272 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027273 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027274 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027275 )
27276 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027277 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027278 if (_n == _children_capacity) {
27279 _children_capacity *= 2;
27280 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27281 if (!_new_children) {
27282 p->error_indicator = 1;
27283 PyErr_NoMemory();
27284 D(p->level--);
27285 return NULL;
27286 }
27287 _children = _new_children;
27288 }
27289 _children[_n++] = _res;
27290 _mark = p->mark;
27291 }
27292 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027293 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027295 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027296 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027297 if (!_seq) {
27298 PyMem_Free(_children);
27299 p->error_indicator = 1;
27300 PyErr_NoMemory();
27301 D(p->level--);
27302 return NULL;
27303 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027304 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027305 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027306 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027307 D(p->level--);
27308 return _seq;
27309}
27310
Brandt Bucher145bf262021-02-26 14:51:55 -080027311// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027312static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027313_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027314{
27315 D(p->level++);
27316 if (p->error_indicator) {
27317 D(p->level--);
27318 return NULL;
27319 }
27320 void *_res = NULL;
27321 int _mark = p->mark;
27322 int _start_mark = p->mark;
27323 void **_children = PyMem_Malloc(sizeof(void *));
27324 if (!_children) {
27325 p->error_indicator = 1;
27326 PyErr_NoMemory();
27327 D(p->level--);
27328 return NULL;
27329 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027330 Py_ssize_t _children_capacity = 1;
27331 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027332 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027333 if (p->error_indicator) {
27334 D(p->level--);
27335 return NULL;
27336 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027337 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 +000027338 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027339 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027340 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027341 )
27342 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027343 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027344 if (_n == _children_capacity) {
27345 _children_capacity *= 2;
27346 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27347 if (!_new_children) {
27348 p->error_indicator = 1;
27349 PyErr_NoMemory();
27350 D(p->level--);
27351 return NULL;
27352 }
27353 _children = _new_children;
27354 }
27355 _children[_n++] = _res;
27356 _mark = p->mark;
27357 }
27358 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027359 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027361 }
27362 if (_n == 0 || p->error_indicator) {
27363 PyMem_Free(_children);
27364 D(p->level--);
27365 return NULL;
27366 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027367 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027368 if (!_seq) {
27369 PyMem_Free(_children);
27370 p->error_indicator = 1;
27371 PyErr_NoMemory();
27372 D(p->level--);
27373 return NULL;
27374 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027375 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027376 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027377 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027378 D(p->level--);
27379 return _seq;
27380}
27381
Brandt Bucher145bf262021-02-26 14:51:55 -080027382// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027383static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027384_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027385{
27386 D(p->level++);
27387 if (p->error_indicator) {
27388 D(p->level--);
27389 return NULL;
27390 }
27391 void *_res = NULL;
27392 int _mark = p->mark;
27393 int _start_mark = p->mark;
27394 void **_children = PyMem_Malloc(sizeof(void *));
27395 if (!_children) {
27396 p->error_indicator = 1;
27397 PyErr_NoMemory();
27398 D(p->level--);
27399 return NULL;
27400 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027401 Py_ssize_t _children_capacity = 1;
27402 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027403 { // ('or' conjunction)
27404 if (p->error_indicator) {
27405 D(p->level--);
27406 return NULL;
27407 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027408 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027409 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027410 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027411 (_tmp_185_var = _tmp_185_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027412 )
27413 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027414 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027415 if (_n == _children_capacity) {
27416 _children_capacity *= 2;
27417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27418 if (!_new_children) {
27419 p->error_indicator = 1;
27420 PyErr_NoMemory();
27421 D(p->level--);
27422 return NULL;
27423 }
27424 _children = _new_children;
27425 }
27426 _children[_n++] = _res;
27427 _mark = p->mark;
27428 }
27429 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027430 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27432 }
27433 if (_n == 0 || p->error_indicator) {
27434 PyMem_Free(_children);
27435 D(p->level--);
27436 return NULL;
27437 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027438 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027439 if (!_seq) {
27440 PyMem_Free(_children);
27441 p->error_indicator = 1;
27442 PyErr_NoMemory();
27443 D(p->level--);
27444 return NULL;
27445 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027446 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027447 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027448 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027449 D(p->level--);
27450 return _seq;
27451}
27452
Brandt Bucher145bf262021-02-26 14:51:55 -080027453// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027454static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027455_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027456{
27457 D(p->level++);
27458 if (p->error_indicator) {
27459 D(p->level--);
27460 return NULL;
27461 }
27462 void *_res = NULL;
27463 int _mark = p->mark;
27464 int _start_mark = p->mark;
27465 void **_children = PyMem_Malloc(sizeof(void *));
27466 if (!_children) {
27467 p->error_indicator = 1;
27468 PyErr_NoMemory();
27469 D(p->level--);
27470 return NULL;
27471 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027472 Py_ssize_t _children_capacity = 1;
27473 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027474 { // ('and' inversion)
27475 if (p->error_indicator) {
27476 D(p->level--);
27477 return NULL;
27478 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027479 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027480 void *_tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027481 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027482 (_tmp_186_var = _tmp_186_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027483 )
27484 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070027485 _res = _tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027486 if (_n == _children_capacity) {
27487 _children_capacity *= 2;
27488 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27489 if (!_new_children) {
27490 p->error_indicator = 1;
27491 PyErr_NoMemory();
27492 D(p->level--);
27493 return NULL;
27494 }
27495 _children = _new_children;
27496 }
27497 _children[_n++] = _res;
27498 _mark = p->mark;
27499 }
27500 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027501 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27503 }
27504 if (_n == 0 || p->error_indicator) {
27505 PyMem_Free(_children);
27506 D(p->level--);
27507 return NULL;
27508 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027509 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027510 if (!_seq) {
27511 PyMem_Free(_children);
27512 p->error_indicator = 1;
27513 PyErr_NoMemory();
27514 D(p->level--);
27515 return NULL;
27516 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027517 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027518 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027519 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027520 D(p->level--);
27521 return _seq;
27522}
27523
Brandt Bucher145bf262021-02-26 14:51:55 -080027524// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027525static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027526_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027527{
27528 D(p->level++);
27529 if (p->error_indicator) {
27530 D(p->level--);
27531 return NULL;
27532 }
27533 void *_res = NULL;
27534 int _mark = p->mark;
27535 int _start_mark = p->mark;
27536 void **_children = PyMem_Malloc(sizeof(void *));
27537 if (!_children) {
27538 p->error_indicator = 1;
27539 PyErr_NoMemory();
27540 D(p->level--);
27541 return NULL;
27542 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027543 Py_ssize_t _children_capacity = 1;
27544 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027545 { // compare_op_bitwise_or_pair
27546 if (p->error_indicator) {
27547 D(p->level--);
27548 return NULL;
27549 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027550 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 +010027551 CmpopExprPair* compare_op_bitwise_or_pair_var;
27552 while (
27553 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27554 )
27555 {
27556 _res = compare_op_bitwise_or_pair_var;
27557 if (_n == _children_capacity) {
27558 _children_capacity *= 2;
27559 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27560 if (!_new_children) {
27561 p->error_indicator = 1;
27562 PyErr_NoMemory();
27563 D(p->level--);
27564 return NULL;
27565 }
27566 _children = _new_children;
27567 }
27568 _children[_n++] = _res;
27569 _mark = p->mark;
27570 }
27571 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027572 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27574 }
27575 if (_n == 0 || p->error_indicator) {
27576 PyMem_Free(_children);
27577 D(p->level--);
27578 return NULL;
27579 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027580 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027581 if (!_seq) {
27582 PyMem_Free(_children);
27583 p->error_indicator = 1;
27584 PyErr_NoMemory();
27585 D(p->level--);
27586 return NULL;
27587 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027588 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027589 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027590 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027591 D(p->level--);
27592 return _seq;
27593}
27594
Brandt Bucher145bf262021-02-26 14:51:55 -080027595// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027596static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027597_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027598{
27599 D(p->level++);
27600 if (p->error_indicator) {
27601 D(p->level--);
27602 return NULL;
27603 }
27604 void * _res = NULL;
27605 int _mark = p->mark;
27606 { // '!='
27607 if (p->error_indicator) {
27608 D(p->level--);
27609 return NULL;
27610 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027611 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027612 Token * tok;
27613 if (
27614 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27615 )
27616 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027617 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027618 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027619 if (_res == NULL && PyErr_Occurred()) {
27620 p->error_indicator = 1;
27621 D(p->level--);
27622 return NULL;
27623 }
27624 goto done;
27625 }
27626 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027627 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27629 }
27630 _res = NULL;
27631 done:
27632 D(p->level--);
27633 return _res;
27634}
27635
Brandt Bucher145bf262021-02-26 14:51:55 -080027636// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027637static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027638_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027639{
27640 D(p->level++);
27641 if (p->error_indicator) {
27642 D(p->level--);
27643 return NULL;
27644 }
27645 void *_res = NULL;
27646 int _mark = p->mark;
27647 int _start_mark = p->mark;
27648 void **_children = PyMem_Malloc(sizeof(void *));
27649 if (!_children) {
27650 p->error_indicator = 1;
27651 PyErr_NoMemory();
27652 D(p->level--);
27653 return NULL;
27654 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027655 Py_ssize_t _children_capacity = 1;
27656 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027657 { // ',' slice
27658 if (p->error_indicator) {
27659 D(p->level--);
27660 return NULL;
27661 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027662 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027663 Token * _literal;
27664 expr_ty elem;
27665 while (
27666 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27667 &&
27668 (elem = slice_rule(p)) // slice
27669 )
27670 {
27671 _res = elem;
27672 if (_res == NULL && PyErr_Occurred()) {
27673 p->error_indicator = 1;
27674 PyMem_Free(_children);
27675 D(p->level--);
27676 return NULL;
27677 }
27678 if (_n == _children_capacity) {
27679 _children_capacity *= 2;
27680 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27681 if (!_new_children) {
27682 p->error_indicator = 1;
27683 PyErr_NoMemory();
27684 D(p->level--);
27685 return NULL;
27686 }
27687 _children = _new_children;
27688 }
27689 _children[_n++] = _res;
27690 _mark = p->mark;
27691 }
27692 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027693 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27695 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027696 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027697 if (!_seq) {
27698 PyMem_Free(_children);
27699 p->error_indicator = 1;
27700 PyErr_NoMemory();
27701 D(p->level--);
27702 return NULL;
27703 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027704 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027705 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027706 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027707 D(p->level--);
27708 return _seq;
27709}
27710
Brandt Bucher145bf262021-02-26 14:51:55 -080027711// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027712static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027713_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027714{
27715 D(p->level++);
27716 if (p->error_indicator) {
27717 D(p->level--);
27718 return NULL;
27719 }
27720 asdl_seq * _res = NULL;
27721 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027722 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027723 if (p->error_indicator) {
27724 D(p->level--);
27725 return NULL;
27726 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027727 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 +010027728 expr_ty elem;
27729 asdl_seq * seq;
27730 if (
27731 (elem = slice_rule(p)) // slice
27732 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027733 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027734 )
27735 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027736 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 +010027737 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27738 goto done;
27739 }
27740 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027741 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027743 }
27744 _res = NULL;
27745 done:
27746 D(p->level--);
27747 return _res;
27748}
27749
Brandt Bucher145bf262021-02-26 14:51:55 -080027750// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027751static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027752_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027753{
27754 D(p->level++);
27755 if (p->error_indicator) {
27756 D(p->level--);
27757 return NULL;
27758 }
27759 void * _res = NULL;
27760 int _mark = p->mark;
27761 { // ':' expression?
27762 if (p->error_indicator) {
27763 D(p->level--);
27764 return NULL;
27765 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027766 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027767 Token * _literal;
27768 void *d;
27769 if (
27770 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27771 &&
27772 (d = expression_rule(p), 1) // expression?
27773 )
27774 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027775 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027776 _res = d;
27777 if (_res == NULL && PyErr_Occurred()) {
27778 p->error_indicator = 1;
27779 D(p->level--);
27780 return NULL;
27781 }
27782 goto done;
27783 }
27784 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027785 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27787 }
27788 _res = NULL;
27789 done:
27790 D(p->level--);
27791 return _res;
27792}
27793
Brandt Bucher145bf262021-02-26 14:51:55 -080027794// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027795static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027796_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027797{
27798 D(p->level++);
27799 if (p->error_indicator) {
27800 D(p->level--);
27801 return NULL;
27802 }
27803 void * _res = NULL;
27804 int _mark = p->mark;
27805 { // tuple
27806 if (p->error_indicator) {
27807 D(p->level--);
27808 return NULL;
27809 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027810 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027811 expr_ty tuple_var;
27812 if (
27813 (tuple_var = tuple_rule(p)) // tuple
27814 )
27815 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027816 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027817 _res = tuple_var;
27818 goto done;
27819 }
27820 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027821 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27823 }
27824 { // group
27825 if (p->error_indicator) {
27826 D(p->level--);
27827 return NULL;
27828 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027829 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027830 expr_ty group_var;
27831 if (
27832 (group_var = group_rule(p)) // group
27833 )
27834 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027835 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027836 _res = group_var;
27837 goto done;
27838 }
27839 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027840 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27842 }
27843 { // genexp
27844 if (p->error_indicator) {
27845 D(p->level--);
27846 return NULL;
27847 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027848 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027849 expr_ty genexp_var;
27850 if (
27851 (genexp_var = genexp_rule(p)) // genexp
27852 )
27853 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027854 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027855 _res = genexp_var;
27856 goto done;
27857 }
27858 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027859 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27861 }
27862 _res = NULL;
27863 done:
27864 D(p->level--);
27865 return _res;
27866}
27867
Brandt Bucher145bf262021-02-26 14:51:55 -080027868// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027869static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027870_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027871{
27872 D(p->level++);
27873 if (p->error_indicator) {
27874 D(p->level--);
27875 return NULL;
27876 }
27877 void * _res = NULL;
27878 int _mark = p->mark;
27879 { // list
27880 if (p->error_indicator) {
27881 D(p->level--);
27882 return NULL;
27883 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027884 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027885 expr_ty list_var;
27886 if (
27887 (list_var = list_rule(p)) // list
27888 )
27889 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027890 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027891 _res = list_var;
27892 goto done;
27893 }
27894 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027895 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27897 }
27898 { // listcomp
27899 if (p->error_indicator) {
27900 D(p->level--);
27901 return NULL;
27902 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027903 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027904 expr_ty listcomp_var;
27905 if (
27906 (listcomp_var = listcomp_rule(p)) // listcomp
27907 )
27908 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027909 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027910 _res = listcomp_var;
27911 goto done;
27912 }
27913 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027914 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
27916 }
27917 _res = NULL;
27918 done:
27919 D(p->level--);
27920 return _res;
27921}
27922
Brandt Bucher145bf262021-02-26 14:51:55 -080027923// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027924static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027925_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027926{
27927 D(p->level++);
27928 if (p->error_indicator) {
27929 D(p->level--);
27930 return NULL;
27931 }
27932 void * _res = NULL;
27933 int _mark = p->mark;
27934 { // dict
27935 if (p->error_indicator) {
27936 D(p->level--);
27937 return NULL;
27938 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027939 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027940 expr_ty dict_var;
27941 if (
27942 (dict_var = dict_rule(p)) // dict
27943 )
27944 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027945 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027946 _res = dict_var;
27947 goto done;
27948 }
27949 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027950 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
27952 }
27953 { // set
27954 if (p->error_indicator) {
27955 D(p->level--);
27956 return NULL;
27957 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027958 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027959 expr_ty set_var;
27960 if (
27961 (set_var = set_rule(p)) // set
27962 )
27963 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027964 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027965 _res = set_var;
27966 goto done;
27967 }
27968 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027969 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
27971 }
27972 { // dictcomp
27973 if (p->error_indicator) {
27974 D(p->level--);
27975 return NULL;
27976 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027977 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027978 expr_ty dictcomp_var;
27979 if (
27980 (dictcomp_var = dictcomp_rule(p)) // dictcomp
27981 )
27982 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027983 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027984 _res = dictcomp_var;
27985 goto done;
27986 }
27987 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027988 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
27990 }
27991 { // setcomp
27992 if (p->error_indicator) {
27993 D(p->level--);
27994 return NULL;
27995 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027996 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027997 expr_ty setcomp_var;
27998 if (
27999 (setcomp_var = setcomp_rule(p)) // setcomp
28000 )
28001 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028002 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028003 _res = setcomp_var;
28004 goto done;
28005 }
28006 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028007 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
28009 }
28010 _res = NULL;
28011 done:
28012 D(p->level--);
28013 return _res;
28014}
28015
Brandt Bucher145bf262021-02-26 14:51:55 -080028016// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028017static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028018_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028019{
28020 D(p->level++);
28021 if (p->error_indicator) {
28022 D(p->level--);
28023 return NULL;
28024 }
28025 void *_res = NULL;
28026 int _mark = p->mark;
28027 int _start_mark = p->mark;
28028 void **_children = PyMem_Malloc(sizeof(void *));
28029 if (!_children) {
28030 p->error_indicator = 1;
28031 PyErr_NoMemory();
28032 D(p->level--);
28033 return NULL;
28034 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028035 Py_ssize_t _children_capacity = 1;
28036 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028037 { // STRING
28038 if (p->error_indicator) {
28039 D(p->level--);
28040 return NULL;
28041 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028042 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028043 expr_ty string_var;
28044 while (
28045 (string_var = _PyPegen_string_token(p)) // STRING
28046 )
28047 {
28048 _res = string_var;
28049 if (_n == _children_capacity) {
28050 _children_capacity *= 2;
28051 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28052 if (!_new_children) {
28053 p->error_indicator = 1;
28054 PyErr_NoMemory();
28055 D(p->level--);
28056 return NULL;
28057 }
28058 _children = _new_children;
28059 }
28060 _children[_n++] = _res;
28061 _mark = p->mark;
28062 }
28063 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028064 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
28066 }
28067 if (_n == 0 || p->error_indicator) {
28068 PyMem_Free(_children);
28069 D(p->level--);
28070 return NULL;
28071 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028072 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028073 if (!_seq) {
28074 PyMem_Free(_children);
28075 p->error_indicator = 1;
28076 PyErr_NoMemory();
28077 D(p->level--);
28078 return NULL;
28079 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028080 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028081 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028082 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028083 D(p->level--);
28084 return _seq;
28085}
28086
Brandt Bucher145bf262021-02-26 14:51:55 -080028087// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028088static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028089_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028090{
28091 D(p->level++);
28092 if (p->error_indicator) {
28093 D(p->level--);
28094 return NULL;
28095 }
28096 void * _res = NULL;
28097 int _mark = p->mark;
28098 { // star_named_expression ',' star_named_expressions?
28099 if (p->error_indicator) {
28100 D(p->level--);
28101 return NULL;
28102 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028103 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 +010028104 Token * _literal;
28105 expr_ty y;
28106 void *z;
28107 if (
28108 (y = star_named_expression_rule(p)) // star_named_expression
28109 &&
28110 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28111 &&
28112 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
28113 )
28114 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028115 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 +010028116 _res = _PyPegen_seq_insert_in_front ( p , y , z );
28117 if (_res == NULL && PyErr_Occurred()) {
28118 p->error_indicator = 1;
28119 D(p->level--);
28120 return NULL;
28121 }
28122 goto done;
28123 }
28124 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028125 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28127 }
28128 _res = NULL;
28129 done:
28130 D(p->level--);
28131 return _res;
28132}
28133
Brandt Bucher145bf262021-02-26 14:51:55 -080028134// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028135static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028136_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028137{
28138 D(p->level++);
28139 if (p->error_indicator) {
28140 D(p->level--);
28141 return NULL;
28142 }
28143 void * _res = NULL;
28144 int _mark = p->mark;
28145 { // yield_expr
28146 if (p->error_indicator) {
28147 D(p->level--);
28148 return NULL;
28149 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028150 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028151 expr_ty yield_expr_var;
28152 if (
28153 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28154 )
28155 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028156 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 +010028157 _res = yield_expr_var;
28158 goto done;
28159 }
28160 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028161 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28163 }
28164 { // named_expression
28165 if (p->error_indicator) {
28166 D(p->level--);
28167 return NULL;
28168 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028169 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028170 expr_ty named_expression_var;
28171 if (
28172 (named_expression_var = named_expression_rule(p)) // named_expression
28173 )
28174 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028175 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 +010028176 _res = named_expression_var;
28177 goto done;
28178 }
28179 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028180 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28182 }
28183 _res = NULL;
28184 done:
28185 D(p->level--);
28186 return _res;
28187}
28188
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028189// _tmp_117: assigment_expression | expression !':='
28190static void *
28191_tmp_117_rule(Parser *p)
28192{
28193 D(p->level++);
28194 if (p->error_indicator) {
28195 D(p->level--);
28196 return NULL;
28197 }
28198 void * _res = NULL;
28199 int _mark = p->mark;
28200 { // assigment_expression
28201 if (p->error_indicator) {
28202 D(p->level--);
28203 return NULL;
28204 }
28205 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28206 expr_ty assigment_expression_var;
28207 if (
28208 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
28209 )
28210 {
28211 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28212 _res = assigment_expression_var;
28213 goto done;
28214 }
28215 p->mark = _mark;
28216 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
28218 }
28219 { // expression !':='
28220 if (p->error_indicator) {
28221 D(p->level--);
28222 return NULL;
28223 }
28224 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28225 expr_ty expression_var;
28226 if (
28227 (expression_var = expression_rule(p)) // expression
28228 &&
28229 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
28230 )
28231 {
28232 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28233 _res = expression_var;
28234 goto done;
28235 }
28236 p->mark = _mark;
28237 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
28239 }
28240 _res = NULL;
28241 done:
28242 D(p->level--);
28243 return _res;
28244}
28245
28246// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028247static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028248_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028249{
28250 D(p->level++);
28251 if (p->error_indicator) {
28252 D(p->level--);
28253 return NULL;
28254 }
28255 void *_res = NULL;
28256 int _mark = p->mark;
28257 int _start_mark = p->mark;
28258 void **_children = PyMem_Malloc(sizeof(void *));
28259 if (!_children) {
28260 p->error_indicator = 1;
28261 PyErr_NoMemory();
28262 D(p->level--);
28263 return NULL;
28264 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028265 Py_ssize_t _children_capacity = 1;
28266 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028267 { // ',' double_starred_kvpair
28268 if (p->error_indicator) {
28269 D(p->level--);
28270 return NULL;
28271 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028272 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028273 Token * _literal;
28274 KeyValuePair* elem;
28275 while (
28276 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28277 &&
28278 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28279 )
28280 {
28281 _res = elem;
28282 if (_res == NULL && PyErr_Occurred()) {
28283 p->error_indicator = 1;
28284 PyMem_Free(_children);
28285 D(p->level--);
28286 return NULL;
28287 }
28288 if (_n == _children_capacity) {
28289 _children_capacity *= 2;
28290 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28291 if (!_new_children) {
28292 p->error_indicator = 1;
28293 PyErr_NoMemory();
28294 D(p->level--);
28295 return NULL;
28296 }
28297 _children = _new_children;
28298 }
28299 _children[_n++] = _res;
28300 _mark = p->mark;
28301 }
28302 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028303 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28305 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028306 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028307 if (!_seq) {
28308 PyMem_Free(_children);
28309 p->error_indicator = 1;
28310 PyErr_NoMemory();
28311 D(p->level--);
28312 return NULL;
28313 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028314 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028315 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028316 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028317 D(p->level--);
28318 return _seq;
28319}
28320
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028321// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028322static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028323_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028324{
28325 D(p->level++);
28326 if (p->error_indicator) {
28327 D(p->level--);
28328 return NULL;
28329 }
28330 asdl_seq * _res = NULL;
28331 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028332 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028333 if (p->error_indicator) {
28334 D(p->level--);
28335 return NULL;
28336 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028337 D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028338 KeyValuePair* elem;
28339 asdl_seq * seq;
28340 if (
28341 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28342 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028343 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028344 )
28345 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028346 D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028347 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28348 goto done;
28349 }
28350 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028351 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
28352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028353 }
28354 _res = NULL;
28355 done:
28356 D(p->level--);
28357 return _res;
28358}
28359
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028360// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028361static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028362_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028363{
28364 D(p->level++);
28365 if (p->error_indicator) {
28366 D(p->level--);
28367 return NULL;
28368 }
28369 void *_res = NULL;
28370 int _mark = p->mark;
28371 int _start_mark = p->mark;
28372 void **_children = PyMem_Malloc(sizeof(void *));
28373 if (!_children) {
28374 p->error_indicator = 1;
28375 PyErr_NoMemory();
28376 D(p->level--);
28377 return NULL;
28378 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028379 Py_ssize_t _children_capacity = 1;
28380 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028381 { // for_if_clause
28382 if (p->error_indicator) {
28383 D(p->level--);
28384 return NULL;
28385 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028386 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028387 comprehension_ty for_if_clause_var;
28388 while (
28389 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28390 )
28391 {
28392 _res = for_if_clause_var;
28393 if (_n == _children_capacity) {
28394 _children_capacity *= 2;
28395 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28396 if (!_new_children) {
28397 p->error_indicator = 1;
28398 PyErr_NoMemory();
28399 D(p->level--);
28400 return NULL;
28401 }
28402 _children = _new_children;
28403 }
28404 _children[_n++] = _res;
28405 _mark = p->mark;
28406 }
28407 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028408 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28410 }
28411 if (_n == 0 || p->error_indicator) {
28412 PyMem_Free(_children);
28413 D(p->level--);
28414 return NULL;
28415 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028416 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028417 if (!_seq) {
28418 PyMem_Free(_children);
28419 p->error_indicator = 1;
28420 PyErr_NoMemory();
28421 D(p->level--);
28422 return NULL;
28423 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028424 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028425 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028426 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028427 D(p->level--);
28428 return _seq;
28429}
28430
Brandt Bucher145bf262021-02-26 14:51:55 -080028431// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028432static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028433_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028434{
28435 D(p->level++);
28436 if (p->error_indicator) {
28437 D(p->level--);
28438 return NULL;
28439 }
28440 void *_res = NULL;
28441 int _mark = p->mark;
28442 int _start_mark = p->mark;
28443 void **_children = PyMem_Malloc(sizeof(void *));
28444 if (!_children) {
28445 p->error_indicator = 1;
28446 PyErr_NoMemory();
28447 D(p->level--);
28448 return NULL;
28449 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028450 Py_ssize_t _children_capacity = 1;
28451 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028452 { // ('if' disjunction)
28453 if (p->error_indicator) {
28454 D(p->level--);
28455 return NULL;
28456 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028457 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028458 void *_tmp_187_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028459 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028460 (_tmp_187_var = _tmp_187_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028461 )
28462 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028463 _res = _tmp_187_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028464 if (_n == _children_capacity) {
28465 _children_capacity *= 2;
28466 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28467 if (!_new_children) {
28468 p->error_indicator = 1;
28469 PyErr_NoMemory();
28470 D(p->level--);
28471 return NULL;
28472 }
28473 _children = _new_children;
28474 }
28475 _children[_n++] = _res;
28476 _mark = p->mark;
28477 }
28478 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028479 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28481 }
28482 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28483 if (!_seq) {
28484 PyMem_Free(_children);
28485 p->error_indicator = 1;
28486 PyErr_NoMemory();
28487 D(p->level--);
28488 return NULL;
28489 }
28490 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28491 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028492 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028493 D(p->level--);
28494 return _seq;
28495}
28496
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028497// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028498static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028499_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028500{
28501 D(p->level++);
28502 if (p->error_indicator) {
28503 D(p->level--);
28504 return NULL;
28505 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028506 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028507 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028508 int _start_mark = p->mark;
28509 void **_children = PyMem_Malloc(sizeof(void *));
28510 if (!_children) {
28511 p->error_indicator = 1;
28512 PyErr_NoMemory();
28513 D(p->level--);
28514 return NULL;
28515 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028516 Py_ssize_t _children_capacity = 1;
28517 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028518 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010028519 if (p->error_indicator) {
28520 D(p->level--);
28521 return NULL;
28522 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028523 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028524 void *_tmp_188_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028525 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028526 (_tmp_188_var = _tmp_188_rule(p)) // 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028527 )
28528 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028529 _res = _tmp_188_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028530 if (_n == _children_capacity) {
28531 _children_capacity *= 2;
28532 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28533 if (!_new_children) {
28534 p->error_indicator = 1;
28535 PyErr_NoMemory();
28536 D(p->level--);
28537 return NULL;
28538 }
28539 _children = _new_children;
28540 }
28541 _children[_n++] = _res;
28542 _mark = p->mark;
28543 }
28544 p->mark = _mark;
28545 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
28546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28547 }
28548 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28549 if (!_seq) {
28550 PyMem_Free(_children);
28551 p->error_indicator = 1;
28552 PyErr_NoMemory();
28553 D(p->level--);
28554 return NULL;
28555 }
28556 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28557 PyMem_Free(_children);
28558 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
28559 D(p->level--);
28560 return _seq;
28561}
28562
28563// _loop0_124: ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28564static asdl_seq *
28565_loop0_124_rule(Parser *p)
28566{
28567 D(p->level++);
28568 if (p->error_indicator) {
28569 D(p->level--);
28570 return NULL;
28571 }
28572 void *_res = NULL;
28573 int _mark = p->mark;
28574 int _start_mark = p->mark;
28575 void **_children = PyMem_Malloc(sizeof(void *));
28576 if (!_children) {
28577 p->error_indicator = 1;
28578 PyErr_NoMemory();
28579 D(p->level--);
28580 return NULL;
28581 }
28582 Py_ssize_t _children_capacity = 1;
28583 Py_ssize_t _n = 0;
28584 { // ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28585 if (p->error_indicator) {
28586 D(p->level--);
28587 return NULL;
28588 }
28589 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028590 Token * _literal;
28591 void *elem;
28592 while (
28593 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28594 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028595 (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028596 )
28597 {
28598 _res = elem;
28599 if (_res == NULL && PyErr_Occurred()) {
28600 p->error_indicator = 1;
28601 PyMem_Free(_children);
28602 D(p->level--);
28603 return NULL;
28604 }
28605 if (_n == _children_capacity) {
28606 _children_capacity *= 2;
28607 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28608 if (!_new_children) {
28609 p->error_indicator = 1;
28610 PyErr_NoMemory();
28611 D(p->level--);
28612 return NULL;
28613 }
28614 _children = _new_children;
28615 }
28616 _children[_n++] = _res;
28617 _mark = p->mark;
28618 }
28619 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028620 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
28621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028622 }
28623 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28624 if (!_seq) {
28625 PyMem_Free(_children);
28626 p->error_indicator = 1;
28627 PyErr_NoMemory();
28628 D(p->level--);
28629 return NULL;
28630 }
28631 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28632 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028633 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028634 D(p->level--);
28635 return _seq;
28636}
28637
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028638// _gather_123:
28639// | (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028640static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028641_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028642{
28643 D(p->level++);
28644 if (p->error_indicator) {
28645 D(p->level--);
28646 return NULL;
28647 }
28648 asdl_seq * _res = NULL;
28649 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028650 { // (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028651 if (p->error_indicator) {
28652 D(p->level--);
28653 return NULL;
28654 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028655 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028656 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028657 asdl_seq * seq;
28658 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070028659 (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028660 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028661 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028662 )
28663 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028664 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028665 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28666 goto done;
28667 }
28668 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028669 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
28670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028671 }
28672 _res = NULL;
28673 done:
28674 D(p->level--);
28675 return _res;
28676}
28677
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028678// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080028679static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028680_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028681{
28682 D(p->level++);
28683 if (p->error_indicator) {
28684 D(p->level--);
28685 return NULL;
28686 }
28687 void * _res = NULL;
28688 int _mark = p->mark;
28689 { // ',' kwargs
28690 if (p->error_indicator) {
28691 D(p->level--);
28692 return NULL;
28693 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028694 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028695 Token * _literal;
28696 asdl_seq* k;
28697 if (
28698 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28699 &&
28700 (k = kwargs_rule(p)) // kwargs
28701 )
28702 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028703 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028704 _res = k;
28705 if (_res == NULL && PyErr_Occurred()) {
28706 p->error_indicator = 1;
28707 D(p->level--);
28708 return NULL;
28709 }
28710 goto done;
28711 }
28712 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028713 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28715 }
28716 _res = NULL;
28717 done:
28718 D(p->level--);
28719 return _res;
28720}
28721
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028722// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028723static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028724_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028725{
28726 D(p->level++);
28727 if (p->error_indicator) {
28728 D(p->level--);
28729 return NULL;
28730 }
28731 void *_res = NULL;
28732 int _mark = p->mark;
28733 int _start_mark = p->mark;
28734 void **_children = PyMem_Malloc(sizeof(void *));
28735 if (!_children) {
28736 p->error_indicator = 1;
28737 PyErr_NoMemory();
28738 D(p->level--);
28739 return NULL;
28740 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028741 Py_ssize_t _children_capacity = 1;
28742 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028743 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028744 if (p->error_indicator) {
28745 D(p->level--);
28746 return NULL;
28747 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028748 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028749 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028750 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028751 while (
28752 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28753 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028754 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028755 )
28756 {
28757 _res = elem;
28758 if (_res == NULL && PyErr_Occurred()) {
28759 p->error_indicator = 1;
28760 PyMem_Free(_children);
28761 D(p->level--);
28762 return NULL;
28763 }
28764 if (_n == _children_capacity) {
28765 _children_capacity *= 2;
28766 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28767 if (!_new_children) {
28768 p->error_indicator = 1;
28769 PyErr_NoMemory();
28770 D(p->level--);
28771 return NULL;
28772 }
28773 _children = _new_children;
28774 }
28775 _children[_n++] = _res;
28776 _mark = p->mark;
28777 }
28778 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028779 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028781 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028782 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028783 if (!_seq) {
28784 PyMem_Free(_children);
28785 p->error_indicator = 1;
28786 PyErr_NoMemory();
28787 D(p->level--);
28788 return NULL;
28789 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028790 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028791 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028792 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028793 D(p->level--);
28794 return _seq;
28795}
28796
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028797// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028798static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028799_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028800{
28801 D(p->level++);
28802 if (p->error_indicator) {
28803 D(p->level--);
28804 return NULL;
28805 }
28806 asdl_seq * _res = NULL;
28807 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028808 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028809 if (p->error_indicator) {
28810 D(p->level--);
28811 return NULL;
28812 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028813 D(fprintf(stderr, "%*c> _gather_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028814 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028815 asdl_seq * seq;
28816 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028817 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028818 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028819 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028820 )
28821 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028822 D(fprintf(stderr, "%*c+ _gather_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028823 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28824 goto done;
28825 }
28826 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028827 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
28828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028829 }
28830 _res = NULL;
28831 done:
28832 D(p->level--);
28833 return _res;
28834}
28835
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028836// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028837static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028838_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028839{
28840 D(p->level++);
28841 if (p->error_indicator) {
28842 D(p->level--);
28843 return NULL;
28844 }
28845 void *_res = NULL;
28846 int _mark = p->mark;
28847 int _start_mark = p->mark;
28848 void **_children = PyMem_Malloc(sizeof(void *));
28849 if (!_children) {
28850 p->error_indicator = 1;
28851 PyErr_NoMemory();
28852 D(p->level--);
28853 return NULL;
28854 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028855 Py_ssize_t _children_capacity = 1;
28856 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028857 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028858 if (p->error_indicator) {
28859 D(p->level--);
28860 return NULL;
28861 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028862 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028863 Token * _literal;
28864 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028865 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028866 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28867 &&
28868 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028869 )
28870 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028871 _res = elem;
28872 if (_res == NULL && PyErr_Occurred()) {
28873 p->error_indicator = 1;
28874 PyMem_Free(_children);
28875 D(p->level--);
28876 return NULL;
28877 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028878 if (_n == _children_capacity) {
28879 _children_capacity *= 2;
28880 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28881 if (!_new_children) {
28882 p->error_indicator = 1;
28883 PyErr_NoMemory();
28884 D(p->level--);
28885 return NULL;
28886 }
28887 _children = _new_children;
28888 }
28889 _children[_n++] = _res;
28890 _mark = p->mark;
28891 }
28892 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028893 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028895 }
28896 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28897 if (!_seq) {
28898 PyMem_Free(_children);
28899 p->error_indicator = 1;
28900 PyErr_NoMemory();
28901 D(p->level--);
28902 return NULL;
28903 }
28904 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28905 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028906 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028907 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028908 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028909}
28910
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028911// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028912static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028913_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028914{
28915 D(p->level++);
28916 if (p->error_indicator) {
28917 D(p->level--);
28918 return NULL;
28919 }
28920 asdl_seq * _res = NULL;
28921 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028922 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080028923 if (p->error_indicator) {
28924 D(p->level--);
28925 return NULL;
28926 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028927 D(fprintf(stderr, "%*c> _gather_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028928 KeywordOrStarred* elem;
28929 asdl_seq * seq;
28930 if (
28931 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28932 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028933 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080028934 )
28935 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028936 D(fprintf(stderr, "%*c+ _gather_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028937 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28938 goto done;
28939 }
28940 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028941 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
28942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028943 }
28944 _res = NULL;
28945 done:
28946 D(p->level--);
28947 return _res;
28948}
28949
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028950// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080028951static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028952_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028953{
28954 D(p->level++);
28955 if (p->error_indicator) {
28956 D(p->level--);
28957 return NULL;
28958 }
28959 void *_res = NULL;
28960 int _mark = p->mark;
28961 int _start_mark = p->mark;
28962 void **_children = PyMem_Malloc(sizeof(void *));
28963 if (!_children) {
28964 p->error_indicator = 1;
28965 PyErr_NoMemory();
28966 D(p->level--);
28967 return NULL;
28968 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028969 Py_ssize_t _children_capacity = 1;
28970 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028971 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028972 if (p->error_indicator) {
28973 D(p->level--);
28974 return NULL;
28975 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028976 D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028977 Token * _literal;
28978 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028979 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028980 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28981 &&
28982 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028983 )
28984 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028985 _res = elem;
28986 if (_res == NULL && PyErr_Occurred()) {
28987 p->error_indicator = 1;
28988 PyMem_Free(_children);
28989 D(p->level--);
28990 return NULL;
28991 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028992 if (_n == _children_capacity) {
28993 _children_capacity *= 2;
28994 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28995 if (!_new_children) {
28996 p->error_indicator = 1;
28997 PyErr_NoMemory();
28998 D(p->level--);
28999 return NULL;
29000 }
29001 _children = _new_children;
29002 }
29003 _children[_n++] = _res;
29004 _mark = p->mark;
29005 }
29006 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029007 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029009 }
29010 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29011 if (!_seq) {
29012 PyMem_Free(_children);
29013 p->error_indicator = 1;
29014 PyErr_NoMemory();
29015 D(p->level--);
29016 return NULL;
29017 }
29018 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29019 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029020 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029021 D(p->level--);
29022 return _seq;
29023}
29024
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029025// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080029026static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029027_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029028{
29029 D(p->level++);
29030 if (p->error_indicator) {
29031 D(p->level--);
29032 return NULL;
29033 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029034 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029035 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029036 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029037 if (p->error_indicator) {
29038 D(p->level--);
29039 return NULL;
29040 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029041 D(fprintf(stderr, "%*c> _gather_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029042 KeywordOrStarred* elem;
29043 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029044 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029045 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
29046 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029047 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029048 )
29049 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029050 D(fprintf(stderr, "%*c+ _gather_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029051 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029052 goto done;
29053 }
29054 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029055 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
29056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029057 }
29058 _res = NULL;
29059 done:
29060 D(p->level--);
29061 return _res;
29062}
29063
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029064// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029065static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029066_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029067{
29068 D(p->level++);
29069 if (p->error_indicator) {
29070 D(p->level--);
29071 return NULL;
29072 }
29073 void *_res = NULL;
29074 int _mark = p->mark;
29075 int _start_mark = p->mark;
29076 void **_children = PyMem_Malloc(sizeof(void *));
29077 if (!_children) {
29078 p->error_indicator = 1;
29079 PyErr_NoMemory();
29080 D(p->level--);
29081 return NULL;
29082 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029083 Py_ssize_t _children_capacity = 1;
29084 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029085 { // ',' kwarg_or_double_starred
29086 if (p->error_indicator) {
29087 D(p->level--);
29088 return NULL;
29089 }
29090 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
29091 Token * _literal;
29092 KeywordOrStarred* elem;
29093 while (
29094 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29095 &&
29096 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29097 )
29098 {
29099 _res = elem;
29100 if (_res == NULL && PyErr_Occurred()) {
29101 p->error_indicator = 1;
29102 PyMem_Free(_children);
29103 D(p->level--);
29104 return NULL;
29105 }
29106 if (_n == _children_capacity) {
29107 _children_capacity *= 2;
29108 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29109 if (!_new_children) {
29110 p->error_indicator = 1;
29111 PyErr_NoMemory();
29112 D(p->level--);
29113 return NULL;
29114 }
29115 _children = _new_children;
29116 }
29117 _children[_n++] = _res;
29118 _mark = p->mark;
29119 }
29120 p->mark = _mark;
29121 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
29122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
29123 }
29124 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29125 if (!_seq) {
29126 PyMem_Free(_children);
29127 p->error_indicator = 1;
29128 PyErr_NoMemory();
29129 D(p->level--);
29130 return NULL;
29131 }
29132 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29133 PyMem_Free(_children);
29134 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
29135 D(p->level--);
29136 return _seq;
29137}
29138
29139// _gather_132: kwarg_or_double_starred _loop0_133
29140static asdl_seq *
29141_gather_132_rule(Parser *p)
29142{
29143 D(p->level++);
29144 if (p->error_indicator) {
29145 D(p->level--);
29146 return NULL;
29147 }
29148 asdl_seq * _res = NULL;
29149 int _mark = p->mark;
29150 { // kwarg_or_double_starred _loop0_133
29151 if (p->error_indicator) {
29152 D(p->level--);
29153 return NULL;
29154 }
29155 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29156 KeywordOrStarred* elem;
29157 asdl_seq * seq;
29158 if (
29159 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29160 &&
29161 (seq = _loop0_133_rule(p)) // _loop0_133
29162 )
29163 {
29164 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29165 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29166 goto done;
29167 }
29168 p->mark = _mark;
29169 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
29170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29171 }
29172 _res = NULL;
29173 done:
29174 D(p->level--);
29175 return _res;
29176}
29177
29178// _loop0_134: (',' star_target)
29179static asdl_seq *
29180_loop0_134_rule(Parser *p)
29181{
29182 D(p->level++);
29183 if (p->error_indicator) {
29184 D(p->level--);
29185 return NULL;
29186 }
29187 void *_res = NULL;
29188 int _mark = p->mark;
29189 int _start_mark = p->mark;
29190 void **_children = PyMem_Malloc(sizeof(void *));
29191 if (!_children) {
29192 p->error_indicator = 1;
29193 PyErr_NoMemory();
29194 D(p->level--);
29195 return NULL;
29196 }
29197 Py_ssize_t _children_capacity = 1;
29198 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029199 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029200 if (p->error_indicator) {
29201 D(p->level--);
29202 return NULL;
29203 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029204 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029205 void *_tmp_190_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029206 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029207 (_tmp_190_var = _tmp_190_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029208 )
29209 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029210 _res = _tmp_190_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029211 if (_n == _children_capacity) {
29212 _children_capacity *= 2;
29213 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29214 if (!_new_children) {
29215 p->error_indicator = 1;
29216 PyErr_NoMemory();
29217 D(p->level--);
29218 return NULL;
29219 }
29220 _children = _new_children;
29221 }
29222 _children[_n++] = _res;
29223 _mark = p->mark;
29224 }
29225 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029226 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029228 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029229 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029230 if (!_seq) {
29231 PyMem_Free(_children);
29232 p->error_indicator = 1;
29233 PyErr_NoMemory();
29234 D(p->level--);
29235 return NULL;
29236 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029237 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029238 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029239 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029240 D(p->level--);
29241 return _seq;
29242}
29243
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029244// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029245static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029246_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029247{
29248 D(p->level++);
29249 if (p->error_indicator) {
29250 D(p->level--);
29251 return NULL;
29252 }
29253 void *_res = NULL;
29254 int _mark = p->mark;
29255 int _start_mark = p->mark;
29256 void **_children = PyMem_Malloc(sizeof(void *));
29257 if (!_children) {
29258 p->error_indicator = 1;
29259 PyErr_NoMemory();
29260 D(p->level--);
29261 return NULL;
29262 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029263 Py_ssize_t _children_capacity = 1;
29264 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029265 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029266 if (p->error_indicator) {
29267 D(p->level--);
29268 return NULL;
29269 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029270 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029271 Token * _literal;
29272 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029273 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029274 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29275 &&
29276 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029277 )
29278 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029279 _res = elem;
29280 if (_res == NULL && PyErr_Occurred()) {
29281 p->error_indicator = 1;
29282 PyMem_Free(_children);
29283 D(p->level--);
29284 return NULL;
29285 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029286 if (_n == _children_capacity) {
29287 _children_capacity *= 2;
29288 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29289 if (!_new_children) {
29290 p->error_indicator = 1;
29291 PyErr_NoMemory();
29292 D(p->level--);
29293 return NULL;
29294 }
29295 _children = _new_children;
29296 }
29297 _children[_n++] = _res;
29298 _mark = p->mark;
29299 }
29300 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029301 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029303 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029304 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029305 if (!_seq) {
29306 PyMem_Free(_children);
29307 p->error_indicator = 1;
29308 PyErr_NoMemory();
29309 D(p->level--);
29310 return NULL;
29311 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029312 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029313 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029314 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029315 D(p->level--);
29316 return _seq;
29317}
29318
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029319// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029320static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029321_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029322{
29323 D(p->level++);
29324 if (p->error_indicator) {
29325 D(p->level--);
29326 return NULL;
29327 }
29328 asdl_seq * _res = NULL;
29329 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029330 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029331 if (p->error_indicator) {
29332 D(p->level--);
29333 return NULL;
29334 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029335 D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029336 expr_ty elem;
29337 asdl_seq * seq;
29338 if (
29339 (elem = star_target_rule(p)) // star_target
29340 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029341 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029342 )
29343 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029344 D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029345 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29346 goto done;
29347 }
29348 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029349 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
29350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029351 }
29352 _res = NULL;
29353 done:
29354 D(p->level--);
29355 return _res;
29356}
29357
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029358// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029359static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029360_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029361{
29362 D(p->level++);
29363 if (p->error_indicator) {
29364 D(p->level--);
29365 return NULL;
29366 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029367 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029368 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029369 int _start_mark = p->mark;
29370 void **_children = PyMem_Malloc(sizeof(void *));
29371 if (!_children) {
29372 p->error_indicator = 1;
29373 PyErr_NoMemory();
29374 D(p->level--);
29375 return NULL;
29376 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029377 Py_ssize_t _children_capacity = 1;
29378 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029379 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029380 if (p->error_indicator) {
29381 D(p->level--);
29382 return NULL;
29383 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029384 D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029385 void *_tmp_191_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029386 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029387 (_tmp_191_var = _tmp_191_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029388 )
29389 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070029390 _res = _tmp_191_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029391 if (_n == _children_capacity) {
29392 _children_capacity *= 2;
29393 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29394 if (!_new_children) {
29395 p->error_indicator = 1;
29396 PyErr_NoMemory();
29397 D(p->level--);
29398 return NULL;
29399 }
29400 _children = _new_children;
29401 }
29402 _children[_n++] = _res;
29403 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029404 }
29405 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029406 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029408 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029409 if (_n == 0 || p->error_indicator) {
29410 PyMem_Free(_children);
29411 D(p->level--);
29412 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029413 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029414 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29415 if (!_seq) {
29416 PyMem_Free(_children);
29417 p->error_indicator = 1;
29418 PyErr_NoMemory();
29419 D(p->level--);
29420 return NULL;
29421 }
29422 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29423 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029424 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029425 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029426 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029427}
29428
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029429// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029430static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029431_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029432{
29433 D(p->level++);
29434 if (p->error_indicator) {
29435 D(p->level--);
29436 return NULL;
29437 }
29438 void * _res = NULL;
29439 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029440 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029441 if (p->error_indicator) {
29442 D(p->level--);
29443 return NULL;
29444 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029445 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029446 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029447 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029448 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029449 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029450 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029451 )
29452 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029453 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029454 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029455 goto done;
29456 }
29457 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029458 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029460 }
29461 _res = NULL;
29462 done:
29463 D(p->level--);
29464 return _res;
29465}
29466
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029467// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080029468static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029469_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029470{
29471 D(p->level++);
29472 if (p->error_indicator) {
29473 D(p->level--);
29474 return NULL;
29475 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029476 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029477 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029478 int _start_mark = p->mark;
29479 void **_children = PyMem_Malloc(sizeof(void *));
29480 if (!_children) {
29481 p->error_indicator = 1;
29482 PyErr_NoMemory();
29483 D(p->level--);
29484 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029485 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029486 Py_ssize_t _children_capacity = 1;
29487 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029488 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029489 if (p->error_indicator) {
29490 D(p->level--);
29491 return NULL;
29492 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029493 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029494 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029495 expr_ty elem;
29496 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029497 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29498 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029499 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029500 )
29501 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029502 _res = elem;
29503 if (_res == NULL && PyErr_Occurred()) {
29504 p->error_indicator = 1;
29505 PyMem_Free(_children);
29506 D(p->level--);
29507 return NULL;
29508 }
29509 if (_n == _children_capacity) {
29510 _children_capacity *= 2;
29511 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29512 if (!_new_children) {
29513 p->error_indicator = 1;
29514 PyErr_NoMemory();
29515 D(p->level--);
29516 return NULL;
29517 }
29518 _children = _new_children;
29519 }
29520 _children[_n++] = _res;
29521 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029522 }
29523 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029524 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029526 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029527 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29528 if (!_seq) {
29529 PyMem_Free(_children);
29530 p->error_indicator = 1;
29531 PyErr_NoMemory();
29532 D(p->level--);
29533 return NULL;
29534 }
29535 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29536 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029537 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029538 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029539 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029540}
29541
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029542// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080029543static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029544_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029545{
29546 D(p->level++);
29547 if (p->error_indicator) {
29548 D(p->level--);
29549 return NULL;
29550 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029551 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029552 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029553 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029554 if (p->error_indicator) {
29555 D(p->level--);
29556 return NULL;
29557 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029558 D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029559 expr_ty elem;
29560 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029561 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029562 (elem = del_target_rule(p)) // del_target
29563 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029564 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029565 )
29566 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029567 D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029568 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029569 goto done;
29570 }
29571 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029572 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
29573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029574 }
29575 _res = NULL;
29576 done:
29577 D(p->level--);
29578 return _res;
29579}
29580
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029581// _tmp_141: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080029582static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029583_tmp_141_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029584{
29585 D(p->level++);
29586 if (p->error_indicator) {
29587 D(p->level--);
29588 return NULL;
29589 }
29590 void * _res = NULL;
29591 int _mark = p->mark;
29592 { // args
29593 if (p->error_indicator) {
29594 D(p->level--);
29595 return NULL;
29596 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029597 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029598 expr_ty args_var;
29599 if (
29600 (args_var = args_rule(p)) // args
29601 )
29602 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029603 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029604 _res = args_var;
29605 goto done;
29606 }
29607 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029608 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29610 }
29611 { // expression for_if_clauses
29612 if (p->error_indicator) {
29613 D(p->level--);
29614 return NULL;
29615 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029616 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029617 expr_ty expression_var;
29618 asdl_comprehension_seq* for_if_clauses_var;
29619 if (
29620 (expression_var = expression_rule(p)) // expression
29621 &&
29622 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29623 )
29624 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029625 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029626 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29627 goto done;
29628 }
29629 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029630 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29632 }
29633 _res = NULL;
29634 done:
29635 D(p->level--);
29636 return _res;
29637}
29638
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029639// _tmp_142: NAME '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029640static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029641_tmp_142_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029642{
29643 D(p->level++);
29644 if (p->error_indicator) {
29645 D(p->level--);
29646 return NULL;
29647 }
29648 void * _res = NULL;
29649 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029650 { // NAME '='
29651 if (p->error_indicator) {
29652 D(p->level--);
29653 return NULL;
29654 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029655 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029656 Token * _literal;
29657 expr_ty name_var;
29658 if (
29659 (name_var = _PyPegen_name_token(p)) // NAME
29660 &&
29661 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29662 )
29663 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029664 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029665 _res = _PyPegen_dummy_name(p, name_var, _literal);
29666 goto done;
29667 }
29668 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029669 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29671 }
29672 _res = NULL;
29673 done:
29674 D(p->level--);
29675 return _res;
29676}
29677
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029678// _tmp_143: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029679static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029680_tmp_143_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029681{
29682 D(p->level++);
29683 if (p->error_indicator) {
29684 D(p->level--);
29685 return NULL;
29686 }
29687 void * _res = NULL;
29688 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029689 { // NAME STRING
29690 if (p->error_indicator) {
29691 D(p->level--);
29692 return NULL;
29693 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029694 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029695 expr_ty name_var;
29696 expr_ty string_var;
29697 if (
29698 (name_var = _PyPegen_name_token(p)) // NAME
29699 &&
29700 (string_var = _PyPegen_string_token(p)) // STRING
29701 )
29702 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029703 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029704 _res = _PyPegen_dummy_name(p, name_var, string_var);
29705 goto done;
29706 }
29707 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029708 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29710 }
29711 { // SOFT_KEYWORD
29712 if (p->error_indicator) {
29713 D(p->level--);
29714 return NULL;
29715 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029716 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029717 expr_ty soft_keyword_var;
29718 if (
29719 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29720 )
29721 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029722 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029723 _res = soft_keyword_var;
29724 goto done;
29725 }
29726 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029727 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29729 }
29730 _res = NULL;
29731 done:
29732 D(p->level--);
29733 return _res;
29734}
29735
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029736// _tmp_144: '=' | ':='
29737static void *
29738_tmp_144_rule(Parser *p)
29739{
29740 D(p->level++);
29741 if (p->error_indicator) {
29742 D(p->level--);
29743 return NULL;
29744 }
29745 void * _res = NULL;
29746 int _mark = p->mark;
29747 { // '='
29748 if (p->error_indicator) {
29749 D(p->level--);
29750 return NULL;
29751 }
29752 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
29753 Token * _literal;
29754 if (
29755 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29756 )
29757 {
29758 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
29759 _res = _literal;
29760 goto done;
29761 }
29762 p->mark = _mark;
29763 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29765 }
29766 { // ':='
29767 if (p->error_indicator) {
29768 D(p->level--);
29769 return NULL;
29770 }
29771 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
29772 Token * _literal;
29773 if (
29774 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29775 )
29776 {
29777 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
29778 _res = _literal;
29779 goto done;
29780 }
29781 p->mark = _mark;
29782 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29784 }
29785 _res = NULL;
29786 done:
29787 D(p->level--);
29788 return _res;
29789}
29790
29791// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False'
29792static void *
29793_tmp_145_rule(Parser *p)
29794{
29795 D(p->level++);
29796 if (p->error_indicator) {
29797 D(p->level--);
29798 return NULL;
29799 }
29800 void * _res = NULL;
29801 int _mark = p->mark;
29802 { // list
29803 if (p->error_indicator) {
29804 D(p->level--);
29805 return NULL;
29806 }
29807 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
29808 expr_ty list_var;
29809 if (
29810 (list_var = list_rule(p)) // list
29811 )
29812 {
29813 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
29814 _res = list_var;
29815 goto done;
29816 }
29817 p->mark = _mark;
29818 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29820 }
29821 { // tuple
29822 if (p->error_indicator) {
29823 D(p->level--);
29824 return NULL;
29825 }
29826 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
29827 expr_ty tuple_var;
29828 if (
29829 (tuple_var = tuple_rule(p)) // tuple
29830 )
29831 {
29832 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
29833 _res = tuple_var;
29834 goto done;
29835 }
29836 p->mark = _mark;
29837 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29839 }
29840 { // genexp
29841 if (p->error_indicator) {
29842 D(p->level--);
29843 return NULL;
29844 }
29845 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
29846 expr_ty genexp_var;
29847 if (
29848 (genexp_var = genexp_rule(p)) // genexp
29849 )
29850 {
29851 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
29852 _res = genexp_var;
29853 goto done;
29854 }
29855 p->mark = _mark;
29856 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29858 }
29859 { // 'True'
29860 if (p->error_indicator) {
29861 D(p->level--);
29862 return NULL;
29863 }
29864 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
29865 Token * _keyword;
29866 if (
29867 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29868 )
29869 {
29870 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
29871 _res = _keyword;
29872 goto done;
29873 }
29874 p->mark = _mark;
29875 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29877 }
29878 { // 'None'
29879 if (p->error_indicator) {
29880 D(p->level--);
29881 return NULL;
29882 }
29883 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
29884 Token * _keyword;
29885 if (
29886 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29887 )
29888 {
29889 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
29890 _res = _keyword;
29891 goto done;
29892 }
29893 p->mark = _mark;
29894 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29896 }
29897 { // 'False'
29898 if (p->error_indicator) {
29899 D(p->level--);
29900 return NULL;
29901 }
29902 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
29903 Token * _keyword;
29904 if (
29905 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29906 )
29907 {
29908 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
29909 _res = _keyword;
29910 goto done;
29911 }
29912 p->mark = _mark;
29913 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29915 }
29916 _res = NULL;
29917 done:
29918 D(p->level--);
29919 return _res;
29920}
29921
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029922// _tmp_146: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010029923static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029924_tmp_146_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010029925{
29926 D(p->level++);
29927 if (p->error_indicator) {
29928 D(p->level--);
29929 return NULL;
29930 }
29931 void * _res = NULL;
29932 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029933 { // '='
29934 if (p->error_indicator) {
29935 D(p->level--);
29936 return NULL;
29937 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029938 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029939 Token * _literal;
29940 if (
29941 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29942 )
29943 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029944 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029945 _res = _literal;
29946 goto done;
29947 }
29948 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029949 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29951 }
29952 { // ':='
29953 if (p->error_indicator) {
29954 D(p->level--);
29955 return NULL;
29956 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029957 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029958 Token * _literal;
29959 if (
29960 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29961 )
29962 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029963 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029964 _res = _literal;
29965 goto done;
29966 }
29967 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029968 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29970 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029971 _res = NULL;
29972 done:
29973 D(p->level--);
29974 return _res;
29975}
29976
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029977// _loop0_147: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029978static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029979_loop0_147_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029980{
29981 D(p->level++);
29982 if (p->error_indicator) {
29983 D(p->level--);
29984 return NULL;
29985 }
29986 void *_res = NULL;
29987 int _mark = p->mark;
29988 int _start_mark = p->mark;
29989 void **_children = PyMem_Malloc(sizeof(void *));
29990 if (!_children) {
29991 p->error_indicator = 1;
29992 PyErr_NoMemory();
29993 D(p->level--);
29994 return NULL;
29995 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029996 Py_ssize_t _children_capacity = 1;
29997 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029998 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029999 if (p->error_indicator) {
30000 D(p->level--);
30001 return NULL;
30002 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030003 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 -080030004 asdl_expr_seq* star_named_expressions_var;
30005 while (
30006 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
30007 )
30008 {
30009 _res = star_named_expressions_var;
30010 if (_n == _children_capacity) {
30011 _children_capacity *= 2;
30012 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30013 if (!_new_children) {
30014 p->error_indicator = 1;
30015 PyErr_NoMemory();
30016 D(p->level--);
30017 return NULL;
30018 }
30019 _children = _new_children;
30020 }
30021 _children[_n++] = _res;
30022 _mark = p->mark;
30023 }
30024 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030025 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob2802482021-04-15 21:38:45 +010030027 }
30028 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30029 if (!_seq) {
30030 PyMem_Free(_children);
30031 p->error_indicator = 1;
30032 PyErr_NoMemory();
30033 D(p->level--);
30034 return NULL;
30035 }
30036 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30037 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030038 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
30039 D(p->level--);
30040 return _seq;
30041}
30042
30043// _loop0_148: (star_targets '=')
30044static asdl_seq *
30045_loop0_148_rule(Parser *p)
30046{
30047 D(p->level++);
30048 if (p->error_indicator) {
30049 D(p->level--);
30050 return NULL;
30051 }
30052 void *_res = NULL;
30053 int _mark = p->mark;
30054 int _start_mark = p->mark;
30055 void **_children = PyMem_Malloc(sizeof(void *));
30056 if (!_children) {
30057 p->error_indicator = 1;
30058 PyErr_NoMemory();
30059 D(p->level--);
30060 return NULL;
30061 }
30062 Py_ssize_t _children_capacity = 1;
30063 Py_ssize_t _n = 0;
30064 { // (star_targets '=')
30065 if (p->error_indicator) {
30066 D(p->level--);
30067 return NULL;
30068 }
30069 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030070 void *_tmp_192_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030071 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030072 (_tmp_192_var = _tmp_192_rule(p)) // star_targets '='
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030073 )
30074 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030075 _res = _tmp_192_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030076 if (_n == _children_capacity) {
30077 _children_capacity *= 2;
30078 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30079 if (!_new_children) {
30080 p->error_indicator = 1;
30081 PyErr_NoMemory();
30082 D(p->level--);
30083 return NULL;
30084 }
30085 _children = _new_children;
30086 }
30087 _children[_n++] = _res;
30088 _mark = p->mark;
30089 }
30090 p->mark = _mark;
30091 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
30092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30093 }
30094 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30095 if (!_seq) {
30096 PyMem_Free(_children);
30097 p->error_indicator = 1;
30098 PyErr_NoMemory();
30099 D(p->level--);
30100 return NULL;
30101 }
30102 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30103 PyMem_Free(_children);
30104 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
30105 D(p->level--);
30106 return _seq;
30107}
30108
30109// _loop0_149: (star_targets '=')
30110static asdl_seq *
30111_loop0_149_rule(Parser *p)
30112{
30113 D(p->level++);
30114 if (p->error_indicator) {
30115 D(p->level--);
30116 return NULL;
30117 }
30118 void *_res = NULL;
30119 int _mark = p->mark;
30120 int _start_mark = p->mark;
30121 void **_children = PyMem_Malloc(sizeof(void *));
30122 if (!_children) {
30123 p->error_indicator = 1;
30124 PyErr_NoMemory();
30125 D(p->level--);
30126 return NULL;
30127 }
30128 Py_ssize_t _children_capacity = 1;
30129 Py_ssize_t _n = 0;
30130 { // (star_targets '=')
30131 if (p->error_indicator) {
30132 D(p->level--);
30133 return NULL;
30134 }
30135 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030136 void *_tmp_193_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030137 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030138 (_tmp_193_var = _tmp_193_rule(p)) // star_targets '='
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030139 )
30140 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030141 _res = _tmp_193_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030142 if (_n == _children_capacity) {
30143 _children_capacity *= 2;
30144 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30145 if (!_new_children) {
30146 p->error_indicator = 1;
30147 PyErr_NoMemory();
30148 D(p->level--);
30149 return NULL;
30150 }
30151 _children = _new_children;
30152 }
30153 _children[_n++] = _res;
30154 _mark = p->mark;
30155 }
30156 p->mark = _mark;
30157 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
30158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30159 }
30160 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30161 if (!_seq) {
30162 PyMem_Free(_children);
30163 p->error_indicator = 1;
30164 PyErr_NoMemory();
30165 D(p->level--);
30166 return NULL;
30167 }
30168 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30169 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010030170 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30171 D(p->level--);
30172 return _seq;
30173}
30174
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030175// _tmp_150: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030176static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030177_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030178{
30179 D(p->level++);
30180 if (p->error_indicator) {
30181 D(p->level--);
30182 return NULL;
30183 }
30184 void * _res = NULL;
30185 int _mark = p->mark;
30186 { // yield_expr
30187 if (p->error_indicator) {
30188 D(p->level--);
30189 return NULL;
30190 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030191 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030192 expr_ty yield_expr_var;
30193 if (
30194 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30195 )
30196 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030197 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 -080030198 _res = yield_expr_var;
30199 goto done;
30200 }
30201 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030202 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30204 }
30205 { // star_expressions
30206 if (p->error_indicator) {
30207 D(p->level--);
30208 return NULL;
30209 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030210 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030211 expr_ty star_expressions_var;
30212 if (
30213 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30214 )
30215 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030216 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 -080030217 _res = star_expressions_var;
30218 goto done;
30219 }
30220 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030221 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30223 }
30224 _res = NULL;
30225 done:
30226 D(p->level--);
30227 return _res;
30228}
30229
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030230// _tmp_151: '[' | '(' | '{'
30231static void *
30232_tmp_151_rule(Parser *p)
30233{
30234 D(p->level++);
30235 if (p->error_indicator) {
30236 D(p->level--);
30237 return NULL;
30238 }
30239 void * _res = NULL;
30240 int _mark = p->mark;
30241 { // '['
30242 if (p->error_indicator) {
30243 D(p->level--);
30244 return NULL;
30245 }
30246 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30247 Token * _literal;
30248 if (
30249 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30250 )
30251 {
30252 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30253 _res = _literal;
30254 goto done;
30255 }
30256 p->mark = _mark;
30257 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30259 }
30260 { // '('
30261 if (p->error_indicator) {
30262 D(p->level--);
30263 return NULL;
30264 }
30265 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30266 Token * _literal;
30267 if (
30268 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30269 )
30270 {
30271 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30272 _res = _literal;
30273 goto done;
30274 }
30275 p->mark = _mark;
30276 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30278 }
30279 { // '{'
30280 if (p->error_indicator) {
30281 D(p->level--);
30282 return NULL;
30283 }
30284 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30285 Token * _literal;
30286 if (
30287 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30288 )
30289 {
30290 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30291 _res = _literal;
30292 goto done;
30293 }
30294 p->mark = _mark;
30295 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30297 }
30298 _res = NULL;
30299 done:
30300 D(p->level--);
30301 return _res;
30302}
30303
30304// _tmp_152: '[' | '{'
30305static void *
30306_tmp_152_rule(Parser *p)
30307{
30308 D(p->level++);
30309 if (p->error_indicator) {
30310 D(p->level--);
30311 return NULL;
30312 }
30313 void * _res = NULL;
30314 int _mark = p->mark;
30315 { // '['
30316 if (p->error_indicator) {
30317 D(p->level--);
30318 return NULL;
30319 }
30320 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30321 Token * _literal;
30322 if (
30323 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30324 )
30325 {
30326 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30327 _res = _literal;
30328 goto done;
30329 }
30330 p->mark = _mark;
30331 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30333 }
30334 { // '{'
30335 if (p->error_indicator) {
30336 D(p->level--);
30337 return NULL;
30338 }
30339 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30340 Token * _literal;
30341 if (
30342 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30343 )
30344 {
30345 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30346 _res = _literal;
30347 goto done;
30348 }
30349 p->mark = _mark;
30350 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30352 }
30353 _res = NULL;
30354 done:
30355 D(p->level--);
30356 return _res;
30357}
30358
30359// _tmp_153: '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030360static void *
30361_tmp_153_rule(Parser *p)
30362{
30363 D(p->level++);
30364 if (p->error_indicator) {
30365 D(p->level--);
30366 return NULL;
30367 }
30368 void * _res = NULL;
30369 int _mark = p->mark;
30370 { // '['
30371 if (p->error_indicator) {
30372 D(p->level--);
30373 return NULL;
30374 }
30375 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30376 Token * _literal;
30377 if (
30378 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30379 )
30380 {
30381 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30382 _res = _literal;
30383 goto done;
30384 }
30385 p->mark = _mark;
30386 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30387 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30388 }
30389 { // '{'
30390 if (p->error_indicator) {
30391 D(p->level--);
30392 return NULL;
30393 }
30394 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30395 Token * _literal;
30396 if (
30397 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30398 )
30399 {
30400 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30401 _res = _literal;
30402 goto done;
30403 }
30404 p->mark = _mark;
30405 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30407 }
30408 _res = NULL;
30409 done:
30410 D(p->level--);
30411 return _res;
30412}
30413
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030414// _loop0_154: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030415static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030416_loop0_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030417{
30418 D(p->level++);
30419 if (p->error_indicator) {
30420 D(p->level--);
30421 return NULL;
30422 }
30423 void *_res = NULL;
30424 int _mark = p->mark;
30425 int _start_mark = p->mark;
30426 void **_children = PyMem_Malloc(sizeof(void *));
30427 if (!_children) {
30428 p->error_indicator = 1;
30429 PyErr_NoMemory();
30430 D(p->level--);
30431 return NULL;
30432 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030433 Py_ssize_t _children_capacity = 1;
30434 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030435 { // param_no_default
30436 if (p->error_indicator) {
30437 D(p->level--);
30438 return NULL;
30439 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030440 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 -080030441 arg_ty param_no_default_var;
30442 while (
30443 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30444 )
30445 {
30446 _res = param_no_default_var;
30447 if (_n == _children_capacity) {
30448 _children_capacity *= 2;
30449 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30450 if (!_new_children) {
30451 p->error_indicator = 1;
30452 PyErr_NoMemory();
30453 D(p->level--);
30454 return NULL;
30455 }
30456 _children = _new_children;
30457 }
30458 _children[_n++] = _res;
30459 _mark = p->mark;
30460 }
30461 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030462 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30464 }
30465 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30466 if (!_seq) {
30467 PyMem_Free(_children);
30468 p->error_indicator = 1;
30469 PyErr_NoMemory();
30470 D(p->level--);
30471 return NULL;
30472 }
30473 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30474 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030475 _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030476 D(p->level--);
30477 return _seq;
30478}
30479
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030480// _loop1_155: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030481static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030482_loop1_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030483{
30484 D(p->level++);
30485 if (p->error_indicator) {
30486 D(p->level--);
30487 return NULL;
30488 }
30489 void *_res = NULL;
30490 int _mark = p->mark;
30491 int _start_mark = p->mark;
30492 void **_children = PyMem_Malloc(sizeof(void *));
30493 if (!_children) {
30494 p->error_indicator = 1;
30495 PyErr_NoMemory();
30496 D(p->level--);
30497 return NULL;
30498 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030499 Py_ssize_t _children_capacity = 1;
30500 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030501 { // param_with_default
30502 if (p->error_indicator) {
30503 D(p->level--);
30504 return NULL;
30505 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030506 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 -080030507 NameDefaultPair* param_with_default_var;
30508 while (
30509 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30510 )
30511 {
30512 _res = param_with_default_var;
30513 if (_n == _children_capacity) {
30514 _children_capacity *= 2;
30515 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30516 if (!_new_children) {
30517 p->error_indicator = 1;
30518 PyErr_NoMemory();
30519 D(p->level--);
30520 return NULL;
30521 }
30522 _children = _new_children;
30523 }
30524 _children[_n++] = _res;
30525 _mark = p->mark;
30526 }
30527 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030528 D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30530 }
30531 if (_n == 0 || p->error_indicator) {
30532 PyMem_Free(_children);
30533 D(p->level--);
30534 return NULL;
30535 }
30536 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30537 if (!_seq) {
30538 PyMem_Free(_children);
30539 p->error_indicator = 1;
30540 PyErr_NoMemory();
30541 D(p->level--);
30542 return NULL;
30543 }
30544 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30545 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030546 _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030547 D(p->level--);
30548 return _seq;
30549}
30550
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030551// _loop0_156: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030552static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030553_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030554{
30555 D(p->level++);
30556 if (p->error_indicator) {
30557 D(p->level--);
30558 return NULL;
30559 }
30560 void *_res = NULL;
30561 int _mark = p->mark;
30562 int _start_mark = p->mark;
30563 void **_children = PyMem_Malloc(sizeof(void *));
30564 if (!_children) {
30565 p->error_indicator = 1;
30566 PyErr_NoMemory();
30567 D(p->level--);
30568 return NULL;
30569 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030570 Py_ssize_t _children_capacity = 1;
30571 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030572 { // lambda_param_no_default
30573 if (p->error_indicator) {
30574 D(p->level--);
30575 return NULL;
30576 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030577 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 -080030578 arg_ty lambda_param_no_default_var;
30579 while (
30580 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30581 )
30582 {
30583 _res = lambda_param_no_default_var;
30584 if (_n == _children_capacity) {
30585 _children_capacity *= 2;
30586 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30587 if (!_new_children) {
30588 p->error_indicator = 1;
30589 PyErr_NoMemory();
30590 D(p->level--);
30591 return NULL;
30592 }
30593 _children = _new_children;
30594 }
30595 _children[_n++] = _res;
30596 _mark = p->mark;
30597 }
30598 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030599 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30601 }
30602 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30603 if (!_seq) {
30604 PyMem_Free(_children);
30605 p->error_indicator = 1;
30606 PyErr_NoMemory();
30607 D(p->level--);
30608 return NULL;
30609 }
30610 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30611 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030612 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030613 D(p->level--);
30614 return _seq;
30615}
30616
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030617// _loop1_157: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030618static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030619_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030620{
30621 D(p->level++);
30622 if (p->error_indicator) {
30623 D(p->level--);
30624 return NULL;
30625 }
30626 void *_res = NULL;
30627 int _mark = p->mark;
30628 int _start_mark = p->mark;
30629 void **_children = PyMem_Malloc(sizeof(void *));
30630 if (!_children) {
30631 p->error_indicator = 1;
30632 PyErr_NoMemory();
30633 D(p->level--);
30634 return NULL;
30635 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030636 Py_ssize_t _children_capacity = 1;
30637 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030638 { // lambda_param_with_default
30639 if (p->error_indicator) {
30640 D(p->level--);
30641 return NULL;
30642 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030643 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 -080030644 NameDefaultPair* lambda_param_with_default_var;
30645 while (
30646 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30647 )
30648 {
30649 _res = lambda_param_with_default_var;
30650 if (_n == _children_capacity) {
30651 _children_capacity *= 2;
30652 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30653 if (!_new_children) {
30654 p->error_indicator = 1;
30655 PyErr_NoMemory();
30656 D(p->level--);
30657 return NULL;
30658 }
30659 _children = _new_children;
30660 }
30661 _children[_n++] = _res;
30662 _mark = p->mark;
30663 }
30664 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030665 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30667 }
30668 if (_n == 0 || p->error_indicator) {
30669 PyMem_Free(_children);
30670 D(p->level--);
30671 return NULL;
30672 }
30673 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30674 if (!_seq) {
30675 PyMem_Free(_children);
30676 p->error_indicator = 1;
30677 PyErr_NoMemory();
30678 D(p->level--);
30679 return NULL;
30680 }
30681 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30682 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030683 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030684 D(p->level--);
30685 return _seq;
30686}
30687
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030688// _tmp_158: ')' | ',' (')' | '**')
30689static void *
30690_tmp_158_rule(Parser *p)
30691{
30692 D(p->level++);
30693 if (p->error_indicator) {
30694 D(p->level--);
30695 return NULL;
30696 }
30697 void * _res = NULL;
30698 int _mark = p->mark;
30699 { // ')'
30700 if (p->error_indicator) {
30701 D(p->level--);
30702 return NULL;
30703 }
30704 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
30705 Token * _literal;
30706 if (
30707 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30708 )
30709 {
30710 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
30711 _res = _literal;
30712 goto done;
30713 }
30714 p->mark = _mark;
30715 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
30716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
30717 }
30718 { // ',' (')' | '**')
30719 if (p->error_indicator) {
30720 D(p->level--);
30721 return NULL;
30722 }
30723 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
30724 Token * _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030725 void *_tmp_194_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030726 if (
30727 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30728 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030729 (_tmp_194_var = _tmp_194_rule(p)) // ')' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030730 )
30731 {
30732 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030733 _res = _PyPegen_dummy_name(p, _literal, _tmp_194_var);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030734 goto done;
30735 }
30736 p->mark = _mark;
30737 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
30738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
30739 }
30740 _res = NULL;
30741 done:
30742 D(p->level--);
30743 return _res;
30744}
30745
30746// _tmp_159: ':' | ',' (':' | '**')
30747static void *
30748_tmp_159_rule(Parser *p)
30749{
30750 D(p->level++);
30751 if (p->error_indicator) {
30752 D(p->level--);
30753 return NULL;
30754 }
30755 void * _res = NULL;
30756 int _mark = p->mark;
30757 { // ':'
30758 if (p->error_indicator) {
30759 D(p->level--);
30760 return NULL;
30761 }
30762 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30763 Token * _literal;
30764 if (
30765 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30766 )
30767 {
30768 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30769 _res = _literal;
30770 goto done;
30771 }
30772 p->mark = _mark;
30773 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30775 }
30776 { // ',' (':' | '**')
30777 if (p->error_indicator) {
30778 D(p->level--);
30779 return NULL;
30780 }
30781 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30782 Token * _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030783 void *_tmp_195_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030784 if (
30785 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30786 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030787 (_tmp_195_var = _tmp_195_rule(p)) // ':' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030788 )
30789 {
30790 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030791 _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030792 goto done;
30793 }
30794 p->mark = _mark;
30795 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
30797 }
30798 _res = NULL;
30799 done:
30800 D(p->level--);
30801 return _res;
30802}
30803
30804// _tmp_160: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030805static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030806_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030807{
30808 D(p->level++);
30809 if (p->error_indicator) {
30810 D(p->level--);
30811 return NULL;
30812 }
30813 void * _res = NULL;
30814 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030815 { // ','
30816 if (p->error_indicator) {
30817 D(p->level--);
30818 return NULL;
30819 }
30820 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30821 Token * _literal;
30822 if (
30823 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30824 )
30825 {
30826 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30827 _res = _literal;
30828 goto done;
30829 }
30830 p->mark = _mark;
30831 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30833 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030834 { // ')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030835 if (p->error_indicator) {
30836 D(p->level--);
30837 return NULL;
30838 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030839 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030840 Token * _literal;
30841 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030842 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030843 )
30844 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030845 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030846 _res = _literal;
30847 goto done;
30848 }
30849 p->mark = _mark;
30850 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030852 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030853 { // ':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030854 if (p->error_indicator) {
30855 D(p->level--);
30856 return NULL;
30857 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030858 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030859 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030860 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030861 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030862 )
30863 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030864 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30865 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030866 goto done;
30867 }
30868 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030869 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30871 }
30872 _res = NULL;
30873 done:
30874 D(p->level--);
30875 return _res;
30876}
30877
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030878// _loop0_162: ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030879static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030880_loop0_162_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030881{
30882 D(p->level++);
30883 if (p->error_indicator) {
30884 D(p->level--);
30885 return NULL;
30886 }
30887 void *_res = NULL;
30888 int _mark = p->mark;
30889 int _start_mark = p->mark;
30890 void **_children = PyMem_Malloc(sizeof(void *));
30891 if (!_children) {
30892 p->error_indicator = 1;
30893 PyErr_NoMemory();
30894 D(p->level--);
30895 return NULL;
30896 }
30897 Py_ssize_t _children_capacity = 1;
30898 Py_ssize_t _n = 0;
30899 { // ',' (expression ['as' star_target])
30900 if (p->error_indicator) {
30901 D(p->level--);
30902 return NULL;
30903 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030904 D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030905 Token * _literal;
30906 void *elem;
30907 while (
30908 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30909 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030910 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030911 )
30912 {
30913 _res = elem;
30914 if (_res == NULL && PyErr_Occurred()) {
30915 p->error_indicator = 1;
30916 PyMem_Free(_children);
30917 D(p->level--);
30918 return NULL;
30919 }
30920 if (_n == _children_capacity) {
30921 _children_capacity *= 2;
30922 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30923 if (!_new_children) {
30924 p->error_indicator = 1;
30925 PyErr_NoMemory();
30926 D(p->level--);
30927 return NULL;
30928 }
30929 _children = _new_children;
30930 }
30931 _children[_n++] = _res;
30932 _mark = p->mark;
30933 }
30934 p->mark = _mark;
30935 D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
30936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30937 }
30938 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30939 if (!_seq) {
30940 PyMem_Free(_children);
30941 p->error_indicator = 1;
30942 PyErr_NoMemory();
30943 D(p->level--);
30944 return NULL;
30945 }
30946 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30947 PyMem_Free(_children);
30948 _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
30949 D(p->level--);
30950 return _seq;
30951}
30952
30953// _gather_161: (expression ['as' star_target]) _loop0_162
30954static asdl_seq *
30955_gather_161_rule(Parser *p)
30956{
30957 D(p->level++);
30958 if (p->error_indicator) {
30959 D(p->level--);
30960 return NULL;
30961 }
30962 asdl_seq * _res = NULL;
30963 int _mark = p->mark;
30964 { // (expression ['as' star_target]) _loop0_162
30965 if (p->error_indicator) {
30966 D(p->level--);
30967 return NULL;
30968 }
30969 D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30970 void *elem;
30971 asdl_seq * seq;
30972 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030973 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030974 &&
30975 (seq = _loop0_162_rule(p)) // _loop0_162
30976 )
30977 {
30978 D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30979 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30980 goto done;
30981 }
30982 p->mark = _mark;
30983 D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ',
30984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30985 }
30986 _res = NULL;
30987 done:
30988 D(p->level--);
30989 return _res;
30990}
30991
30992// _loop0_164: ',' (expressions ['as' star_target])
30993static asdl_seq *
30994_loop0_164_rule(Parser *p)
30995{
30996 D(p->level++);
30997 if (p->error_indicator) {
30998 D(p->level--);
30999 return NULL;
31000 }
31001 void *_res = NULL;
31002 int _mark = p->mark;
31003 int _start_mark = p->mark;
31004 void **_children = PyMem_Malloc(sizeof(void *));
31005 if (!_children) {
31006 p->error_indicator = 1;
31007 PyErr_NoMemory();
31008 D(p->level--);
31009 return NULL;
31010 }
31011 Py_ssize_t _children_capacity = 1;
31012 Py_ssize_t _n = 0;
31013 { // ',' (expressions ['as' star_target])
31014 if (p->error_indicator) {
31015 D(p->level--);
31016 return NULL;
31017 }
31018 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31019 Token * _literal;
31020 void *elem;
31021 while (
31022 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31023 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031024 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031025 )
31026 {
31027 _res = elem;
31028 if (_res == NULL && PyErr_Occurred()) {
31029 p->error_indicator = 1;
31030 PyMem_Free(_children);
31031 D(p->level--);
31032 return NULL;
31033 }
31034 if (_n == _children_capacity) {
31035 _children_capacity *= 2;
31036 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31037 if (!_new_children) {
31038 p->error_indicator = 1;
31039 PyErr_NoMemory();
31040 D(p->level--);
31041 return NULL;
31042 }
31043 _children = _new_children;
31044 }
31045 _children[_n++] = _res;
31046 _mark = p->mark;
31047 }
31048 p->mark = _mark;
31049 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031051 }
31052 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31053 if (!_seq) {
31054 PyMem_Free(_children);
31055 p->error_indicator = 1;
31056 PyErr_NoMemory();
31057 D(p->level--);
31058 return NULL;
31059 }
31060 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31061 PyMem_Free(_children);
31062 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
31063 D(p->level--);
31064 return _seq;
31065}
31066
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031067// _gather_163: (expressions ['as' star_target]) _loop0_164
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031068static asdl_seq *
31069_gather_163_rule(Parser *p)
31070{
31071 D(p->level++);
31072 if (p->error_indicator) {
31073 D(p->level--);
31074 return NULL;
31075 }
31076 asdl_seq * _res = NULL;
31077 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031078 { // (expressions ['as' star_target]) _loop0_164
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031079 if (p->error_indicator) {
31080 D(p->level--);
31081 return NULL;
31082 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031083 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031084 void *elem;
31085 asdl_seq * seq;
31086 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031087 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031088 &&
31089 (seq = _loop0_164_rule(p)) // _loop0_164
31090 )
31091 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031092 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031093 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31094 goto done;
31095 }
31096 p->mark = _mark;
31097 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031099 }
31100 _res = NULL;
31101 done:
31102 D(p->level--);
31103 return _res;
31104}
31105
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031106// _loop0_166: ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031107static asdl_seq *
31108_loop0_166_rule(Parser *p)
31109{
31110 D(p->level++);
31111 if (p->error_indicator) {
31112 D(p->level--);
31113 return NULL;
31114 }
31115 void *_res = NULL;
31116 int _mark = p->mark;
31117 int _start_mark = p->mark;
31118 void **_children = PyMem_Malloc(sizeof(void *));
31119 if (!_children) {
31120 p->error_indicator = 1;
31121 PyErr_NoMemory();
31122 D(p->level--);
31123 return NULL;
31124 }
31125 Py_ssize_t _children_capacity = 1;
31126 Py_ssize_t _n = 0;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031127 { // ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031128 if (p->error_indicator) {
31129 D(p->level--);
31130 return NULL;
31131 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031132 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031133 Token * _literal;
31134 void *elem;
31135 while (
31136 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31137 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031138 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031139 )
31140 {
31141 _res = elem;
31142 if (_res == NULL && PyErr_Occurred()) {
31143 p->error_indicator = 1;
31144 PyMem_Free(_children);
31145 D(p->level--);
31146 return NULL;
31147 }
31148 if (_n == _children_capacity) {
31149 _children_capacity *= 2;
31150 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31151 if (!_new_children) {
31152 p->error_indicator = 1;
31153 PyErr_NoMemory();
31154 D(p->level--);
31155 return NULL;
31156 }
31157 _children = _new_children;
31158 }
31159 _children[_n++] = _res;
31160 _mark = p->mark;
31161 }
31162 p->mark = _mark;
31163 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031165 }
31166 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31167 if (!_seq) {
31168 PyMem_Free(_children);
31169 p->error_indicator = 1;
31170 PyErr_NoMemory();
31171 D(p->level--);
31172 return NULL;
31173 }
31174 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31175 PyMem_Free(_children);
31176 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
31177 D(p->level--);
31178 return _seq;
31179}
31180
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031181// _gather_165: (expression ['as' star_target]) _loop0_166
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031182static asdl_seq *
31183_gather_165_rule(Parser *p)
31184{
31185 D(p->level++);
31186 if (p->error_indicator) {
31187 D(p->level--);
31188 return NULL;
31189 }
31190 asdl_seq * _res = NULL;
31191 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031192 { // (expression ['as' star_target]) _loop0_166
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031193 if (p->error_indicator) {
31194 D(p->level--);
31195 return NULL;
31196 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031197 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031198 void *elem;
31199 asdl_seq * seq;
31200 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031201 (elem = _tmp_198_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031202 &&
31203 (seq = _loop0_166_rule(p)) // _loop0_166
31204 )
31205 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031206 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031207 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31208 goto done;
31209 }
31210 p->mark = _mark;
31211 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031213 }
31214 _res = NULL;
31215 done:
31216 D(p->level--);
31217 return _res;
31218}
31219
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031220// _loop0_168: ',' (expressions ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031221static asdl_seq *
31222_loop0_168_rule(Parser *p)
31223{
31224 D(p->level++);
31225 if (p->error_indicator) {
31226 D(p->level--);
31227 return NULL;
31228 }
31229 void *_res = NULL;
31230 int _mark = p->mark;
31231 int _start_mark = p->mark;
31232 void **_children = PyMem_Malloc(sizeof(void *));
31233 if (!_children) {
31234 p->error_indicator = 1;
31235 PyErr_NoMemory();
31236 D(p->level--);
31237 return NULL;
31238 }
31239 Py_ssize_t _children_capacity = 1;
31240 Py_ssize_t _n = 0;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031241 { // ',' (expressions ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031242 if (p->error_indicator) {
31243 D(p->level--);
31244 return NULL;
31245 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031246 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031247 Token * _literal;
31248 void *elem;
31249 while (
31250 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31251 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031252 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031253 )
31254 {
31255 _res = elem;
31256 if (_res == NULL && PyErr_Occurred()) {
31257 p->error_indicator = 1;
31258 PyMem_Free(_children);
31259 D(p->level--);
31260 return NULL;
31261 }
31262 if (_n == _children_capacity) {
31263 _children_capacity *= 2;
31264 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31265 if (!_new_children) {
31266 p->error_indicator = 1;
31267 PyErr_NoMemory();
31268 D(p->level--);
31269 return NULL;
31270 }
31271 _children = _new_children;
31272 }
31273 _children[_n++] = _res;
31274 _mark = p->mark;
31275 }
31276 p->mark = _mark;
31277 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031279 }
31280 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31281 if (!_seq) {
31282 PyMem_Free(_children);
31283 p->error_indicator = 1;
31284 PyErr_NoMemory();
31285 D(p->level--);
31286 return NULL;
31287 }
31288 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31289 PyMem_Free(_children);
31290 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31291 D(p->level--);
31292 return _seq;
31293}
31294
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031295// _gather_167: (expressions ['as' star_target]) _loop0_168
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031296static asdl_seq *
31297_gather_167_rule(Parser *p)
31298{
31299 D(p->level++);
31300 if (p->error_indicator) {
31301 D(p->level--);
31302 return NULL;
31303 }
31304 asdl_seq * _res = NULL;
31305 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031306 { // (expressions ['as' star_target]) _loop0_168
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031307 if (p->error_indicator) {
31308 D(p->level--);
31309 return NULL;
31310 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031311 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031312 void *elem;
31313 asdl_seq * seq;
31314 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031315 (elem = _tmp_199_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031316 &&
31317 (seq = _loop0_168_rule(p)) // _loop0_168
31318 )
31319 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031320 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031321 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31322 goto done;
31323 }
31324 p->mark = _mark;
31325 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031327 }
31328 _res = NULL;
31329 done:
31330 D(p->level--);
31331 return _res;
31332}
31333
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031334// _tmp_169: 'except' | 'finally'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031335static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031336_tmp_169_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031337{
31338 D(p->level++);
31339 if (p->error_indicator) {
31340 D(p->level--);
31341 return NULL;
31342 }
31343 void * _res = NULL;
31344 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031345 { // 'except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031346 if (p->error_indicator) {
31347 D(p->level--);
31348 return NULL;
31349 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031350 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031351 Token * _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031352 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031353 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031354 )
31355 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031356 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031357 _res = _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031358 goto done;
31359 }
31360 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031361 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
31363 }
31364 { // 'finally'
31365 if (p->error_indicator) {
31366 D(p->level--);
31367 return NULL;
31368 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031369 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031370 Token * _keyword;
31371 if (
31372 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
31373 )
31374 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031375 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031376 _res = _keyword;
31377 goto done;
31378 }
31379 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031380 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031382 }
31383 _res = NULL;
31384 done:
31385 D(p->level--);
31386 return _res;
31387}
31388
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031389// _tmp_170: 'as' NAME
31390static void *
31391_tmp_170_rule(Parser *p)
31392{
31393 D(p->level++);
31394 if (p->error_indicator) {
31395 D(p->level--);
31396 return NULL;
31397 }
31398 void * _res = NULL;
31399 int _mark = p->mark;
31400 { // 'as' NAME
31401 if (p->error_indicator) {
31402 D(p->level--);
31403 return NULL;
31404 }
31405 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31406 Token * _keyword;
31407 expr_ty name_var;
31408 if (
31409 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31410 &&
31411 (name_var = _PyPegen_name_token(p)) // NAME
31412 )
31413 {
31414 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31415 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31416 goto done;
31417 }
31418 p->mark = _mark;
31419 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
31420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31421 }
31422 _res = NULL;
31423 done:
31424 D(p->level--);
31425 return _res;
31426}
31427
31428// _tmp_171: 'as' NAME
31429static void *
31430_tmp_171_rule(Parser *p)
31431{
31432 D(p->level++);
31433 if (p->error_indicator) {
31434 D(p->level--);
31435 return NULL;
31436 }
31437 void * _res = NULL;
31438 int _mark = p->mark;
31439 { // 'as' NAME
31440 if (p->error_indicator) {
31441 D(p->level--);
31442 return NULL;
31443 }
31444 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31445 Token * _keyword;
31446 expr_ty name_var;
31447 if (
31448 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31449 &&
31450 (name_var = _PyPegen_name_token(p)) // NAME
31451 )
31452 {
31453 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31454 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31455 goto done;
31456 }
31457 p->mark = _mark;
31458 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31460 }
31461 _res = NULL;
31462 done:
31463 D(p->level--);
31464 return _res;
31465}
31466
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031467// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031468static void *
31469_tmp_172_rule(Parser *p)
31470{
31471 D(p->level++);
31472 if (p->error_indicator) {
31473 D(p->level--);
31474 return NULL;
31475 }
31476 void * _res = NULL;
31477 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031478 { // 'as' NAME
31479 if (p->error_indicator) {
31480 D(p->level--);
31481 return NULL;
31482 }
31483 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31484 Token * _keyword;
31485 expr_ty name_var;
31486 if (
31487 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31488 &&
31489 (name_var = _PyPegen_name_token(p)) // NAME
31490 )
31491 {
31492 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31493 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31494 goto done;
31495 }
31496 p->mark = _mark;
31497 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31499 }
31500 _res = NULL;
31501 done:
31502 D(p->level--);
31503 return _res;
31504}
31505
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031506// _tmp_173: positional_patterns ','
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031507static void *
31508_tmp_173_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;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031517 { // positional_patterns ','
31518 if (p->error_indicator) {
31519 D(p->level--);
31520 return NULL;
31521 }
31522 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
31523 Token * _literal;
31524 asdl_pattern_seq* positional_patterns_var;
31525 if (
31526 (positional_patterns_var = positional_patterns_rule(p)) // positional_patterns
31527 &&
31528 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31529 )
31530 {
31531 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
31532 _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
31533 goto done;
31534 }
31535 p->mark = _mark;
31536 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
31537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
31538 }
31539 _res = NULL;
31540 done:
31541 D(p->level--);
31542 return _res;
31543}
31544
31545// _tmp_174: '->' expression
31546static void *
31547_tmp_174_rule(Parser *p)
31548{
31549 D(p->level++);
31550 if (p->error_indicator) {
31551 D(p->level--);
31552 return NULL;
31553 }
31554 void * _res = NULL;
31555 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031556 { // '->' expression
31557 if (p->error_indicator) {
31558 D(p->level--);
31559 return NULL;
31560 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031561 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031562 Token * _literal;
31563 expr_ty expression_var;
31564 if (
31565 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31566 &&
31567 (expression_var = expression_rule(p)) // expression
31568 )
31569 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031570 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031571 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31572 goto done;
31573 }
31574 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031575 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31577 }
31578 _res = NULL;
31579 done:
31580 D(p->level--);
31581 return _res;
31582}
31583
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031584// _tmp_175: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031585static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031586_tmp_175_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031587{
31588 D(p->level++);
31589 if (p->error_indicator) {
31590 D(p->level--);
31591 return NULL;
31592 }
31593 void * _res = NULL;
31594 int _mark = p->mark;
31595 { // '(' arguments? ')'
31596 if (p->error_indicator) {
31597 D(p->level--);
31598 return NULL;
31599 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031600 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031601 Token * _literal;
31602 Token * _literal_1;
31603 void *_opt_var;
31604 UNUSED(_opt_var); // Silence compiler warnings
31605 if (
31606 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31607 &&
31608 (_opt_var = arguments_rule(p), 1) // arguments?
31609 &&
31610 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31611 )
31612 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031613 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031614 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31615 goto done;
31616 }
31617 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031618 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31620 }
31621 _res = NULL;
31622 done:
31623 D(p->level--);
31624 return _res;
31625}
31626
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031627// _loop0_177: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031628static asdl_seq *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031629_loop0_177_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031630{
31631 D(p->level++);
31632 if (p->error_indicator) {
31633 D(p->level--);
31634 return NULL;
31635 }
31636 void *_res = NULL;
31637 int _mark = p->mark;
31638 int _start_mark = p->mark;
31639 void **_children = PyMem_Malloc(sizeof(void *));
31640 if (!_children) {
31641 p->error_indicator = 1;
31642 PyErr_NoMemory();
31643 D(p->level--);
31644 return NULL;
31645 }
31646 Py_ssize_t _children_capacity = 1;
31647 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031648 { // ',' double_starred_kvpair
31649 if (p->error_indicator) {
31650 D(p->level--);
31651 return NULL;
31652 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031653 D(fprintf(stderr, "%*c> _loop0_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031654 Token * _literal;
31655 KeyValuePair* elem;
31656 while (
31657 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31658 &&
31659 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31660 )
31661 {
31662 _res = elem;
31663 if (_res == NULL && PyErr_Occurred()) {
31664 p->error_indicator = 1;
31665 PyMem_Free(_children);
31666 D(p->level--);
31667 return NULL;
31668 }
31669 if (_n == _children_capacity) {
31670 _children_capacity *= 2;
31671 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31672 if (!_new_children) {
31673 p->error_indicator = 1;
31674 PyErr_NoMemory();
31675 D(p->level--);
31676 return NULL;
31677 }
31678 _children = _new_children;
31679 }
31680 _children[_n++] = _res;
31681 _mark = p->mark;
31682 }
31683 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031684 D(fprintf(stderr, "%*c%s _loop0_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31686 }
31687 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31688 if (!_seq) {
31689 PyMem_Free(_children);
31690 p->error_indicator = 1;
31691 PyErr_NoMemory();
31692 D(p->level--);
31693 return NULL;
31694 }
31695 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31696 PyMem_Free(_children);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031697 _PyPegen_insert_memo(p, _start_mark, _loop0_177_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031698 D(p->level--);
31699 return _seq;
31700}
31701
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031702// _gather_176: double_starred_kvpair _loop0_177
Pablo Galindoda743502021-04-15 14:06:39 +010031703static asdl_seq *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031704_gather_176_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031705{
31706 D(p->level++);
31707 if (p->error_indicator) {
31708 D(p->level--);
31709 return NULL;
31710 }
31711 asdl_seq * _res = NULL;
31712 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031713 { // double_starred_kvpair _loop0_177
Pablo Galindoda743502021-04-15 14:06:39 +010031714 if (p->error_indicator) {
31715 D(p->level--);
31716 return NULL;
31717 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031718 D(fprintf(stderr, "%*c> _gather_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177"));
Pablo Galindoda743502021-04-15 14:06:39 +010031719 KeyValuePair* elem;
31720 asdl_seq * seq;
31721 if (
31722 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31723 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031724 (seq = _loop0_177_rule(p)) // _loop0_177
Pablo Galindoda743502021-04-15 14:06:39 +010031725 )
31726 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031727 D(fprintf(stderr, "%*c+ _gather_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177"));
Pablo Galindoda743502021-04-15 14:06:39 +010031728 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31729 goto done;
31730 }
31731 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031732 D(fprintf(stderr, "%*c%s _gather_176[%d-%d]: %s failed!\n", p->level, ' ',
31733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_177"));
Pablo Galindoda743502021-04-15 14:06:39 +010031734 }
31735 _res = NULL;
31736 done:
31737 D(p->level--);
31738 return _res;
31739}
31740
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031741// _tmp_178: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031742static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031743_tmp_178_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031744{
31745 D(p->level++);
31746 if (p->error_indicator) {
31747 D(p->level--);
31748 return NULL;
31749 }
31750 void * _res = NULL;
31751 int _mark = p->mark;
31752 { // '}'
31753 if (p->error_indicator) {
31754 D(p->level--);
31755 return NULL;
31756 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031757 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031758 Token * _literal;
31759 if (
31760 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31761 )
31762 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031763 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031764 _res = _literal;
31765 goto done;
31766 }
31767 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031768 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31770 }
31771 { // ','
31772 if (p->error_indicator) {
31773 D(p->level--);
31774 return NULL;
31775 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031776 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031777 Token * _literal;
31778 if (
31779 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31780 )
31781 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031782 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031783 _res = _literal;
31784 goto done;
31785 }
31786 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031787 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31789 }
31790 _res = NULL;
31791 done:
31792 D(p->level--);
31793 return _res;
31794}
31795
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031796// _tmp_179: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031797static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031798_tmp_179_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031799{
31800 D(p->level++);
31801 if (p->error_indicator) {
31802 D(p->level--);
31803 return NULL;
31804 }
31805 void * _res = NULL;
31806 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031807 { // star_targets '='
31808 if (p->error_indicator) {
31809 D(p->level--);
31810 return NULL;
31811 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031812 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031813 Token * _literal;
31814 expr_ty z;
31815 if (
31816 (z = star_targets_rule(p)) // star_targets
31817 &&
31818 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31819 )
31820 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031821 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031822 _res = z;
31823 if (_res == NULL && PyErr_Occurred()) {
31824 p->error_indicator = 1;
31825 D(p->level--);
31826 return NULL;
31827 }
31828 goto done;
31829 }
31830 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031831 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31833 }
31834 _res = NULL;
31835 done:
31836 D(p->level--);
31837 return _res;
31838}
31839
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031840// _tmp_180: '.' | '...'
31841static void *
31842_tmp_180_rule(Parser *p)
31843{
31844 D(p->level++);
31845 if (p->error_indicator) {
31846 D(p->level--);
31847 return NULL;
31848 }
31849 void * _res = NULL;
31850 int _mark = p->mark;
31851 { // '.'
31852 if (p->error_indicator) {
31853 D(p->level--);
31854 return NULL;
31855 }
31856 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31857 Token * _literal;
31858 if (
31859 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31860 )
31861 {
31862 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31863 _res = _literal;
31864 goto done;
31865 }
31866 p->mark = _mark;
31867 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31869 }
31870 { // '...'
31871 if (p->error_indicator) {
31872 D(p->level--);
31873 return NULL;
31874 }
31875 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31876 Token * _literal;
31877 if (
31878 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31879 )
31880 {
31881 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31882 _res = _literal;
31883 goto done;
31884 }
31885 p->mark = _mark;
31886 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31888 }
31889 _res = NULL;
31890 done:
31891 D(p->level--);
31892 return _res;
31893}
31894
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031895// _tmp_181: '.' | '...'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031896static void *
31897_tmp_181_rule(Parser *p)
31898{
31899 D(p->level++);
31900 if (p->error_indicator) {
31901 D(p->level--);
31902 return NULL;
31903 }
31904 void * _res = NULL;
31905 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031906 { // '.'
31907 if (p->error_indicator) {
31908 D(p->level--);
31909 return NULL;
31910 }
31911 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31912 Token * _literal;
31913 if (
31914 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31915 )
31916 {
31917 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31918 _res = _literal;
31919 goto done;
31920 }
31921 p->mark = _mark;
31922 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
31923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31924 }
31925 { // '...'
31926 if (p->error_indicator) {
31927 D(p->level--);
31928 return NULL;
31929 }
31930 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31931 Token * _literal;
31932 if (
31933 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31934 )
31935 {
31936 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31937 _res = _literal;
31938 goto done;
31939 }
31940 p->mark = _mark;
31941 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
31942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31943 }
31944 _res = NULL;
31945 done:
31946 D(p->level--);
31947 return _res;
31948}
31949
31950// _tmp_182: '@' named_expression NEWLINE
31951static void *
31952_tmp_182_rule(Parser *p)
31953{
31954 D(p->level++);
31955 if (p->error_indicator) {
31956 D(p->level--);
31957 return NULL;
31958 }
31959 void * _res = NULL;
31960 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031961 { // '@' named_expression NEWLINE
31962 if (p->error_indicator) {
31963 D(p->level--);
31964 return NULL;
31965 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031966 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031967 Token * _literal;
31968 expr_ty f;
31969 Token * newline_var;
31970 if (
31971 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
31972 &&
31973 (f = named_expression_rule(p)) // named_expression
31974 &&
31975 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
31976 )
31977 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031978 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031979 _res = f;
31980 if (_res == NULL && PyErr_Occurred()) {
31981 p->error_indicator = 1;
31982 D(p->level--);
31983 return NULL;
31984 }
31985 goto done;
31986 }
31987 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031988 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
31990 }
31991 _res = NULL;
31992 done:
31993 D(p->level--);
31994 return _res;
31995}
31996
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031997// _tmp_183: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031998static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031999_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032000{
32001 D(p->level++);
32002 if (p->error_indicator) {
32003 D(p->level--);
32004 return NULL;
32005 }
32006 void * _res = NULL;
32007 int _mark = p->mark;
32008 { // ',' star_expression
32009 if (p->error_indicator) {
32010 D(p->level--);
32011 return NULL;
32012 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032013 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032014 Token * _literal;
32015 expr_ty c;
32016 if (
32017 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32018 &&
32019 (c = star_expression_rule(p)) // star_expression
32020 )
32021 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032022 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032023 _res = c;
32024 if (_res == NULL && PyErr_Occurred()) {
32025 p->error_indicator = 1;
32026 D(p->level--);
32027 return NULL;
32028 }
32029 goto done;
32030 }
32031 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032032 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
32034 }
32035 _res = NULL;
32036 done:
32037 D(p->level--);
32038 return _res;
32039}
32040
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032041// _tmp_184: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032042static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032043_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032044{
32045 D(p->level++);
32046 if (p->error_indicator) {
32047 D(p->level--);
32048 return NULL;
32049 }
32050 void * _res = NULL;
32051 int _mark = p->mark;
32052 { // ',' expression
32053 if (p->error_indicator) {
32054 D(p->level--);
32055 return NULL;
32056 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032057 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032058 Token * _literal;
32059 expr_ty c;
32060 if (
32061 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32062 &&
32063 (c = expression_rule(p)) // expression
32064 )
32065 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032066 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032067 _res = c;
32068 if (_res == NULL && PyErr_Occurred()) {
32069 p->error_indicator = 1;
32070 D(p->level--);
32071 return NULL;
32072 }
32073 goto done;
32074 }
32075 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032076 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32078 }
32079 _res = NULL;
32080 done:
32081 D(p->level--);
32082 return _res;
32083}
32084
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032085// _tmp_185: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032086static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032087_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032088{
32089 D(p->level++);
32090 if (p->error_indicator) {
32091 D(p->level--);
32092 return NULL;
32093 }
32094 void * _res = NULL;
32095 int _mark = p->mark;
32096 { // 'or' conjunction
32097 if (p->error_indicator) {
32098 D(p->level--);
32099 return NULL;
32100 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032101 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032102 Token * _keyword;
32103 expr_ty c;
32104 if (
32105 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
32106 &&
32107 (c = conjunction_rule(p)) // conjunction
32108 )
32109 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032110 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032111 _res = c;
32112 if (_res == NULL && PyErr_Occurred()) {
32113 p->error_indicator = 1;
32114 D(p->level--);
32115 return NULL;
32116 }
32117 goto done;
32118 }
32119 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032120 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
32122 }
32123 _res = NULL;
32124 done:
32125 D(p->level--);
32126 return _res;
32127}
32128
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032129// _tmp_186: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032130static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032131_tmp_186_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032132{
32133 D(p->level++);
32134 if (p->error_indicator) {
32135 D(p->level--);
32136 return NULL;
32137 }
32138 void * _res = NULL;
32139 int _mark = p->mark;
32140 { // 'and' inversion
32141 if (p->error_indicator) {
32142 D(p->level--);
32143 return NULL;
32144 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032145 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032146 Token * _keyword;
32147 expr_ty c;
32148 if (
32149 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
32150 &&
32151 (c = inversion_rule(p)) // inversion
32152 )
32153 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032154 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032155 _res = c;
32156 if (_res == NULL && PyErr_Occurred()) {
32157 p->error_indicator = 1;
32158 D(p->level--);
32159 return NULL;
32160 }
32161 goto done;
32162 }
32163 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032164 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032166 }
32167 _res = NULL;
32168 done:
32169 D(p->level--);
32170 return _res;
32171}
32172
32173// _tmp_187: 'if' disjunction
32174static void *
32175_tmp_187_rule(Parser *p)
32176{
32177 D(p->level++);
32178 if (p->error_indicator) {
32179 D(p->level--);
32180 return NULL;
32181 }
32182 void * _res = NULL;
32183 int _mark = p->mark;
32184 { // 'if' disjunction
32185 if (p->error_indicator) {
32186 D(p->level--);
32187 return NULL;
32188 }
32189 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32190 Token * _keyword;
32191 expr_ty z;
32192 if (
32193 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32194 &&
32195 (z = disjunction_rule(p)) // disjunction
32196 )
32197 {
32198 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32199 _res = z;
32200 if (_res == NULL && PyErr_Occurred()) {
32201 p->error_indicator = 1;
32202 D(p->level--);
32203 return NULL;
32204 }
32205 goto done;
32206 }
32207 p->mark = _mark;
32208 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
32209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32210 }
32211 _res = NULL;
32212 done:
32213 D(p->level--);
32214 return _res;
32215}
32216
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032217// _tmp_188: 'if' disjunction
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032218static void *
32219_tmp_188_rule(Parser *p)
32220{
32221 D(p->level++);
32222 if (p->error_indicator) {
32223 D(p->level--);
32224 return NULL;
32225 }
32226 void * _res = NULL;
32227 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032228 { // 'if' disjunction
32229 if (p->error_indicator) {
32230 D(p->level--);
32231 return NULL;
32232 }
32233 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32234 Token * _keyword;
32235 expr_ty z;
32236 if (
32237 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32238 &&
32239 (z = disjunction_rule(p)) // disjunction
32240 )
32241 {
32242 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32243 _res = z;
32244 if (_res == NULL && PyErr_Occurred()) {
32245 p->error_indicator = 1;
32246 D(p->level--);
32247 return NULL;
32248 }
32249 goto done;
32250 }
32251 p->mark = _mark;
32252 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
32253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32254 }
32255 _res = NULL;
32256 done:
32257 D(p->level--);
32258 return _res;
32259}
32260
32261// _tmp_189: starred_expression | (assigment_expression | expression !':=') !'='
32262static void *
32263_tmp_189_rule(Parser *p)
32264{
32265 D(p->level++);
32266 if (p->error_indicator) {
32267 D(p->level--);
32268 return NULL;
32269 }
32270 void * _res = NULL;
32271 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032272 { // starred_expression
32273 if (p->error_indicator) {
32274 D(p->level--);
32275 return NULL;
32276 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032277 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032278 expr_ty starred_expression_var;
32279 if (
32280 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32281 )
32282 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032283 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032284 _res = starred_expression_var;
32285 goto done;
32286 }
32287 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032288 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32290 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032291 { // (assigment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032292 if (p->error_indicator) {
32293 D(p->level--);
32294 return NULL;
32295 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032296 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32297 void *_tmp_200_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032298 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032299 (_tmp_200_var = _tmp_200_rule(p)) // assigment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032300 &&
32301 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32302 )
32303 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032304 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32305 _res = _tmp_200_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032306 goto done;
32307 }
32308 p->mark = _mark;
32309 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032311 }
32312 _res = NULL;
32313 done:
32314 D(p->level--);
32315 return _res;
32316}
32317
32318// _tmp_190: ',' star_target
32319static void *
32320_tmp_190_rule(Parser *p)
32321{
32322 D(p->level++);
32323 if (p->error_indicator) {
32324 D(p->level--);
32325 return NULL;
32326 }
32327 void * _res = NULL;
32328 int _mark = p->mark;
32329 { // ',' star_target
32330 if (p->error_indicator) {
32331 D(p->level--);
32332 return NULL;
32333 }
32334 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32335 Token * _literal;
32336 expr_ty c;
32337 if (
32338 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32339 &&
32340 (c = star_target_rule(p)) // star_target
32341 )
32342 {
32343 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32344 _res = c;
32345 if (_res == NULL && PyErr_Occurred()) {
32346 p->error_indicator = 1;
32347 D(p->level--);
32348 return NULL;
32349 }
32350 goto done;
32351 }
32352 p->mark = _mark;
32353 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
32354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
32355 }
32356 _res = NULL;
32357 done:
32358 D(p->level--);
32359 return _res;
32360}
32361
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032362// _tmp_191: ',' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032363static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032364_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032365{
32366 D(p->level++);
32367 if (p->error_indicator) {
32368 D(p->level--);
32369 return NULL;
32370 }
32371 void * _res = NULL;
32372 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032373 { // ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032374 if (p->error_indicator) {
32375 D(p->level--);
32376 return NULL;
32377 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032378 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032379 Token * _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032380 expr_ty c;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032381 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032382 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoa77aac42021-04-23 14:27:05 +010032383 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032384 (c = star_target_rule(p)) // star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032385 )
32386 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032387 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32388 _res = c;
32389 if (_res == NULL && PyErr_Occurred()) {
32390 p->error_indicator = 1;
32391 D(p->level--);
32392 return NULL;
32393 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032394 goto done;
32395 }
32396 p->mark = _mark;
32397 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032399 }
32400 _res = NULL;
32401 done:
32402 D(p->level--);
32403 return _res;
32404}
32405
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032406// _tmp_192: star_targets '='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032407static void *
32408_tmp_192_rule(Parser *p)
32409{
32410 D(p->level++);
32411 if (p->error_indicator) {
32412 D(p->level--);
32413 return NULL;
32414 }
32415 void * _res = NULL;
32416 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032417 { // star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032418 if (p->error_indicator) {
32419 D(p->level--);
32420 return NULL;
32421 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032422 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032423 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032424 expr_ty star_targets_var;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032425 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032426 (star_targets_var = star_targets_rule(p)) // star_targets
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032427 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032428 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032429 )
32430 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032431 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32432 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032433 goto done;
32434 }
32435 p->mark = _mark;
32436 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032438 }
32439 _res = NULL;
32440 done:
32441 D(p->level--);
32442 return _res;
32443}
32444
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032445// _tmp_193: star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032446static void *
32447_tmp_193_rule(Parser *p)
32448{
32449 D(p->level++);
32450 if (p->error_indicator) {
32451 D(p->level--);
32452 return NULL;
32453 }
32454 void * _res = NULL;
32455 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032456 { // star_targets '='
32457 if (p->error_indicator) {
32458 D(p->level--);
32459 return NULL;
32460 }
32461 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32462 Token * _literal;
32463 expr_ty star_targets_var;
32464 if (
32465 (star_targets_var = star_targets_rule(p)) // star_targets
32466 &&
32467 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32468 )
32469 {
32470 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32471 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32472 goto done;
32473 }
32474 p->mark = _mark;
32475 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
32476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32477 }
32478 _res = NULL;
32479 done:
32480 D(p->level--);
32481 return _res;
32482}
32483
32484// _tmp_194: ')' | '**'
32485static void *
32486_tmp_194_rule(Parser *p)
32487{
32488 D(p->level++);
32489 if (p->error_indicator) {
32490 D(p->level--);
32491 return NULL;
32492 }
32493 void * _res = NULL;
32494 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032495 { // ')'
32496 if (p->error_indicator) {
32497 D(p->level--);
32498 return NULL;
32499 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032500 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032501 Token * _literal;
32502 if (
32503 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32504 )
32505 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032506 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032507 _res = _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032508 goto done;
32509 }
32510 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032511 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032513 }
32514 { // '**'
32515 if (p->error_indicator) {
32516 D(p->level--);
32517 return NULL;
32518 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032519 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032520 Token * _literal;
32521 if (
32522 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32523 )
32524 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032525 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032526 _res = _literal;
32527 goto done;
32528 }
32529 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032530 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032532 }
32533 _res = NULL;
32534 done:
32535 D(p->level--);
32536 return _res;
32537}
32538
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032539// _tmp_195: ':' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032540static void *
32541_tmp_195_rule(Parser *p)
32542{
32543 D(p->level++);
32544 if (p->error_indicator) {
32545 D(p->level--);
32546 return NULL;
32547 }
32548 void * _res = NULL;
32549 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032550 { // ':'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032551 if (p->error_indicator) {
32552 D(p->level--);
32553 return NULL;
32554 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032555 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32556 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032557 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032558 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032559 )
32560 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032561 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32562 _res = _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032563 goto done;
32564 }
32565 p->mark = _mark;
32566 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32568 }
32569 { // '**'
32570 if (p->error_indicator) {
32571 D(p->level--);
32572 return NULL;
32573 }
32574 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32575 Token * _literal;
32576 if (
32577 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32578 )
32579 {
32580 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32581 _res = _literal;
32582 goto done;
32583 }
32584 p->mark = _mark;
32585 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032587 }
32588 _res = NULL;
32589 done:
32590 D(p->level--);
32591 return _res;
32592}
32593
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032594// _tmp_196: expression ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032595static void *
32596_tmp_196_rule(Parser *p)
32597{
32598 D(p->level++);
32599 if (p->error_indicator) {
32600 D(p->level--);
32601 return NULL;
32602 }
32603 void * _res = NULL;
32604 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032605 { // expression ['as' star_target]
32606 if (p->error_indicator) {
32607 D(p->level--);
32608 return NULL;
32609 }
32610 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32611 void *_opt_var;
32612 UNUSED(_opt_var); // Silence compiler warnings
32613 expr_ty expression_var;
32614 if (
32615 (expression_var = expression_rule(p)) // expression
32616 &&
32617 (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target]
32618 )
32619 {
32620 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32621 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32622 goto done;
32623 }
32624 p->mark = _mark;
32625 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
32626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32627 }
32628 _res = NULL;
32629 done:
32630 D(p->level--);
32631 return _res;
32632}
32633
32634// _tmp_197: expressions ['as' star_target]
32635static void *
32636_tmp_197_rule(Parser *p)
32637{
32638 D(p->level++);
32639 if (p->error_indicator) {
32640 D(p->level--);
32641 return NULL;
32642 }
32643 void * _res = NULL;
32644 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032645 { // expressions ['as' star_target]
32646 if (p->error_indicator) {
32647 D(p->level--);
32648 return NULL;
32649 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032650 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032651 void *_opt_var;
32652 UNUSED(_opt_var); // Silence compiler warnings
32653 expr_ty expressions_var;
32654 if (
32655 (expressions_var = expressions_rule(p)) // expressions
32656 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032657 (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032658 )
32659 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032660 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032661 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32662 goto done;
32663 }
32664 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032665 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
32667 }
32668 _res = NULL;
32669 done:
32670 D(p->level--);
32671 return _res;
32672}
32673
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032674// _tmp_198: expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032675static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032676_tmp_198_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032677{
32678 D(p->level++);
32679 if (p->error_indicator) {
32680 D(p->level--);
32681 return NULL;
32682 }
32683 void * _res = NULL;
32684 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032685 { // expression ['as' star_target]
32686 if (p->error_indicator) {
32687 D(p->level--);
32688 return NULL;
32689 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032690 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032691 void *_opt_var;
32692 UNUSED(_opt_var); // Silence compiler warnings
32693 expr_ty expression_var;
32694 if (
32695 (expression_var = expression_rule(p)) // expression
32696 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032697 (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032698 )
32699 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032700 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032701 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32702 goto done;
32703 }
32704 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032705 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32707 }
32708 _res = NULL;
32709 done:
32710 D(p->level--);
32711 return _res;
32712}
32713
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032714// _tmp_199: expressions ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032715static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032716_tmp_199_rule(Parser *p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032717{
32718 D(p->level++);
32719 if (p->error_indicator) {
32720 D(p->level--);
32721 return NULL;
32722 }
32723 void * _res = NULL;
32724 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032725 { // expressions ['as' star_target]
32726 if (p->error_indicator) {
32727 D(p->level--);
32728 return NULL;
32729 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032730 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032731 void *_opt_var;
32732 UNUSED(_opt_var); // Silence compiler warnings
32733 expr_ty expressions_var;
32734 if (
32735 (expressions_var = expressions_rule(p)) // expressions
32736 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032737 (_opt_var = _tmp_204_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032738 )
32739 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032740 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032741 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32742 goto done;
32743 }
32744 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032745 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032747 }
32748 _res = NULL;
32749 done:
32750 D(p->level--);
32751 return _res;
32752}
32753
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032754// _tmp_200: assigment_expression | expression !':='
Pablo Galindo58fb1562021-02-02 19:54:22 +000032755static void *
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032756_tmp_200_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032757{
32758 D(p->level++);
32759 if (p->error_indicator) {
32760 D(p->level--);
32761 return NULL;
32762 }
32763 void * _res = NULL;
32764 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032765 { // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032766 if (p->error_indicator) {
32767 D(p->level--);
32768 return NULL;
32769 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032770 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032771 expr_ty assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032772 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032773 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032774 )
32775 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032776 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032777 _res = assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032778 goto done;
32779 }
32780 p->mark = _mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032781 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
32783 }
32784 { // expression !':='
32785 if (p->error_indicator) {
32786 D(p->level--);
32787 return NULL;
32788 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032789 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032790 expr_ty expression_var;
32791 if (
32792 (expression_var = expression_rule(p)) // expression
32793 &&
32794 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
32795 )
32796 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032797 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032798 _res = expression_var;
32799 goto done;
32800 }
32801 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032802 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032804 }
32805 _res = NULL;
32806 done:
32807 D(p->level--);
32808 return _res;
32809}
32810
32811// _tmp_201: 'as' star_target
32812static void *
32813_tmp_201_rule(Parser *p)
32814{
32815 D(p->level++);
32816 if (p->error_indicator) {
32817 D(p->level--);
32818 return NULL;
32819 }
32820 void * _res = NULL;
32821 int _mark = p->mark;
32822 { // 'as' star_target
32823 if (p->error_indicator) {
32824 D(p->level--);
32825 return NULL;
32826 }
32827 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32828 Token * _keyword;
32829 expr_ty star_target_var;
32830 if (
32831 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32832 &&
32833 (star_target_var = star_target_rule(p)) // star_target
32834 )
32835 {
32836 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32837 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32838 goto done;
32839 }
32840 p->mark = _mark;
32841 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
32842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32843 }
32844 _res = NULL;
32845 done:
32846 D(p->level--);
32847 return _res;
32848}
32849
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032850// _tmp_202: 'as' star_target
32851static void *
32852_tmp_202_rule(Parser *p)
32853{
32854 D(p->level++);
32855 if (p->error_indicator) {
32856 D(p->level--);
32857 return NULL;
32858 }
32859 void * _res = NULL;
32860 int _mark = p->mark;
32861 { // 'as' star_target
32862 if (p->error_indicator) {
32863 D(p->level--);
32864 return NULL;
32865 }
32866 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32867 Token * _keyword;
32868 expr_ty star_target_var;
32869 if (
32870 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32871 &&
32872 (star_target_var = star_target_rule(p)) // star_target
32873 )
32874 {
32875 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32876 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32877 goto done;
32878 }
32879 p->mark = _mark;
32880 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
32881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32882 }
32883 _res = NULL;
32884 done:
32885 D(p->level--);
32886 return _res;
32887}
32888
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032889// _tmp_203: 'as' star_target
32890static void *
32891_tmp_203_rule(Parser *p)
32892{
32893 D(p->level++);
32894 if (p->error_indicator) {
32895 D(p->level--);
32896 return NULL;
32897 }
32898 void * _res = NULL;
32899 int _mark = p->mark;
32900 { // 'as' star_target
32901 if (p->error_indicator) {
32902 D(p->level--);
32903 return NULL;
32904 }
32905 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32906 Token * _keyword;
32907 expr_ty star_target_var;
32908 if (
32909 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32910 &&
32911 (star_target_var = star_target_rule(p)) // star_target
32912 )
32913 {
32914 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32915 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32916 goto done;
32917 }
32918 p->mark = _mark;
32919 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
32920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32921 }
32922 _res = NULL;
32923 done:
32924 D(p->level--);
32925 return _res;
32926}
32927
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032928// _tmp_204: 'as' star_target
32929static void *
32930_tmp_204_rule(Parser *p)
32931{
32932 D(p->level++);
32933 if (p->error_indicator) {
32934 D(p->level--);
32935 return NULL;
32936 }
32937 void * _res = NULL;
32938 int _mark = p->mark;
32939 { // 'as' star_target
32940 if (p->error_indicator) {
32941 D(p->level--);
32942 return NULL;
32943 }
32944 D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32945 Token * _keyword;
32946 expr_ty star_target_var;
32947 if (
32948 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32949 &&
32950 (star_target_var = star_target_rule(p)) // star_target
32951 )
32952 {
32953 D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32954 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32955 goto done;
32956 }
32957 p->mark = _mark;
32958 D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
32959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32960 }
32961 _res = NULL;
32962 done:
32963 D(p->level--);
32964 return _res;
32965}
32966
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032967void *
32968_PyPegen_parse(Parser *p)
32969{
32970 // Initialize keywords
32971 p->keywords = reserved_keywords;
32972 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010032973 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032974
32975 // Run parser
32976 void *result = NULL;
32977 if (p->start_rule == Py_file_input) {
32978 result = file_rule(p);
32979 } else if (p->start_rule == Py_single_input) {
32980 result = interactive_rule(p);
32981 } else if (p->start_rule == Py_eval_input) {
32982 result = eval_rule(p);
32983 } else if (p->start_rule == Py_func_type_input) {
32984 result = func_type_rule(p);
32985 } else if (p->start_rule == Py_fstring_input) {
32986 result = fstring_rule(p);
32987 }
32988
32989 return result;
32990}
32991
32992// The end