blob: 6958963dfa39cfab3a0052734d50aeba29b1aa39 [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
173#define named_expression_type 1099
174#define direct_named_expression_type 1100
175#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
250#define targets_type 1176
251#define target_type 1177
252#define t_primary_type 1178 // Left-recursive
253#define t_lookahead_type 1179
254#define t_atom_type 1180
255#define invalid_arguments_type 1181
256#define invalid_kwarg_type 1182
257#define invalid_expression_type 1183
258#define invalid_named_expression_type 1184
259#define invalid_assignment_type 1185
260#define invalid_ann_assign_target_type 1186
261#define invalid_del_stmt_type 1187
262#define invalid_block_type 1188
263#define invalid_primary_type 1189 // Left-recursive
264#define invalid_comprehension_type 1190
265#define invalid_dict_comprehension_type 1191
266#define invalid_parameters_type 1192
267#define invalid_parameters_helper_type 1193
268#define invalid_lambda_parameters_type 1194
269#define invalid_lambda_parameters_helper_type 1195
270#define invalid_star_etc_type 1196
271#define invalid_lambda_star_etc_type 1197
272#define invalid_double_type_comments_type 1198
273#define invalid_with_item_type 1199
274#define invalid_for_target_type 1200
275#define invalid_group_type 1201
276#define invalid_import_from_targets_type 1202
277#define invalid_with_stmt_type 1203
278#define invalid_with_stmt_indent_type 1204
279#define invalid_try_stmt_type 1205
280#define invalid_except_stmt_type 1206
281#define invalid_finally_stmt_type 1207
282#define invalid_except_stmt_indent_type 1208
283#define invalid_match_stmt_type 1209
284#define invalid_case_block_type 1210
285#define invalid_if_stmt_type 1211
286#define invalid_elif_stmt_type 1212
287#define invalid_else_stmt_type 1213
288#define invalid_while_stmt_type 1214
289#define invalid_for_stmt_type 1215
290#define invalid_def_raw_type 1216
291#define invalid_class_def_raw_type 1217
292#define invalid_double_starred_kvpairs_type 1218
293#define invalid_kvpair_type 1219
294#define _loop0_1_type 1220
295#define _loop0_2_type 1221
296#define _loop0_4_type 1222
297#define _gather_3_type 1223
298#define _loop0_6_type 1224
299#define _gather_5_type 1225
300#define _loop0_8_type 1226
301#define _gather_7_type 1227
302#define _loop0_10_type 1228
303#define _gather_9_type 1229
304#define _loop1_11_type 1230
305#define _loop0_13_type 1231
306#define _gather_12_type 1232
307#define _tmp_14_type 1233
308#define _tmp_15_type 1234
309#define _tmp_16_type 1235
310#define _tmp_17_type 1236
311#define _tmp_18_type 1237
312#define _tmp_19_type 1238
313#define _tmp_20_type 1239
314#define _tmp_21_type 1240
315#define _loop1_22_type 1241
316#define _tmp_23_type 1242
317#define _tmp_24_type 1243
318#define _loop0_26_type 1244
319#define _gather_25_type 1245
320#define _loop0_28_type 1246
321#define _gather_27_type 1247
322#define _tmp_29_type 1248
323#define _tmp_30_type 1249
324#define _loop0_31_type 1250
325#define _loop1_32_type 1251
326#define _loop0_34_type 1252
327#define _gather_33_type 1253
328#define _tmp_35_type 1254
329#define _loop0_37_type 1255
330#define _gather_36_type 1256
331#define _tmp_38_type 1257
332#define _loop0_40_type 1258
333#define _gather_39_type 1259
334#define _loop0_42_type 1260
335#define _gather_41_type 1261
336#define _loop0_44_type 1262
337#define _gather_43_type 1263
338#define _loop0_46_type 1264
339#define _gather_45_type 1265
340#define _tmp_47_type 1266
341#define _loop1_48_type 1267
342#define _tmp_49_type 1268
343#define _loop1_50_type 1269
344#define _loop0_52_type 1270
345#define _gather_51_type 1271
346#define _tmp_53_type 1272
347#define _tmp_54_type 1273
348#define _tmp_55_type 1274
349#define _tmp_56_type 1275
350#define _loop0_58_type 1276
351#define _gather_57_type 1277
352#define _loop0_60_type 1278
353#define _gather_59_type 1279
354#define _tmp_61_type 1280
355#define _loop0_63_type 1281
356#define _gather_62_type 1282
357#define _loop0_65_type 1283
358#define _gather_64_type 1284
359#define _tmp_66_type 1285
360#define _tmp_67_type 1286
361#define _tmp_68_type 1287
362#define _tmp_69_type 1288
363#define _loop0_70_type 1289
364#define _loop0_71_type 1290
365#define _loop0_72_type 1291
366#define _loop1_73_type 1292
367#define _loop0_74_type 1293
368#define _loop1_75_type 1294
369#define _loop1_76_type 1295
370#define _loop1_77_type 1296
371#define _loop0_78_type 1297
372#define _loop1_79_type 1298
373#define _loop0_80_type 1299
374#define _loop1_81_type 1300
375#define _loop0_82_type 1301
376#define _loop1_83_type 1302
377#define _loop1_84_type 1303
378#define _tmp_85_type 1304
379#define _loop1_86_type 1305
380#define _loop0_88_type 1306
381#define _gather_87_type 1307
382#define _loop1_89_type 1308
383#define _loop0_90_type 1309
384#define _loop0_91_type 1310
385#define _loop0_92_type 1311
386#define _loop1_93_type 1312
387#define _loop0_94_type 1313
388#define _loop1_95_type 1314
389#define _loop1_96_type 1315
390#define _loop1_97_type 1316
391#define _loop0_98_type 1317
392#define _loop1_99_type 1318
393#define _loop0_100_type 1319
394#define _loop1_101_type 1320
395#define _loop0_102_type 1321
396#define _loop1_103_type 1322
397#define _loop1_104_type 1323
398#define _loop1_105_type 1324
399#define _loop1_106_type 1325
400#define _tmp_107_type 1326
401#define _loop0_109_type 1327
402#define _gather_108_type 1328
403#define _tmp_110_type 1329
404#define _tmp_111_type 1330
405#define _tmp_112_type 1331
406#define _tmp_113_type 1332
407#define _loop1_114_type 1333
408#define _tmp_115_type 1334
409#define _tmp_116_type 1335
410#define _loop0_118_type 1336
411#define _gather_117_type 1337
412#define _loop1_119_type 1338
413#define _loop0_120_type 1339
414#define _loop0_121_type 1340
415#define _loop0_123_type 1341
416#define _gather_122_type 1342
417#define _tmp_124_type 1343
418#define _loop0_126_type 1344
419#define _gather_125_type 1345
420#define _loop0_128_type 1346
421#define _gather_127_type 1347
422#define _loop0_130_type 1348
423#define _gather_129_type 1349
424#define _loop0_132_type 1350
425#define _gather_131_type 1351
426#define _loop0_133_type 1352
427#define _loop0_135_type 1353
428#define _gather_134_type 1354
429#define _loop1_136_type 1355
430#define _tmp_137_type 1356
431#define _loop0_139_type 1357
432#define _gather_138_type 1358
433#define _loop0_141_type 1359
434#define _gather_140_type 1360
435#define _tmp_142_type 1361
436#define _tmp_143_type 1362
437#define _tmp_144_type 1363
438#define _tmp_145_type 1364
439#define _tmp_146_type 1365
440#define _loop0_147_type 1366
441#define _loop0_148_type 1367
442#define _loop0_149_type 1368
443#define _tmp_150_type 1369
444#define _tmp_151_type 1370
445#define _tmp_152_type 1371
446#define _tmp_153_type 1372
447#define _loop0_154_type 1373
448#define _loop1_155_type 1374
449#define _loop0_156_type 1375
450#define _loop1_157_type 1376
451#define _tmp_158_type 1377
452#define _tmp_159_type 1378
453#define _tmp_160_type 1379
454#define _loop0_162_type 1380
455#define _gather_161_type 1381
456#define _loop0_164_type 1382
457#define _gather_163_type 1383
458#define _loop0_166_type 1384
459#define _gather_165_type 1385
460#define _loop0_168_type 1386
461#define _gather_167_type 1387
462#define _tmp_169_type 1388
463#define _tmp_170_type 1389
464#define _tmp_171_type 1390
465#define _tmp_172_type 1391
466#define _tmp_173_type 1392
467#define _loop0_175_type 1393
468#define _gather_174_type 1394
469#define _tmp_176_type 1395
470#define _tmp_177_type 1396
471#define _tmp_178_type 1397
472#define _tmp_179_type 1398
473#define _tmp_180_type 1399
474#define _tmp_181_type 1400
475#define _tmp_182_type 1401
476#define _tmp_183_type 1402
477#define _tmp_184_type 1403
478#define _tmp_185_type 1404
479#define _tmp_186_type 1405
480#define _tmp_187_type 1406
481#define _tmp_188_type 1407
482#define _tmp_189_type 1408
483#define _tmp_190_type 1409
484#define _tmp_191_type 1410
485#define _tmp_192_type 1411
486#define _tmp_193_type 1412
487#define _tmp_194_type 1413
488#define _tmp_195_type 1414
489#define _tmp_196_type 1415
490#define _tmp_197_type 1416
491#define _tmp_198_type 1417
492#define _tmp_199_type 1418
493#define _tmp_200_type 1419
494#define _tmp_201_type 1420
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100495
496static mod_ty file_rule(Parser *p);
497static mod_ty interactive_rule(Parser *p);
498static mod_ty eval_rule(Parser *p);
499static mod_ty func_type_rule(Parser *p);
500static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100501static asdl_expr_seq* type_expressions_rule(Parser *p);
502static asdl_stmt_seq* statements_rule(Parser *p);
503static asdl_stmt_seq* statement_rule(Parser *p);
504static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000505static asdl_stmt_seq* simple_stmts_rule(Parser *p);
506static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100507static stmt_ty compound_stmt_rule(Parser *p);
508static stmt_ty assignment_rule(Parser *p);
509static AugOperator* augassign_rule(Parser *p);
510static stmt_ty global_stmt_rule(Parser *p);
511static stmt_ty nonlocal_stmt_rule(Parser *p);
512static stmt_ty yield_stmt_rule(Parser *p);
513static stmt_ty assert_stmt_rule(Parser *p);
514static stmt_ty del_stmt_rule(Parser *p);
515static stmt_ty import_stmt_rule(Parser *p);
516static stmt_ty import_name_rule(Parser *p);
517static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100518static asdl_alias_seq* import_from_targets_rule(Parser *p);
519static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100520static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100521static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100522static alias_ty dotted_as_name_rule(Parser *p);
523static expr_ty dotted_name_rule(Parser *p);
524static stmt_ty if_stmt_rule(Parser *p);
525static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100526static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100527static stmt_ty while_stmt_rule(Parser *p);
528static stmt_ty for_stmt_rule(Parser *p);
529static stmt_ty with_stmt_rule(Parser *p);
530static withitem_ty with_item_rule(Parser *p);
531static stmt_ty try_stmt_rule(Parser *p);
532static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100533static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800534static stmt_ty match_stmt_rule(Parser *p);
535static expr_ty subject_expr_rule(Parser *p);
536static match_case_ty case_block_rule(Parser *p);
537static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000538static pattern_ty patterns_rule(Parser *p);
539static pattern_ty pattern_rule(Parser *p);
540static pattern_ty as_pattern_rule(Parser *p);
541static pattern_ty or_pattern_rule(Parser *p);
542static pattern_ty closed_pattern_rule(Parser *p);
543static pattern_ty literal_pattern_rule(Parser *p);
544static expr_ty literal_expr_rule(Parser *p);
545static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800546static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700547static expr_ty signed_real_number_rule(Parser *p);
548static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000549static expr_ty imaginary_number_rule(Parser *p);
550static pattern_ty capture_pattern_rule(Parser *p);
551static expr_ty pattern_capture_target_rule(Parser *p);
552static pattern_ty wildcard_pattern_rule(Parser *p);
553static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800554static expr_ty attr_rule(Parser *p);
555static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000556static pattern_ty group_pattern_rule(Parser *p);
557static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800558static asdl_seq* open_sequence_pattern_rule(Parser *p);
559static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000560static pattern_ty maybe_star_pattern_rule(Parser *p);
561static pattern_ty star_pattern_rule(Parser *p);
562static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800563static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000564static KeyPatternPair* key_value_pattern_rule(Parser *p);
565static expr_ty double_star_pattern_rule(Parser *p);
566static pattern_ty class_pattern_rule(Parser *p);
567static asdl_pattern_seq* positional_patterns_rule(Parser *p);
568static asdl_seq* keyword_patterns_rule(Parser *p);
569static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100570static stmt_ty return_stmt_rule(Parser *p);
571static stmt_ty raise_stmt_rule(Parser *p);
572static stmt_ty function_def_rule(Parser *p);
573static stmt_ty function_def_raw_rule(Parser *p);
574static Token* func_type_comment_rule(Parser *p);
575static arguments_ty params_rule(Parser *p);
576static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100577static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100578static SlashWithDefault* slash_with_default_rule(Parser *p);
579static StarEtc* star_etc_rule(Parser *p);
580static arg_ty kwds_rule(Parser *p);
581static arg_ty param_no_default_rule(Parser *p);
582static NameDefaultPair* param_with_default_rule(Parser *p);
583static NameDefaultPair* param_maybe_default_rule(Parser *p);
584static arg_ty param_rule(Parser *p);
585static expr_ty annotation_rule(Parser *p);
586static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100587static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100588static stmt_ty class_def_rule(Parser *p);
589static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100590static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100591static expr_ty star_expressions_rule(Parser *p);
592static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100593static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100594static expr_ty star_named_expression_rule(Parser *p);
595static expr_ty named_expression_rule(Parser *p);
Pablo Galindod9151cb2021-04-13 02:32:33 +0100596static expr_ty direct_named_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100597static expr_ty annotated_rhs_rule(Parser *p);
598static expr_ty expressions_rule(Parser *p);
599static expr_ty expression_rule(Parser *p);
600static expr_ty lambdef_rule(Parser *p);
601static arguments_ty lambda_params_rule(Parser *p);
602static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100603static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100604static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
605static StarEtc* lambda_star_etc_rule(Parser *p);
606static arg_ty lambda_kwds_rule(Parser *p);
607static arg_ty lambda_param_no_default_rule(Parser *p);
608static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
609static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
610static arg_ty lambda_param_rule(Parser *p);
611static expr_ty disjunction_rule(Parser *p);
612static expr_ty conjunction_rule(Parser *p);
613static expr_ty inversion_rule(Parser *p);
614static expr_ty comparison_rule(Parser *p);
615static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
616static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
617static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
618static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
619static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
620static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
621static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
622static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
623static CmpopExprPair* in_bitwise_or_rule(Parser *p);
624static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
625static CmpopExprPair* is_bitwise_or_rule(Parser *p);
626static expr_ty bitwise_or_rule(Parser *p);
627static expr_ty bitwise_xor_rule(Parser *p);
628static expr_ty bitwise_and_rule(Parser *p);
629static expr_ty shift_expr_rule(Parser *p);
630static expr_ty sum_rule(Parser *p);
631static expr_ty term_rule(Parser *p);
632static expr_ty factor_rule(Parser *p);
633static expr_ty power_rule(Parser *p);
634static expr_ty await_primary_rule(Parser *p);
635static expr_ty primary_rule(Parser *p);
636static expr_ty slices_rule(Parser *p);
637static expr_ty slice_rule(Parser *p);
638static expr_ty atom_rule(Parser *p);
639static expr_ty strings_rule(Parser *p);
640static expr_ty list_rule(Parser *p);
641static expr_ty listcomp_rule(Parser *p);
642static expr_ty tuple_rule(Parser *p);
643static expr_ty group_rule(Parser *p);
644static expr_ty genexp_rule(Parser *p);
645static expr_ty set_rule(Parser *p);
646static expr_ty setcomp_rule(Parser *p);
647static expr_ty dict_rule(Parser *p);
648static expr_ty dictcomp_rule(Parser *p);
649static asdl_seq* double_starred_kvpairs_rule(Parser *p);
650static KeyValuePair* double_starred_kvpair_rule(Parser *p);
651static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100652static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100653static comprehension_ty for_if_clause_rule(Parser *p);
654static expr_ty yield_expr_rule(Parser *p);
655static expr_ty arguments_rule(Parser *p);
656static expr_ty args_rule(Parser *p);
657static asdl_seq* kwargs_rule(Parser *p);
658static expr_ty starred_expression_rule(Parser *p);
659static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
660static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
661static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200662static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
663static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100664static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200665static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100666static expr_ty star_atom_rule(Parser *p);
667static expr_ty single_target_rule(Parser *p);
668static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100669static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100670static expr_ty del_target_rule(Parser *p);
671static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100672static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100673static expr_ty target_rule(Parser *p);
674static expr_ty t_primary_rule(Parser *p);
675static void *t_lookahead_rule(Parser *p);
676static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200677static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100678static void *invalid_kwarg_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100679static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100680static void *invalid_named_expression_rule(Parser *p);
681static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300682static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300683static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100684static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200685static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100686static void *invalid_comprehension_rule(Parser *p);
687static void *invalid_dict_comprehension_rule(Parser *p);
688static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200689static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100690static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200691static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100692static void *invalid_star_etc_rule(Parser *p);
693static void *invalid_lambda_star_etc_rule(Parser *p);
694static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300695static void *invalid_with_item_rule(Parser *p);
696static void *invalid_for_target_rule(Parser *p);
697static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100698static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000699static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100700static void *invalid_with_stmt_indent_rule(Parser *p);
701static void *invalid_try_stmt_rule(Parser *p);
702static void *invalid_except_stmt_rule(Parser *p);
703static void *invalid_finally_stmt_rule(Parser *p);
704static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000705static void *invalid_match_stmt_rule(Parser *p);
706static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100707static void *invalid_if_stmt_rule(Parser *p);
708static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100709static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100710static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100711static void *invalid_for_stmt_rule(Parser *p);
712static void *invalid_def_raw_rule(Parser *p);
713static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100714static void *invalid_double_starred_kvpairs_rule(Parser *p);
715static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100716static asdl_seq *_loop0_1_rule(Parser *p);
717static asdl_seq *_loop0_2_rule(Parser *p);
718static asdl_seq *_loop0_4_rule(Parser *p);
719static asdl_seq *_gather_3_rule(Parser *p);
720static asdl_seq *_loop0_6_rule(Parser *p);
721static asdl_seq *_gather_5_rule(Parser *p);
722static asdl_seq *_loop0_8_rule(Parser *p);
723static asdl_seq *_gather_7_rule(Parser *p);
724static asdl_seq *_loop0_10_rule(Parser *p);
725static asdl_seq *_gather_9_rule(Parser *p);
726static asdl_seq *_loop1_11_rule(Parser *p);
727static asdl_seq *_loop0_13_rule(Parser *p);
728static asdl_seq *_gather_12_rule(Parser *p);
729static void *_tmp_14_rule(Parser *p);
730static void *_tmp_15_rule(Parser *p);
731static void *_tmp_16_rule(Parser *p);
732static void *_tmp_17_rule(Parser *p);
733static void *_tmp_18_rule(Parser *p);
734static void *_tmp_19_rule(Parser *p);
735static void *_tmp_20_rule(Parser *p);
736static void *_tmp_21_rule(Parser *p);
737static asdl_seq *_loop1_22_rule(Parser *p);
738static void *_tmp_23_rule(Parser *p);
739static void *_tmp_24_rule(Parser *p);
740static asdl_seq *_loop0_26_rule(Parser *p);
741static asdl_seq *_gather_25_rule(Parser *p);
742static asdl_seq *_loop0_28_rule(Parser *p);
743static asdl_seq *_gather_27_rule(Parser *p);
744static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300745static void *_tmp_30_rule(Parser *p);
746static asdl_seq *_loop0_31_rule(Parser *p);
747static asdl_seq *_loop1_32_rule(Parser *p);
748static asdl_seq *_loop0_34_rule(Parser *p);
749static asdl_seq *_gather_33_rule(Parser *p);
750static void *_tmp_35_rule(Parser *p);
751static asdl_seq *_loop0_37_rule(Parser *p);
752static asdl_seq *_gather_36_rule(Parser *p);
753static void *_tmp_38_rule(Parser *p);
754static asdl_seq *_loop0_40_rule(Parser *p);
755static asdl_seq *_gather_39_rule(Parser *p);
756static asdl_seq *_loop0_42_rule(Parser *p);
757static asdl_seq *_gather_41_rule(Parser *p);
758static asdl_seq *_loop0_44_rule(Parser *p);
759static asdl_seq *_gather_43_rule(Parser *p);
760static asdl_seq *_loop0_46_rule(Parser *p);
761static asdl_seq *_gather_45_rule(Parser *p);
762static void *_tmp_47_rule(Parser *p);
763static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100764static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800765static asdl_seq *_loop1_50_rule(Parser *p);
766static asdl_seq *_loop0_52_rule(Parser *p);
767static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300768static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800769static void *_tmp_54_rule(Parser *p);
770static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000771static void *_tmp_56_rule(Parser *p);
772static asdl_seq *_loop0_58_rule(Parser *p);
773static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800774static asdl_seq *_loop0_60_rule(Parser *p);
775static asdl_seq *_gather_59_rule(Parser *p);
776static void *_tmp_61_rule(Parser *p);
777static asdl_seq *_loop0_63_rule(Parser *p);
778static asdl_seq *_gather_62_rule(Parser *p);
779static asdl_seq *_loop0_65_rule(Parser *p);
780static asdl_seq *_gather_64_rule(Parser *p);
781static void *_tmp_66_rule(Parser *p);
782static void *_tmp_67_rule(Parser *p);
783static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300784static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800785static asdl_seq *_loop0_70_rule(Parser *p);
786static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000787static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000788static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300789static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800790static asdl_seq *_loop1_75_rule(Parser *p);
791static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000792static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300793static asdl_seq *_loop0_78_rule(Parser *p);
794static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800795static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100796static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000797static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300798static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800799static asdl_seq *_loop1_84_rule(Parser *p);
800static void *_tmp_85_rule(Parser *p);
801static asdl_seq *_loop1_86_rule(Parser *p);
802static asdl_seq *_loop0_88_rule(Parser *p);
803static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100804static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800805static asdl_seq *_loop0_90_rule(Parser *p);
806static asdl_seq *_loop0_91_rule(Parser *p);
807static asdl_seq *_loop0_92_rule(Parser *p);
808static asdl_seq *_loop1_93_rule(Parser *p);
809static asdl_seq *_loop0_94_rule(Parser *p);
810static asdl_seq *_loop1_95_rule(Parser *p);
811static asdl_seq *_loop1_96_rule(Parser *p);
812static asdl_seq *_loop1_97_rule(Parser *p);
813static asdl_seq *_loop0_98_rule(Parser *p);
814static asdl_seq *_loop1_99_rule(Parser *p);
815static asdl_seq *_loop0_100_rule(Parser *p);
816static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000817static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000818static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800819static asdl_seq *_loop1_104_rule(Parser *p);
820static asdl_seq *_loop1_105_rule(Parser *p);
821static asdl_seq *_loop1_106_rule(Parser *p);
822static void *_tmp_107_rule(Parser *p);
823static asdl_seq *_loop0_109_rule(Parser *p);
824static asdl_seq *_gather_108_rule(Parser *p);
825static void *_tmp_110_rule(Parser *p);
826static void *_tmp_111_rule(Parser *p);
827static void *_tmp_112_rule(Parser *p);
828static void *_tmp_113_rule(Parser *p);
829static asdl_seq *_loop1_114_rule(Parser *p);
830static void *_tmp_115_rule(Parser *p);
831static void *_tmp_116_rule(Parser *p);
832static asdl_seq *_loop0_118_rule(Parser *p);
833static asdl_seq *_gather_117_rule(Parser *p);
834static asdl_seq *_loop1_119_rule(Parser *p);
835static asdl_seq *_loop0_120_rule(Parser *p);
836static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200837static asdl_seq *_loop0_123_rule(Parser *p);
838static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800839static void *_tmp_124_rule(Parser *p);
840static asdl_seq *_loop0_126_rule(Parser *p);
841static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300842static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800843static asdl_seq *_gather_127_rule(Parser *p);
844static asdl_seq *_loop0_130_rule(Parser *p);
845static asdl_seq *_gather_129_rule(Parser *p);
846static asdl_seq *_loop0_132_rule(Parser *p);
847static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000848static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000849static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800850static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000851static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100852static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800853static asdl_seq *_loop0_139_rule(Parser *p);
854static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000855static asdl_seq *_loop0_141_rule(Parser *p);
856static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800857static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100858static void *_tmp_143_rule(Parser *p);
859static void *_tmp_144_rule(Parser *p);
860static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100861static void *_tmp_146_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100862static asdl_seq *_loop0_147_rule(Parser *p);
863static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100864static asdl_seq *_loop0_149_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100865static void *_tmp_150_rule(Parser *p);
866static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100867static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100868static void *_tmp_153_rule(Parser *p);
869static asdl_seq *_loop0_154_rule(Parser *p);
870static asdl_seq *_loop1_155_rule(Parser *p);
871static asdl_seq *_loop0_156_rule(Parser *p);
872static asdl_seq *_loop1_157_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100873static void *_tmp_158_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100874static void *_tmp_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100875static void *_tmp_160_rule(Parser *p);
876static asdl_seq *_loop0_162_rule(Parser *p);
877static asdl_seq *_gather_161_rule(Parser *p);
878static asdl_seq *_loop0_164_rule(Parser *p);
879static asdl_seq *_gather_163_rule(Parser *p);
880static asdl_seq *_loop0_166_rule(Parser *p);
881static asdl_seq *_gather_165_rule(Parser *p);
882static asdl_seq *_loop0_168_rule(Parser *p);
883static asdl_seq *_gather_167_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800884static void *_tmp_169_rule(Parser *p);
885static void *_tmp_170_rule(Parser *p);
886static void *_tmp_171_rule(Parser *p);
887static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100888static void *_tmp_173_rule(Parser *p);
889static asdl_seq *_loop0_175_rule(Parser *p);
890static asdl_seq *_gather_174_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800891static void *_tmp_176_rule(Parser *p);
892static void *_tmp_177_rule(Parser *p);
893static void *_tmp_178_rule(Parser *p);
894static void *_tmp_179_rule(Parser *p);
895static void *_tmp_180_rule(Parser *p);
896static void *_tmp_181_rule(Parser *p);
897static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100898static void *_tmp_183_rule(Parser *p);
899static void *_tmp_184_rule(Parser *p);
900static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100901static void *_tmp_186_rule(Parser *p);
902static void *_tmp_187_rule(Parser *p);
903static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100904static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100905static void *_tmp_190_rule(Parser *p);
906static void *_tmp_191_rule(Parser *p);
907static void *_tmp_192_rule(Parser *p);
908static void *_tmp_193_rule(Parser *p);
909static void *_tmp_194_rule(Parser *p);
910static void *_tmp_195_rule(Parser *p);
911static void *_tmp_196_rule(Parser *p);
912static void *_tmp_197_rule(Parser *p);
913static void *_tmp_198_rule(Parser *p);
914static void *_tmp_199_rule(Parser *p);
915static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100916static void *_tmp_201_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000917
918
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100919// file: statements? $
920static mod_ty
921file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000922{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100923 D(p->level++);
924 if (p->error_indicator) {
925 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000926 return NULL;
927 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100928 mod_ty _res = NULL;
929 int _mark = p->mark;
930 { // statements? $
931 if (p->error_indicator) {
932 D(p->level--);
933 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000934 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100935 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
936 void *a;
937 Token * endmarker_var;
938 if (
939 (a = statements_rule(p), 1) // statements?
940 &&
941 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
942 )
943 {
944 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
945 _res = _PyPegen_make_module ( p , a );
946 if (_res == NULL && PyErr_Occurred()) {
947 p->error_indicator = 1;
948 D(p->level--);
949 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000950 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100951 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000952 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100953 p->mark = _mark;
954 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000956 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100957 _res = NULL;
958 done:
959 D(p->level--);
960 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000961}
962
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100963// interactive: statement_newline
964static mod_ty
965interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000966{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100967 D(p->level++);
968 if (p->error_indicator) {
969 D(p->level--);
970 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000971 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100972 mod_ty _res = NULL;
973 int _mark = p->mark;
974 { // statement_newline
975 if (p->error_indicator) {
976 D(p->level--);
977 return NULL;
978 }
979 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100980 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100981 if (
982 (a = statement_newline_rule(p)) // statement_newline
983 )
984 {
985 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200986 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100987 if (_res == NULL && PyErr_Occurred()) {
988 p->error_indicator = 1;
989 D(p->level--);
990 return NULL;
991 }
992 goto done;
993 }
994 p->mark = _mark;
995 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
997 }
998 _res = NULL;
999 done:
1000 D(p->level--);
1001 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001002}
1003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001004// eval: expressions NEWLINE* $
1005static mod_ty
1006eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001007{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001008 D(p->level++);
1009 if (p->error_indicator) {
1010 D(p->level--);
1011 return NULL;
1012 }
1013 mod_ty _res = NULL;
1014 int _mark = p->mark;
1015 { // expressions NEWLINE* $
1016 if (p->error_indicator) {
1017 D(p->level--);
1018 return NULL;
1019 }
1020 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1021 asdl_seq * _loop0_1_var;
1022 expr_ty a;
1023 Token * endmarker_var;
1024 if (
1025 (a = expressions_rule(p)) // expressions
1026 &&
1027 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1028 &&
1029 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1030 )
1031 {
1032 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001033 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001034 if (_res == NULL && PyErr_Occurred()) {
1035 p->error_indicator = 1;
1036 D(p->level--);
1037 return NULL;
1038 }
1039 goto done;
1040 }
1041 p->mark = _mark;
1042 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1044 }
1045 _res = NULL;
1046 done:
1047 D(p->level--);
1048 return _res;
1049}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001050
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001051// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1052static mod_ty
1053func_type_rule(Parser *p)
1054{
1055 D(p->level++);
1056 if (p->error_indicator) {
1057 D(p->level--);
1058 return NULL;
1059 }
1060 mod_ty _res = NULL;
1061 int _mark = p->mark;
1062 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1063 if (p->error_indicator) {
1064 D(p->level--);
1065 return NULL;
1066 }
1067 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1068 Token * _literal;
1069 Token * _literal_1;
1070 Token * _literal_2;
1071 asdl_seq * _loop0_2_var;
1072 void *a;
1073 expr_ty b;
1074 Token * endmarker_var;
1075 if (
1076 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1077 &&
1078 (a = type_expressions_rule(p), 1) // type_expressions?
1079 &&
1080 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1081 &&
1082 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1083 &&
1084 (b = expression_rule(p)) // expression
1085 &&
1086 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1087 &&
1088 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1089 )
1090 {
1091 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 +02001092 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001093 if (_res == NULL && PyErr_Occurred()) {
1094 p->error_indicator = 1;
1095 D(p->level--);
1096 return NULL;
1097 }
1098 goto done;
1099 }
1100 p->mark = _mark;
1101 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1103 }
1104 _res = NULL;
1105 done:
1106 D(p->level--);
1107 return _res;
1108}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001110// fstring: star_expressions
1111static expr_ty
1112fstring_rule(Parser *p)
1113{
1114 D(p->level++);
1115 if (p->error_indicator) {
1116 D(p->level--);
1117 return NULL;
1118 }
1119 expr_ty _res = NULL;
1120 int _mark = p->mark;
1121 { // star_expressions
1122 if (p->error_indicator) {
1123 D(p->level--);
1124 return NULL;
1125 }
1126 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1127 expr_ty star_expressions_var;
1128 if (
1129 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1130 )
1131 {
1132 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1133 _res = star_expressions_var;
1134 goto done;
1135 }
1136 p->mark = _mark;
1137 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1139 }
1140 _res = NULL;
1141 done:
1142 D(p->level--);
1143 return _res;
1144}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001145
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001146// type_expressions:
1147// | ','.expression+ ',' '*' expression ',' '**' expression
1148// | ','.expression+ ',' '*' expression
1149// | ','.expression+ ',' '**' expression
1150// | '*' expression ',' '**' expression
1151// | '*' expression
1152// | '**' expression
1153// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001154static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001155type_expressions_rule(Parser *p)
1156{
1157 D(p->level++);
1158 if (p->error_indicator) {
1159 D(p->level--);
1160 return NULL;
1161 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001162 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001163 int _mark = p->mark;
1164 { // ','.expression+ ',' '*' expression ',' '**' expression
1165 if (p->error_indicator) {
1166 D(p->level--);
1167 return NULL;
1168 }
1169 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1170 Token * _literal;
1171 Token * _literal_1;
1172 Token * _literal_2;
1173 Token * _literal_3;
1174 asdl_seq * a;
1175 expr_ty b;
1176 expr_ty c;
1177 if (
1178 (a = _gather_3_rule(p)) // ','.expression+
1179 &&
1180 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1181 &&
1182 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1183 &&
1184 (b = expression_rule(p)) // expression
1185 &&
1186 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1187 &&
1188 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1189 &&
1190 (c = expression_rule(p)) // expression
1191 )
1192 {
1193 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 +03001194 _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 +01001195 if (_res == NULL && PyErr_Occurred()) {
1196 p->error_indicator = 1;
1197 D(p->level--);
1198 return NULL;
1199 }
1200 goto done;
1201 }
1202 p->mark = _mark;
1203 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1205 }
1206 { // ','.expression+ ',' '*' expression
1207 if (p->error_indicator) {
1208 D(p->level--);
1209 return NULL;
1210 }
1211 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1212 Token * _literal;
1213 Token * _literal_1;
1214 asdl_seq * a;
1215 expr_ty b;
1216 if (
1217 (a = _gather_5_rule(p)) // ','.expression+
1218 &&
1219 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1220 &&
1221 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1222 &&
1223 (b = expression_rule(p)) // expression
1224 )
1225 {
1226 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 +01001227 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001228 if (_res == NULL && PyErr_Occurred()) {
1229 p->error_indicator = 1;
1230 D(p->level--);
1231 return NULL;
1232 }
1233 goto done;
1234 }
1235 p->mark = _mark;
1236 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1238 }
1239 { // ','.expression+ ',' '**' expression
1240 if (p->error_indicator) {
1241 D(p->level--);
1242 return NULL;
1243 }
1244 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1245 Token * _literal;
1246 Token * _literal_1;
1247 asdl_seq * a;
1248 expr_ty b;
1249 if (
1250 (a = _gather_7_rule(p)) // ','.expression+
1251 &&
1252 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1253 &&
1254 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1255 &&
1256 (b = expression_rule(p)) // expression
1257 )
1258 {
1259 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 +01001260 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001261 if (_res == NULL && PyErr_Occurred()) {
1262 p->error_indicator = 1;
1263 D(p->level--);
1264 return NULL;
1265 }
1266 goto done;
1267 }
1268 p->mark = _mark;
1269 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1271 }
1272 { // '*' expression ',' '**' expression
1273 if (p->error_indicator) {
1274 D(p->level--);
1275 return NULL;
1276 }
1277 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1278 Token * _literal;
1279 Token * _literal_1;
1280 Token * _literal_2;
1281 expr_ty a;
1282 expr_ty b;
1283 if (
1284 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1285 &&
1286 (a = expression_rule(p)) // expression
1287 &&
1288 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1289 &&
1290 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1291 &&
1292 (b = expression_rule(p)) // expression
1293 )
1294 {
1295 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 +03001296 _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 +01001297 if (_res == NULL && PyErr_Occurred()) {
1298 p->error_indicator = 1;
1299 D(p->level--);
1300 return NULL;
1301 }
1302 goto done;
1303 }
1304 p->mark = _mark;
1305 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1307 }
1308 { // '*' expression
1309 if (p->error_indicator) {
1310 D(p->level--);
1311 return NULL;
1312 }
1313 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1314 Token * _literal;
1315 expr_ty a;
1316 if (
1317 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1318 &&
1319 (a = expression_rule(p)) // expression
1320 )
1321 {
1322 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001323 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001324 if (_res == NULL && PyErr_Occurred()) {
1325 p->error_indicator = 1;
1326 D(p->level--);
1327 return NULL;
1328 }
1329 goto done;
1330 }
1331 p->mark = _mark;
1332 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1334 }
1335 { // '**' expression
1336 if (p->error_indicator) {
1337 D(p->level--);
1338 return NULL;
1339 }
1340 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1341 Token * _literal;
1342 expr_ty a;
1343 if (
1344 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1345 &&
1346 (a = expression_rule(p)) // expression
1347 )
1348 {
1349 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001350 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001351 if (_res == NULL && PyErr_Occurred()) {
1352 p->error_indicator = 1;
1353 D(p->level--);
1354 return NULL;
1355 }
1356 goto done;
1357 }
1358 p->mark = _mark;
1359 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1361 }
1362 { // ','.expression+
1363 if (p->error_indicator) {
1364 D(p->level--);
1365 return NULL;
1366 }
1367 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001368 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001369 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001370 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001371 )
1372 {
1373 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001374 _res = a;
1375 if (_res == NULL && PyErr_Occurred()) {
1376 p->error_indicator = 1;
1377 D(p->level--);
1378 return NULL;
1379 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001380 goto done;
1381 }
1382 p->mark = _mark;
1383 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1385 }
1386 _res = NULL;
1387 done:
1388 D(p->level--);
1389 return _res;
1390}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001391
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001392// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001393static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001394statements_rule(Parser *p)
1395{
1396 D(p->level++);
1397 if (p->error_indicator) {
1398 D(p->level--);
1399 return NULL;
1400 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001401 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001402 int _mark = p->mark;
1403 { // statement+
1404 if (p->error_indicator) {
1405 D(p->level--);
1406 return NULL;
1407 }
1408 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1409 asdl_seq * a;
1410 if (
1411 (a = _loop1_11_rule(p)) // statement+
1412 )
1413 {
1414 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001415 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001416 if (_res == NULL && PyErr_Occurred()) {
1417 p->error_indicator = 1;
1418 D(p->level--);
1419 return NULL;
1420 }
1421 goto done;
1422 }
1423 p->mark = _mark;
1424 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1426 }
1427 _res = NULL;
1428 done:
1429 D(p->level--);
1430 return _res;
1431}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001432
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001433// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001434static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001435statement_rule(Parser *p)
1436{
1437 D(p->level++);
1438 if (p->error_indicator) {
1439 D(p->level--);
1440 return NULL;
1441 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001442 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001443 int _mark = p->mark;
1444 { // compound_stmt
1445 if (p->error_indicator) {
1446 D(p->level--);
1447 return NULL;
1448 }
1449 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1450 stmt_ty a;
1451 if (
1452 (a = compound_stmt_rule(p)) // compound_stmt
1453 )
1454 {
1455 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001456 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001457 if (_res == NULL && PyErr_Occurred()) {
1458 p->error_indicator = 1;
1459 D(p->level--);
1460 return NULL;
1461 }
1462 goto done;
1463 }
1464 p->mark = _mark;
1465 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1467 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001468 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001469 if (p->error_indicator) {
1470 D(p->level--);
1471 return NULL;
1472 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001473 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001474 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001475 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001476 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001477 )
1478 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001479 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001480 _res = a;
1481 if (_res == NULL && PyErr_Occurred()) {
1482 p->error_indicator = 1;
1483 D(p->level--);
1484 return NULL;
1485 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001486 goto done;
1487 }
1488 p->mark = _mark;
1489 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001491 }
1492 _res = NULL;
1493 done:
1494 D(p->level--);
1495 return _res;
1496}
1497
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001498// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001499static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001500statement_newline_rule(Parser *p)
1501{
1502 D(p->level++);
1503 if (p->error_indicator) {
1504 D(p->level--);
1505 return NULL;
1506 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001507 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001508 int _mark = p->mark;
1509 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1510 p->error_indicator = 1;
1511 D(p->level--);
1512 return NULL;
1513 }
1514 int _start_lineno = p->tokens[_mark]->lineno;
1515 UNUSED(_start_lineno); // Only used by EXTRA macro
1516 int _start_col_offset = p->tokens[_mark]->col_offset;
1517 UNUSED(_start_col_offset); // Only used by EXTRA macro
1518 { // compound_stmt NEWLINE
1519 if (p->error_indicator) {
1520 D(p->level--);
1521 return NULL;
1522 }
1523 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1524 stmt_ty a;
1525 Token * newline_var;
1526 if (
1527 (a = compound_stmt_rule(p)) // compound_stmt
1528 &&
1529 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1530 )
1531 {
1532 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 +01001533 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001534 if (_res == NULL && PyErr_Occurred()) {
1535 p->error_indicator = 1;
1536 D(p->level--);
1537 return NULL;
1538 }
1539 goto done;
1540 }
1541 p->mark = _mark;
1542 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1544 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001545 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001546 if (p->error_indicator) {
1547 D(p->level--);
1548 return NULL;
1549 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001550 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1551 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001552 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001553 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001554 )
1555 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001556 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1557 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001558 goto done;
1559 }
1560 p->mark = _mark;
1561 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001563 }
1564 { // NEWLINE
1565 if (p->error_indicator) {
1566 D(p->level--);
1567 return NULL;
1568 }
1569 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1570 Token * newline_var;
1571 if (
1572 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1573 )
1574 {
1575 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1576 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1577 if (_token == NULL) {
1578 D(p->level--);
1579 return NULL;
1580 }
1581 int _end_lineno = _token->end_lineno;
1582 UNUSED(_end_lineno); // Only used by EXTRA macro
1583 int _end_col_offset = _token->end_col_offset;
1584 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001585 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001586 if (_res == NULL && PyErr_Occurred()) {
1587 p->error_indicator = 1;
1588 D(p->level--);
1589 return NULL;
1590 }
1591 goto done;
1592 }
1593 p->mark = _mark;
1594 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1596 }
1597 { // $
1598 if (p->error_indicator) {
1599 D(p->level--);
1600 return NULL;
1601 }
1602 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1603 Token * endmarker_var;
1604 if (
1605 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1606 )
1607 {
1608 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1609 _res = _PyPegen_interactive_exit ( p );
1610 if (_res == NULL && PyErr_Occurred()) {
1611 p->error_indicator = 1;
1612 D(p->level--);
1613 return NULL;
1614 }
1615 goto done;
1616 }
1617 p->mark = _mark;
1618 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1620 }
1621 _res = NULL;
1622 done:
1623 D(p->level--);
1624 return _res;
1625}
1626
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001627// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001628static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001629simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001630{
1631 D(p->level++);
1632 if (p->error_indicator) {
1633 D(p->level--);
1634 return NULL;
1635 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001636 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001637 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001638 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001639 if (p->error_indicator) {
1640 D(p->level--);
1641 return NULL;
1642 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001643 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 +01001644 stmt_ty a;
1645 Token * newline_var;
1646 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001647 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001648 &&
1649 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1650 &&
1651 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1652 )
1653 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001654 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 +01001655 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001656 if (_res == NULL && PyErr_Occurred()) {
1657 p->error_indicator = 1;
1658 D(p->level--);
1659 return NULL;
1660 }
1661 goto done;
1662 }
1663 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001664 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001666 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001667 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001668 if (p->error_indicator) {
1669 D(p->level--);
1670 return NULL;
1671 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001672 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 +01001673 void *_opt_var;
1674 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001675 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001676 Token * newline_var;
1677 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001678 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001679 &&
1680 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1681 &&
1682 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1683 )
1684 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001685 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 +01001686 _res = a;
1687 if (_res == NULL && PyErr_Occurred()) {
1688 p->error_indicator = 1;
1689 D(p->level--);
1690 return NULL;
1691 }
1692 goto done;
1693 }
1694 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001695 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001697 }
1698 _res = NULL;
1699 done:
1700 D(p->level--);
1701 return _res;
1702}
1703
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001704// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001705// | assignment
1706// | star_expressions
1707// | &'return' return_stmt
1708// | &('import' | 'from') import_stmt
1709// | &'raise' raise_stmt
1710// | 'pass'
1711// | &'del' del_stmt
1712// | &'yield' yield_stmt
1713// | &'assert' assert_stmt
1714// | 'break'
1715// | 'continue'
1716// | &'global' global_stmt
1717// | &'nonlocal' nonlocal_stmt
1718static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001719simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001720{
1721 D(p->level++);
1722 if (p->error_indicator) {
1723 D(p->level--);
1724 return NULL;
1725 }
1726 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001727 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001728 D(p->level--);
1729 return _res;
1730 }
1731 int _mark = p->mark;
1732 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1733 p->error_indicator = 1;
1734 D(p->level--);
1735 return NULL;
1736 }
1737 int _start_lineno = p->tokens[_mark]->lineno;
1738 UNUSED(_start_lineno); // Only used by EXTRA macro
1739 int _start_col_offset = p->tokens[_mark]->col_offset;
1740 UNUSED(_start_col_offset); // Only used by EXTRA macro
1741 { // assignment
1742 if (p->error_indicator) {
1743 D(p->level--);
1744 return NULL;
1745 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001746 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001747 stmt_ty assignment_var;
1748 if (
1749 (assignment_var = assignment_rule(p)) // assignment
1750 )
1751 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001752 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001753 _res = assignment_var;
1754 goto done;
1755 }
1756 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001757 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1759 }
1760 { // star_expressions
1761 if (p->error_indicator) {
1762 D(p->level--);
1763 return NULL;
1764 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001765 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001766 expr_ty e;
1767 if (
1768 (e = star_expressions_rule(p)) // star_expressions
1769 )
1770 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001771 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 +01001772 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1773 if (_token == NULL) {
1774 D(p->level--);
1775 return NULL;
1776 }
1777 int _end_lineno = _token->end_lineno;
1778 UNUSED(_end_lineno); // Only used by EXTRA macro
1779 int _end_col_offset = _token->end_col_offset;
1780 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001781 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001782 if (_res == NULL && PyErr_Occurred()) {
1783 p->error_indicator = 1;
1784 D(p->level--);
1785 return NULL;
1786 }
1787 goto done;
1788 }
1789 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001790 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1792 }
1793 { // &'return' return_stmt
1794 if (p->error_indicator) {
1795 D(p->level--);
1796 return NULL;
1797 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001798 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 +01001799 stmt_ty return_stmt_var;
1800 if (
1801 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1802 &&
1803 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1804 )
1805 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001806 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 +01001807 _res = return_stmt_var;
1808 goto done;
1809 }
1810 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001811 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1813 }
1814 { // &('import' | 'from') import_stmt
1815 if (p->error_indicator) {
1816 D(p->level--);
1817 return NULL;
1818 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001819 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 +01001820 stmt_ty import_stmt_var;
1821 if (
1822 _PyPegen_lookahead(1, _tmp_14_rule, p)
1823 &&
1824 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1825 )
1826 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001827 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 +01001828 _res = import_stmt_var;
1829 goto done;
1830 }
1831 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001832 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1834 }
1835 { // &'raise' raise_stmt
1836 if (p->error_indicator) {
1837 D(p->level--);
1838 return NULL;
1839 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001840 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 +01001841 stmt_ty raise_stmt_var;
1842 if (
1843 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1844 &&
1845 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1846 )
1847 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001848 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 +01001849 _res = raise_stmt_var;
1850 goto done;
1851 }
1852 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001853 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1855 }
1856 { // 'pass'
1857 if (p->error_indicator) {
1858 D(p->level--);
1859 return NULL;
1860 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001861 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001862 Token * _keyword;
1863 if (
1864 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1865 )
1866 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001867 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1869 if (_token == NULL) {
1870 D(p->level--);
1871 return NULL;
1872 }
1873 int _end_lineno = _token->end_lineno;
1874 UNUSED(_end_lineno); // Only used by EXTRA macro
1875 int _end_col_offset = _token->end_col_offset;
1876 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001877 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001878 if (_res == NULL && PyErr_Occurred()) {
1879 p->error_indicator = 1;
1880 D(p->level--);
1881 return NULL;
1882 }
1883 goto done;
1884 }
1885 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001886 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1888 }
1889 { // &'del' del_stmt
1890 if (p->error_indicator) {
1891 D(p->level--);
1892 return NULL;
1893 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001894 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 +01001895 stmt_ty del_stmt_var;
1896 if (
1897 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1898 &&
1899 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1900 )
1901 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001902 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 +01001903 _res = del_stmt_var;
1904 goto done;
1905 }
1906 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001907 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1909 }
1910 { // &'yield' yield_stmt
1911 if (p->error_indicator) {
1912 D(p->level--);
1913 return NULL;
1914 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001915 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 +01001916 stmt_ty yield_stmt_var;
1917 if (
1918 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1919 &&
1920 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1921 )
1922 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001923 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 +01001924 _res = yield_stmt_var;
1925 goto done;
1926 }
1927 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001928 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1930 }
1931 { // &'assert' assert_stmt
1932 if (p->error_indicator) {
1933 D(p->level--);
1934 return NULL;
1935 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001936 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 +01001937 stmt_ty assert_stmt_var;
1938 if (
1939 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1940 &&
1941 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1942 )
1943 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001944 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 +01001945 _res = assert_stmt_var;
1946 goto done;
1947 }
1948 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001949 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1951 }
1952 { // 'break'
1953 if (p->error_indicator) {
1954 D(p->level--);
1955 return NULL;
1956 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001957 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001958 Token * _keyword;
1959 if (
1960 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1961 )
1962 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001963 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001964 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1965 if (_token == NULL) {
1966 D(p->level--);
1967 return NULL;
1968 }
1969 int _end_lineno = _token->end_lineno;
1970 UNUSED(_end_lineno); // Only used by EXTRA macro
1971 int _end_col_offset = _token->end_col_offset;
1972 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001973 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001974 if (_res == NULL && PyErr_Occurred()) {
1975 p->error_indicator = 1;
1976 D(p->level--);
1977 return NULL;
1978 }
1979 goto done;
1980 }
1981 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001982 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1984 }
1985 { // 'continue'
1986 if (p->error_indicator) {
1987 D(p->level--);
1988 return NULL;
1989 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001990 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001991 Token * _keyword;
1992 if (
1993 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1994 )
1995 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001996 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001997 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1998 if (_token == NULL) {
1999 D(p->level--);
2000 return NULL;
2001 }
2002 int _end_lineno = _token->end_lineno;
2003 UNUSED(_end_lineno); // Only used by EXTRA macro
2004 int _end_col_offset = _token->end_col_offset;
2005 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002006 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002007 if (_res == NULL && PyErr_Occurred()) {
2008 p->error_indicator = 1;
2009 D(p->level--);
2010 return NULL;
2011 }
2012 goto done;
2013 }
2014 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002015 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2017 }
2018 { // &'global' global_stmt
2019 if (p->error_indicator) {
2020 D(p->level--);
2021 return NULL;
2022 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002023 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 +01002024 stmt_ty global_stmt_var;
2025 if (
2026 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2027 &&
2028 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2029 )
2030 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002031 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 +01002032 _res = global_stmt_var;
2033 goto done;
2034 }
2035 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002036 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2038 }
2039 { // &'nonlocal' nonlocal_stmt
2040 if (p->error_indicator) {
2041 D(p->level--);
2042 return NULL;
2043 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002044 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 +01002045 stmt_ty nonlocal_stmt_var;
2046 if (
2047 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2048 &&
2049 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2050 )
2051 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002052 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 +01002053 _res = nonlocal_stmt_var;
2054 goto done;
2055 }
2056 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002057 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2059 }
2060 _res = NULL;
2061 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002062 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002063 D(p->level--);
2064 return _res;
2065}
2066
2067// compound_stmt:
2068// | &('def' | '@' | ASYNC) function_def
2069// | &'if' if_stmt
2070// | &('class' | '@') class_def
2071// | &('with' | ASYNC) with_stmt
2072// | &('for' | ASYNC) for_stmt
2073// | &'try' try_stmt
2074// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002075// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002076static stmt_ty
2077compound_stmt_rule(Parser *p)
2078{
2079 D(p->level++);
2080 if (p->error_indicator) {
2081 D(p->level--);
2082 return NULL;
2083 }
2084 stmt_ty _res = NULL;
2085 int _mark = p->mark;
2086 { // &('def' | '@' | ASYNC) function_def
2087 if (p->error_indicator) {
2088 D(p->level--);
2089 return NULL;
2090 }
2091 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2092 stmt_ty function_def_var;
2093 if (
2094 _PyPegen_lookahead(1, _tmp_15_rule, p)
2095 &&
2096 (function_def_var = function_def_rule(p)) // function_def
2097 )
2098 {
2099 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2100 _res = function_def_var;
2101 goto done;
2102 }
2103 p->mark = _mark;
2104 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2106 }
2107 { // &'if' if_stmt
2108 if (p->error_indicator) {
2109 D(p->level--);
2110 return NULL;
2111 }
2112 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2113 stmt_ty if_stmt_var;
2114 if (
2115 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2116 &&
2117 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2118 )
2119 {
2120 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2121 _res = if_stmt_var;
2122 goto done;
2123 }
2124 p->mark = _mark;
2125 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2127 }
2128 { // &('class' | '@') class_def
2129 if (p->error_indicator) {
2130 D(p->level--);
2131 return NULL;
2132 }
2133 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2134 stmt_ty class_def_var;
2135 if (
2136 _PyPegen_lookahead(1, _tmp_16_rule, p)
2137 &&
2138 (class_def_var = class_def_rule(p)) // class_def
2139 )
2140 {
2141 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2142 _res = class_def_var;
2143 goto done;
2144 }
2145 p->mark = _mark;
2146 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2148 }
2149 { // &('with' | ASYNC) with_stmt
2150 if (p->error_indicator) {
2151 D(p->level--);
2152 return NULL;
2153 }
2154 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2155 stmt_ty with_stmt_var;
2156 if (
2157 _PyPegen_lookahead(1, _tmp_17_rule, p)
2158 &&
2159 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2160 )
2161 {
2162 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2163 _res = with_stmt_var;
2164 goto done;
2165 }
2166 p->mark = _mark;
2167 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2169 }
2170 { // &('for' | ASYNC) for_stmt
2171 if (p->error_indicator) {
2172 D(p->level--);
2173 return NULL;
2174 }
2175 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2176 stmt_ty for_stmt_var;
2177 if (
2178 _PyPegen_lookahead(1, _tmp_18_rule, p)
2179 &&
2180 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2181 )
2182 {
2183 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2184 _res = for_stmt_var;
2185 goto done;
2186 }
2187 p->mark = _mark;
2188 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2190 }
2191 { // &'try' try_stmt
2192 if (p->error_indicator) {
2193 D(p->level--);
2194 return NULL;
2195 }
2196 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2197 stmt_ty try_stmt_var;
2198 if (
2199 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2200 &&
2201 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2202 )
2203 {
2204 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2205 _res = try_stmt_var;
2206 goto done;
2207 }
2208 p->mark = _mark;
2209 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2211 }
2212 { // &'while' while_stmt
2213 if (p->error_indicator) {
2214 D(p->level--);
2215 return NULL;
2216 }
2217 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2218 stmt_ty while_stmt_var;
2219 if (
2220 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2221 &&
2222 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2223 )
2224 {
2225 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2226 _res = while_stmt_var;
2227 goto done;
2228 }
2229 p->mark = _mark;
2230 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2232 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002233 { // match_stmt
2234 if (p->error_indicator) {
2235 D(p->level--);
2236 return NULL;
2237 }
2238 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2239 stmt_ty match_stmt_var;
2240 if (
2241 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2242 )
2243 {
2244 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2245 _res = match_stmt_var;
2246 goto done;
2247 }
2248 p->mark = _mark;
2249 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2251 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002252 _res = NULL;
2253 done:
2254 D(p->level--);
2255 return _res;
2256}
2257
2258// assignment:
2259// | NAME ':' expression ['=' annotated_rhs]
2260// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2261// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002262// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002263// | invalid_assignment
2264static stmt_ty
2265assignment_rule(Parser *p)
2266{
2267 D(p->level++);
2268 if (p->error_indicator) {
2269 D(p->level--);
2270 return NULL;
2271 }
2272 stmt_ty _res = NULL;
2273 int _mark = p->mark;
2274 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2275 p->error_indicator = 1;
2276 D(p->level--);
2277 return NULL;
2278 }
2279 int _start_lineno = p->tokens[_mark]->lineno;
2280 UNUSED(_start_lineno); // Only used by EXTRA macro
2281 int _start_col_offset = p->tokens[_mark]->col_offset;
2282 UNUSED(_start_col_offset); // Only used by EXTRA macro
2283 { // NAME ':' expression ['=' annotated_rhs]
2284 if (p->error_indicator) {
2285 D(p->level--);
2286 return NULL;
2287 }
2288 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2289 Token * _literal;
2290 expr_ty a;
2291 expr_ty b;
2292 void *c;
2293 if (
2294 (a = _PyPegen_name_token(p)) // NAME
2295 &&
2296 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2297 &&
2298 (b = expression_rule(p)) // expression
2299 &&
2300 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2301 )
2302 {
2303 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2304 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2305 if (_token == NULL) {
2306 D(p->level--);
2307 return NULL;
2308 }
2309 int _end_lineno = _token->end_lineno;
2310 UNUSED(_end_lineno); // Only used by EXTRA macro
2311 int _end_col_offset = _token->end_col_offset;
2312 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002313 _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 +01002314 if (_res == NULL && PyErr_Occurred()) {
2315 p->error_indicator = 1;
2316 D(p->level--);
2317 return NULL;
2318 }
2319 goto done;
2320 }
2321 p->mark = _mark;
2322 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2324 }
2325 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2326 if (p->error_indicator) {
2327 D(p->level--);
2328 return NULL;
2329 }
2330 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2331 Token * _literal;
2332 void *a;
2333 expr_ty b;
2334 void *c;
2335 if (
2336 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2337 &&
2338 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2339 &&
2340 (b = expression_rule(p)) // expression
2341 &&
2342 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2343 )
2344 {
2345 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2346 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2347 if (_token == NULL) {
2348 D(p->level--);
2349 return NULL;
2350 }
2351 int _end_lineno = _token->end_lineno;
2352 UNUSED(_end_lineno); // Only used by EXTRA macro
2353 int _end_col_offset = _token->end_col_offset;
2354 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002355 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002356 if (_res == NULL && PyErr_Occurred()) {
2357 p->error_indicator = 1;
2358 D(p->level--);
2359 return NULL;
2360 }
2361 goto done;
2362 }
2363 p->mark = _mark;
2364 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2366 }
2367 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2368 if (p->error_indicator) {
2369 D(p->level--);
2370 return NULL;
2371 }
2372 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 +01002373 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002374 void *b;
2375 void *tc;
2376 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002377 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002378 &&
2379 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2380 &&
2381 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2382 &&
2383 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2384 )
2385 {
2386 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2387 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2388 if (_token == NULL) {
2389 D(p->level--);
2390 return NULL;
2391 }
2392 int _end_lineno = _token->end_lineno;
2393 UNUSED(_end_lineno); // Only used by EXTRA macro
2394 int _end_col_offset = _token->end_col_offset;
2395 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002396 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002397 if (_res == NULL && PyErr_Occurred()) {
2398 p->error_indicator = 1;
2399 D(p->level--);
2400 return NULL;
2401 }
2402 goto done;
2403 }
2404 p->mark = _mark;
2405 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2407 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002408 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002409 if (p->error_indicator) {
2410 D(p->level--);
2411 return NULL;
2412 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002413 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2414 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002415 expr_ty a;
2416 AugOperator* b;
2417 void *c;
2418 if (
2419 (a = single_target_rule(p)) // single_target
2420 &&
2421 (b = augassign_rule(p)) // augassign
2422 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002423 (_cut_var = 1)
2424 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002425 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2426 )
2427 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002428 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 +01002429 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2430 if (_token == NULL) {
2431 D(p->level--);
2432 return NULL;
2433 }
2434 int _end_lineno = _token->end_lineno;
2435 UNUSED(_end_lineno); // Only used by EXTRA macro
2436 int _end_col_offset = _token->end_col_offset;
2437 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002438 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002439 if (_res == NULL && PyErr_Occurred()) {
2440 p->error_indicator = 1;
2441 D(p->level--);
2442 return NULL;
2443 }
2444 goto done;
2445 }
2446 p->mark = _mark;
2447 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2449 if (_cut_var) {
2450 D(p->level--);
2451 return NULL;
2452 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002453 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002454 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002455 if (p->error_indicator) {
2456 D(p->level--);
2457 return NULL;
2458 }
2459 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2460 void *invalid_assignment_var;
2461 if (
2462 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2463 )
2464 {
2465 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2466 _res = invalid_assignment_var;
2467 goto done;
2468 }
2469 p->mark = _mark;
2470 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2472 }
2473 _res = NULL;
2474 done:
2475 D(p->level--);
2476 return _res;
2477}
2478
2479// augassign:
2480// | '+='
2481// | '-='
2482// | '*='
2483// | '@='
2484// | '/='
2485// | '%='
2486// | '&='
2487// | '|='
2488// | '^='
2489// | '<<='
2490// | '>>='
2491// | '**='
2492// | '//='
2493static AugOperator*
2494augassign_rule(Parser *p)
2495{
2496 D(p->level++);
2497 if (p->error_indicator) {
2498 D(p->level--);
2499 return NULL;
2500 }
2501 AugOperator* _res = NULL;
2502 int _mark = p->mark;
2503 { // '+='
2504 if (p->error_indicator) {
2505 D(p->level--);
2506 return NULL;
2507 }
2508 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2509 Token * _literal;
2510 if (
2511 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2512 )
2513 {
2514 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2515 _res = _PyPegen_augoperator ( p , Add );
2516 if (_res == NULL && PyErr_Occurred()) {
2517 p->error_indicator = 1;
2518 D(p->level--);
2519 return NULL;
2520 }
2521 goto done;
2522 }
2523 p->mark = _mark;
2524 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2526 }
2527 { // '-='
2528 if (p->error_indicator) {
2529 D(p->level--);
2530 return NULL;
2531 }
2532 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2533 Token * _literal;
2534 if (
2535 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2536 )
2537 {
2538 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2539 _res = _PyPegen_augoperator ( p , Sub );
2540 if (_res == NULL && PyErr_Occurred()) {
2541 p->error_indicator = 1;
2542 D(p->level--);
2543 return NULL;
2544 }
2545 goto done;
2546 }
2547 p->mark = _mark;
2548 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2550 }
2551 { // '*='
2552 if (p->error_indicator) {
2553 D(p->level--);
2554 return NULL;
2555 }
2556 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2557 Token * _literal;
2558 if (
2559 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2560 )
2561 {
2562 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2563 _res = _PyPegen_augoperator ( p , Mult );
2564 if (_res == NULL && PyErr_Occurred()) {
2565 p->error_indicator = 1;
2566 D(p->level--);
2567 return NULL;
2568 }
2569 goto done;
2570 }
2571 p->mark = _mark;
2572 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2574 }
2575 { // '@='
2576 if (p->error_indicator) {
2577 D(p->level--);
2578 return NULL;
2579 }
2580 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2581 Token * _literal;
2582 if (
2583 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2584 )
2585 {
2586 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002587 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002588 if (_res == NULL && PyErr_Occurred()) {
2589 p->error_indicator = 1;
2590 D(p->level--);
2591 return NULL;
2592 }
2593 goto done;
2594 }
2595 p->mark = _mark;
2596 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2598 }
2599 { // '/='
2600 if (p->error_indicator) {
2601 D(p->level--);
2602 return NULL;
2603 }
2604 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2605 Token * _literal;
2606 if (
2607 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2608 )
2609 {
2610 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2611 _res = _PyPegen_augoperator ( p , Div );
2612 if (_res == NULL && PyErr_Occurred()) {
2613 p->error_indicator = 1;
2614 D(p->level--);
2615 return NULL;
2616 }
2617 goto done;
2618 }
2619 p->mark = _mark;
2620 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2622 }
2623 { // '%='
2624 if (p->error_indicator) {
2625 D(p->level--);
2626 return NULL;
2627 }
2628 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2629 Token * _literal;
2630 if (
2631 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2632 )
2633 {
2634 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2635 _res = _PyPegen_augoperator ( p , Mod );
2636 if (_res == NULL && PyErr_Occurred()) {
2637 p->error_indicator = 1;
2638 D(p->level--);
2639 return NULL;
2640 }
2641 goto done;
2642 }
2643 p->mark = _mark;
2644 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2646 }
2647 { // '&='
2648 if (p->error_indicator) {
2649 D(p->level--);
2650 return NULL;
2651 }
2652 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2653 Token * _literal;
2654 if (
2655 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2656 )
2657 {
2658 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2659 _res = _PyPegen_augoperator ( p , BitAnd );
2660 if (_res == NULL && PyErr_Occurred()) {
2661 p->error_indicator = 1;
2662 D(p->level--);
2663 return NULL;
2664 }
2665 goto done;
2666 }
2667 p->mark = _mark;
2668 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2670 }
2671 { // '|='
2672 if (p->error_indicator) {
2673 D(p->level--);
2674 return NULL;
2675 }
2676 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2677 Token * _literal;
2678 if (
2679 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2680 )
2681 {
2682 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2683 _res = _PyPegen_augoperator ( p , BitOr );
2684 if (_res == NULL && PyErr_Occurred()) {
2685 p->error_indicator = 1;
2686 D(p->level--);
2687 return NULL;
2688 }
2689 goto done;
2690 }
2691 p->mark = _mark;
2692 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2694 }
2695 { // '^='
2696 if (p->error_indicator) {
2697 D(p->level--);
2698 return NULL;
2699 }
2700 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2701 Token * _literal;
2702 if (
2703 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2704 )
2705 {
2706 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2707 _res = _PyPegen_augoperator ( p , BitXor );
2708 if (_res == NULL && PyErr_Occurred()) {
2709 p->error_indicator = 1;
2710 D(p->level--);
2711 return NULL;
2712 }
2713 goto done;
2714 }
2715 p->mark = _mark;
2716 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2718 }
2719 { // '<<='
2720 if (p->error_indicator) {
2721 D(p->level--);
2722 return NULL;
2723 }
2724 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2725 Token * _literal;
2726 if (
2727 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2728 )
2729 {
2730 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2731 _res = _PyPegen_augoperator ( p , LShift );
2732 if (_res == NULL && PyErr_Occurred()) {
2733 p->error_indicator = 1;
2734 D(p->level--);
2735 return NULL;
2736 }
2737 goto done;
2738 }
2739 p->mark = _mark;
2740 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2742 }
2743 { // '>>='
2744 if (p->error_indicator) {
2745 D(p->level--);
2746 return NULL;
2747 }
2748 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2749 Token * _literal;
2750 if (
2751 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2752 )
2753 {
2754 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2755 _res = _PyPegen_augoperator ( p , RShift );
2756 if (_res == NULL && PyErr_Occurred()) {
2757 p->error_indicator = 1;
2758 D(p->level--);
2759 return NULL;
2760 }
2761 goto done;
2762 }
2763 p->mark = _mark;
2764 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2766 }
2767 { // '**='
2768 if (p->error_indicator) {
2769 D(p->level--);
2770 return NULL;
2771 }
2772 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2773 Token * _literal;
2774 if (
2775 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2776 )
2777 {
2778 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2779 _res = _PyPegen_augoperator ( p , Pow );
2780 if (_res == NULL && PyErr_Occurred()) {
2781 p->error_indicator = 1;
2782 D(p->level--);
2783 return NULL;
2784 }
2785 goto done;
2786 }
2787 p->mark = _mark;
2788 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2790 }
2791 { // '//='
2792 if (p->error_indicator) {
2793 D(p->level--);
2794 return NULL;
2795 }
2796 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2797 Token * _literal;
2798 if (
2799 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2800 )
2801 {
2802 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2803 _res = _PyPegen_augoperator ( p , FloorDiv );
2804 if (_res == NULL && PyErr_Occurred()) {
2805 p->error_indicator = 1;
2806 D(p->level--);
2807 return NULL;
2808 }
2809 goto done;
2810 }
2811 p->mark = _mark;
2812 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2814 }
2815 _res = NULL;
2816 done:
2817 D(p->level--);
2818 return _res;
2819}
2820
2821// global_stmt: 'global' ','.NAME+
2822static stmt_ty
2823global_stmt_rule(Parser *p)
2824{
2825 D(p->level++);
2826 if (p->error_indicator) {
2827 D(p->level--);
2828 return NULL;
2829 }
2830 stmt_ty _res = NULL;
2831 int _mark = p->mark;
2832 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2833 p->error_indicator = 1;
2834 D(p->level--);
2835 return NULL;
2836 }
2837 int _start_lineno = p->tokens[_mark]->lineno;
2838 UNUSED(_start_lineno); // Only used by EXTRA macro
2839 int _start_col_offset = p->tokens[_mark]->col_offset;
2840 UNUSED(_start_col_offset); // Only used by EXTRA macro
2841 { // 'global' ','.NAME+
2842 if (p->error_indicator) {
2843 D(p->level--);
2844 return NULL;
2845 }
2846 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2847 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002848 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002849 if (
2850 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2851 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002852 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002853 )
2854 {
2855 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2856 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2857 if (_token == NULL) {
2858 D(p->level--);
2859 return NULL;
2860 }
2861 int _end_lineno = _token->end_lineno;
2862 UNUSED(_end_lineno); // Only used by EXTRA macro
2863 int _end_col_offset = _token->end_col_offset;
2864 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002865 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002866 if (_res == NULL && PyErr_Occurred()) {
2867 p->error_indicator = 1;
2868 D(p->level--);
2869 return NULL;
2870 }
2871 goto done;
2872 }
2873 p->mark = _mark;
2874 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2876 }
2877 _res = NULL;
2878 done:
2879 D(p->level--);
2880 return _res;
2881}
2882
2883// nonlocal_stmt: 'nonlocal' ','.NAME+
2884static stmt_ty
2885nonlocal_stmt_rule(Parser *p)
2886{
2887 D(p->level++);
2888 if (p->error_indicator) {
2889 D(p->level--);
2890 return NULL;
2891 }
2892 stmt_ty _res = NULL;
2893 int _mark = p->mark;
2894 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2895 p->error_indicator = 1;
2896 D(p->level--);
2897 return NULL;
2898 }
2899 int _start_lineno = p->tokens[_mark]->lineno;
2900 UNUSED(_start_lineno); // Only used by EXTRA macro
2901 int _start_col_offset = p->tokens[_mark]->col_offset;
2902 UNUSED(_start_col_offset); // Only used by EXTRA macro
2903 { // 'nonlocal' ','.NAME+
2904 if (p->error_indicator) {
2905 D(p->level--);
2906 return NULL;
2907 }
2908 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2909 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002910 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002911 if (
2912 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2913 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002914 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002915 )
2916 {
2917 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2918 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2919 if (_token == NULL) {
2920 D(p->level--);
2921 return NULL;
2922 }
2923 int _end_lineno = _token->end_lineno;
2924 UNUSED(_end_lineno); // Only used by EXTRA macro
2925 int _end_col_offset = _token->end_col_offset;
2926 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002927 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002928 if (_res == NULL && PyErr_Occurred()) {
2929 p->error_indicator = 1;
2930 D(p->level--);
2931 return NULL;
2932 }
2933 goto done;
2934 }
2935 p->mark = _mark;
2936 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2938 }
2939 _res = NULL;
2940 done:
2941 D(p->level--);
2942 return _res;
2943}
2944
2945// yield_stmt: yield_expr
2946static stmt_ty
2947yield_stmt_rule(Parser *p)
2948{
2949 D(p->level++);
2950 if (p->error_indicator) {
2951 D(p->level--);
2952 return NULL;
2953 }
2954 stmt_ty _res = NULL;
2955 int _mark = p->mark;
2956 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2957 p->error_indicator = 1;
2958 D(p->level--);
2959 return NULL;
2960 }
2961 int _start_lineno = p->tokens[_mark]->lineno;
2962 UNUSED(_start_lineno); // Only used by EXTRA macro
2963 int _start_col_offset = p->tokens[_mark]->col_offset;
2964 UNUSED(_start_col_offset); // Only used by EXTRA macro
2965 { // yield_expr
2966 if (p->error_indicator) {
2967 D(p->level--);
2968 return NULL;
2969 }
2970 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2971 expr_ty y;
2972 if (
2973 (y = yield_expr_rule(p)) // yield_expr
2974 )
2975 {
2976 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2977 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2978 if (_token == NULL) {
2979 D(p->level--);
2980 return NULL;
2981 }
2982 int _end_lineno = _token->end_lineno;
2983 UNUSED(_end_lineno); // Only used by EXTRA macro
2984 int _end_col_offset = _token->end_col_offset;
2985 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002986 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002987 if (_res == NULL && PyErr_Occurred()) {
2988 p->error_indicator = 1;
2989 D(p->level--);
2990 return NULL;
2991 }
2992 goto done;
2993 }
2994 p->mark = _mark;
2995 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2997 }
2998 _res = NULL;
2999 done:
3000 D(p->level--);
3001 return _res;
3002}
3003
3004// assert_stmt: 'assert' expression [',' expression]
3005static stmt_ty
3006assert_stmt_rule(Parser *p)
3007{
3008 D(p->level++);
3009 if (p->error_indicator) {
3010 D(p->level--);
3011 return NULL;
3012 }
3013 stmt_ty _res = NULL;
3014 int _mark = p->mark;
3015 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3016 p->error_indicator = 1;
3017 D(p->level--);
3018 return NULL;
3019 }
3020 int _start_lineno = p->tokens[_mark]->lineno;
3021 UNUSED(_start_lineno); // Only used by EXTRA macro
3022 int _start_col_offset = p->tokens[_mark]->col_offset;
3023 UNUSED(_start_col_offset); // Only used by EXTRA macro
3024 { // 'assert' expression [',' expression]
3025 if (p->error_indicator) {
3026 D(p->level--);
3027 return NULL;
3028 }
3029 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3030 Token * _keyword;
3031 expr_ty a;
3032 void *b;
3033 if (
3034 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3035 &&
3036 (a = expression_rule(p)) // expression
3037 &&
3038 (b = _tmp_29_rule(p), 1) // [',' expression]
3039 )
3040 {
3041 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3043 if (_token == NULL) {
3044 D(p->level--);
3045 return NULL;
3046 }
3047 int _end_lineno = _token->end_lineno;
3048 UNUSED(_end_lineno); // Only used by EXTRA macro
3049 int _end_col_offset = _token->end_col_offset;
3050 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003051 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003052 if (_res == NULL && PyErr_Occurred()) {
3053 p->error_indicator = 1;
3054 D(p->level--);
3055 return NULL;
3056 }
3057 goto done;
3058 }
3059 p->mark = _mark;
3060 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3062 }
3063 _res = NULL;
3064 done:
3065 D(p->level--);
3066 return _res;
3067}
3068
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003069// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003070static stmt_ty
3071del_stmt_rule(Parser *p)
3072{
3073 D(p->level++);
3074 if (p->error_indicator) {
3075 D(p->level--);
3076 return NULL;
3077 }
3078 stmt_ty _res = NULL;
3079 int _mark = p->mark;
3080 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3081 p->error_indicator = 1;
3082 D(p->level--);
3083 return NULL;
3084 }
3085 int _start_lineno = p->tokens[_mark]->lineno;
3086 UNUSED(_start_lineno); // Only used by EXTRA macro
3087 int _start_col_offset = p->tokens[_mark]->col_offset;
3088 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003089 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003090 if (p->error_indicator) {
3091 D(p->level--);
3092 return NULL;
3093 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003094 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 +01003095 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003096 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003097 if (
3098 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3099 &&
3100 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003101 &&
3102 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003103 )
3104 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003105 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 +01003106 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3107 if (_token == NULL) {
3108 D(p->level--);
3109 return NULL;
3110 }
3111 int _end_lineno = _token->end_lineno;
3112 UNUSED(_end_lineno); // Only used by EXTRA macro
3113 int _end_col_offset = _token->end_col_offset;
3114 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003115 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003116 if (_res == NULL && PyErr_Occurred()) {
3117 p->error_indicator = 1;
3118 D(p->level--);
3119 return NULL;
3120 }
3121 goto done;
3122 }
3123 p->mark = _mark;
3124 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3126 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003127 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003128 if (p->error_indicator) {
3129 D(p->level--);
3130 return NULL;
3131 }
3132 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3133 void *invalid_del_stmt_var;
3134 if (
3135 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3136 )
3137 {
3138 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3139 _res = invalid_del_stmt_var;
3140 goto done;
3141 }
3142 p->mark = _mark;
3143 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003145 }
3146 _res = NULL;
3147 done:
3148 D(p->level--);
3149 return _res;
3150}
3151
3152// import_stmt: import_name | import_from
3153static stmt_ty
3154import_stmt_rule(Parser *p)
3155{
3156 D(p->level++);
3157 if (p->error_indicator) {
3158 D(p->level--);
3159 return NULL;
3160 }
3161 stmt_ty _res = NULL;
3162 int _mark = p->mark;
3163 { // import_name
3164 if (p->error_indicator) {
3165 D(p->level--);
3166 return NULL;
3167 }
3168 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3169 stmt_ty import_name_var;
3170 if (
3171 (import_name_var = import_name_rule(p)) // import_name
3172 )
3173 {
3174 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3175 _res = import_name_var;
3176 goto done;
3177 }
3178 p->mark = _mark;
3179 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3181 }
3182 { // import_from
3183 if (p->error_indicator) {
3184 D(p->level--);
3185 return NULL;
3186 }
3187 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3188 stmt_ty import_from_var;
3189 if (
3190 (import_from_var = import_from_rule(p)) // import_from
3191 )
3192 {
3193 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3194 _res = import_from_var;
3195 goto done;
3196 }
3197 p->mark = _mark;
3198 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3200 }
3201 _res = NULL;
3202 done:
3203 D(p->level--);
3204 return _res;
3205}
3206
3207// import_name: 'import' dotted_as_names
3208static stmt_ty
3209import_name_rule(Parser *p)
3210{
3211 D(p->level++);
3212 if (p->error_indicator) {
3213 D(p->level--);
3214 return NULL;
3215 }
3216 stmt_ty _res = NULL;
3217 int _mark = p->mark;
3218 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3219 p->error_indicator = 1;
3220 D(p->level--);
3221 return NULL;
3222 }
3223 int _start_lineno = p->tokens[_mark]->lineno;
3224 UNUSED(_start_lineno); // Only used by EXTRA macro
3225 int _start_col_offset = p->tokens[_mark]->col_offset;
3226 UNUSED(_start_col_offset); // Only used by EXTRA macro
3227 { // 'import' dotted_as_names
3228 if (p->error_indicator) {
3229 D(p->level--);
3230 return NULL;
3231 }
3232 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3233 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003234 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003235 if (
3236 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3237 &&
3238 (a = dotted_as_names_rule(p)) // dotted_as_names
3239 )
3240 {
3241 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3243 if (_token == NULL) {
3244 D(p->level--);
3245 return NULL;
3246 }
3247 int _end_lineno = _token->end_lineno;
3248 UNUSED(_end_lineno); // Only used by EXTRA macro
3249 int _end_col_offset = _token->end_col_offset;
3250 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003251 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003252 if (_res == NULL && PyErr_Occurred()) {
3253 p->error_indicator = 1;
3254 D(p->level--);
3255 return NULL;
3256 }
3257 goto done;
3258 }
3259 p->mark = _mark;
3260 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3262 }
3263 _res = NULL;
3264 done:
3265 D(p->level--);
3266 return _res;
3267}
3268
3269// import_from:
3270// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3271// | 'from' (('.' | '...'))+ 'import' import_from_targets
3272static stmt_ty
3273import_from_rule(Parser *p)
3274{
3275 D(p->level++);
3276 if (p->error_indicator) {
3277 D(p->level--);
3278 return NULL;
3279 }
3280 stmt_ty _res = NULL;
3281 int _mark = p->mark;
3282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3283 p->error_indicator = 1;
3284 D(p->level--);
3285 return NULL;
3286 }
3287 int _start_lineno = p->tokens[_mark]->lineno;
3288 UNUSED(_start_lineno); // Only used by EXTRA macro
3289 int _start_col_offset = p->tokens[_mark]->col_offset;
3290 UNUSED(_start_col_offset); // Only used by EXTRA macro
3291 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3292 if (p->error_indicator) {
3293 D(p->level--);
3294 return NULL;
3295 }
3296 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3297 Token * _keyword;
3298 Token * _keyword_1;
3299 asdl_seq * a;
3300 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003301 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003302 if (
3303 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3304 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003305 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003306 &&
3307 (b = dotted_name_rule(p)) // dotted_name
3308 &&
3309 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3310 &&
3311 (c = import_from_targets_rule(p)) // import_from_targets
3312 )
3313 {
3314 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3315 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3316 if (_token == NULL) {
3317 D(p->level--);
3318 return NULL;
3319 }
3320 int _end_lineno = _token->end_lineno;
3321 UNUSED(_end_lineno); // Only used by EXTRA macro
3322 int _end_col_offset = _token->end_col_offset;
3323 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003324 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003325 if (_res == NULL && PyErr_Occurred()) {
3326 p->error_indicator = 1;
3327 D(p->level--);
3328 return NULL;
3329 }
3330 goto done;
3331 }
3332 p->mark = _mark;
3333 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3335 }
3336 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3337 if (p->error_indicator) {
3338 D(p->level--);
3339 return NULL;
3340 }
3341 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3342 Token * _keyword;
3343 Token * _keyword_1;
3344 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003345 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003346 if (
3347 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3348 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003349 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003350 &&
3351 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3352 &&
3353 (b = import_from_targets_rule(p)) // import_from_targets
3354 )
3355 {
3356 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3357 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3358 if (_token == NULL) {
3359 D(p->level--);
3360 return NULL;
3361 }
3362 int _end_lineno = _token->end_lineno;
3363 UNUSED(_end_lineno); // Only used by EXTRA macro
3364 int _end_col_offset = _token->end_col_offset;
3365 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003366 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003367 if (_res == NULL && PyErr_Occurred()) {
3368 p->error_indicator = 1;
3369 D(p->level--);
3370 return NULL;
3371 }
3372 goto done;
3373 }
3374 p->mark = _mark;
3375 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3377 }
3378 _res = NULL;
3379 done:
3380 D(p->level--);
3381 return _res;
3382}
3383
3384// import_from_targets:
3385// | '(' import_from_as_names ','? ')'
3386// | import_from_as_names !','
3387// | '*'
3388// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003389static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003390import_from_targets_rule(Parser *p)
3391{
3392 D(p->level++);
3393 if (p->error_indicator) {
3394 D(p->level--);
3395 return NULL;
3396 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003397 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003398 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003399 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3400 p->error_indicator = 1;
3401 D(p->level--);
3402 return NULL;
3403 }
3404 int _start_lineno = p->tokens[_mark]->lineno;
3405 UNUSED(_start_lineno); // Only used by EXTRA macro
3406 int _start_col_offset = p->tokens[_mark]->col_offset;
3407 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003408 { // '(' import_from_as_names ','? ')'
3409 if (p->error_indicator) {
3410 D(p->level--);
3411 return NULL;
3412 }
3413 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3414 Token * _literal;
3415 Token * _literal_1;
3416 void *_opt_var;
3417 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003418 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003419 if (
3420 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3421 &&
3422 (a = import_from_as_names_rule(p)) // import_from_as_names
3423 &&
3424 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3425 &&
3426 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3427 )
3428 {
3429 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3430 _res = a;
3431 if (_res == NULL && PyErr_Occurred()) {
3432 p->error_indicator = 1;
3433 D(p->level--);
3434 return NULL;
3435 }
3436 goto done;
3437 }
3438 p->mark = _mark;
3439 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3441 }
3442 { // import_from_as_names !','
3443 if (p->error_indicator) {
3444 D(p->level--);
3445 return NULL;
3446 }
3447 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 +01003448 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003449 if (
3450 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3451 &&
3452 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3453 )
3454 {
3455 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3456 _res = import_from_as_names_var;
3457 goto done;
3458 }
3459 p->mark = _mark;
3460 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3462 }
3463 { // '*'
3464 if (p->error_indicator) {
3465 D(p->level--);
3466 return NULL;
3467 }
3468 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3469 Token * _literal;
3470 if (
3471 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3472 )
3473 {
3474 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003475 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3476 if (_token == NULL) {
3477 D(p->level--);
3478 return NULL;
3479 }
3480 int _end_lineno = _token->end_lineno;
3481 UNUSED(_end_lineno); // Only used by EXTRA macro
3482 int _end_col_offset = _token->end_col_offset;
3483 UNUSED(_end_col_offset); // Only used by EXTRA macro
3484 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003485 if (_res == NULL && PyErr_Occurred()) {
3486 p->error_indicator = 1;
3487 D(p->level--);
3488 return NULL;
3489 }
3490 goto done;
3491 }
3492 p->mark = _mark;
3493 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3495 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003496 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003497 if (p->error_indicator) {
3498 D(p->level--);
3499 return NULL;
3500 }
3501 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3502 void *invalid_import_from_targets_var;
3503 if (
3504 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3505 )
3506 {
3507 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3508 _res = invalid_import_from_targets_var;
3509 goto done;
3510 }
3511 p->mark = _mark;
3512 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3514 }
3515 _res = NULL;
3516 done:
3517 D(p->level--);
3518 return _res;
3519}
3520
3521// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003522static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003523import_from_as_names_rule(Parser *p)
3524{
3525 D(p->level++);
3526 if (p->error_indicator) {
3527 D(p->level--);
3528 return NULL;
3529 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003530 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003531 int _mark = p->mark;
3532 { // ','.import_from_as_name+
3533 if (p->error_indicator) {
3534 D(p->level--);
3535 return NULL;
3536 }
3537 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 +01003538 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003539 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003540 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003541 )
3542 {
3543 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3544 _res = a;
3545 if (_res == NULL && PyErr_Occurred()) {
3546 p->error_indicator = 1;
3547 D(p->level--);
3548 return NULL;
3549 }
3550 goto done;
3551 }
3552 p->mark = _mark;
3553 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3555 }
3556 _res = NULL;
3557 done:
3558 D(p->level--);
3559 return _res;
3560}
3561
3562// import_from_as_name: NAME ['as' NAME]
3563static alias_ty
3564import_from_as_name_rule(Parser *p)
3565{
3566 D(p->level++);
3567 if (p->error_indicator) {
3568 D(p->level--);
3569 return NULL;
3570 }
3571 alias_ty _res = NULL;
3572 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003573 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3574 p->error_indicator = 1;
3575 D(p->level--);
3576 return NULL;
3577 }
3578 int _start_lineno = p->tokens[_mark]->lineno;
3579 UNUSED(_start_lineno); // Only used by EXTRA macro
3580 int _start_col_offset = p->tokens[_mark]->col_offset;
3581 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003582 { // NAME ['as' NAME]
3583 if (p->error_indicator) {
3584 D(p->level--);
3585 return NULL;
3586 }
3587 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3588 expr_ty a;
3589 void *b;
3590 if (
3591 (a = _PyPegen_name_token(p)) // NAME
3592 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003593 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003594 )
3595 {
3596 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 -04003597 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3598 if (_token == NULL) {
3599 D(p->level--);
3600 return NULL;
3601 }
3602 int _end_lineno = _token->end_lineno;
3603 UNUSED(_end_lineno); // Only used by EXTRA macro
3604 int _end_col_offset = _token->end_col_offset;
3605 UNUSED(_end_col_offset); // Only used by EXTRA macro
3606 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003607 if (_res == NULL && PyErr_Occurred()) {
3608 p->error_indicator = 1;
3609 D(p->level--);
3610 return NULL;
3611 }
3612 goto done;
3613 }
3614 p->mark = _mark;
3615 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3617 }
3618 _res = NULL;
3619 done:
3620 D(p->level--);
3621 return _res;
3622}
3623
3624// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003625static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003626dotted_as_names_rule(Parser *p)
3627{
3628 D(p->level++);
3629 if (p->error_indicator) {
3630 D(p->level--);
3631 return NULL;
3632 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003633 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003634 int _mark = p->mark;
3635 { // ','.dotted_as_name+
3636 if (p->error_indicator) {
3637 D(p->level--);
3638 return NULL;
3639 }
3640 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 +01003641 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003642 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003643 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003644 )
3645 {
3646 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3647 _res = a;
3648 if (_res == NULL && PyErr_Occurred()) {
3649 p->error_indicator = 1;
3650 D(p->level--);
3651 return NULL;
3652 }
3653 goto done;
3654 }
3655 p->mark = _mark;
3656 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3658 }
3659 _res = NULL;
3660 done:
3661 D(p->level--);
3662 return _res;
3663}
3664
3665// dotted_as_name: dotted_name ['as' NAME]
3666static alias_ty
3667dotted_as_name_rule(Parser *p)
3668{
3669 D(p->level++);
3670 if (p->error_indicator) {
3671 D(p->level--);
3672 return NULL;
3673 }
3674 alias_ty _res = NULL;
3675 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003676 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3677 p->error_indicator = 1;
3678 D(p->level--);
3679 return NULL;
3680 }
3681 int _start_lineno = p->tokens[_mark]->lineno;
3682 UNUSED(_start_lineno); // Only used by EXTRA macro
3683 int _start_col_offset = p->tokens[_mark]->col_offset;
3684 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003685 { // dotted_name ['as' NAME]
3686 if (p->error_indicator) {
3687 D(p->level--);
3688 return NULL;
3689 }
3690 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3691 expr_ty a;
3692 void *b;
3693 if (
3694 (a = dotted_name_rule(p)) // dotted_name
3695 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003696 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003697 )
3698 {
3699 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 -04003700 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3701 if (_token == NULL) {
3702 D(p->level--);
3703 return NULL;
3704 }
3705 int _end_lineno = _token->end_lineno;
3706 UNUSED(_end_lineno); // Only used by EXTRA macro
3707 int _end_col_offset = _token->end_col_offset;
3708 UNUSED(_end_col_offset); // Only used by EXTRA macro
3709 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003710 if (_res == NULL && PyErr_Occurred()) {
3711 p->error_indicator = 1;
3712 D(p->level--);
3713 return NULL;
3714 }
3715 goto done;
3716 }
3717 p->mark = _mark;
3718 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3720 }
3721 _res = NULL;
3722 done:
3723 D(p->level--);
3724 return _res;
3725}
3726
3727// Left-recursive
3728// dotted_name: dotted_name '.' NAME | NAME
3729static expr_ty dotted_name_raw(Parser *);
3730static expr_ty
3731dotted_name_rule(Parser *p)
3732{
3733 D(p->level++);
3734 expr_ty _res = NULL;
3735 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3736 D(p->level--);
3737 return _res;
3738 }
3739 int _mark = p->mark;
3740 int _resmark = p->mark;
3741 while (1) {
3742 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3743 if (tmpvar_0) {
3744 D(p->level--);
3745 return _res;
3746 }
3747 p->mark = _mark;
3748 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003749 if (p->error_indicator)
3750 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003751 if (_raw == NULL || p->mark <= _resmark)
3752 break;
3753 _resmark = p->mark;
3754 _res = _raw;
3755 }
3756 p->mark = _resmark;
3757 D(p->level--);
3758 return _res;
3759}
3760static expr_ty
3761dotted_name_raw(Parser *p)
3762{
3763 D(p->level++);
3764 if (p->error_indicator) {
3765 D(p->level--);
3766 return NULL;
3767 }
3768 expr_ty _res = NULL;
3769 int _mark = p->mark;
3770 { // dotted_name '.' NAME
3771 if (p->error_indicator) {
3772 D(p->level--);
3773 return NULL;
3774 }
3775 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3776 Token * _literal;
3777 expr_ty a;
3778 expr_ty b;
3779 if (
3780 (a = dotted_name_rule(p)) // dotted_name
3781 &&
3782 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3783 &&
3784 (b = _PyPegen_name_token(p)) // NAME
3785 )
3786 {
3787 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3788 _res = _PyPegen_join_names_with_dot ( p , a , b );
3789 if (_res == NULL && PyErr_Occurred()) {
3790 p->error_indicator = 1;
3791 D(p->level--);
3792 return NULL;
3793 }
3794 goto done;
3795 }
3796 p->mark = _mark;
3797 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3799 }
3800 { // NAME
3801 if (p->error_indicator) {
3802 D(p->level--);
3803 return NULL;
3804 }
3805 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3806 expr_ty name_var;
3807 if (
3808 (name_var = _PyPegen_name_token(p)) // NAME
3809 )
3810 {
3811 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3812 _res = name_var;
3813 goto done;
3814 }
3815 p->mark = _mark;
3816 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3818 }
3819 _res = NULL;
3820 done:
3821 D(p->level--);
3822 return _res;
3823}
3824
3825// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003826// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003827// | 'if' named_expression ':' block elif_stmt
3828// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003829static stmt_ty
3830if_stmt_rule(Parser *p)
3831{
3832 D(p->level++);
3833 if (p->error_indicator) {
3834 D(p->level--);
3835 return NULL;
3836 }
3837 stmt_ty _res = NULL;
3838 int _mark = p->mark;
3839 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3840 p->error_indicator = 1;
3841 D(p->level--);
3842 return NULL;
3843 }
3844 int _start_lineno = p->tokens[_mark]->lineno;
3845 UNUSED(_start_lineno); // Only used by EXTRA macro
3846 int _start_col_offset = p->tokens[_mark]->col_offset;
3847 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003848 if (p->call_invalid_rules) { // invalid_if_stmt
3849 if (p->error_indicator) {
3850 D(p->level--);
3851 return NULL;
3852 }
3853 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3854 void *invalid_if_stmt_var;
3855 if (
3856 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3857 )
3858 {
3859 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3860 _res = invalid_if_stmt_var;
3861 goto done;
3862 }
3863 p->mark = _mark;
3864 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3866 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003867 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003868 if (p->error_indicator) {
3869 D(p->level--);
3870 return NULL;
3871 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003872 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 +01003873 Token * _keyword;
3874 Token * _literal;
3875 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003876 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003877 stmt_ty c;
3878 if (
3879 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3880 &&
3881 (a = named_expression_rule(p)) // named_expression
3882 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003883 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003884 &&
3885 (b = block_rule(p)) // block
3886 &&
3887 (c = elif_stmt_rule(p)) // elif_stmt
3888 )
3889 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003890 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 +01003891 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3892 if (_token == NULL) {
3893 D(p->level--);
3894 return NULL;
3895 }
3896 int _end_lineno = _token->end_lineno;
3897 UNUSED(_end_lineno); // Only used by EXTRA macro
3898 int _end_col_offset = _token->end_col_offset;
3899 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003900 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003901 if (_res == NULL && PyErr_Occurred()) {
3902 p->error_indicator = 1;
3903 D(p->level--);
3904 return NULL;
3905 }
3906 goto done;
3907 }
3908 p->mark = _mark;
3909 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003911 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003912 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003913 if (p->error_indicator) {
3914 D(p->level--);
3915 return NULL;
3916 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003917 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 +01003918 Token * _keyword;
3919 Token * _literal;
3920 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003921 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003922 void *c;
3923 if (
3924 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3925 &&
3926 (a = named_expression_rule(p)) // named_expression
3927 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003928 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003929 &&
3930 (b = block_rule(p)) // block
3931 &&
3932 (c = else_block_rule(p), 1) // else_block?
3933 )
3934 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003935 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 +01003936 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3937 if (_token == NULL) {
3938 D(p->level--);
3939 return NULL;
3940 }
3941 int _end_lineno = _token->end_lineno;
3942 UNUSED(_end_lineno); // Only used by EXTRA macro
3943 int _end_col_offset = _token->end_col_offset;
3944 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003945 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003946 if (_res == NULL && PyErr_Occurred()) {
3947 p->error_indicator = 1;
3948 D(p->level--);
3949 return NULL;
3950 }
3951 goto done;
3952 }
3953 p->mark = _mark;
3954 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3956 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003957 _res = NULL;
3958 done:
3959 D(p->level--);
3960 return _res;
3961}
3962
3963// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003964// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003965// | 'elif' named_expression ':' block elif_stmt
3966// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003967static stmt_ty
3968elif_stmt_rule(Parser *p)
3969{
3970 D(p->level++);
3971 if (p->error_indicator) {
3972 D(p->level--);
3973 return NULL;
3974 }
3975 stmt_ty _res = NULL;
3976 int _mark = p->mark;
3977 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3978 p->error_indicator = 1;
3979 D(p->level--);
3980 return NULL;
3981 }
3982 int _start_lineno = p->tokens[_mark]->lineno;
3983 UNUSED(_start_lineno); // Only used by EXTRA macro
3984 int _start_col_offset = p->tokens[_mark]->col_offset;
3985 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003986 if (p->call_invalid_rules) { // invalid_elif_stmt
3987 if (p->error_indicator) {
3988 D(p->level--);
3989 return NULL;
3990 }
3991 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3992 void *invalid_elif_stmt_var;
3993 if (
3994 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
3995 )
3996 {
3997 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3998 _res = invalid_elif_stmt_var;
3999 goto done;
4000 }
4001 p->mark = _mark;
4002 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4004 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004005 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004006 if (p->error_indicator) {
4007 D(p->level--);
4008 return NULL;
4009 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004010 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 +01004011 Token * _keyword;
4012 Token * _literal;
4013 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004014 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004015 stmt_ty c;
4016 if (
4017 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4018 &&
4019 (a = named_expression_rule(p)) // named_expression
4020 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004021 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004022 &&
4023 (b = block_rule(p)) // block
4024 &&
4025 (c = elif_stmt_rule(p)) // elif_stmt
4026 )
4027 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004028 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 +01004029 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4030 if (_token == NULL) {
4031 D(p->level--);
4032 return NULL;
4033 }
4034 int _end_lineno = _token->end_lineno;
4035 UNUSED(_end_lineno); // Only used by EXTRA macro
4036 int _end_col_offset = _token->end_col_offset;
4037 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004038 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004039 if (_res == NULL && PyErr_Occurred()) {
4040 p->error_indicator = 1;
4041 D(p->level--);
4042 return NULL;
4043 }
4044 goto done;
4045 }
4046 p->mark = _mark;
4047 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004049 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004050 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004051 if (p->error_indicator) {
4052 D(p->level--);
4053 return NULL;
4054 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004055 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 +01004056 Token * _keyword;
4057 Token * _literal;
4058 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004059 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004060 void *c;
4061 if (
4062 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4063 &&
4064 (a = named_expression_rule(p)) // named_expression
4065 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004066 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004067 &&
4068 (b = block_rule(p)) // block
4069 &&
4070 (c = else_block_rule(p), 1) // else_block?
4071 )
4072 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004073 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 +01004074 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4075 if (_token == NULL) {
4076 D(p->level--);
4077 return NULL;
4078 }
4079 int _end_lineno = _token->end_lineno;
4080 UNUSED(_end_lineno); // Only used by EXTRA macro
4081 int _end_col_offset = _token->end_col_offset;
4082 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004083 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004084 if (_res == NULL && PyErr_Occurred()) {
4085 p->error_indicator = 1;
4086 D(p->level--);
4087 return NULL;
4088 }
4089 goto done;
4090 }
4091 p->mark = _mark;
4092 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4094 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004095 _res = NULL;
4096 done:
4097 D(p->level--);
4098 return _res;
4099}
4100
Pablo Galindo56c95df2021-04-21 15:28:21 +01004101// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004102static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004103else_block_rule(Parser *p)
4104{
4105 D(p->level++);
4106 if (p->error_indicator) {
4107 D(p->level--);
4108 return NULL;
4109 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004110 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004111 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004112 if (p->call_invalid_rules) { // invalid_else_stmt
4113 if (p->error_indicator) {
4114 D(p->level--);
4115 return NULL;
4116 }
4117 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4118 void *invalid_else_stmt_var;
4119 if (
4120 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4121 )
4122 {
4123 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4124 _res = invalid_else_stmt_var;
4125 goto done;
4126 }
4127 p->mark = _mark;
4128 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4130 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004131 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004132 if (p->error_indicator) {
4133 D(p->level--);
4134 return NULL;
4135 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004136 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004137 Token * _keyword;
4138 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004139 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004140 if (
4141 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4142 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004143 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004144 &&
4145 (b = block_rule(p)) // block
4146 )
4147 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004148 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 +01004149 _res = b;
4150 if (_res == NULL && PyErr_Occurred()) {
4151 p->error_indicator = 1;
4152 D(p->level--);
4153 return NULL;
4154 }
4155 goto done;
4156 }
4157 p->mark = _mark;
4158 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004160 }
4161 _res = NULL;
4162 done:
4163 D(p->level--);
4164 return _res;
4165}
4166
Pablo Galindo56c95df2021-04-21 15:28:21 +01004167// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004168static stmt_ty
4169while_stmt_rule(Parser *p)
4170{
4171 D(p->level++);
4172 if (p->error_indicator) {
4173 D(p->level--);
4174 return NULL;
4175 }
4176 stmt_ty _res = NULL;
4177 int _mark = p->mark;
4178 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4179 p->error_indicator = 1;
4180 D(p->level--);
4181 return NULL;
4182 }
4183 int _start_lineno = p->tokens[_mark]->lineno;
4184 UNUSED(_start_lineno); // Only used by EXTRA macro
4185 int _start_col_offset = p->tokens[_mark]->col_offset;
4186 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004187 if (p->call_invalid_rules) { // invalid_while_stmt
4188 if (p->error_indicator) {
4189 D(p->level--);
4190 return NULL;
4191 }
4192 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4193 void *invalid_while_stmt_var;
4194 if (
4195 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4196 )
4197 {
4198 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4199 _res = invalid_while_stmt_var;
4200 goto done;
4201 }
4202 p->mark = _mark;
4203 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4205 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004206 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004207 if (p->error_indicator) {
4208 D(p->level--);
4209 return NULL;
4210 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004211 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 +01004212 Token * _keyword;
4213 Token * _literal;
4214 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004215 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004216 void *c;
4217 if (
4218 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4219 &&
4220 (a = named_expression_rule(p)) // named_expression
4221 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004222 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004223 &&
4224 (b = block_rule(p)) // block
4225 &&
4226 (c = else_block_rule(p), 1) // else_block?
4227 )
4228 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004229 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 +01004230 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4231 if (_token == NULL) {
4232 D(p->level--);
4233 return NULL;
4234 }
4235 int _end_lineno = _token->end_lineno;
4236 UNUSED(_end_lineno); // Only used by EXTRA macro
4237 int _end_col_offset = _token->end_col_offset;
4238 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004239 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004240 if (_res == NULL && PyErr_Occurred()) {
4241 p->error_indicator = 1;
4242 D(p->level--);
4243 return NULL;
4244 }
4245 goto done;
4246 }
4247 p->mark = _mark;
4248 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4250 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004251 _res = NULL;
4252 done:
4253 D(p->level--);
4254 return _res;
4255}
4256
4257// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004258// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004259// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4260// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004261// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004262static stmt_ty
4263for_stmt_rule(Parser *p)
4264{
4265 D(p->level++);
4266 if (p->error_indicator) {
4267 D(p->level--);
4268 return NULL;
4269 }
4270 stmt_ty _res = NULL;
4271 int _mark = p->mark;
4272 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4273 p->error_indicator = 1;
4274 D(p->level--);
4275 return NULL;
4276 }
4277 int _start_lineno = p->tokens[_mark]->lineno;
4278 UNUSED(_start_lineno); // Only used by EXTRA macro
4279 int _start_col_offset = p->tokens[_mark]->col_offset;
4280 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004281 if (p->call_invalid_rules) { // invalid_for_stmt
4282 if (p->error_indicator) {
4283 D(p->level--);
4284 return NULL;
4285 }
4286 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4287 void *invalid_for_stmt_var;
4288 if (
4289 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4290 )
4291 {
4292 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4293 _res = invalid_for_stmt_var;
4294 goto done;
4295 }
4296 p->mark = _mark;
4297 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4299 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004300 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004301 if (p->error_indicator) {
4302 D(p->level--);
4303 return NULL;
4304 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004305 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 +03004306 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004307 Token * _keyword;
4308 Token * _keyword_1;
4309 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004310 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004311 void *el;
4312 expr_ty ex;
4313 expr_ty t;
4314 void *tc;
4315 if (
4316 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4317 &&
4318 (t = star_targets_rule(p)) // star_targets
4319 &&
4320 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4321 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004322 (_cut_var = 1)
4323 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004324 (ex = star_expressions_rule(p)) // star_expressions
4325 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004326 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004327 &&
4328 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4329 &&
4330 (b = block_rule(p)) // block
4331 &&
4332 (el = else_block_rule(p), 1) // else_block?
4333 )
4334 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004335 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 +01004336 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4337 if (_token == NULL) {
4338 D(p->level--);
4339 return NULL;
4340 }
4341 int _end_lineno = _token->end_lineno;
4342 UNUSED(_end_lineno); // Only used by EXTRA macro
4343 int _end_col_offset = _token->end_col_offset;
4344 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004345 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004346 if (_res == NULL && PyErr_Occurred()) {
4347 p->error_indicator = 1;
4348 D(p->level--);
4349 return NULL;
4350 }
4351 goto done;
4352 }
4353 p->mark = _mark;
4354 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004355 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 +03004356 if (_cut_var) {
4357 D(p->level--);
4358 return NULL;
4359 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004360 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004361 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004362 if (p->error_indicator) {
4363 D(p->level--);
4364 return NULL;
4365 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004366 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 +03004367 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004368 Token * _keyword;
4369 Token * _keyword_1;
4370 Token * _literal;
4371 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004372 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004373 void *el;
4374 expr_ty ex;
4375 expr_ty t;
4376 void *tc;
4377 if (
4378 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4379 &&
4380 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4381 &&
4382 (t = star_targets_rule(p)) // star_targets
4383 &&
4384 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4385 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004386 (_cut_var = 1)
4387 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004388 (ex = star_expressions_rule(p)) // star_expressions
4389 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004390 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004391 &&
4392 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4393 &&
4394 (b = block_rule(p)) // block
4395 &&
4396 (el = else_block_rule(p), 1) // else_block?
4397 )
4398 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004399 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 +01004400 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4401 if (_token == NULL) {
4402 D(p->level--);
4403 return NULL;
4404 }
4405 int _end_lineno = _token->end_lineno;
4406 UNUSED(_end_lineno); // Only used by EXTRA macro
4407 int _end_col_offset = _token->end_col_offset;
4408 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004409 _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 +01004410 if (_res == NULL && PyErr_Occurred()) {
4411 p->error_indicator = 1;
4412 D(p->level--);
4413 return NULL;
4414 }
4415 goto done;
4416 }
4417 p->mark = _mark;
4418 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004419 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 +03004420 if (_cut_var) {
4421 D(p->level--);
4422 return NULL;
4423 }
4424 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004425 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004426 if (p->error_indicator) {
4427 D(p->level--);
4428 return NULL;
4429 }
4430 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4431 void *invalid_for_target_var;
4432 if (
4433 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4434 )
4435 {
4436 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4437 _res = invalid_for_target_var;
4438 goto done;
4439 }
4440 p->mark = _mark;
4441 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004443 }
4444 _res = NULL;
4445 done:
4446 D(p->level--);
4447 return _res;
4448}
4449
4450// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004451// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004452// | 'with' '(' ','.with_item+ ','? ')' ':' block
4453// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4454// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4455// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004456// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004457static stmt_ty
4458with_stmt_rule(Parser *p)
4459{
4460 D(p->level++);
4461 if (p->error_indicator) {
4462 D(p->level--);
4463 return NULL;
4464 }
4465 stmt_ty _res = NULL;
4466 int _mark = p->mark;
4467 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4468 p->error_indicator = 1;
4469 D(p->level--);
4470 return NULL;
4471 }
4472 int _start_lineno = p->tokens[_mark]->lineno;
4473 UNUSED(_start_lineno); // Only used by EXTRA macro
4474 int _start_col_offset = p->tokens[_mark]->col_offset;
4475 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004476 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4477 if (p->error_indicator) {
4478 D(p->level--);
4479 return NULL;
4480 }
4481 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4482 void *invalid_with_stmt_indent_var;
4483 if (
4484 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4485 )
4486 {
4487 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4488 _res = invalid_with_stmt_indent_var;
4489 goto done;
4490 }
4491 p->mark = _mark;
4492 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4494 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004495 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4496 if (p->error_indicator) {
4497 D(p->level--);
4498 return NULL;
4499 }
4500 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4501 Token * _keyword;
4502 Token * _literal;
4503 Token * _literal_1;
4504 Token * _literal_2;
4505 void *_opt_var;
4506 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004507 asdl_withitem_seq* a;
4508 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004509 if (
4510 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4511 &&
4512 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4513 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004514 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004515 &&
4516 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4517 &&
4518 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4519 &&
4520 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4521 &&
4522 (b = block_rule(p)) // block
4523 )
4524 {
4525 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4526 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4527 if (_token == NULL) {
4528 D(p->level--);
4529 return NULL;
4530 }
4531 int _end_lineno = _token->end_lineno;
4532 UNUSED(_end_lineno); // Only used by EXTRA macro
4533 int _end_col_offset = _token->end_col_offset;
4534 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004535 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004536 if (_res == NULL && PyErr_Occurred()) {
4537 p->error_indicator = 1;
4538 D(p->level--);
4539 return NULL;
4540 }
4541 goto done;
4542 }
4543 p->mark = _mark;
4544 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4546 }
4547 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4548 if (p->error_indicator) {
4549 D(p->level--);
4550 return NULL;
4551 }
4552 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4553 Token * _keyword;
4554 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004555 asdl_withitem_seq* a;
4556 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004557 void *tc;
4558 if (
4559 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4560 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004561 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004562 &&
4563 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4564 &&
4565 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4566 &&
4567 (b = block_rule(p)) // block
4568 )
4569 {
4570 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4571 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4572 if (_token == NULL) {
4573 D(p->level--);
4574 return NULL;
4575 }
4576 int _end_lineno = _token->end_lineno;
4577 UNUSED(_end_lineno); // Only used by EXTRA macro
4578 int _end_col_offset = _token->end_col_offset;
4579 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004580 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004581 if (_res == NULL && PyErr_Occurred()) {
4582 p->error_indicator = 1;
4583 D(p->level--);
4584 return NULL;
4585 }
4586 goto done;
4587 }
4588 p->mark = _mark;
4589 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4591 }
4592 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4593 if (p->error_indicator) {
4594 D(p->level--);
4595 return NULL;
4596 }
4597 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4598 Token * _keyword;
4599 Token * _literal;
4600 Token * _literal_1;
4601 Token * _literal_2;
4602 void *_opt_var;
4603 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004604 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004605 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004606 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004607 if (
4608 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4609 &&
4610 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4611 &&
4612 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4613 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004614 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004615 &&
4616 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4617 &&
4618 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4619 &&
4620 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4621 &&
4622 (b = block_rule(p)) // block
4623 )
4624 {
4625 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4626 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4627 if (_token == NULL) {
4628 D(p->level--);
4629 return NULL;
4630 }
4631 int _end_lineno = _token->end_lineno;
4632 UNUSED(_end_lineno); // Only used by EXTRA macro
4633 int _end_col_offset = _token->end_col_offset;
4634 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004635 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004636 if (_res == NULL && PyErr_Occurred()) {
4637 p->error_indicator = 1;
4638 D(p->level--);
4639 return NULL;
4640 }
4641 goto done;
4642 }
4643 p->mark = _mark;
4644 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4646 }
4647 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4648 if (p->error_indicator) {
4649 D(p->level--);
4650 return NULL;
4651 }
4652 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4653 Token * _keyword;
4654 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004655 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004656 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004657 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004658 void *tc;
4659 if (
4660 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4661 &&
4662 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4663 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004664 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004665 &&
4666 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4667 &&
4668 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4669 &&
4670 (b = block_rule(p)) // block
4671 )
4672 {
4673 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4674 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4675 if (_token == NULL) {
4676 D(p->level--);
4677 return NULL;
4678 }
4679 int _end_lineno = _token->end_lineno;
4680 UNUSED(_end_lineno); // Only used by EXTRA macro
4681 int _end_col_offset = _token->end_col_offset;
4682 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004683 _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 +01004684 if (_res == NULL && PyErr_Occurred()) {
4685 p->error_indicator = 1;
4686 D(p->level--);
4687 return NULL;
4688 }
4689 goto done;
4690 }
4691 p->mark = _mark;
4692 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4694 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004695 if (p->call_invalid_rules) { // invalid_with_stmt
4696 if (p->error_indicator) {
4697 D(p->level--);
4698 return NULL;
4699 }
4700 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4701 void *invalid_with_stmt_var;
4702 if (
4703 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4704 )
4705 {
4706 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4707 _res = invalid_with_stmt_var;
4708 goto done;
4709 }
4710 p->mark = _mark;
4711 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4713 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004714 _res = NULL;
4715 done:
4716 D(p->level--);
4717 return _res;
4718}
4719
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004720// with_item:
4721// | expression 'as' star_target &(',' | ')' | ':')
4722// | invalid_with_item
4723// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004724static withitem_ty
4725with_item_rule(Parser *p)
4726{
4727 D(p->level++);
4728 if (p->error_indicator) {
4729 D(p->level--);
4730 return NULL;
4731 }
4732 withitem_ty _res = NULL;
4733 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004734 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004735 if (p->error_indicator) {
4736 D(p->level--);
4737 return NULL;
4738 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004739 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 +03004740 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004741 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004742 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004743 if (
4744 (e = expression_rule(p)) // expression
4745 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004746 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4747 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004748 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004749 &&
4750 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004751 )
4752 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004753 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 +02004754 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004755 if (_res == NULL && PyErr_Occurred()) {
4756 p->error_indicator = 1;
4757 D(p->level--);
4758 return NULL;
4759 }
4760 goto done;
4761 }
4762 p->mark = _mark;
4763 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004765 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004766 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004767 if (p->error_indicator) {
4768 D(p->level--);
4769 return NULL;
4770 }
4771 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4772 void *invalid_with_item_var;
4773 if (
4774 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4775 )
4776 {
4777 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4778 _res = invalid_with_item_var;
4779 goto done;
4780 }
4781 p->mark = _mark;
4782 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4784 }
4785 { // expression
4786 if (p->error_indicator) {
4787 D(p->level--);
4788 return NULL;
4789 }
4790 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4791 expr_ty e;
4792 if (
4793 (e = expression_rule(p)) // expression
4794 )
4795 {
4796 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004797 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004798 if (_res == NULL && PyErr_Occurred()) {
4799 p->error_indicator = 1;
4800 D(p->level--);
4801 return NULL;
4802 }
4803 goto done;
4804 }
4805 p->mark = _mark;
4806 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004808 }
4809 _res = NULL;
4810 done:
4811 D(p->level--);
4812 return _res;
4813}
4814
4815// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004816// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004817// | 'try' &&':' block finally_block
4818// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004819static stmt_ty
4820try_stmt_rule(Parser *p)
4821{
4822 D(p->level++);
4823 if (p->error_indicator) {
4824 D(p->level--);
4825 return NULL;
4826 }
4827 stmt_ty _res = NULL;
4828 int _mark = p->mark;
4829 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4830 p->error_indicator = 1;
4831 D(p->level--);
4832 return NULL;
4833 }
4834 int _start_lineno = p->tokens[_mark]->lineno;
4835 UNUSED(_start_lineno); // Only used by EXTRA macro
4836 int _start_col_offset = p->tokens[_mark]->col_offset;
4837 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004838 if (p->call_invalid_rules) { // invalid_try_stmt
4839 if (p->error_indicator) {
4840 D(p->level--);
4841 return NULL;
4842 }
4843 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4844 void *invalid_try_stmt_var;
4845 if (
4846 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4847 )
4848 {
4849 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4850 _res = invalid_try_stmt_var;
4851 goto done;
4852 }
4853 p->mark = _mark;
4854 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4856 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004857 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004858 if (p->error_indicator) {
4859 D(p->level--);
4860 return NULL;
4861 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004862 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 +01004863 Token * _keyword;
4864 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004865 asdl_stmt_seq* b;
4866 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004867 if (
4868 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4869 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004870 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004871 &&
4872 (b = block_rule(p)) // block
4873 &&
4874 (f = finally_block_rule(p)) // finally_block
4875 )
4876 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004877 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 +01004878 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4879 if (_token == NULL) {
4880 D(p->level--);
4881 return NULL;
4882 }
4883 int _end_lineno = _token->end_lineno;
4884 UNUSED(_end_lineno); // Only used by EXTRA macro
4885 int _end_col_offset = _token->end_col_offset;
4886 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004887 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004888 if (_res == NULL && PyErr_Occurred()) {
4889 p->error_indicator = 1;
4890 D(p->level--);
4891 return NULL;
4892 }
4893 goto done;
4894 }
4895 p->mark = _mark;
4896 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004898 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004899 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004900 if (p->error_indicator) {
4901 D(p->level--);
4902 return NULL;
4903 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004904 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 +01004905 Token * _keyword;
4906 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004907 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004908 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004909 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004910 void *f;
4911 if (
4912 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4913 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004914 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004915 &&
4916 (b = block_rule(p)) // block
4917 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004918 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004919 &&
4920 (el = else_block_rule(p), 1) // else_block?
4921 &&
4922 (f = finally_block_rule(p), 1) // finally_block?
4923 )
4924 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004925 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 +01004926 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4927 if (_token == NULL) {
4928 D(p->level--);
4929 return NULL;
4930 }
4931 int _end_lineno = _token->end_lineno;
4932 UNUSED(_end_lineno); // Only used by EXTRA macro
4933 int _end_col_offset = _token->end_col_offset;
4934 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004935 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004936 if (_res == NULL && PyErr_Occurred()) {
4937 p->error_indicator = 1;
4938 D(p->level--);
4939 return NULL;
4940 }
4941 goto done;
4942 }
4943 p->mark = _mark;
4944 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004946 }
4947 _res = NULL;
4948 done:
4949 D(p->level--);
4950 return _res;
4951}
4952
Pablo Galindo206cbda2021-02-07 18:42:21 +00004953// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004954// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004955// | 'except' expression ['as' NAME] ':' block
4956// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004957// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004958static excepthandler_ty
4959except_block_rule(Parser *p)
4960{
4961 D(p->level++);
4962 if (p->error_indicator) {
4963 D(p->level--);
4964 return NULL;
4965 }
4966 excepthandler_ty _res = NULL;
4967 int _mark = p->mark;
4968 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4969 p->error_indicator = 1;
4970 D(p->level--);
4971 return NULL;
4972 }
4973 int _start_lineno = p->tokens[_mark]->lineno;
4974 UNUSED(_start_lineno); // Only used by EXTRA macro
4975 int _start_col_offset = p->tokens[_mark]->col_offset;
4976 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004977 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4978 if (p->error_indicator) {
4979 D(p->level--);
4980 return NULL;
4981 }
4982 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4983 void *invalid_except_stmt_indent_var;
4984 if (
4985 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4986 )
4987 {
4988 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4989 _res = invalid_except_stmt_indent_var;
4990 goto done;
4991 }
4992 p->mark = _mark;
4993 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
4995 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004996 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004997 if (p->error_indicator) {
4998 D(p->level--);
4999 return NULL;
5000 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005001 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 +01005002 Token * _keyword;
5003 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005004 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005005 expr_ty e;
5006 void *t;
5007 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005008 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005009 &&
5010 (e = expression_rule(p)) // expression
5011 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005012 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005013 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005014 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005015 &&
5016 (b = block_rule(p)) // block
5017 )
5018 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005019 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 +01005020 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5021 if (_token == NULL) {
5022 D(p->level--);
5023 return NULL;
5024 }
5025 int _end_lineno = _token->end_lineno;
5026 UNUSED(_end_lineno); // Only used by EXTRA macro
5027 int _end_col_offset = _token->end_col_offset;
5028 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005029 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005030 if (_res == NULL && PyErr_Occurred()) {
5031 p->error_indicator = 1;
5032 D(p->level--);
5033 return NULL;
5034 }
5035 goto done;
5036 }
5037 p->mark = _mark;
5038 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005040 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005041 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005042 if (p->error_indicator) {
5043 D(p->level--);
5044 return NULL;
5045 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005046 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005047 Token * _keyword;
5048 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005049 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005050 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005051 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005052 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005053 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005054 &&
5055 (b = block_rule(p)) // block
5056 )
5057 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005058 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 +01005059 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5060 if (_token == NULL) {
5061 D(p->level--);
5062 return NULL;
5063 }
5064 int _end_lineno = _token->end_lineno;
5065 UNUSED(_end_lineno); // Only used by EXTRA macro
5066 int _end_col_offset = _token->end_col_offset;
5067 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005068 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005069 if (_res == NULL && PyErr_Occurred()) {
5070 p->error_indicator = 1;
5071 D(p->level--);
5072 return NULL;
5073 }
5074 goto done;
5075 }
5076 p->mark = _mark;
5077 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5079 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005080 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005081 if (p->error_indicator) {
5082 D(p->level--);
5083 return NULL;
5084 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005085 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5086 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005087 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005088 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005089 )
5090 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005091 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5092 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005093 goto done;
5094 }
5095 p->mark = _mark;
5096 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005098 }
5099 _res = NULL;
5100 done:
5101 D(p->level--);
5102 return _res;
5103}
5104
Pablo Galindo56c95df2021-04-21 15:28:21 +01005105// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005106static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005107finally_block_rule(Parser *p)
5108{
5109 D(p->level++);
5110 if (p->error_indicator) {
5111 D(p->level--);
5112 return NULL;
5113 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005114 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005115 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005116 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005117 if (p->error_indicator) {
5118 D(p->level--);
5119 return NULL;
5120 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005121 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5122 void *invalid_finally_stmt_var;
5123 if (
5124 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5125 )
5126 {
5127 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5128 _res = invalid_finally_stmt_var;
5129 goto done;
5130 }
5131 p->mark = _mark;
5132 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5134 }
5135 { // 'finally' &&':' block
5136 if (p->error_indicator) {
5137 D(p->level--);
5138 return NULL;
5139 }
5140 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005141 Token * _keyword;
5142 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005143 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005144 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005145 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005146 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005147 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005148 &&
5149 (a = block_rule(p)) // block
5150 )
5151 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005152 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 +01005153 _res = a;
5154 if (_res == NULL && PyErr_Occurred()) {
5155 p->error_indicator = 1;
5156 D(p->level--);
5157 return NULL;
5158 }
5159 goto done;
5160 }
5161 p->mark = _mark;
5162 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005164 }
5165 _res = NULL;
5166 done:
5167 D(p->level--);
5168 return _res;
5169}
5170
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005171// match_stmt:
5172// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5173// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005174static stmt_ty
5175match_stmt_rule(Parser *p)
5176{
5177 D(p->level++);
5178 if (p->error_indicator) {
5179 D(p->level--);
5180 return NULL;
5181 }
5182 stmt_ty _res = NULL;
5183 int _mark = p->mark;
5184 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5185 p->error_indicator = 1;
5186 D(p->level--);
5187 return NULL;
5188 }
5189 int _start_lineno = p->tokens[_mark]->lineno;
5190 UNUSED(_start_lineno); // Only used by EXTRA macro
5191 int _start_col_offset = p->tokens[_mark]->col_offset;
5192 UNUSED(_start_col_offset); // Only used by EXTRA macro
5193 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5194 if (p->error_indicator) {
5195 D(p->level--);
5196 return NULL;
5197 }
5198 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5199 expr_ty _keyword;
5200 Token * _literal;
5201 asdl_match_case_seq* cases;
5202 Token * dedent_var;
5203 Token * indent_var;
5204 Token * newline_var;
5205 expr_ty subject;
5206 if (
5207 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5208 &&
5209 (subject = subject_expr_rule(p)) // subject_expr
5210 &&
5211 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5212 &&
5213 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5214 &&
5215 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5216 &&
5217 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5218 &&
5219 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5220 )
5221 {
5222 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5223 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5224 if (_token == NULL) {
5225 D(p->level--);
5226 return NULL;
5227 }
5228 int _end_lineno = _token->end_lineno;
5229 UNUSED(_end_lineno); // Only used by EXTRA macro
5230 int _end_col_offset = _token->end_col_offset;
5231 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005232 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005233 if (_res == NULL && PyErr_Occurred()) {
5234 p->error_indicator = 1;
5235 D(p->level--);
5236 return NULL;
5237 }
5238 goto done;
5239 }
5240 p->mark = _mark;
5241 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5243 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005244 if (p->call_invalid_rules) { // invalid_match_stmt
5245 if (p->error_indicator) {
5246 D(p->level--);
5247 return NULL;
5248 }
5249 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5250 void *invalid_match_stmt_var;
5251 if (
5252 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5253 )
5254 {
5255 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5256 _res = invalid_match_stmt_var;
5257 goto done;
5258 }
5259 p->mark = _mark;
5260 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5262 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005263 _res = NULL;
5264 done:
5265 D(p->level--);
5266 return _res;
5267}
5268
5269// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5270static expr_ty
5271subject_expr_rule(Parser *p)
5272{
5273 D(p->level++);
5274 if (p->error_indicator) {
5275 D(p->level--);
5276 return NULL;
5277 }
5278 expr_ty _res = NULL;
5279 int _mark = p->mark;
5280 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5281 p->error_indicator = 1;
5282 D(p->level--);
5283 return NULL;
5284 }
5285 int _start_lineno = p->tokens[_mark]->lineno;
5286 UNUSED(_start_lineno); // Only used by EXTRA macro
5287 int _start_col_offset = p->tokens[_mark]->col_offset;
5288 UNUSED(_start_col_offset); // Only used by EXTRA macro
5289 { // star_named_expression ',' star_named_expressions?
5290 if (p->error_indicator) {
5291 D(p->level--);
5292 return NULL;
5293 }
5294 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5295 Token * _literal;
5296 expr_ty value;
5297 void *values;
5298 if (
5299 (value = star_named_expression_rule(p)) // star_named_expression
5300 &&
5301 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5302 &&
5303 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5304 )
5305 {
5306 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5307 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5308 if (_token == NULL) {
5309 D(p->level--);
5310 return NULL;
5311 }
5312 int _end_lineno = _token->end_lineno;
5313 UNUSED(_end_lineno); // Only used by EXTRA macro
5314 int _end_col_offset = _token->end_col_offset;
5315 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005316 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005317 if (_res == NULL && PyErr_Occurred()) {
5318 p->error_indicator = 1;
5319 D(p->level--);
5320 return NULL;
5321 }
5322 goto done;
5323 }
5324 p->mark = _mark;
5325 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5327 }
5328 { // named_expression
5329 if (p->error_indicator) {
5330 D(p->level--);
5331 return NULL;
5332 }
5333 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5334 expr_ty named_expression_var;
5335 if (
5336 (named_expression_var = named_expression_rule(p)) // named_expression
5337 )
5338 {
5339 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5340 _res = named_expression_var;
5341 goto done;
5342 }
5343 p->mark = _mark;
5344 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5346 }
5347 _res = NULL;
5348 done:
5349 D(p->level--);
5350 return _res;
5351}
5352
Pablo Galindo56c95df2021-04-21 15:28:21 +01005353// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005354static match_case_ty
5355case_block_rule(Parser *p)
5356{
5357 D(p->level++);
5358 if (p->error_indicator) {
5359 D(p->level--);
5360 return NULL;
5361 }
5362 match_case_ty _res = NULL;
5363 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005364 if (p->call_invalid_rules) { // invalid_case_block
5365 if (p->error_indicator) {
5366 D(p->level--);
5367 return NULL;
5368 }
5369 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5370 void *invalid_case_block_var;
5371 if (
5372 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5373 )
5374 {
5375 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5376 _res = invalid_case_block_var;
5377 goto done;
5378 }
5379 p->mark = _mark;
5380 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5382 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005383 { // "case" patterns guard? ':' block
5384 if (p->error_indicator) {
5385 D(p->level--);
5386 return NULL;
5387 }
5388 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5389 expr_ty _keyword;
5390 Token * _literal;
5391 asdl_stmt_seq* body;
5392 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005393 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005394 if (
5395 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5396 &&
5397 (pattern = patterns_rule(p)) // patterns
5398 &&
5399 (guard = guard_rule(p), 1) // guard?
5400 &&
5401 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5402 &&
5403 (body = block_rule(p)) // block
5404 )
5405 {
5406 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 +02005407 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005408 if (_res == NULL && PyErr_Occurred()) {
5409 p->error_indicator = 1;
5410 D(p->level--);
5411 return NULL;
5412 }
5413 goto done;
5414 }
5415 p->mark = _mark;
5416 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5418 }
5419 _res = NULL;
5420 done:
5421 D(p->level--);
5422 return _res;
5423}
5424
5425// guard: 'if' named_expression
5426static expr_ty
5427guard_rule(Parser *p)
5428{
5429 D(p->level++);
5430 if (p->error_indicator) {
5431 D(p->level--);
5432 return NULL;
5433 }
5434 expr_ty _res = NULL;
5435 int _mark = p->mark;
5436 { // 'if' named_expression
5437 if (p->error_indicator) {
5438 D(p->level--);
5439 return NULL;
5440 }
5441 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5442 Token * _keyword;
5443 expr_ty guard;
5444 if (
5445 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5446 &&
5447 (guard = named_expression_rule(p)) // named_expression
5448 )
5449 {
5450 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5451 _res = guard;
5452 if (_res == NULL && PyErr_Occurred()) {
5453 p->error_indicator = 1;
5454 D(p->level--);
5455 return NULL;
5456 }
5457 goto done;
5458 }
5459 p->mark = _mark;
5460 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5462 }
5463 _res = NULL;
5464 done:
5465 D(p->level--);
5466 return _res;
5467}
5468
5469// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005470static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005471patterns_rule(Parser *p)
5472{
5473 D(p->level++);
5474 if (p->error_indicator) {
5475 D(p->level--);
5476 return NULL;
5477 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005478 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005479 int _mark = p->mark;
5480 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5481 p->error_indicator = 1;
5482 D(p->level--);
5483 return NULL;
5484 }
5485 int _start_lineno = p->tokens[_mark]->lineno;
5486 UNUSED(_start_lineno); // Only used by EXTRA macro
5487 int _start_col_offset = p->tokens[_mark]->col_offset;
5488 UNUSED(_start_col_offset); // Only used by EXTRA macro
5489 { // open_sequence_pattern
5490 if (p->error_indicator) {
5491 D(p->level--);
5492 return NULL;
5493 }
5494 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005495 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005496 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005497 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005498 )
5499 {
5500 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5501 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5502 if (_token == NULL) {
5503 D(p->level--);
5504 return NULL;
5505 }
5506 int _end_lineno = _token->end_lineno;
5507 UNUSED(_end_lineno); // Only used by EXTRA macro
5508 int _end_col_offset = _token->end_col_offset;
5509 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005510 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005511 if (_res == NULL && PyErr_Occurred()) {
5512 p->error_indicator = 1;
5513 D(p->level--);
5514 return NULL;
5515 }
5516 goto done;
5517 }
5518 p->mark = _mark;
5519 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5521 }
5522 { // pattern
5523 if (p->error_indicator) {
5524 D(p->level--);
5525 return NULL;
5526 }
5527 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005528 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005529 if (
5530 (pattern_var = pattern_rule(p)) // pattern
5531 )
5532 {
5533 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5534 _res = pattern_var;
5535 goto done;
5536 }
5537 p->mark = _mark;
5538 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5540 }
5541 _res = NULL;
5542 done:
5543 D(p->level--);
5544 return _res;
5545}
5546
5547// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005548static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005549pattern_rule(Parser *p)
5550{
5551 D(p->level++);
5552 if (p->error_indicator) {
5553 D(p->level--);
5554 return NULL;
5555 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005556 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005557 int _mark = p->mark;
5558 { // as_pattern
5559 if (p->error_indicator) {
5560 D(p->level--);
5561 return NULL;
5562 }
5563 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005564 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005565 if (
5566 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5567 )
5568 {
5569 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5570 _res = as_pattern_var;
5571 goto done;
5572 }
5573 p->mark = _mark;
5574 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5576 }
5577 { // or_pattern
5578 if (p->error_indicator) {
5579 D(p->level--);
5580 return NULL;
5581 }
5582 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005583 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005584 if (
5585 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5586 )
5587 {
5588 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5589 _res = or_pattern_var;
5590 goto done;
5591 }
5592 p->mark = _mark;
5593 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5595 }
5596 _res = NULL;
5597 done:
5598 D(p->level--);
5599 return _res;
5600}
5601
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005602// as_pattern: or_pattern 'as' pattern_capture_target
5603static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005604as_pattern_rule(Parser *p)
5605{
5606 D(p->level++);
5607 if (p->error_indicator) {
5608 D(p->level--);
5609 return NULL;
5610 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005611 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005612 int _mark = p->mark;
5613 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5614 p->error_indicator = 1;
5615 D(p->level--);
5616 return NULL;
5617 }
5618 int _start_lineno = p->tokens[_mark]->lineno;
5619 UNUSED(_start_lineno); // Only used by EXTRA macro
5620 int _start_col_offset = p->tokens[_mark]->col_offset;
5621 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005622 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005623 if (p->error_indicator) {
5624 D(p->level--);
5625 return NULL;
5626 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005627 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 -08005628 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005629 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005630 expr_ty target;
5631 if (
5632 (pattern = or_pattern_rule(p)) // or_pattern
5633 &&
5634 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5635 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005636 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005637 )
5638 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005639 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 -08005640 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5641 if (_token == NULL) {
5642 D(p->level--);
5643 return NULL;
5644 }
5645 int _end_lineno = _token->end_lineno;
5646 UNUSED(_end_lineno); // Only used by EXTRA macro
5647 int _end_col_offset = _token->end_col_offset;
5648 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005649 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005650 if (_res == NULL && PyErr_Occurred()) {
5651 p->error_indicator = 1;
5652 D(p->level--);
5653 return NULL;
5654 }
5655 goto done;
5656 }
5657 p->mark = _mark;
5658 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005660 }
5661 _res = NULL;
5662 done:
5663 D(p->level--);
5664 return _res;
5665}
5666
5667// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005668static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005669or_pattern_rule(Parser *p)
5670{
5671 D(p->level++);
5672 if (p->error_indicator) {
5673 D(p->level--);
5674 return NULL;
5675 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005676 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005677 int _mark = p->mark;
5678 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5679 p->error_indicator = 1;
5680 D(p->level--);
5681 return NULL;
5682 }
5683 int _start_lineno = p->tokens[_mark]->lineno;
5684 UNUSED(_start_lineno); // Only used by EXTRA macro
5685 int _start_col_offset = p->tokens[_mark]->col_offset;
5686 UNUSED(_start_col_offset); // Only used by EXTRA macro
5687 { // '|'.closed_pattern+
5688 if (p->error_indicator) {
5689 D(p->level--);
5690 return NULL;
5691 }
5692 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005693 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005694 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005695 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005696 )
5697 {
5698 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5699 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5700 if (_token == NULL) {
5701 D(p->level--);
5702 return NULL;
5703 }
5704 int _end_lineno = _token->end_lineno;
5705 UNUSED(_end_lineno); // Only used by EXTRA macro
5706 int _end_col_offset = _token->end_col_offset;
5707 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005708 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005709 if (_res == NULL && PyErr_Occurred()) {
5710 p->error_indicator = 1;
5711 D(p->level--);
5712 return NULL;
5713 }
5714 goto done;
5715 }
5716 p->mark = _mark;
5717 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5719 }
5720 _res = NULL;
5721 done:
5722 D(p->level--);
5723 return _res;
5724}
5725
5726// closed_pattern:
5727// | literal_pattern
5728// | capture_pattern
5729// | wildcard_pattern
5730// | value_pattern
5731// | group_pattern
5732// | sequence_pattern
5733// | mapping_pattern
5734// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005735static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005736closed_pattern_rule(Parser *p)
5737{
5738 D(p->level++);
5739 if (p->error_indicator) {
5740 D(p->level--);
5741 return NULL;
5742 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005743 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005744 int _mark = p->mark;
5745 { // literal_pattern
5746 if (p->error_indicator) {
5747 D(p->level--);
5748 return NULL;
5749 }
5750 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005751 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005752 if (
5753 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5754 )
5755 {
5756 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5757 _res = literal_pattern_var;
5758 goto done;
5759 }
5760 p->mark = _mark;
5761 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5763 }
5764 { // capture_pattern
5765 if (p->error_indicator) {
5766 D(p->level--);
5767 return NULL;
5768 }
5769 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005770 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005771 if (
5772 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5773 )
5774 {
5775 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5776 _res = capture_pattern_var;
5777 goto done;
5778 }
5779 p->mark = _mark;
5780 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5782 }
5783 { // wildcard_pattern
5784 if (p->error_indicator) {
5785 D(p->level--);
5786 return NULL;
5787 }
5788 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005789 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005790 if (
5791 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5792 )
5793 {
5794 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5795 _res = wildcard_pattern_var;
5796 goto done;
5797 }
5798 p->mark = _mark;
5799 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5801 }
5802 { // value_pattern
5803 if (p->error_indicator) {
5804 D(p->level--);
5805 return NULL;
5806 }
5807 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005808 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005809 if (
5810 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5811 )
5812 {
5813 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5814 _res = value_pattern_var;
5815 goto done;
5816 }
5817 p->mark = _mark;
5818 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5820 }
5821 { // group_pattern
5822 if (p->error_indicator) {
5823 D(p->level--);
5824 return NULL;
5825 }
5826 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005827 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005828 if (
5829 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5830 )
5831 {
5832 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5833 _res = group_pattern_var;
5834 goto done;
5835 }
5836 p->mark = _mark;
5837 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5839 }
5840 { // sequence_pattern
5841 if (p->error_indicator) {
5842 D(p->level--);
5843 return NULL;
5844 }
5845 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005846 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005847 if (
5848 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5849 )
5850 {
5851 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5852 _res = sequence_pattern_var;
5853 goto done;
5854 }
5855 p->mark = _mark;
5856 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5858 }
5859 { // mapping_pattern
5860 if (p->error_indicator) {
5861 D(p->level--);
5862 return NULL;
5863 }
5864 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005865 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005866 if (
5867 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5868 )
5869 {
5870 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5871 _res = mapping_pattern_var;
5872 goto done;
5873 }
5874 p->mark = _mark;
5875 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5877 }
5878 { // class_pattern
5879 if (p->error_indicator) {
5880 D(p->level--);
5881 return NULL;
5882 }
5883 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005884 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005885 if (
5886 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5887 )
5888 {
5889 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5890 _res = class_pattern_var;
5891 goto done;
5892 }
5893 p->mark = _mark;
5894 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5896 }
5897 _res = NULL;
5898 done:
5899 D(p->level--);
5900 return _res;
5901}
5902
5903// literal_pattern:
5904// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005905// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005906// | strings
5907// | 'None'
5908// | 'True'
5909// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005910static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005911literal_pattern_rule(Parser *p)
5912{
5913 D(p->level++);
5914 if (p->error_indicator) {
5915 D(p->level--);
5916 return NULL;
5917 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005918 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005919 int _mark = p->mark;
5920 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5921 p->error_indicator = 1;
5922 D(p->level--);
5923 return NULL;
5924 }
5925 int _start_lineno = p->tokens[_mark]->lineno;
5926 UNUSED(_start_lineno); // Only used by EXTRA macro
5927 int _start_col_offset = p->tokens[_mark]->col_offset;
5928 UNUSED(_start_col_offset); // Only used by EXTRA macro
5929 { // signed_number !('+' | '-')
5930 if (p->error_indicator) {
5931 D(p->level--);
5932 return NULL;
5933 }
5934 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005935 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005936 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005937 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005938 &&
5939 _PyPegen_lookahead(0, _tmp_53_rule, p)
5940 )
5941 {
5942 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 +10005943 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5944 if (_token == NULL) {
5945 D(p->level--);
5946 return NULL;
5947 }
5948 int _end_lineno = _token->end_lineno;
5949 UNUSED(_end_lineno); // Only used by EXTRA macro
5950 int _end_col_offset = _token->end_col_offset;
5951 UNUSED(_end_col_offset); // Only used by EXTRA macro
5952 _res = _PyAST_MatchValue ( value , EXTRA );
5953 if (_res == NULL && PyErr_Occurred()) {
5954 p->error_indicator = 1;
5955 D(p->level--);
5956 return NULL;
5957 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005958 goto done;
5959 }
5960 p->mark = _mark;
5961 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5963 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005964 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005965 if (p->error_indicator) {
5966 D(p->level--);
5967 return NULL;
5968 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005969 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
5970 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005971 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005972 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005973 )
5974 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005975 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 -08005976 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5977 if (_token == NULL) {
5978 D(p->level--);
5979 return NULL;
5980 }
5981 int _end_lineno = _token->end_lineno;
5982 UNUSED(_end_lineno); // Only used by EXTRA macro
5983 int _end_col_offset = _token->end_col_offset;
5984 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005985 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005986 if (_res == NULL && PyErr_Occurred()) {
5987 p->error_indicator = 1;
5988 D(p->level--);
5989 return NULL;
5990 }
5991 goto done;
5992 }
5993 p->mark = _mark;
5994 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005996 }
5997 { // strings
5998 if (p->error_indicator) {
5999 D(p->level--);
6000 return NULL;
6001 }
6002 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006003 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006004 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006005 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006006 )
6007 {
6008 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006009 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6010 if (_token == NULL) {
6011 D(p->level--);
6012 return NULL;
6013 }
6014 int _end_lineno = _token->end_lineno;
6015 UNUSED(_end_lineno); // Only used by EXTRA macro
6016 int _end_col_offset = _token->end_col_offset;
6017 UNUSED(_end_col_offset); // Only used by EXTRA macro
6018 _res = _PyAST_MatchValue ( value , EXTRA );
6019 if (_res == NULL && PyErr_Occurred()) {
6020 p->error_indicator = 1;
6021 D(p->level--);
6022 return NULL;
6023 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006024 goto done;
6025 }
6026 p->mark = _mark;
6027 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6029 }
6030 { // 'None'
6031 if (p->error_indicator) {
6032 D(p->level--);
6033 return NULL;
6034 }
6035 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6036 Token * _keyword;
6037 if (
6038 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6039 )
6040 {
6041 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6043 if (_token == NULL) {
6044 D(p->level--);
6045 return NULL;
6046 }
6047 int _end_lineno = _token->end_lineno;
6048 UNUSED(_end_lineno); // Only used by EXTRA macro
6049 int _end_col_offset = _token->end_col_offset;
6050 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006051 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006052 if (_res == NULL && PyErr_Occurred()) {
6053 p->error_indicator = 1;
6054 D(p->level--);
6055 return NULL;
6056 }
6057 goto done;
6058 }
6059 p->mark = _mark;
6060 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6062 }
6063 { // 'True'
6064 if (p->error_indicator) {
6065 D(p->level--);
6066 return NULL;
6067 }
6068 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6069 Token * _keyword;
6070 if (
6071 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6072 )
6073 {
6074 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6076 if (_token == NULL) {
6077 D(p->level--);
6078 return NULL;
6079 }
6080 int _end_lineno = _token->end_lineno;
6081 UNUSED(_end_lineno); // Only used by EXTRA macro
6082 int _end_col_offset = _token->end_col_offset;
6083 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006084 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006085 if (_res == NULL && PyErr_Occurred()) {
6086 p->error_indicator = 1;
6087 D(p->level--);
6088 return NULL;
6089 }
6090 goto done;
6091 }
6092 p->mark = _mark;
6093 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6095 }
6096 { // 'False'
6097 if (p->error_indicator) {
6098 D(p->level--);
6099 return NULL;
6100 }
6101 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6102 Token * _keyword;
6103 if (
6104 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6105 )
6106 {
6107 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6109 if (_token == NULL) {
6110 D(p->level--);
6111 return NULL;
6112 }
6113 int _end_lineno = _token->end_lineno;
6114 UNUSED(_end_lineno); // Only used by EXTRA macro
6115 int _end_col_offset = _token->end_col_offset;
6116 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006117 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006118 if (_res == NULL && PyErr_Occurred()) {
6119 p->error_indicator = 1;
6120 D(p->level--);
6121 return NULL;
6122 }
6123 goto done;
6124 }
6125 p->mark = _mark;
6126 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6128 }
6129 _res = NULL;
6130 done:
6131 D(p->level--);
6132 return _res;
6133}
6134
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006135// literal_expr:
6136// | signed_number !('+' | '-')
6137// | complex_number
6138// | strings
6139// | 'None'
6140// | 'True'
6141// | 'False'
6142static expr_ty
6143literal_expr_rule(Parser *p)
6144{
6145 D(p->level++);
6146 if (p->error_indicator) {
6147 D(p->level--);
6148 return NULL;
6149 }
6150 expr_ty _res = NULL;
6151 int _mark = p->mark;
6152 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6153 p->error_indicator = 1;
6154 D(p->level--);
6155 return NULL;
6156 }
6157 int _start_lineno = p->tokens[_mark]->lineno;
6158 UNUSED(_start_lineno); // Only used by EXTRA macro
6159 int _start_col_offset = p->tokens[_mark]->col_offset;
6160 UNUSED(_start_col_offset); // Only used by EXTRA macro
6161 { // signed_number !('+' | '-')
6162 if (p->error_indicator) {
6163 D(p->level--);
6164 return NULL;
6165 }
6166 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6167 expr_ty signed_number_var;
6168 if (
6169 (signed_number_var = signed_number_rule(p)) // signed_number
6170 &&
6171 _PyPegen_lookahead(0, _tmp_54_rule, p)
6172 )
6173 {
6174 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6175 _res = signed_number_var;
6176 goto done;
6177 }
6178 p->mark = _mark;
6179 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6181 }
6182 { // complex_number
6183 if (p->error_indicator) {
6184 D(p->level--);
6185 return NULL;
6186 }
6187 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6188 expr_ty complex_number_var;
6189 if (
6190 (complex_number_var = complex_number_rule(p)) // complex_number
6191 )
6192 {
6193 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6194 _res = complex_number_var;
6195 goto done;
6196 }
6197 p->mark = _mark;
6198 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6200 }
6201 { // strings
6202 if (p->error_indicator) {
6203 D(p->level--);
6204 return NULL;
6205 }
6206 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6207 expr_ty strings_var;
6208 if (
6209 (strings_var = strings_rule(p)) // strings
6210 )
6211 {
6212 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6213 _res = strings_var;
6214 goto done;
6215 }
6216 p->mark = _mark;
6217 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6219 }
6220 { // 'None'
6221 if (p->error_indicator) {
6222 D(p->level--);
6223 return NULL;
6224 }
6225 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6226 Token * _keyword;
6227 if (
6228 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6229 )
6230 {
6231 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6232 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6233 if (_token == NULL) {
6234 D(p->level--);
6235 return NULL;
6236 }
6237 int _end_lineno = _token->end_lineno;
6238 UNUSED(_end_lineno); // Only used by EXTRA macro
6239 int _end_col_offset = _token->end_col_offset;
6240 UNUSED(_end_col_offset); // Only used by EXTRA macro
6241 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6242 if (_res == NULL && PyErr_Occurred()) {
6243 p->error_indicator = 1;
6244 D(p->level--);
6245 return NULL;
6246 }
6247 goto done;
6248 }
6249 p->mark = _mark;
6250 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6252 }
6253 { // 'True'
6254 if (p->error_indicator) {
6255 D(p->level--);
6256 return NULL;
6257 }
6258 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6259 Token * _keyword;
6260 if (
6261 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6262 )
6263 {
6264 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6265 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6266 if (_token == NULL) {
6267 D(p->level--);
6268 return NULL;
6269 }
6270 int _end_lineno = _token->end_lineno;
6271 UNUSED(_end_lineno); // Only used by EXTRA macro
6272 int _end_col_offset = _token->end_col_offset;
6273 UNUSED(_end_col_offset); // Only used by EXTRA macro
6274 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6275 if (_res == NULL && PyErr_Occurred()) {
6276 p->error_indicator = 1;
6277 D(p->level--);
6278 return NULL;
6279 }
6280 goto done;
6281 }
6282 p->mark = _mark;
6283 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6285 }
6286 { // 'False'
6287 if (p->error_indicator) {
6288 D(p->level--);
6289 return NULL;
6290 }
6291 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6292 Token * _keyword;
6293 if (
6294 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6295 )
6296 {
6297 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6298 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6299 if (_token == NULL) {
6300 D(p->level--);
6301 return NULL;
6302 }
6303 int _end_lineno = _token->end_lineno;
6304 UNUSED(_end_lineno); // Only used by EXTRA macro
6305 int _end_col_offset = _token->end_col_offset;
6306 UNUSED(_end_col_offset); // Only used by EXTRA macro
6307 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6308 if (_res == NULL && PyErr_Occurred()) {
6309 p->error_indicator = 1;
6310 D(p->level--);
6311 return NULL;
6312 }
6313 goto done;
6314 }
6315 p->mark = _mark;
6316 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6318 }
6319 _res = NULL;
6320 done:
6321 D(p->level--);
6322 return _res;
6323}
6324
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006325// complex_number:
6326// | signed_real_number '+' imaginary_number
6327// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006328static expr_ty
6329complex_number_rule(Parser *p)
6330{
6331 D(p->level++);
6332 if (p->error_indicator) {
6333 D(p->level--);
6334 return NULL;
6335 }
6336 expr_ty _res = NULL;
6337 int _mark = p->mark;
6338 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6339 p->error_indicator = 1;
6340 D(p->level--);
6341 return NULL;
6342 }
6343 int _start_lineno = p->tokens[_mark]->lineno;
6344 UNUSED(_start_lineno); // Only used by EXTRA macro
6345 int _start_col_offset = p->tokens[_mark]->col_offset;
6346 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006347 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006348 if (p->error_indicator) {
6349 D(p->level--);
6350 return NULL;
6351 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006352 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 +10006353 Token * _literal;
6354 expr_ty imag;
6355 expr_ty real;
6356 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006357 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006358 &&
6359 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6360 &&
6361 (imag = imaginary_number_rule(p)) // imaginary_number
6362 )
6363 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006364 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 +10006365 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6366 if (_token == NULL) {
6367 D(p->level--);
6368 return NULL;
6369 }
6370 int _end_lineno = _token->end_lineno;
6371 UNUSED(_end_lineno); // Only used by EXTRA macro
6372 int _end_col_offset = _token->end_col_offset;
6373 UNUSED(_end_col_offset); // Only used by EXTRA macro
6374 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6375 if (_res == NULL && PyErr_Occurred()) {
6376 p->error_indicator = 1;
6377 D(p->level--);
6378 return NULL;
6379 }
6380 goto done;
6381 }
6382 p->mark = _mark;
6383 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006385 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006386 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006387 if (p->error_indicator) {
6388 D(p->level--);
6389 return NULL;
6390 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006391 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 +10006392 Token * _literal;
6393 expr_ty imag;
6394 expr_ty real;
6395 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006396 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006397 &&
6398 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6399 &&
6400 (imag = imaginary_number_rule(p)) // imaginary_number
6401 )
6402 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006403 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 +10006404 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6405 if (_token == NULL) {
6406 D(p->level--);
6407 return NULL;
6408 }
6409 int _end_lineno = _token->end_lineno;
6410 UNUSED(_end_lineno); // Only used by EXTRA macro
6411 int _end_col_offset = _token->end_col_offset;
6412 UNUSED(_end_col_offset); // Only used by EXTRA macro
6413 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6414 if (_res == NULL && PyErr_Occurred()) {
6415 p->error_indicator = 1;
6416 D(p->level--);
6417 return NULL;
6418 }
6419 goto done;
6420 }
6421 p->mark = _mark;
6422 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006424 }
6425 _res = NULL;
6426 done:
6427 D(p->level--);
6428 return _res;
6429}
6430
Brandt Bucher145bf262021-02-26 14:51:55 -08006431// signed_number: NUMBER | '-' NUMBER
6432static expr_ty
6433signed_number_rule(Parser *p)
6434{
6435 D(p->level++);
6436 if (p->error_indicator) {
6437 D(p->level--);
6438 return NULL;
6439 }
6440 expr_ty _res = NULL;
6441 int _mark = p->mark;
6442 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6443 p->error_indicator = 1;
6444 D(p->level--);
6445 return NULL;
6446 }
6447 int _start_lineno = p->tokens[_mark]->lineno;
6448 UNUSED(_start_lineno); // Only used by EXTRA macro
6449 int _start_col_offset = p->tokens[_mark]->col_offset;
6450 UNUSED(_start_col_offset); // Only used by EXTRA macro
6451 { // NUMBER
6452 if (p->error_indicator) {
6453 D(p->level--);
6454 return NULL;
6455 }
6456 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6457 expr_ty number_var;
6458 if (
6459 (number_var = _PyPegen_number_token(p)) // NUMBER
6460 )
6461 {
6462 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6463 _res = number_var;
6464 goto done;
6465 }
6466 p->mark = _mark;
6467 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6469 }
6470 { // '-' NUMBER
6471 if (p->error_indicator) {
6472 D(p->level--);
6473 return NULL;
6474 }
6475 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6476 Token * _literal;
6477 expr_ty number;
6478 if (
6479 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6480 &&
6481 (number = _PyPegen_number_token(p)) // NUMBER
6482 )
6483 {
6484 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6485 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6486 if (_token == NULL) {
6487 D(p->level--);
6488 return NULL;
6489 }
6490 int _end_lineno = _token->end_lineno;
6491 UNUSED(_end_lineno); // Only used by EXTRA macro
6492 int _end_col_offset = _token->end_col_offset;
6493 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006494 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006495 if (_res == NULL && PyErr_Occurred()) {
6496 p->error_indicator = 1;
6497 D(p->level--);
6498 return NULL;
6499 }
6500 goto done;
6501 }
6502 p->mark = _mark;
6503 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6505 }
6506 _res = NULL;
6507 done:
6508 D(p->level--);
6509 return _res;
6510}
6511
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006512// signed_real_number: real_number | '-' real_number
6513static expr_ty
6514signed_real_number_rule(Parser *p)
6515{
6516 D(p->level++);
6517 if (p->error_indicator) {
6518 D(p->level--);
6519 return NULL;
6520 }
6521 expr_ty _res = NULL;
6522 int _mark = p->mark;
6523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6524 p->error_indicator = 1;
6525 D(p->level--);
6526 return NULL;
6527 }
6528 int _start_lineno = p->tokens[_mark]->lineno;
6529 UNUSED(_start_lineno); // Only used by EXTRA macro
6530 int _start_col_offset = p->tokens[_mark]->col_offset;
6531 UNUSED(_start_col_offset); // Only used by EXTRA macro
6532 { // real_number
6533 if (p->error_indicator) {
6534 D(p->level--);
6535 return NULL;
6536 }
6537 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6538 expr_ty real_number_var;
6539 if (
6540 (real_number_var = real_number_rule(p)) // real_number
6541 )
6542 {
6543 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6544 _res = real_number_var;
6545 goto done;
6546 }
6547 p->mark = _mark;
6548 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6550 }
6551 { // '-' real_number
6552 if (p->error_indicator) {
6553 D(p->level--);
6554 return NULL;
6555 }
6556 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6557 Token * _literal;
6558 expr_ty real;
6559 if (
6560 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6561 &&
6562 (real = real_number_rule(p)) // real_number
6563 )
6564 {
6565 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6566 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6567 if (_token == NULL) {
6568 D(p->level--);
6569 return NULL;
6570 }
6571 int _end_lineno = _token->end_lineno;
6572 UNUSED(_end_lineno); // Only used by EXTRA macro
6573 int _end_col_offset = _token->end_col_offset;
6574 UNUSED(_end_col_offset); // Only used by EXTRA macro
6575 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6576 if (_res == NULL && PyErr_Occurred()) {
6577 p->error_indicator = 1;
6578 D(p->level--);
6579 return NULL;
6580 }
6581 goto done;
6582 }
6583 p->mark = _mark;
6584 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6586 }
6587 _res = NULL;
6588 done:
6589 D(p->level--);
6590 return _res;
6591}
6592
6593// real_number: NUMBER
6594static expr_ty
6595real_number_rule(Parser *p)
6596{
6597 D(p->level++);
6598 if (p->error_indicator) {
6599 D(p->level--);
6600 return NULL;
6601 }
6602 expr_ty _res = NULL;
6603 int _mark = p->mark;
6604 { // NUMBER
6605 if (p->error_indicator) {
6606 D(p->level--);
6607 return NULL;
6608 }
6609 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6610 expr_ty real;
6611 if (
6612 (real = _PyPegen_number_token(p)) // NUMBER
6613 )
6614 {
6615 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6616 _res = _PyPegen_ensure_real ( p , real );
6617 if (_res == NULL && PyErr_Occurred()) {
6618 p->error_indicator = 1;
6619 D(p->level--);
6620 return NULL;
6621 }
6622 goto done;
6623 }
6624 p->mark = _mark;
6625 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6627 }
6628 _res = NULL;
6629 done:
6630 D(p->level--);
6631 return _res;
6632}
6633
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006634// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006635static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006636imaginary_number_rule(Parser *p)
6637{
6638 D(p->level++);
6639 if (p->error_indicator) {
6640 D(p->level--);
6641 return NULL;
6642 }
6643 expr_ty _res = NULL;
6644 int _mark = p->mark;
6645 { // NUMBER
6646 if (p->error_indicator) {
6647 D(p->level--);
6648 return NULL;
6649 }
6650 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6651 expr_ty imag;
6652 if (
6653 (imag = _PyPegen_number_token(p)) // NUMBER
6654 )
6655 {
6656 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6657 _res = _PyPegen_ensure_imaginary ( p , imag );
6658 if (_res == NULL && PyErr_Occurred()) {
6659 p->error_indicator = 1;
6660 D(p->level--);
6661 return NULL;
6662 }
6663 goto done;
6664 }
6665 p->mark = _mark;
6666 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6668 }
6669 _res = NULL;
6670 done:
6671 D(p->level--);
6672 return _res;
6673}
6674
6675// capture_pattern: pattern_capture_target
6676static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006677capture_pattern_rule(Parser *p)
6678{
6679 D(p->level++);
6680 if (p->error_indicator) {
6681 D(p->level--);
6682 return NULL;
6683 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006684 pattern_ty _res = NULL;
6685 int _mark = p->mark;
6686 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6687 p->error_indicator = 1;
6688 D(p->level--);
6689 return NULL;
6690 }
6691 int _start_lineno = p->tokens[_mark]->lineno;
6692 UNUSED(_start_lineno); // Only used by EXTRA macro
6693 int _start_col_offset = p->tokens[_mark]->col_offset;
6694 UNUSED(_start_col_offset); // Only used by EXTRA macro
6695 { // pattern_capture_target
6696 if (p->error_indicator) {
6697 D(p->level--);
6698 return NULL;
6699 }
6700 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6701 expr_ty target;
6702 if (
6703 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6704 )
6705 {
6706 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6707 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6708 if (_token == NULL) {
6709 D(p->level--);
6710 return NULL;
6711 }
6712 int _end_lineno = _token->end_lineno;
6713 UNUSED(_end_lineno); // Only used by EXTRA macro
6714 int _end_col_offset = _token->end_col_offset;
6715 UNUSED(_end_col_offset); // Only used by EXTRA macro
6716 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6717 if (_res == NULL && PyErr_Occurred()) {
6718 p->error_indicator = 1;
6719 D(p->level--);
6720 return NULL;
6721 }
6722 goto done;
6723 }
6724 p->mark = _mark;
6725 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6727 }
6728 _res = NULL;
6729 done:
6730 D(p->level--);
6731 return _res;
6732}
6733
6734// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6735static expr_ty
6736pattern_capture_target_rule(Parser *p)
6737{
6738 D(p->level++);
6739 if (p->error_indicator) {
6740 D(p->level--);
6741 return NULL;
6742 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006743 expr_ty _res = NULL;
6744 int _mark = p->mark;
6745 { // !"_" NAME !('.' | '(' | '=')
6746 if (p->error_indicator) {
6747 D(p->level--);
6748 return NULL;
6749 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006750 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006751 expr_ty name;
6752 if (
6753 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6754 &&
6755 (name = _PyPegen_name_token(p)) // NAME
6756 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006757 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006758 )
6759 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006760 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 -08006761 _res = _PyPegen_set_expr_context ( p , name , Store );
6762 if (_res == NULL && PyErr_Occurred()) {
6763 p->error_indicator = 1;
6764 D(p->level--);
6765 return NULL;
6766 }
6767 goto done;
6768 }
6769 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006770 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6772 }
6773 _res = NULL;
6774 done:
6775 D(p->level--);
6776 return _res;
6777}
6778
6779// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006780static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006781wildcard_pattern_rule(Parser *p)
6782{
6783 D(p->level++);
6784 if (p->error_indicator) {
6785 D(p->level--);
6786 return NULL;
6787 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006788 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006789 int _mark = p->mark;
6790 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6791 p->error_indicator = 1;
6792 D(p->level--);
6793 return NULL;
6794 }
6795 int _start_lineno = p->tokens[_mark]->lineno;
6796 UNUSED(_start_lineno); // Only used by EXTRA macro
6797 int _start_col_offset = p->tokens[_mark]->col_offset;
6798 UNUSED(_start_col_offset); // Only used by EXTRA macro
6799 { // "_"
6800 if (p->error_indicator) {
6801 D(p->level--);
6802 return NULL;
6803 }
6804 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6805 expr_ty _keyword;
6806 if (
6807 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6808 )
6809 {
6810 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6811 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6812 if (_token == NULL) {
6813 D(p->level--);
6814 return NULL;
6815 }
6816 int _end_lineno = _token->end_lineno;
6817 UNUSED(_end_lineno); // Only used by EXTRA macro
6818 int _end_col_offset = _token->end_col_offset;
6819 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006820 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006821 if (_res == NULL && PyErr_Occurred()) {
6822 p->error_indicator = 1;
6823 D(p->level--);
6824 return NULL;
6825 }
6826 goto done;
6827 }
6828 p->mark = _mark;
6829 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6831 }
6832 _res = NULL;
6833 done:
6834 D(p->level--);
6835 return _res;
6836}
6837
6838// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006839static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006840value_pattern_rule(Parser *p)
6841{
6842 D(p->level++);
6843 if (p->error_indicator) {
6844 D(p->level--);
6845 return NULL;
6846 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006847 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006848 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006849 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6850 p->error_indicator = 1;
6851 D(p->level--);
6852 return NULL;
6853 }
6854 int _start_lineno = p->tokens[_mark]->lineno;
6855 UNUSED(_start_lineno); // Only used by EXTRA macro
6856 int _start_col_offset = p->tokens[_mark]->col_offset;
6857 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006858 { // attr !('.' | '(' | '=')
6859 if (p->error_indicator) {
6860 D(p->level--);
6861 return NULL;
6862 }
6863 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6864 expr_ty attr;
6865 if (
6866 (attr = attr_rule(p)) // attr
6867 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006868 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006869 )
6870 {
6871 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006872 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6873 if (_token == NULL) {
6874 D(p->level--);
6875 return NULL;
6876 }
6877 int _end_lineno = _token->end_lineno;
6878 UNUSED(_end_lineno); // Only used by EXTRA macro
6879 int _end_col_offset = _token->end_col_offset;
6880 UNUSED(_end_col_offset); // Only used by EXTRA macro
6881 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006882 if (_res == NULL && PyErr_Occurred()) {
6883 p->error_indicator = 1;
6884 D(p->level--);
6885 return NULL;
6886 }
6887 goto done;
6888 }
6889 p->mark = _mark;
6890 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6892 }
6893 _res = NULL;
6894 done:
6895 D(p->level--);
6896 return _res;
6897}
6898
6899// Left-recursive
6900// attr: name_or_attr '.' NAME
6901static expr_ty attr_raw(Parser *);
6902static expr_ty
6903attr_rule(Parser *p)
6904{
6905 D(p->level++);
6906 expr_ty _res = NULL;
6907 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6908 D(p->level--);
6909 return _res;
6910 }
6911 int _mark = p->mark;
6912 int _resmark = p->mark;
6913 while (1) {
6914 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6915 if (tmpvar_1) {
6916 D(p->level--);
6917 return _res;
6918 }
6919 p->mark = _mark;
6920 void *_raw = attr_raw(p);
6921 if (p->error_indicator)
6922 return NULL;
6923 if (_raw == NULL || p->mark <= _resmark)
6924 break;
6925 _resmark = p->mark;
6926 _res = _raw;
6927 }
6928 p->mark = _resmark;
6929 D(p->level--);
6930 return _res;
6931}
6932static expr_ty
6933attr_raw(Parser *p)
6934{
6935 D(p->level++);
6936 if (p->error_indicator) {
6937 D(p->level--);
6938 return NULL;
6939 }
6940 expr_ty _res = NULL;
6941 int _mark = p->mark;
6942 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6943 p->error_indicator = 1;
6944 D(p->level--);
6945 return NULL;
6946 }
6947 int _start_lineno = p->tokens[_mark]->lineno;
6948 UNUSED(_start_lineno); // Only used by EXTRA macro
6949 int _start_col_offset = p->tokens[_mark]->col_offset;
6950 UNUSED(_start_col_offset); // Only used by EXTRA macro
6951 { // name_or_attr '.' NAME
6952 if (p->error_indicator) {
6953 D(p->level--);
6954 return NULL;
6955 }
6956 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6957 Token * _literal;
6958 expr_ty attr;
6959 expr_ty value;
6960 if (
6961 (value = name_or_attr_rule(p)) // name_or_attr
6962 &&
6963 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6964 &&
6965 (attr = _PyPegen_name_token(p)) // NAME
6966 )
6967 {
6968 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6969 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6970 if (_token == NULL) {
6971 D(p->level--);
6972 return NULL;
6973 }
6974 int _end_lineno = _token->end_lineno;
6975 UNUSED(_end_lineno); // Only used by EXTRA macro
6976 int _end_col_offset = _token->end_col_offset;
6977 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006978 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006979 if (_res == NULL && PyErr_Occurred()) {
6980 p->error_indicator = 1;
6981 D(p->level--);
6982 return NULL;
6983 }
6984 goto done;
6985 }
6986 p->mark = _mark;
6987 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6989 }
6990 _res = NULL;
6991 done:
6992 D(p->level--);
6993 return _res;
6994}
6995
6996// Left-recursive
6997// name_or_attr: attr | NAME
6998static expr_ty
6999name_or_attr_rule(Parser *p)
7000{
7001 D(p->level++);
7002 if (p->error_indicator) {
7003 D(p->level--);
7004 return NULL;
7005 }
7006 expr_ty _res = NULL;
7007 int _mark = p->mark;
7008 { // attr
7009 if (p->error_indicator) {
7010 D(p->level--);
7011 return NULL;
7012 }
7013 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7014 expr_ty attr_var;
7015 if (
7016 (attr_var = attr_rule(p)) // attr
7017 )
7018 {
7019 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7020 _res = attr_var;
7021 goto done;
7022 }
7023 p->mark = _mark;
7024 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7026 }
7027 { // NAME
7028 if (p->error_indicator) {
7029 D(p->level--);
7030 return NULL;
7031 }
7032 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7033 expr_ty name_var;
7034 if (
7035 (name_var = _PyPegen_name_token(p)) // NAME
7036 )
7037 {
7038 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7039 _res = name_var;
7040 goto done;
7041 }
7042 p->mark = _mark;
7043 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7045 }
7046 _res = NULL;
7047 done:
7048 D(p->level--);
7049 return _res;
7050}
7051
7052// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007053static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007054group_pattern_rule(Parser *p)
7055{
7056 D(p->level++);
7057 if (p->error_indicator) {
7058 D(p->level--);
7059 return NULL;
7060 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007061 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007062 int _mark = p->mark;
7063 { // '(' pattern ')'
7064 if (p->error_indicator) {
7065 D(p->level--);
7066 return NULL;
7067 }
7068 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7069 Token * _literal;
7070 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007071 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007072 if (
7073 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7074 &&
7075 (pattern = pattern_rule(p)) // pattern
7076 &&
7077 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7078 )
7079 {
7080 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7081 _res = pattern;
7082 if (_res == NULL && PyErr_Occurred()) {
7083 p->error_indicator = 1;
7084 D(p->level--);
7085 return NULL;
7086 }
7087 goto done;
7088 }
7089 p->mark = _mark;
7090 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7092 }
7093 _res = NULL;
7094 done:
7095 D(p->level--);
7096 return _res;
7097}
7098
7099// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007100static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007101sequence_pattern_rule(Parser *p)
7102{
7103 D(p->level++);
7104 if (p->error_indicator) {
7105 D(p->level--);
7106 return NULL;
7107 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007108 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007109 int _mark = p->mark;
7110 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7111 p->error_indicator = 1;
7112 D(p->level--);
7113 return NULL;
7114 }
7115 int _start_lineno = p->tokens[_mark]->lineno;
7116 UNUSED(_start_lineno); // Only used by EXTRA macro
7117 int _start_col_offset = p->tokens[_mark]->col_offset;
7118 UNUSED(_start_col_offset); // Only used by EXTRA macro
7119 { // '[' maybe_sequence_pattern? ']'
7120 if (p->error_indicator) {
7121 D(p->level--);
7122 return NULL;
7123 }
7124 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7125 Token * _literal;
7126 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007127 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007128 if (
7129 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7130 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007131 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007132 &&
7133 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7134 )
7135 {
7136 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7138 if (_token == NULL) {
7139 D(p->level--);
7140 return NULL;
7141 }
7142 int _end_lineno = _token->end_lineno;
7143 UNUSED(_end_lineno); // Only used by EXTRA macro
7144 int _end_col_offset = _token->end_col_offset;
7145 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007146 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007147 if (_res == NULL && PyErr_Occurred()) {
7148 p->error_indicator = 1;
7149 D(p->level--);
7150 return NULL;
7151 }
7152 goto done;
7153 }
7154 p->mark = _mark;
7155 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7157 }
7158 { // '(' open_sequence_pattern? ')'
7159 if (p->error_indicator) {
7160 D(p->level--);
7161 return NULL;
7162 }
7163 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7164 Token * _literal;
7165 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007166 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007167 if (
7168 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7169 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007170 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007171 &&
7172 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7173 )
7174 {
7175 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7176 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7177 if (_token == NULL) {
7178 D(p->level--);
7179 return NULL;
7180 }
7181 int _end_lineno = _token->end_lineno;
7182 UNUSED(_end_lineno); // Only used by EXTRA macro
7183 int _end_col_offset = _token->end_col_offset;
7184 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007185 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007186 if (_res == NULL && PyErr_Occurred()) {
7187 p->error_indicator = 1;
7188 D(p->level--);
7189 return NULL;
7190 }
7191 goto done;
7192 }
7193 p->mark = _mark;
7194 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7196 }
7197 _res = NULL;
7198 done:
7199 D(p->level--);
7200 return _res;
7201}
7202
7203// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7204static asdl_seq*
7205open_sequence_pattern_rule(Parser *p)
7206{
7207 D(p->level++);
7208 if (p->error_indicator) {
7209 D(p->level--);
7210 return NULL;
7211 }
7212 asdl_seq* _res = NULL;
7213 int _mark = p->mark;
7214 { // maybe_star_pattern ',' maybe_sequence_pattern?
7215 if (p->error_indicator) {
7216 D(p->level--);
7217 return NULL;
7218 }
7219 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7220 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007221 pattern_ty pattern;
7222 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007223 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007224 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007225 &&
7226 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7227 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007228 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007229 )
7230 {
7231 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 +10007232 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007233 if (_res == NULL && PyErr_Occurred()) {
7234 p->error_indicator = 1;
7235 D(p->level--);
7236 return NULL;
7237 }
7238 goto done;
7239 }
7240 p->mark = _mark;
7241 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7243 }
7244 _res = NULL;
7245 done:
7246 D(p->level--);
7247 return _res;
7248}
7249
7250// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7251static asdl_seq*
7252maybe_sequence_pattern_rule(Parser *p)
7253{
7254 D(p->level++);
7255 if (p->error_indicator) {
7256 D(p->level--);
7257 return NULL;
7258 }
7259 asdl_seq* _res = NULL;
7260 int _mark = p->mark;
7261 { // ','.maybe_star_pattern+ ','?
7262 if (p->error_indicator) {
7263 D(p->level--);
7264 return NULL;
7265 }
7266 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7267 void *_opt_var;
7268 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007269 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007270 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007271 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007272 &&
7273 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7274 )
7275 {
7276 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 +10007277 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007278 if (_res == NULL && PyErr_Occurred()) {
7279 p->error_indicator = 1;
7280 D(p->level--);
7281 return NULL;
7282 }
7283 goto done;
7284 }
7285 p->mark = _mark;
7286 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7288 }
7289 _res = NULL;
7290 done:
7291 D(p->level--);
7292 return _res;
7293}
7294
7295// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007296static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007297maybe_star_pattern_rule(Parser *p)
7298{
7299 D(p->level++);
7300 if (p->error_indicator) {
7301 D(p->level--);
7302 return NULL;
7303 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007304 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007305 int _mark = p->mark;
7306 { // star_pattern
7307 if (p->error_indicator) {
7308 D(p->level--);
7309 return NULL;
7310 }
7311 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 +10007312 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007313 if (
7314 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7315 )
7316 {
7317 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7318 _res = star_pattern_var;
7319 goto done;
7320 }
7321 p->mark = _mark;
7322 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7324 }
7325 { // pattern
7326 if (p->error_indicator) {
7327 D(p->level--);
7328 return NULL;
7329 }
7330 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007331 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007332 if (
7333 (pattern_var = pattern_rule(p)) // pattern
7334 )
7335 {
7336 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7337 _res = pattern_var;
7338 goto done;
7339 }
7340 p->mark = _mark;
7341 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7343 }
7344 _res = NULL;
7345 done:
7346 D(p->level--);
7347 return _res;
7348}
7349
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007350// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7351static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007352star_pattern_rule(Parser *p)
7353{
7354 D(p->level++);
7355 if (p->error_indicator) {
7356 D(p->level--);
7357 return NULL;
7358 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007359 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007360 int _mark = p->mark;
7361 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7362 p->error_indicator = 1;
7363 D(p->level--);
7364 return NULL;
7365 }
7366 int _start_lineno = p->tokens[_mark]->lineno;
7367 UNUSED(_start_lineno); // Only used by EXTRA macro
7368 int _start_col_offset = p->tokens[_mark]->col_offset;
7369 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007370 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007371 if (p->error_indicator) {
7372 D(p->level--);
7373 return NULL;
7374 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007375 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 -08007376 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007377 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007378 if (
7379 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7380 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007381 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007382 )
7383 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007384 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 -08007385 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7386 if (_token == NULL) {
7387 D(p->level--);
7388 return NULL;
7389 }
7390 int _end_lineno = _token->end_lineno;
7391 UNUSED(_end_lineno); // Only used by EXTRA macro
7392 int _end_col_offset = _token->end_col_offset;
7393 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007394 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007395 if (_res == NULL && PyErr_Occurred()) {
7396 p->error_indicator = 1;
7397 D(p->level--);
7398 return NULL;
7399 }
7400 goto done;
7401 }
7402 p->mark = _mark;
7403 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7405 }
7406 { // '*' wildcard_pattern
7407 if (p->error_indicator) {
7408 D(p->level--);
7409 return NULL;
7410 }
7411 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7412 Token * _literal;
7413 pattern_ty wildcard_pattern_var;
7414 if (
7415 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7416 &&
7417 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7418 )
7419 {
7420 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7421 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7422 if (_token == NULL) {
7423 D(p->level--);
7424 return NULL;
7425 }
7426 int _end_lineno = _token->end_lineno;
7427 UNUSED(_end_lineno); // Only used by EXTRA macro
7428 int _end_col_offset = _token->end_col_offset;
7429 UNUSED(_end_col_offset); // Only used by EXTRA macro
7430 _res = _PyAST_MatchStar ( NULL , EXTRA );
7431 if (_res == NULL && PyErr_Occurred()) {
7432 p->error_indicator = 1;
7433 D(p->level--);
7434 return NULL;
7435 }
7436 goto done;
7437 }
7438 p->mark = _mark;
7439 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007441 }
7442 _res = NULL;
7443 done:
7444 D(p->level--);
7445 return _res;
7446}
7447
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007448// mapping_pattern:
7449// | '{' '}'
7450// | '{' double_star_pattern ','? '}'
7451// | '{' items_pattern ',' double_star_pattern ','? '}'
7452// | '{' items_pattern ','? '}'
7453static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007454mapping_pattern_rule(Parser *p)
7455{
7456 D(p->level++);
7457 if (p->error_indicator) {
7458 D(p->level--);
7459 return NULL;
7460 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007461 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007462 int _mark = p->mark;
7463 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7464 p->error_indicator = 1;
7465 D(p->level--);
7466 return NULL;
7467 }
7468 int _start_lineno = p->tokens[_mark]->lineno;
7469 UNUSED(_start_lineno); // Only used by EXTRA macro
7470 int _start_col_offset = p->tokens[_mark]->col_offset;
7471 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007472 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007473 if (p->error_indicator) {
7474 D(p->level--);
7475 return NULL;
7476 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007477 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007478 Token * _literal;
7479 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007480 if (
7481 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7482 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007483 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7484 )
7485 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007486 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7488 if (_token == NULL) {
7489 D(p->level--);
7490 return NULL;
7491 }
7492 int _end_lineno = _token->end_lineno;
7493 UNUSED(_end_lineno); // Only used by EXTRA macro
7494 int _end_col_offset = _token->end_col_offset;
7495 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007496 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007497 if (_res == NULL && PyErr_Occurred()) {
7498 p->error_indicator = 1;
7499 D(p->level--);
7500 return NULL;
7501 }
7502 goto done;
7503 }
7504 p->mark = _mark;
7505 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7507 }
7508 { // '{' double_star_pattern ','? '}'
7509 if (p->error_indicator) {
7510 D(p->level--);
7511 return NULL;
7512 }
7513 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7514 Token * _literal;
7515 Token * _literal_1;
7516 void *_opt_var;
7517 UNUSED(_opt_var); // Silence compiler warnings
7518 expr_ty rest;
7519 if (
7520 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7521 &&
7522 (rest = double_star_pattern_rule(p)) // double_star_pattern
7523 &&
7524 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7525 &&
7526 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7527 )
7528 {
7529 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7530 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7531 if (_token == NULL) {
7532 D(p->level--);
7533 return NULL;
7534 }
7535 int _end_lineno = _token->end_lineno;
7536 UNUSED(_end_lineno); // Only used by EXTRA macro
7537 int _end_col_offset = _token->end_col_offset;
7538 UNUSED(_end_col_offset); // Only used by EXTRA macro
7539 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7540 if (_res == NULL && PyErr_Occurred()) {
7541 p->error_indicator = 1;
7542 D(p->level--);
7543 return NULL;
7544 }
7545 goto done;
7546 }
7547 p->mark = _mark;
7548 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7550 }
7551 { // '{' items_pattern ',' double_star_pattern ','? '}'
7552 if (p->error_indicator) {
7553 D(p->level--);
7554 return NULL;
7555 }
7556 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7557 Token * _literal;
7558 Token * _literal_1;
7559 Token * _literal_2;
7560 void *_opt_var;
7561 UNUSED(_opt_var); // Silence compiler warnings
7562 asdl_seq* items;
7563 expr_ty rest;
7564 if (
7565 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7566 &&
7567 (items = items_pattern_rule(p)) // items_pattern
7568 &&
7569 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7570 &&
7571 (rest = double_star_pattern_rule(p)) // double_star_pattern
7572 &&
7573 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7574 &&
7575 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7576 )
7577 {
7578 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7579 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7580 if (_token == NULL) {
7581 D(p->level--);
7582 return NULL;
7583 }
7584 int _end_lineno = _token->end_lineno;
7585 UNUSED(_end_lineno); // Only used by EXTRA macro
7586 int _end_col_offset = _token->end_col_offset;
7587 UNUSED(_end_col_offset); // Only used by EXTRA macro
7588 _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 );
7589 if (_res == NULL && PyErr_Occurred()) {
7590 p->error_indicator = 1;
7591 D(p->level--);
7592 return NULL;
7593 }
7594 goto done;
7595 }
7596 p->mark = _mark;
7597 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7599 }
7600 { // '{' items_pattern ','? '}'
7601 if (p->error_indicator) {
7602 D(p->level--);
7603 return NULL;
7604 }
7605 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7606 Token * _literal;
7607 Token * _literal_1;
7608 void *_opt_var;
7609 UNUSED(_opt_var); // Silence compiler warnings
7610 asdl_seq* items;
7611 if (
7612 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7613 &&
7614 (items = items_pattern_rule(p)) // items_pattern
7615 &&
7616 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7617 &&
7618 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7619 )
7620 {
7621 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7622 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7623 if (_token == NULL) {
7624 D(p->level--);
7625 return NULL;
7626 }
7627 int _end_lineno = _token->end_lineno;
7628 UNUSED(_end_lineno); // Only used by EXTRA macro
7629 int _end_col_offset = _token->end_col_offset;
7630 UNUSED(_end_col_offset); // Only used by EXTRA macro
7631 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7632 if (_res == NULL && PyErr_Occurred()) {
7633 p->error_indicator = 1;
7634 D(p->level--);
7635 return NULL;
7636 }
7637 goto done;
7638 }
7639 p->mark = _mark;
7640 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007642 }
7643 _res = NULL;
7644 done:
7645 D(p->level--);
7646 return _res;
7647}
7648
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007649// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007650static asdl_seq*
7651items_pattern_rule(Parser *p)
7652{
7653 D(p->level++);
7654 if (p->error_indicator) {
7655 D(p->level--);
7656 return NULL;
7657 }
7658 asdl_seq* _res = NULL;
7659 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007660 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007661 if (p->error_indicator) {
7662 D(p->level--);
7663 return NULL;
7664 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007665 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 -07007666 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007667 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007668 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007669 )
7670 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007671 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 -07007672 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007673 goto done;
7674 }
7675 p->mark = _mark;
7676 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007678 }
7679 _res = NULL;
7680 done:
7681 D(p->level--);
7682 return _res;
7683}
7684
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007685// key_value_pattern: (literal_expr | attr) ':' pattern
7686static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007687key_value_pattern_rule(Parser *p)
7688{
7689 D(p->level++);
7690 if (p->error_indicator) {
7691 D(p->level--);
7692 return NULL;
7693 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007694 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007695 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007696 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007697 if (p->error_indicator) {
7698 D(p->level--);
7699 return NULL;
7700 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007701 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 -08007702 Token * _literal;
7703 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007704 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007705 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007706 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007707 &&
7708 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7709 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007710 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007711 )
7712 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007713 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7714 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007715 if (_res == NULL && PyErr_Occurred()) {
7716 p->error_indicator = 1;
7717 D(p->level--);
7718 return NULL;
7719 }
7720 goto done;
7721 }
7722 p->mark = _mark;
7723 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007725 }
7726 _res = NULL;
7727 done:
7728 D(p->level--);
7729 return _res;
7730}
7731
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007732// double_star_pattern: '**' pattern_capture_target
7733static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007734double_star_pattern_rule(Parser *p)
7735{
7736 D(p->level++);
7737 if (p->error_indicator) {
7738 D(p->level--);
7739 return NULL;
7740 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007741 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007742 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007743 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007744 if (p->error_indicator) {
7745 D(p->level--);
7746 return NULL;
7747 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007748 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 -08007749 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007750 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007751 if (
7752 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7753 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007754 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007755 )
7756 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007757 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7758 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007759 if (_res == NULL && PyErr_Occurred()) {
7760 p->error_indicator = 1;
7761 D(p->level--);
7762 return NULL;
7763 }
7764 goto done;
7765 }
7766 p->mark = _mark;
7767 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007769 }
7770 _res = NULL;
7771 done:
7772 D(p->level--);
7773 return _res;
7774}
7775
7776// class_pattern:
7777// | name_or_attr '(' ')'
7778// | name_or_attr '(' positional_patterns ','? ')'
7779// | name_or_attr '(' keyword_patterns ','? ')'
7780// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007781static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007782class_pattern_rule(Parser *p)
7783{
7784 D(p->level++);
7785 if (p->error_indicator) {
7786 D(p->level--);
7787 return NULL;
7788 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007789 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007790 int _mark = p->mark;
7791 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7792 p->error_indicator = 1;
7793 D(p->level--);
7794 return NULL;
7795 }
7796 int _start_lineno = p->tokens[_mark]->lineno;
7797 UNUSED(_start_lineno); // Only used by EXTRA macro
7798 int _start_col_offset = p->tokens[_mark]->col_offset;
7799 UNUSED(_start_col_offset); // Only used by EXTRA macro
7800 { // name_or_attr '(' ')'
7801 if (p->error_indicator) {
7802 D(p->level--);
7803 return NULL;
7804 }
7805 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7806 Token * _literal;
7807 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007808 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007809 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007810 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007811 &&
7812 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7813 &&
7814 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7815 )
7816 {
7817 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7818 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7819 if (_token == NULL) {
7820 D(p->level--);
7821 return NULL;
7822 }
7823 int _end_lineno = _token->end_lineno;
7824 UNUSED(_end_lineno); // Only used by EXTRA macro
7825 int _end_col_offset = _token->end_col_offset;
7826 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007827 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007828 if (_res == NULL && PyErr_Occurred()) {
7829 p->error_indicator = 1;
7830 D(p->level--);
7831 return NULL;
7832 }
7833 goto done;
7834 }
7835 p->mark = _mark;
7836 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7838 }
7839 { // name_or_attr '(' positional_patterns ','? ')'
7840 if (p->error_indicator) {
7841 D(p->level--);
7842 return NULL;
7843 }
7844 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7845 Token * _literal;
7846 Token * _literal_1;
7847 void *_opt_var;
7848 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007849 expr_ty cls;
7850 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007851 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007852 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007853 &&
7854 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7855 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007856 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007857 &&
7858 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7859 &&
7860 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7861 )
7862 {
7863 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7864 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7865 if (_token == NULL) {
7866 D(p->level--);
7867 return NULL;
7868 }
7869 int _end_lineno = _token->end_lineno;
7870 UNUSED(_end_lineno); // Only used by EXTRA macro
7871 int _end_col_offset = _token->end_col_offset;
7872 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007873 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007874 if (_res == NULL && PyErr_Occurred()) {
7875 p->error_indicator = 1;
7876 D(p->level--);
7877 return NULL;
7878 }
7879 goto done;
7880 }
7881 p->mark = _mark;
7882 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7884 }
7885 { // name_or_attr '(' keyword_patterns ','? ')'
7886 if (p->error_indicator) {
7887 D(p->level--);
7888 return NULL;
7889 }
7890 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7891 Token * _literal;
7892 Token * _literal_1;
7893 void *_opt_var;
7894 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007895 expr_ty cls;
7896 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007897 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007898 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007899 &&
7900 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7901 &&
7902 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7903 &&
7904 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7905 &&
7906 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7907 )
7908 {
7909 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7910 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7911 if (_token == NULL) {
7912 D(p->level--);
7913 return NULL;
7914 }
7915 int _end_lineno = _token->end_lineno;
7916 UNUSED(_end_lineno); // Only used by EXTRA macro
7917 int _end_col_offset = _token->end_col_offset;
7918 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007919 _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 -08007920 if (_res == NULL && PyErr_Occurred()) {
7921 p->error_indicator = 1;
7922 D(p->level--);
7923 return NULL;
7924 }
7925 goto done;
7926 }
7927 p->mark = _mark;
7928 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7930 }
7931 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7932 if (p->error_indicator) {
7933 D(p->level--);
7934 return NULL;
7935 }
7936 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7937 Token * _literal;
7938 Token * _literal_1;
7939 Token * _literal_2;
7940 void *_opt_var;
7941 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007942 expr_ty cls;
7943 asdl_seq* keywords;
7944 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007945 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007946 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007947 &&
7948 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7949 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007950 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007951 &&
7952 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7953 &&
7954 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7955 &&
7956 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7957 &&
7958 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7959 )
7960 {
7961 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7962 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7963 if (_token == NULL) {
7964 D(p->level--);
7965 return NULL;
7966 }
7967 int _end_lineno = _token->end_lineno;
7968 UNUSED(_end_lineno); // Only used by EXTRA macro
7969 int _end_col_offset = _token->end_col_offset;
7970 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007971 _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 -08007972 if (_res == NULL && PyErr_Occurred()) {
7973 p->error_indicator = 1;
7974 D(p->level--);
7975 return NULL;
7976 }
7977 goto done;
7978 }
7979 p->mark = _mark;
7980 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7982 }
7983 _res = NULL;
7984 done:
7985 D(p->level--);
7986 return _res;
7987}
7988
7989// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007990static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08007991positional_patterns_rule(Parser *p)
7992{
7993 D(p->level++);
7994 if (p->error_indicator) {
7995 D(p->level--);
7996 return NULL;
7997 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007998 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007999 int _mark = p->mark;
8000 { // ','.pattern+
8001 if (p->error_indicator) {
8002 D(p->level--);
8003 return NULL;
8004 }
8005 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008006 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008007 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008008 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008009 )
8010 {
8011 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8012 _res = args;
8013 if (_res == NULL && PyErr_Occurred()) {
8014 p->error_indicator = 1;
8015 D(p->level--);
8016 return NULL;
8017 }
8018 goto done;
8019 }
8020 p->mark = _mark;
8021 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8023 }
8024 _res = NULL;
8025 done:
8026 D(p->level--);
8027 return _res;
8028}
8029
8030// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008031static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008032keyword_patterns_rule(Parser *p)
8033{
8034 D(p->level++);
8035 if (p->error_indicator) {
8036 D(p->level--);
8037 return NULL;
8038 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008039 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008040 int _mark = p->mark;
8041 { // ','.keyword_pattern+
8042 if (p->error_indicator) {
8043 D(p->level--);
8044 return NULL;
8045 }
8046 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008047 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008048 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008049 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008050 )
8051 {
8052 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 -07008053 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008054 goto done;
8055 }
8056 p->mark = _mark;
8057 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8059 }
8060 _res = NULL;
8061 done:
8062 D(p->level--);
8063 return _res;
8064}
8065
8066// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008067static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008068keyword_pattern_rule(Parser *p)
8069{
8070 D(p->level++);
8071 if (p->error_indicator) {
8072 D(p->level--);
8073 return NULL;
8074 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008075 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008076 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008077 { // NAME '=' pattern
8078 if (p->error_indicator) {
8079 D(p->level--);
8080 return NULL;
8081 }
8082 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8083 Token * _literal;
8084 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008085 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008086 if (
8087 (arg = _PyPegen_name_token(p)) // NAME
8088 &&
8089 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8090 &&
8091 (value = pattern_rule(p)) // pattern
8092 )
8093 {
8094 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 +10008095 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008096 if (_res == NULL && PyErr_Occurred()) {
8097 p->error_indicator = 1;
8098 D(p->level--);
8099 return NULL;
8100 }
8101 goto done;
8102 }
8103 p->mark = _mark;
8104 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8106 }
8107 _res = NULL;
8108 done:
8109 D(p->level--);
8110 return _res;
8111}
8112
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008113// return_stmt: 'return' star_expressions?
8114static stmt_ty
8115return_stmt_rule(Parser *p)
8116{
8117 D(p->level++);
8118 if (p->error_indicator) {
8119 D(p->level--);
8120 return NULL;
8121 }
8122 stmt_ty _res = NULL;
8123 int _mark = p->mark;
8124 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8125 p->error_indicator = 1;
8126 D(p->level--);
8127 return NULL;
8128 }
8129 int _start_lineno = p->tokens[_mark]->lineno;
8130 UNUSED(_start_lineno); // Only used by EXTRA macro
8131 int _start_col_offset = p->tokens[_mark]->col_offset;
8132 UNUSED(_start_col_offset); // Only used by EXTRA macro
8133 { // 'return' star_expressions?
8134 if (p->error_indicator) {
8135 D(p->level--);
8136 return NULL;
8137 }
8138 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8139 Token * _keyword;
8140 void *a;
8141 if (
8142 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8143 &&
8144 (a = star_expressions_rule(p), 1) // star_expressions?
8145 )
8146 {
8147 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8148 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8149 if (_token == NULL) {
8150 D(p->level--);
8151 return NULL;
8152 }
8153 int _end_lineno = _token->end_lineno;
8154 UNUSED(_end_lineno); // Only used by EXTRA macro
8155 int _end_col_offset = _token->end_col_offset;
8156 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008157 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008158 if (_res == NULL && PyErr_Occurred()) {
8159 p->error_indicator = 1;
8160 D(p->level--);
8161 return NULL;
8162 }
8163 goto done;
8164 }
8165 p->mark = _mark;
8166 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8168 }
8169 _res = NULL;
8170 done:
8171 D(p->level--);
8172 return _res;
8173}
8174
8175// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8176static stmt_ty
8177raise_stmt_rule(Parser *p)
8178{
8179 D(p->level++);
8180 if (p->error_indicator) {
8181 D(p->level--);
8182 return NULL;
8183 }
8184 stmt_ty _res = NULL;
8185 int _mark = p->mark;
8186 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8187 p->error_indicator = 1;
8188 D(p->level--);
8189 return NULL;
8190 }
8191 int _start_lineno = p->tokens[_mark]->lineno;
8192 UNUSED(_start_lineno); // Only used by EXTRA macro
8193 int _start_col_offset = p->tokens[_mark]->col_offset;
8194 UNUSED(_start_col_offset); // Only used by EXTRA macro
8195 { // 'raise' expression ['from' expression]
8196 if (p->error_indicator) {
8197 D(p->level--);
8198 return NULL;
8199 }
8200 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8201 Token * _keyword;
8202 expr_ty a;
8203 void *b;
8204 if (
8205 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8206 &&
8207 (a = expression_rule(p)) // expression
8208 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008209 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008210 )
8211 {
8212 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8213 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8214 if (_token == NULL) {
8215 D(p->level--);
8216 return NULL;
8217 }
8218 int _end_lineno = _token->end_lineno;
8219 UNUSED(_end_lineno); // Only used by EXTRA macro
8220 int _end_col_offset = _token->end_col_offset;
8221 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008222 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008223 if (_res == NULL && PyErr_Occurred()) {
8224 p->error_indicator = 1;
8225 D(p->level--);
8226 return NULL;
8227 }
8228 goto done;
8229 }
8230 p->mark = _mark;
8231 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8233 }
8234 { // 'raise'
8235 if (p->error_indicator) {
8236 D(p->level--);
8237 return NULL;
8238 }
8239 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8240 Token * _keyword;
8241 if (
8242 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8243 )
8244 {
8245 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8246 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8247 if (_token == NULL) {
8248 D(p->level--);
8249 return NULL;
8250 }
8251 int _end_lineno = _token->end_lineno;
8252 UNUSED(_end_lineno); // Only used by EXTRA macro
8253 int _end_col_offset = _token->end_col_offset;
8254 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008255 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008256 if (_res == NULL && PyErr_Occurred()) {
8257 p->error_indicator = 1;
8258 D(p->level--);
8259 return NULL;
8260 }
8261 goto done;
8262 }
8263 p->mark = _mark;
8264 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8266 }
8267 _res = NULL;
8268 done:
8269 D(p->level--);
8270 return _res;
8271}
8272
8273// function_def: decorators function_def_raw | function_def_raw
8274static stmt_ty
8275function_def_rule(Parser *p)
8276{
8277 D(p->level++);
8278 if (p->error_indicator) {
8279 D(p->level--);
8280 return NULL;
8281 }
8282 stmt_ty _res = NULL;
8283 int _mark = p->mark;
8284 { // decorators function_def_raw
8285 if (p->error_indicator) {
8286 D(p->level--);
8287 return NULL;
8288 }
8289 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 +01008290 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008291 stmt_ty f;
8292 if (
8293 (d = decorators_rule(p)) // decorators
8294 &&
8295 (f = function_def_raw_rule(p)) // function_def_raw
8296 )
8297 {
8298 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8299 _res = _PyPegen_function_def_decorators ( p , d , f );
8300 if (_res == NULL && PyErr_Occurred()) {
8301 p->error_indicator = 1;
8302 D(p->level--);
8303 return NULL;
8304 }
8305 goto done;
8306 }
8307 p->mark = _mark;
8308 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8310 }
8311 { // function_def_raw
8312 if (p->error_indicator) {
8313 D(p->level--);
8314 return NULL;
8315 }
8316 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8317 stmt_ty function_def_raw_var;
8318 if (
8319 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8320 )
8321 {
8322 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8323 _res = function_def_raw_var;
8324 goto done;
8325 }
8326 p->mark = _mark;
8327 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8329 }
8330 _res = NULL;
8331 done:
8332 D(p->level--);
8333 return _res;
8334}
8335
8336// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008337// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008338// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8339// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008340static stmt_ty
8341function_def_raw_rule(Parser *p)
8342{
8343 D(p->level++);
8344 if (p->error_indicator) {
8345 D(p->level--);
8346 return NULL;
8347 }
8348 stmt_ty _res = NULL;
8349 int _mark = p->mark;
8350 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8351 p->error_indicator = 1;
8352 D(p->level--);
8353 return NULL;
8354 }
8355 int _start_lineno = p->tokens[_mark]->lineno;
8356 UNUSED(_start_lineno); // Only used by EXTRA macro
8357 int _start_col_offset = p->tokens[_mark]->col_offset;
8358 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008359 if (p->call_invalid_rules) { // invalid_def_raw
8360 if (p->error_indicator) {
8361 D(p->level--);
8362 return NULL;
8363 }
8364 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8365 void *invalid_def_raw_var;
8366 if (
8367 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8368 )
8369 {
8370 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8371 _res = invalid_def_raw_var;
8372 goto done;
8373 }
8374 p->mark = _mark;
8375 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8377 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008378 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008379 if (p->error_indicator) {
8380 D(p->level--);
8381 return NULL;
8382 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008383 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 +01008384 Token * _keyword;
8385 Token * _literal;
8386 Token * _literal_1;
8387 Token * _literal_2;
8388 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008389 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008390 expr_ty n;
8391 void *params;
8392 void *tc;
8393 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008394 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008395 &&
8396 (n = _PyPegen_name_token(p)) // NAME
8397 &&
8398 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8399 &&
8400 (params = params_rule(p), 1) // params?
8401 &&
8402 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8403 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008404 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008405 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008406 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008407 &&
8408 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8409 &&
8410 (b = block_rule(p)) // block
8411 )
8412 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008413 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 +01008414 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8415 if (_token == NULL) {
8416 D(p->level--);
8417 return NULL;
8418 }
8419 int _end_lineno = _token->end_lineno;
8420 UNUSED(_end_lineno); // Only used by EXTRA macro
8421 int _end_col_offset = _token->end_col_offset;
8422 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008423 _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 +01008424 if (_res == NULL && PyErr_Occurred()) {
8425 p->error_indicator = 1;
8426 D(p->level--);
8427 return NULL;
8428 }
8429 goto done;
8430 }
8431 p->mark = _mark;
8432 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008434 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008435 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008436 if (p->error_indicator) {
8437 D(p->level--);
8438 return NULL;
8439 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008440 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 +01008441 Token * _keyword;
8442 Token * _literal;
8443 Token * _literal_1;
8444 Token * _literal_2;
8445 void *a;
8446 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008447 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008448 expr_ty n;
8449 void *params;
8450 void *tc;
8451 if (
8452 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8453 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008454 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008455 &&
8456 (n = _PyPegen_name_token(p)) // NAME
8457 &&
8458 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8459 &&
8460 (params = params_rule(p), 1) // params?
8461 &&
8462 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8463 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008464 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008465 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008466 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008467 &&
8468 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8469 &&
8470 (b = block_rule(p)) // block
8471 )
8472 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008473 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 +01008474 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8475 if (_token == NULL) {
8476 D(p->level--);
8477 return NULL;
8478 }
8479 int _end_lineno = _token->end_lineno;
8480 UNUSED(_end_lineno); // Only used by EXTRA macro
8481 int _end_col_offset = _token->end_col_offset;
8482 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008483 _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 +01008484 if (_res == NULL && PyErr_Occurred()) {
8485 p->error_indicator = 1;
8486 D(p->level--);
8487 return NULL;
8488 }
8489 goto done;
8490 }
8491 p->mark = _mark;
8492 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008494 }
8495 _res = NULL;
8496 done:
8497 D(p->level--);
8498 return _res;
8499}
8500
8501// func_type_comment:
8502// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8503// | invalid_double_type_comments
8504// | TYPE_COMMENT
8505static Token*
8506func_type_comment_rule(Parser *p)
8507{
8508 D(p->level++);
8509 if (p->error_indicator) {
8510 D(p->level--);
8511 return NULL;
8512 }
8513 Token* _res = NULL;
8514 int _mark = p->mark;
8515 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8516 if (p->error_indicator) {
8517 D(p->level--);
8518 return NULL;
8519 }
8520 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8521 Token * newline_var;
8522 Token * t;
8523 if (
8524 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8525 &&
8526 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8527 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008528 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008529 )
8530 {
8531 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8532 _res = t;
8533 if (_res == NULL && PyErr_Occurred()) {
8534 p->error_indicator = 1;
8535 D(p->level--);
8536 return NULL;
8537 }
8538 goto done;
8539 }
8540 p->mark = _mark;
8541 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8543 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008544 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008545 if (p->error_indicator) {
8546 D(p->level--);
8547 return NULL;
8548 }
8549 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8550 void *invalid_double_type_comments_var;
8551 if (
8552 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8553 )
8554 {
8555 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8556 _res = invalid_double_type_comments_var;
8557 goto done;
8558 }
8559 p->mark = _mark;
8560 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8562 }
8563 { // TYPE_COMMENT
8564 if (p->error_indicator) {
8565 D(p->level--);
8566 return NULL;
8567 }
8568 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8569 Token * type_comment_var;
8570 if (
8571 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8572 )
8573 {
8574 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8575 _res = type_comment_var;
8576 goto done;
8577 }
8578 p->mark = _mark;
8579 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8581 }
8582 _res = NULL;
8583 done:
8584 D(p->level--);
8585 return _res;
8586}
8587
8588// params: invalid_parameters | parameters
8589static arguments_ty
8590params_rule(Parser *p)
8591{
8592 D(p->level++);
8593 if (p->error_indicator) {
8594 D(p->level--);
8595 return NULL;
8596 }
8597 arguments_ty _res = NULL;
8598 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008599 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008600 if (p->error_indicator) {
8601 D(p->level--);
8602 return NULL;
8603 }
8604 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8605 void *invalid_parameters_var;
8606 if (
8607 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8608 )
8609 {
8610 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8611 _res = invalid_parameters_var;
8612 goto done;
8613 }
8614 p->mark = _mark;
8615 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8617 }
8618 { // parameters
8619 if (p->error_indicator) {
8620 D(p->level--);
8621 return NULL;
8622 }
8623 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8624 arguments_ty parameters_var;
8625 if (
8626 (parameters_var = parameters_rule(p)) // parameters
8627 )
8628 {
8629 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8630 _res = parameters_var;
8631 goto done;
8632 }
8633 p->mark = _mark;
8634 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8636 }
8637 _res = NULL;
8638 done:
8639 D(p->level--);
8640 return _res;
8641}
8642
8643// parameters:
8644// | slash_no_default param_no_default* param_with_default* star_etc?
8645// | slash_with_default param_with_default* star_etc?
8646// | param_no_default+ param_with_default* star_etc?
8647// | param_with_default+ star_etc?
8648// | star_etc
8649static arguments_ty
8650parameters_rule(Parser *p)
8651{
8652 D(p->level++);
8653 if (p->error_indicator) {
8654 D(p->level--);
8655 return NULL;
8656 }
8657 arguments_ty _res = NULL;
8658 int _mark = p->mark;
8659 { // slash_no_default param_no_default* param_with_default* star_etc?
8660 if (p->error_indicator) {
8661 D(p->level--);
8662 return NULL;
8663 }
8664 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 +01008665 asdl_arg_seq* a;
8666 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008667 asdl_seq * c;
8668 void *d;
8669 if (
8670 (a = slash_no_default_rule(p)) // slash_no_default
8671 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008672 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008673 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008674 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008675 &&
8676 (d = star_etc_rule(p), 1) // star_etc?
8677 )
8678 {
8679 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?"));
8680 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8681 if (_res == NULL && PyErr_Occurred()) {
8682 p->error_indicator = 1;
8683 D(p->level--);
8684 return NULL;
8685 }
8686 goto done;
8687 }
8688 p->mark = _mark;
8689 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8691 }
8692 { // slash_with_default param_with_default* star_etc?
8693 if (p->error_indicator) {
8694 D(p->level--);
8695 return NULL;
8696 }
8697 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8698 SlashWithDefault* a;
8699 asdl_seq * b;
8700 void *c;
8701 if (
8702 (a = slash_with_default_rule(p)) // slash_with_default
8703 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008704 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008705 &&
8706 (c = star_etc_rule(p), 1) // star_etc?
8707 )
8708 {
8709 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8710 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8711 if (_res == NULL && PyErr_Occurred()) {
8712 p->error_indicator = 1;
8713 D(p->level--);
8714 return NULL;
8715 }
8716 goto done;
8717 }
8718 p->mark = _mark;
8719 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8721 }
8722 { // param_no_default+ param_with_default* star_etc?
8723 if (p->error_indicator) {
8724 D(p->level--);
8725 return NULL;
8726 }
8727 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 +01008728 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008729 asdl_seq * b;
8730 void *c;
8731 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008732 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008733 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008734 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008735 &&
8736 (c = star_etc_rule(p), 1) // star_etc?
8737 )
8738 {
8739 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8740 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8741 if (_res == NULL && PyErr_Occurred()) {
8742 p->error_indicator = 1;
8743 D(p->level--);
8744 return NULL;
8745 }
8746 goto done;
8747 }
8748 p->mark = _mark;
8749 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8750 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8751 }
8752 { // param_with_default+ star_etc?
8753 if (p->error_indicator) {
8754 D(p->level--);
8755 return NULL;
8756 }
8757 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8758 asdl_seq * a;
8759 void *b;
8760 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008761 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008762 &&
8763 (b = star_etc_rule(p), 1) // star_etc?
8764 )
8765 {
8766 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8767 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8768 if (_res == NULL && PyErr_Occurred()) {
8769 p->error_indicator = 1;
8770 D(p->level--);
8771 return NULL;
8772 }
8773 goto done;
8774 }
8775 p->mark = _mark;
8776 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8778 }
8779 { // star_etc
8780 if (p->error_indicator) {
8781 D(p->level--);
8782 return NULL;
8783 }
8784 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8785 StarEtc* a;
8786 if (
8787 (a = star_etc_rule(p)) // star_etc
8788 )
8789 {
8790 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8791 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
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, "star_etc"));
8802 }
8803 _res = NULL;
8804 done:
8805 D(p->level--);
8806 return _res;
8807}
8808
8809// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008810static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008811slash_no_default_rule(Parser *p)
8812{
8813 D(p->level++);
8814 if (p->error_indicator) {
8815 D(p->level--);
8816 return NULL;
8817 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008818 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008819 int _mark = p->mark;
8820 { // param_no_default+ '/' ','
8821 if (p->error_indicator) {
8822 D(p->level--);
8823 return NULL;
8824 }
8825 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8826 Token * _literal;
8827 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008828 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008829 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008830 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008831 &&
8832 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8833 &&
8834 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8835 )
8836 {
8837 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8838 _res = a;
8839 if (_res == NULL && PyErr_Occurred()) {
8840 p->error_indicator = 1;
8841 D(p->level--);
8842 return NULL;
8843 }
8844 goto done;
8845 }
8846 p->mark = _mark;
8847 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8849 }
8850 { // param_no_default+ '/' &')'
8851 if (p->error_indicator) {
8852 D(p->level--);
8853 return NULL;
8854 }
8855 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8856 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008857 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008858 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008859 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008860 &&
8861 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8862 &&
8863 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8864 )
8865 {
8866 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8867 _res = a;
8868 if (_res == NULL && PyErr_Occurred()) {
8869 p->error_indicator = 1;
8870 D(p->level--);
8871 return NULL;
8872 }
8873 goto done;
8874 }
8875 p->mark = _mark;
8876 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8878 }
8879 _res = NULL;
8880 done:
8881 D(p->level--);
8882 return _res;
8883}
8884
8885// slash_with_default:
8886// | param_no_default* param_with_default+ '/' ','
8887// | param_no_default* param_with_default+ '/' &')'
8888static SlashWithDefault*
8889slash_with_default_rule(Parser *p)
8890{
8891 D(p->level++);
8892 if (p->error_indicator) {
8893 D(p->level--);
8894 return NULL;
8895 }
8896 SlashWithDefault* _res = NULL;
8897 int _mark = p->mark;
8898 { // param_no_default* param_with_default+ '/' ','
8899 if (p->error_indicator) {
8900 D(p->level--);
8901 return NULL;
8902 }
8903 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8904 Token * _literal;
8905 Token * _literal_1;
8906 asdl_seq * a;
8907 asdl_seq * b;
8908 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008909 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008910 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008911 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008912 &&
8913 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8914 &&
8915 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8916 )
8917 {
8918 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 +01008919 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008920 if (_res == NULL && PyErr_Occurred()) {
8921 p->error_indicator = 1;
8922 D(p->level--);
8923 return NULL;
8924 }
8925 goto done;
8926 }
8927 p->mark = _mark;
8928 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8930 }
8931 { // param_no_default* param_with_default+ '/' &')'
8932 if (p->error_indicator) {
8933 D(p->level--);
8934 return NULL;
8935 }
8936 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8937 Token * _literal;
8938 asdl_seq * a;
8939 asdl_seq * b;
8940 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008941 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008942 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008943 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008944 &&
8945 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8946 &&
8947 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8948 )
8949 {
8950 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 +01008951 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008952 if (_res == NULL && PyErr_Occurred()) {
8953 p->error_indicator = 1;
8954 D(p->level--);
8955 return NULL;
8956 }
8957 goto done;
8958 }
8959 p->mark = _mark;
8960 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8962 }
8963 _res = NULL;
8964 done:
8965 D(p->level--);
8966 return _res;
8967}
8968
8969// star_etc:
8970// | '*' param_no_default param_maybe_default* kwds?
8971// | '*' ',' param_maybe_default+ kwds?
8972// | kwds
8973// | invalid_star_etc
8974static StarEtc*
8975star_etc_rule(Parser *p)
8976{
8977 D(p->level++);
8978 if (p->error_indicator) {
8979 D(p->level--);
8980 return NULL;
8981 }
8982 StarEtc* _res = NULL;
8983 int _mark = p->mark;
8984 { // '*' param_no_default param_maybe_default* kwds?
8985 if (p->error_indicator) {
8986 D(p->level--);
8987 return NULL;
8988 }
8989 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8990 Token * _literal;
8991 arg_ty a;
8992 asdl_seq * b;
8993 void *c;
8994 if (
8995 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8996 &&
8997 (a = param_no_default_rule(p)) // param_no_default
8998 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008999 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009000 &&
9001 (c = kwds_rule(p), 1) // kwds?
9002 )
9003 {
9004 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9005 _res = _PyPegen_star_etc ( p , a , b , c );
9006 if (_res == NULL && PyErr_Occurred()) {
9007 p->error_indicator = 1;
9008 D(p->level--);
9009 return NULL;
9010 }
9011 goto done;
9012 }
9013 p->mark = _mark;
9014 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9016 }
9017 { // '*' ',' param_maybe_default+ kwds?
9018 if (p->error_indicator) {
9019 D(p->level--);
9020 return NULL;
9021 }
9022 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9023 Token * _literal;
9024 Token * _literal_1;
9025 asdl_seq * b;
9026 void *c;
9027 if (
9028 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9029 &&
9030 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9031 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009032 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009033 &&
9034 (c = kwds_rule(p), 1) // kwds?
9035 )
9036 {
9037 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9038 _res = _PyPegen_star_etc ( p , NULL , b , c );
9039 if (_res == NULL && PyErr_Occurred()) {
9040 p->error_indicator = 1;
9041 D(p->level--);
9042 return NULL;
9043 }
9044 goto done;
9045 }
9046 p->mark = _mark;
9047 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9049 }
9050 { // kwds
9051 if (p->error_indicator) {
9052 D(p->level--);
9053 return NULL;
9054 }
9055 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9056 arg_ty a;
9057 if (
9058 (a = kwds_rule(p)) // kwds
9059 )
9060 {
9061 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9062 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9063 if (_res == NULL && PyErr_Occurred()) {
9064 p->error_indicator = 1;
9065 D(p->level--);
9066 return NULL;
9067 }
9068 goto done;
9069 }
9070 p->mark = _mark;
9071 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9073 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009074 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009075 if (p->error_indicator) {
9076 D(p->level--);
9077 return NULL;
9078 }
9079 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9080 void *invalid_star_etc_var;
9081 if (
9082 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9083 )
9084 {
9085 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9086 _res = invalid_star_etc_var;
9087 goto done;
9088 }
9089 p->mark = _mark;
9090 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9092 }
9093 _res = NULL;
9094 done:
9095 D(p->level--);
9096 return _res;
9097}
9098
9099// kwds: '**' param_no_default
9100static arg_ty
9101kwds_rule(Parser *p)
9102{
9103 D(p->level++);
9104 if (p->error_indicator) {
9105 D(p->level--);
9106 return NULL;
9107 }
9108 arg_ty _res = NULL;
9109 int _mark = p->mark;
9110 { // '**' param_no_default
9111 if (p->error_indicator) {
9112 D(p->level--);
9113 return NULL;
9114 }
9115 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9116 Token * _literal;
9117 arg_ty a;
9118 if (
9119 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9120 &&
9121 (a = param_no_default_rule(p)) // param_no_default
9122 )
9123 {
9124 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9125 _res = a;
9126 if (_res == NULL && PyErr_Occurred()) {
9127 p->error_indicator = 1;
9128 D(p->level--);
9129 return NULL;
9130 }
9131 goto done;
9132 }
9133 p->mark = _mark;
9134 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9136 }
9137 _res = NULL;
9138 done:
9139 D(p->level--);
9140 return _res;
9141}
9142
9143// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9144static arg_ty
9145param_no_default_rule(Parser *p)
9146{
9147 D(p->level++);
9148 if (p->error_indicator) {
9149 D(p->level--);
9150 return NULL;
9151 }
9152 arg_ty _res = NULL;
9153 int _mark = p->mark;
9154 { // param ',' TYPE_COMMENT?
9155 if (p->error_indicator) {
9156 D(p->level--);
9157 return NULL;
9158 }
9159 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9160 Token * _literal;
9161 arg_ty a;
9162 void *tc;
9163 if (
9164 (a = param_rule(p)) // param
9165 &&
9166 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9167 &&
9168 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9169 )
9170 {
9171 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9172 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9173 if (_res == NULL && PyErr_Occurred()) {
9174 p->error_indicator = 1;
9175 D(p->level--);
9176 return NULL;
9177 }
9178 goto done;
9179 }
9180 p->mark = _mark;
9181 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9183 }
9184 { // param TYPE_COMMENT? &')'
9185 if (p->error_indicator) {
9186 D(p->level--);
9187 return NULL;
9188 }
9189 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9190 arg_ty a;
9191 void *tc;
9192 if (
9193 (a = param_rule(p)) // param
9194 &&
9195 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9196 &&
9197 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9198 )
9199 {
9200 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9201 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9202 if (_res == NULL && PyErr_Occurred()) {
9203 p->error_indicator = 1;
9204 D(p->level--);
9205 return NULL;
9206 }
9207 goto done;
9208 }
9209 p->mark = _mark;
9210 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9212 }
9213 _res = NULL;
9214 done:
9215 D(p->level--);
9216 return _res;
9217}
9218
9219// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9220static NameDefaultPair*
9221param_with_default_rule(Parser *p)
9222{
9223 D(p->level++);
9224 if (p->error_indicator) {
9225 D(p->level--);
9226 return NULL;
9227 }
9228 NameDefaultPair* _res = NULL;
9229 int _mark = p->mark;
9230 { // param default ',' TYPE_COMMENT?
9231 if (p->error_indicator) {
9232 D(p->level--);
9233 return NULL;
9234 }
9235 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9236 Token * _literal;
9237 arg_ty a;
9238 expr_ty c;
9239 void *tc;
9240 if (
9241 (a = param_rule(p)) // param
9242 &&
9243 (c = default_rule(p)) // default
9244 &&
9245 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9246 &&
9247 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9248 )
9249 {
9250 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9251 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9252 if (_res == NULL && PyErr_Occurred()) {
9253 p->error_indicator = 1;
9254 D(p->level--);
9255 return NULL;
9256 }
9257 goto done;
9258 }
9259 p->mark = _mark;
9260 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9262 }
9263 { // param default TYPE_COMMENT? &')'
9264 if (p->error_indicator) {
9265 D(p->level--);
9266 return NULL;
9267 }
9268 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9269 arg_ty a;
9270 expr_ty c;
9271 void *tc;
9272 if (
9273 (a = param_rule(p)) // param
9274 &&
9275 (c = default_rule(p)) // default
9276 &&
9277 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9278 &&
9279 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9280 )
9281 {
9282 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9283 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9284 if (_res == NULL && PyErr_Occurred()) {
9285 p->error_indicator = 1;
9286 D(p->level--);
9287 return NULL;
9288 }
9289 goto done;
9290 }
9291 p->mark = _mark;
9292 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9294 }
9295 _res = NULL;
9296 done:
9297 D(p->level--);
9298 return _res;
9299}
9300
9301// param_maybe_default:
9302// | param default? ',' TYPE_COMMENT?
9303// | param default? TYPE_COMMENT? &')'
9304static NameDefaultPair*
9305param_maybe_default_rule(Parser *p)
9306{
9307 D(p->level++);
9308 if (p->error_indicator) {
9309 D(p->level--);
9310 return NULL;
9311 }
9312 NameDefaultPair* _res = NULL;
9313 int _mark = p->mark;
9314 { // param default? ',' TYPE_COMMENT?
9315 if (p->error_indicator) {
9316 D(p->level--);
9317 return NULL;
9318 }
9319 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9320 Token * _literal;
9321 arg_ty a;
9322 void *c;
9323 void *tc;
9324 if (
9325 (a = param_rule(p)) // param
9326 &&
9327 (c = default_rule(p), 1) // default?
9328 &&
9329 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9330 &&
9331 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9332 )
9333 {
9334 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9335 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9336 if (_res == NULL && PyErr_Occurred()) {
9337 p->error_indicator = 1;
9338 D(p->level--);
9339 return NULL;
9340 }
9341 goto done;
9342 }
9343 p->mark = _mark;
9344 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9346 }
9347 { // param default? TYPE_COMMENT? &')'
9348 if (p->error_indicator) {
9349 D(p->level--);
9350 return NULL;
9351 }
9352 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9353 arg_ty a;
9354 void *c;
9355 void *tc;
9356 if (
9357 (a = param_rule(p)) // param
9358 &&
9359 (c = default_rule(p), 1) // default?
9360 &&
9361 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9362 &&
9363 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9364 )
9365 {
9366 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9367 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9368 if (_res == NULL && PyErr_Occurred()) {
9369 p->error_indicator = 1;
9370 D(p->level--);
9371 return NULL;
9372 }
9373 goto done;
9374 }
9375 p->mark = _mark;
9376 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9378 }
9379 _res = NULL;
9380 done:
9381 D(p->level--);
9382 return _res;
9383}
9384
9385// param: NAME annotation?
9386static arg_ty
9387param_rule(Parser *p)
9388{
9389 D(p->level++);
9390 if (p->error_indicator) {
9391 D(p->level--);
9392 return NULL;
9393 }
9394 arg_ty _res = NULL;
9395 int _mark = p->mark;
9396 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9397 p->error_indicator = 1;
9398 D(p->level--);
9399 return NULL;
9400 }
9401 int _start_lineno = p->tokens[_mark]->lineno;
9402 UNUSED(_start_lineno); // Only used by EXTRA macro
9403 int _start_col_offset = p->tokens[_mark]->col_offset;
9404 UNUSED(_start_col_offset); // Only used by EXTRA macro
9405 { // NAME annotation?
9406 if (p->error_indicator) {
9407 D(p->level--);
9408 return NULL;
9409 }
9410 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9411 expr_ty a;
9412 void *b;
9413 if (
9414 (a = _PyPegen_name_token(p)) // NAME
9415 &&
9416 (b = annotation_rule(p), 1) // annotation?
9417 )
9418 {
9419 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9420 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9421 if (_token == NULL) {
9422 D(p->level--);
9423 return NULL;
9424 }
9425 int _end_lineno = _token->end_lineno;
9426 UNUSED(_end_lineno); // Only used by EXTRA macro
9427 int _end_col_offset = _token->end_col_offset;
9428 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009429 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009430 if (_res == NULL && PyErr_Occurred()) {
9431 p->error_indicator = 1;
9432 D(p->level--);
9433 return NULL;
9434 }
9435 goto done;
9436 }
9437 p->mark = _mark;
9438 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9440 }
9441 _res = NULL;
9442 done:
9443 D(p->level--);
9444 return _res;
9445}
9446
9447// annotation: ':' expression
9448static expr_ty
9449annotation_rule(Parser *p)
9450{
9451 D(p->level++);
9452 if (p->error_indicator) {
9453 D(p->level--);
9454 return NULL;
9455 }
9456 expr_ty _res = NULL;
9457 int _mark = p->mark;
9458 { // ':' expression
9459 if (p->error_indicator) {
9460 D(p->level--);
9461 return NULL;
9462 }
9463 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9464 Token * _literal;
9465 expr_ty a;
9466 if (
9467 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9468 &&
9469 (a = expression_rule(p)) // expression
9470 )
9471 {
9472 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9473 _res = a;
9474 if (_res == NULL && PyErr_Occurred()) {
9475 p->error_indicator = 1;
9476 D(p->level--);
9477 return NULL;
9478 }
9479 goto done;
9480 }
9481 p->mark = _mark;
9482 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9484 }
9485 _res = NULL;
9486 done:
9487 D(p->level--);
9488 return _res;
9489}
9490
9491// default: '=' expression
9492static expr_ty
9493default_rule(Parser *p)
9494{
9495 D(p->level++);
9496 if (p->error_indicator) {
9497 D(p->level--);
9498 return NULL;
9499 }
9500 expr_ty _res = NULL;
9501 int _mark = p->mark;
9502 { // '=' expression
9503 if (p->error_indicator) {
9504 D(p->level--);
9505 return NULL;
9506 }
9507 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9508 Token * _literal;
9509 expr_ty a;
9510 if (
9511 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9512 &&
9513 (a = expression_rule(p)) // expression
9514 )
9515 {
9516 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9517 _res = a;
9518 if (_res == NULL && PyErr_Occurred()) {
9519 p->error_indicator = 1;
9520 D(p->level--);
9521 return NULL;
9522 }
9523 goto done;
9524 }
9525 p->mark = _mark;
9526 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9528 }
9529 _res = NULL;
9530 done:
9531 D(p->level--);
9532 return _res;
9533}
9534
9535// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009536static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009537decorators_rule(Parser *p)
9538{
9539 D(p->level++);
9540 if (p->error_indicator) {
9541 D(p->level--);
9542 return NULL;
9543 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009544 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009545 int _mark = p->mark;
9546 { // (('@' named_expression NEWLINE))+
9547 if (p->error_indicator) {
9548 D(p->level--);
9549 return NULL;
9550 }
9551 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009552 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009553 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009554 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009555 )
9556 {
9557 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9558 _res = a;
9559 if (_res == NULL && PyErr_Occurred()) {
9560 p->error_indicator = 1;
9561 D(p->level--);
9562 return NULL;
9563 }
9564 goto done;
9565 }
9566 p->mark = _mark;
9567 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9569 }
9570 _res = NULL;
9571 done:
9572 D(p->level--);
9573 return _res;
9574}
9575
9576// class_def: decorators class_def_raw | class_def_raw
9577static stmt_ty
9578class_def_rule(Parser *p)
9579{
9580 D(p->level++);
9581 if (p->error_indicator) {
9582 D(p->level--);
9583 return NULL;
9584 }
9585 stmt_ty _res = NULL;
9586 int _mark = p->mark;
9587 { // decorators class_def_raw
9588 if (p->error_indicator) {
9589 D(p->level--);
9590 return NULL;
9591 }
9592 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 +01009593 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009594 stmt_ty b;
9595 if (
9596 (a = decorators_rule(p)) // decorators
9597 &&
9598 (b = class_def_raw_rule(p)) // class_def_raw
9599 )
9600 {
9601 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9602 _res = _PyPegen_class_def_decorators ( p , a , b );
9603 if (_res == NULL && PyErr_Occurred()) {
9604 p->error_indicator = 1;
9605 D(p->level--);
9606 return NULL;
9607 }
9608 goto done;
9609 }
9610 p->mark = _mark;
9611 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9613 }
9614 { // class_def_raw
9615 if (p->error_indicator) {
9616 D(p->level--);
9617 return NULL;
9618 }
9619 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9620 stmt_ty class_def_raw_var;
9621 if (
9622 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9623 )
9624 {
9625 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9626 _res = class_def_raw_var;
9627 goto done;
9628 }
9629 p->mark = _mark;
9630 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9632 }
9633 _res = NULL;
9634 done:
9635 D(p->level--);
9636 return _res;
9637}
9638
Pablo Galindo56c95df2021-04-21 15:28:21 +01009639// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009640static stmt_ty
9641class_def_raw_rule(Parser *p)
9642{
9643 D(p->level++);
9644 if (p->error_indicator) {
9645 D(p->level--);
9646 return NULL;
9647 }
9648 stmt_ty _res = NULL;
9649 int _mark = p->mark;
9650 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9651 p->error_indicator = 1;
9652 D(p->level--);
9653 return NULL;
9654 }
9655 int _start_lineno = p->tokens[_mark]->lineno;
9656 UNUSED(_start_lineno); // Only used by EXTRA macro
9657 int _start_col_offset = p->tokens[_mark]->col_offset;
9658 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009659 if (p->call_invalid_rules) { // invalid_class_def_raw
9660 if (p->error_indicator) {
9661 D(p->level--);
9662 return NULL;
9663 }
9664 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9665 void *invalid_class_def_raw_var;
9666 if (
9667 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9668 )
9669 {
9670 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9671 _res = invalid_class_def_raw_var;
9672 goto done;
9673 }
9674 p->mark = _mark;
9675 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9677 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009678 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009679 if (p->error_indicator) {
9680 D(p->level--);
9681 return NULL;
9682 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009683 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 +01009684 Token * _keyword;
9685 Token * _literal;
9686 expr_ty a;
9687 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009688 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009689 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009690 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009691 &&
9692 (a = _PyPegen_name_token(p)) // NAME
9693 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009694 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009695 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009696 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009697 &&
9698 (c = block_rule(p)) // block
9699 )
9700 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009701 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 +01009702 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9703 if (_token == NULL) {
9704 D(p->level--);
9705 return NULL;
9706 }
9707 int _end_lineno = _token->end_lineno;
9708 UNUSED(_end_lineno); // Only used by EXTRA macro
9709 int _end_col_offset = _token->end_col_offset;
9710 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009711 _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 +01009712 if (_res == NULL && PyErr_Occurred()) {
9713 p->error_indicator = 1;
9714 D(p->level--);
9715 return NULL;
9716 }
9717 goto done;
9718 }
9719 p->mark = _mark;
9720 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009722 }
9723 _res = NULL;
9724 done:
9725 D(p->level--);
9726 return _res;
9727}
9728
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009729// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009730static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009731block_rule(Parser *p)
9732{
9733 D(p->level++);
9734 if (p->error_indicator) {
9735 D(p->level--);
9736 return NULL;
9737 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009738 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009739 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9740 D(p->level--);
9741 return _res;
9742 }
9743 int _mark = p->mark;
9744 { // NEWLINE INDENT statements DEDENT
9745 if (p->error_indicator) {
9746 D(p->level--);
9747 return NULL;
9748 }
9749 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 +01009750 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009751 Token * dedent_var;
9752 Token * indent_var;
9753 Token * newline_var;
9754 if (
9755 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9756 &&
9757 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9758 &&
9759 (a = statements_rule(p)) // statements
9760 &&
9761 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9762 )
9763 {
9764 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9765 _res = a;
9766 if (_res == NULL && PyErr_Occurred()) {
9767 p->error_indicator = 1;
9768 D(p->level--);
9769 return NULL;
9770 }
9771 goto done;
9772 }
9773 p->mark = _mark;
9774 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9776 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009777 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009778 if (p->error_indicator) {
9779 D(p->level--);
9780 return NULL;
9781 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009782 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9783 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009784 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009785 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009786 )
9787 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009788 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9789 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009790 goto done;
9791 }
9792 p->mark = _mark;
9793 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009795 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009796 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009797 if (p->error_indicator) {
9798 D(p->level--);
9799 return NULL;
9800 }
9801 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9802 void *invalid_block_var;
9803 if (
9804 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9805 )
9806 {
9807 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9808 _res = invalid_block_var;
9809 goto done;
9810 }
9811 p->mark = _mark;
9812 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9814 }
9815 _res = NULL;
9816 done:
9817 _PyPegen_insert_memo(p, _mark, block_type, _res);
9818 D(p->level--);
9819 return _res;
9820}
9821
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009822// star_expressions:
9823// | star_expression ((',' star_expression))+ ','?
9824// | star_expression ','
9825// | star_expression
9826static expr_ty
9827star_expressions_rule(Parser *p)
9828{
9829 D(p->level++);
9830 if (p->error_indicator) {
9831 D(p->level--);
9832 return NULL;
9833 }
9834 expr_ty _res = NULL;
9835 int _mark = p->mark;
9836 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9837 p->error_indicator = 1;
9838 D(p->level--);
9839 return NULL;
9840 }
9841 int _start_lineno = p->tokens[_mark]->lineno;
9842 UNUSED(_start_lineno); // Only used by EXTRA macro
9843 int _start_col_offset = p->tokens[_mark]->col_offset;
9844 UNUSED(_start_col_offset); // Only used by EXTRA macro
9845 { // star_expression ((',' star_expression))+ ','?
9846 if (p->error_indicator) {
9847 D(p->level--);
9848 return NULL;
9849 }
9850 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9851 void *_opt_var;
9852 UNUSED(_opt_var); // Silence compiler warnings
9853 expr_ty a;
9854 asdl_seq * b;
9855 if (
9856 (a = star_expression_rule(p)) // star_expression
9857 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009858 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009859 &&
9860 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9861 )
9862 {
9863 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9864 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9865 if (_token == NULL) {
9866 D(p->level--);
9867 return NULL;
9868 }
9869 int _end_lineno = _token->end_lineno;
9870 UNUSED(_end_lineno); // Only used by EXTRA macro
9871 int _end_col_offset = _token->end_col_offset;
9872 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009873 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009874 if (_res == NULL && PyErr_Occurred()) {
9875 p->error_indicator = 1;
9876 D(p->level--);
9877 return NULL;
9878 }
9879 goto done;
9880 }
9881 p->mark = _mark;
9882 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9884 }
9885 { // star_expression ','
9886 if (p->error_indicator) {
9887 D(p->level--);
9888 return NULL;
9889 }
9890 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9891 Token * _literal;
9892 expr_ty a;
9893 if (
9894 (a = star_expression_rule(p)) // star_expression
9895 &&
9896 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9897 )
9898 {
9899 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9900 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9901 if (_token == NULL) {
9902 D(p->level--);
9903 return NULL;
9904 }
9905 int _end_lineno = _token->end_lineno;
9906 UNUSED(_end_lineno); // Only used by EXTRA macro
9907 int _end_col_offset = _token->end_col_offset;
9908 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009909 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009910 if (_res == NULL && PyErr_Occurred()) {
9911 p->error_indicator = 1;
9912 D(p->level--);
9913 return NULL;
9914 }
9915 goto done;
9916 }
9917 p->mark = _mark;
9918 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9920 }
9921 { // star_expression
9922 if (p->error_indicator) {
9923 D(p->level--);
9924 return NULL;
9925 }
9926 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9927 expr_ty star_expression_var;
9928 if (
9929 (star_expression_var = star_expression_rule(p)) // star_expression
9930 )
9931 {
9932 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9933 _res = star_expression_var;
9934 goto done;
9935 }
9936 p->mark = _mark;
9937 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9939 }
9940 _res = NULL;
9941 done:
9942 D(p->level--);
9943 return _res;
9944}
9945
9946// star_expression: '*' bitwise_or | expression
9947static expr_ty
9948star_expression_rule(Parser *p)
9949{
9950 D(p->level++);
9951 if (p->error_indicator) {
9952 D(p->level--);
9953 return NULL;
9954 }
9955 expr_ty _res = NULL;
9956 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9957 D(p->level--);
9958 return _res;
9959 }
9960 int _mark = p->mark;
9961 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9962 p->error_indicator = 1;
9963 D(p->level--);
9964 return NULL;
9965 }
9966 int _start_lineno = p->tokens[_mark]->lineno;
9967 UNUSED(_start_lineno); // Only used by EXTRA macro
9968 int _start_col_offset = p->tokens[_mark]->col_offset;
9969 UNUSED(_start_col_offset); // Only used by EXTRA macro
9970 { // '*' bitwise_or
9971 if (p->error_indicator) {
9972 D(p->level--);
9973 return NULL;
9974 }
9975 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9976 Token * _literal;
9977 expr_ty a;
9978 if (
9979 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9980 &&
9981 (a = bitwise_or_rule(p)) // bitwise_or
9982 )
9983 {
9984 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9985 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9986 if (_token == NULL) {
9987 D(p->level--);
9988 return NULL;
9989 }
9990 int _end_lineno = _token->end_lineno;
9991 UNUSED(_end_lineno); // Only used by EXTRA macro
9992 int _end_col_offset = _token->end_col_offset;
9993 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009994 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009995 if (_res == NULL && PyErr_Occurred()) {
9996 p->error_indicator = 1;
9997 D(p->level--);
9998 return NULL;
9999 }
10000 goto done;
10001 }
10002 p->mark = _mark;
10003 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10005 }
10006 { // expression
10007 if (p->error_indicator) {
10008 D(p->level--);
10009 return NULL;
10010 }
10011 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10012 expr_ty expression_var;
10013 if (
10014 (expression_var = expression_rule(p)) // expression
10015 )
10016 {
10017 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10018 _res = expression_var;
10019 goto done;
10020 }
10021 p->mark = _mark;
10022 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10024 }
10025 _res = NULL;
10026 done:
10027 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10028 D(p->level--);
10029 return _res;
10030}
10031
10032// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010033static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010034star_named_expressions_rule(Parser *p)
10035{
10036 D(p->level++);
10037 if (p->error_indicator) {
10038 D(p->level--);
10039 return NULL;
10040 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010041 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010042 int _mark = p->mark;
10043 { // ','.star_named_expression+ ','?
10044 if (p->error_indicator) {
10045 D(p->level--);
10046 return NULL;
10047 }
10048 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10049 void *_opt_var;
10050 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010051 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010052 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010053 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010054 &&
10055 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10056 )
10057 {
10058 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10059 _res = a;
10060 if (_res == NULL && PyErr_Occurred()) {
10061 p->error_indicator = 1;
10062 D(p->level--);
10063 return NULL;
10064 }
10065 goto done;
10066 }
10067 p->mark = _mark;
10068 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10070 }
10071 _res = NULL;
10072 done:
10073 D(p->level--);
10074 return _res;
10075}
10076
10077// star_named_expression: '*' bitwise_or | named_expression
10078static expr_ty
10079star_named_expression_rule(Parser *p)
10080{
10081 D(p->level++);
10082 if (p->error_indicator) {
10083 D(p->level--);
10084 return NULL;
10085 }
10086 expr_ty _res = NULL;
10087 int _mark = p->mark;
10088 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10089 p->error_indicator = 1;
10090 D(p->level--);
10091 return NULL;
10092 }
10093 int _start_lineno = p->tokens[_mark]->lineno;
10094 UNUSED(_start_lineno); // Only used by EXTRA macro
10095 int _start_col_offset = p->tokens[_mark]->col_offset;
10096 UNUSED(_start_col_offset); // Only used by EXTRA macro
10097 { // '*' bitwise_or
10098 if (p->error_indicator) {
10099 D(p->level--);
10100 return NULL;
10101 }
10102 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10103 Token * _literal;
10104 expr_ty a;
10105 if (
10106 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10107 &&
10108 (a = bitwise_or_rule(p)) // bitwise_or
10109 )
10110 {
10111 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10112 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10113 if (_token == NULL) {
10114 D(p->level--);
10115 return NULL;
10116 }
10117 int _end_lineno = _token->end_lineno;
10118 UNUSED(_end_lineno); // Only used by EXTRA macro
10119 int _end_col_offset = _token->end_col_offset;
10120 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010121 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010122 if (_res == NULL && PyErr_Occurred()) {
10123 p->error_indicator = 1;
10124 D(p->level--);
10125 return NULL;
10126 }
10127 goto done;
10128 }
10129 p->mark = _mark;
10130 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10132 }
10133 { // named_expression
10134 if (p->error_indicator) {
10135 D(p->level--);
10136 return NULL;
10137 }
10138 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10139 expr_ty named_expression_var;
10140 if (
10141 (named_expression_var = named_expression_rule(p)) // named_expression
10142 )
10143 {
10144 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10145 _res = named_expression_var;
10146 goto done;
10147 }
10148 p->mark = _mark;
10149 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10151 }
10152 _res = NULL;
10153 done:
10154 D(p->level--);
10155 return _res;
10156}
10157
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010158// named_expression: NAME ':=' ~ expression | invalid_named_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010159static expr_ty
10160named_expression_rule(Parser *p)
10161{
10162 D(p->level++);
10163 if (p->error_indicator) {
10164 D(p->level--);
10165 return NULL;
10166 }
10167 expr_ty _res = NULL;
10168 int _mark = p->mark;
10169 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10170 p->error_indicator = 1;
10171 D(p->level--);
10172 return NULL;
10173 }
10174 int _start_lineno = p->tokens[_mark]->lineno;
10175 UNUSED(_start_lineno); // Only used by EXTRA macro
10176 int _start_col_offset = p->tokens[_mark]->col_offset;
10177 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010178 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010179 if (p->error_indicator) {
10180 D(p->level--);
10181 return NULL;
10182 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010183 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
10184 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010185 Token * _literal;
10186 expr_ty a;
10187 expr_ty b;
10188 if (
10189 (a = _PyPegen_name_token(p)) // NAME
10190 &&
10191 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10192 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010193 (_cut_var = 1)
10194 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010195 (b = expression_rule(p)) // expression
10196 )
10197 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010198 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010199 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10200 if (_token == NULL) {
10201 D(p->level--);
10202 return NULL;
10203 }
10204 int _end_lineno = _token->end_lineno;
10205 UNUSED(_end_lineno); // Only used by EXTRA macro
10206 int _end_col_offset = _token->end_col_offset;
10207 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010208 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010209 if (_res == NULL && PyErr_Occurred()) {
10210 p->error_indicator = 1;
10211 D(p->level--);
10212 return NULL;
10213 }
10214 goto done;
10215 }
10216 p->mark = _mark;
10217 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10219 if (_cut_var) {
10220 D(p->level--);
10221 return NULL;
10222 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010223 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010224 if (p->call_invalid_rules) { // invalid_named_expression
10225 if (p->error_indicator) {
10226 D(p->level--);
10227 return NULL;
10228 }
10229 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10230 void *invalid_named_expression_var;
10231 if (
10232 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10233 )
10234 {
10235 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10236 _res = invalid_named_expression_var;
10237 goto done;
10238 }
10239 p->mark = _mark;
10240 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10242 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010243 { // expression !':='
10244 if (p->error_indicator) {
10245 D(p->level--);
10246 return NULL;
10247 }
10248 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10249 expr_ty expression_var;
10250 if (
10251 (expression_var = expression_rule(p)) // expression
10252 &&
10253 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10254 )
10255 {
10256 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10257 _res = expression_var;
10258 goto done;
10259 }
10260 p->mark = _mark;
10261 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10263 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010264 _res = NULL;
10265 done:
10266 D(p->level--);
10267 return _res;
10268}
10269
Pablo Galindod9151cb2021-04-13 02:32:33 +010010270// direct_named_expression: NAME ':=' ~ expression | expression !':='
10271static expr_ty
10272direct_named_expression_rule(Parser *p)
10273{
10274 D(p->level++);
10275 if (p->error_indicator) {
10276 D(p->level--);
10277 return NULL;
10278 }
10279 expr_ty _res = NULL;
10280 int _mark = p->mark;
10281 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10282 p->error_indicator = 1;
10283 D(p->level--);
10284 return NULL;
10285 }
10286 int _start_lineno = p->tokens[_mark]->lineno;
10287 UNUSED(_start_lineno); // Only used by EXTRA macro
10288 int _start_col_offset = p->tokens[_mark]->col_offset;
10289 UNUSED(_start_col_offset); // Only used by EXTRA macro
10290 { // NAME ':=' ~ expression
10291 if (p->error_indicator) {
10292 D(p->level--);
10293 return NULL;
10294 }
10295 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
10296 int _cut_var = 0;
10297 Token * _literal;
10298 expr_ty a;
10299 expr_ty b;
10300 if (
10301 (a = _PyPegen_name_token(p)) // NAME
10302 &&
10303 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10304 &&
10305 (_cut_var = 1)
10306 &&
10307 (b = expression_rule(p)) // expression
10308 )
10309 {
10310 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
10311 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10312 if (_token == NULL) {
10313 D(p->level--);
10314 return NULL;
10315 }
10316 int _end_lineno = _token->end_lineno;
10317 UNUSED(_end_lineno); // Only used by EXTRA macro
10318 int _end_col_offset = _token->end_col_offset;
10319 UNUSED(_end_col_offset); // Only used by EXTRA macro
10320 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
10321 if (_res == NULL && PyErr_Occurred()) {
10322 p->error_indicator = 1;
10323 D(p->level--);
10324 return NULL;
10325 }
10326 goto done;
10327 }
10328 p->mark = _mark;
10329 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10331 if (_cut_var) {
10332 D(p->level--);
10333 return NULL;
10334 }
10335 }
10336 { // expression !':='
10337 if (p->error_indicator) {
10338 D(p->level--);
10339 return NULL;
10340 }
10341 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10342 expr_ty expression_var;
10343 if (
10344 (expression_var = expression_rule(p)) // expression
10345 &&
10346 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10347 )
10348 {
10349 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10350 _res = expression_var;
10351 goto done;
10352 }
10353 p->mark = _mark;
10354 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10356 }
10357 _res = NULL;
10358 done:
10359 D(p->level--);
10360 return _res;
10361}
10362
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010363// annotated_rhs: yield_expr | star_expressions
10364static expr_ty
10365annotated_rhs_rule(Parser *p)
10366{
10367 D(p->level++);
10368 if (p->error_indicator) {
10369 D(p->level--);
10370 return NULL;
10371 }
10372 expr_ty _res = NULL;
10373 int _mark = p->mark;
10374 { // yield_expr
10375 if (p->error_indicator) {
10376 D(p->level--);
10377 return NULL;
10378 }
10379 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10380 expr_ty yield_expr_var;
10381 if (
10382 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10383 )
10384 {
10385 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10386 _res = yield_expr_var;
10387 goto done;
10388 }
10389 p->mark = _mark;
10390 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10392 }
10393 { // star_expressions
10394 if (p->error_indicator) {
10395 D(p->level--);
10396 return NULL;
10397 }
10398 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10399 expr_ty star_expressions_var;
10400 if (
10401 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10402 )
10403 {
10404 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10405 _res = star_expressions_var;
10406 goto done;
10407 }
10408 p->mark = _mark;
10409 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10411 }
10412 _res = NULL;
10413 done:
10414 D(p->level--);
10415 return _res;
10416}
10417
10418// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10419static expr_ty
10420expressions_rule(Parser *p)
10421{
10422 D(p->level++);
10423 if (p->error_indicator) {
10424 D(p->level--);
10425 return NULL;
10426 }
10427 expr_ty _res = NULL;
10428 int _mark = p->mark;
10429 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10430 p->error_indicator = 1;
10431 D(p->level--);
10432 return NULL;
10433 }
10434 int _start_lineno = p->tokens[_mark]->lineno;
10435 UNUSED(_start_lineno); // Only used by EXTRA macro
10436 int _start_col_offset = p->tokens[_mark]->col_offset;
10437 UNUSED(_start_col_offset); // Only used by EXTRA macro
10438 { // expression ((',' expression))+ ','?
10439 if (p->error_indicator) {
10440 D(p->level--);
10441 return NULL;
10442 }
10443 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10444 void *_opt_var;
10445 UNUSED(_opt_var); // Silence compiler warnings
10446 expr_ty a;
10447 asdl_seq * b;
10448 if (
10449 (a = expression_rule(p)) // expression
10450 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010451 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010452 &&
10453 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10454 )
10455 {
10456 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10457 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10458 if (_token == NULL) {
10459 D(p->level--);
10460 return NULL;
10461 }
10462 int _end_lineno = _token->end_lineno;
10463 UNUSED(_end_lineno); // Only used by EXTRA macro
10464 int _end_col_offset = _token->end_col_offset;
10465 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010466 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010467 if (_res == NULL && PyErr_Occurred()) {
10468 p->error_indicator = 1;
10469 D(p->level--);
10470 return NULL;
10471 }
10472 goto done;
10473 }
10474 p->mark = _mark;
10475 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10477 }
10478 { // expression ','
10479 if (p->error_indicator) {
10480 D(p->level--);
10481 return NULL;
10482 }
10483 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10484 Token * _literal;
10485 expr_ty a;
10486 if (
10487 (a = expression_rule(p)) // expression
10488 &&
10489 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10490 )
10491 {
10492 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10493 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10494 if (_token == NULL) {
10495 D(p->level--);
10496 return NULL;
10497 }
10498 int _end_lineno = _token->end_lineno;
10499 UNUSED(_end_lineno); // Only used by EXTRA macro
10500 int _end_col_offset = _token->end_col_offset;
10501 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010502 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010503 if (_res == NULL && PyErr_Occurred()) {
10504 p->error_indicator = 1;
10505 D(p->level--);
10506 return NULL;
10507 }
10508 goto done;
10509 }
10510 p->mark = _mark;
10511 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10513 }
10514 { // expression
10515 if (p->error_indicator) {
10516 D(p->level--);
10517 return NULL;
10518 }
10519 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10520 expr_ty expression_var;
10521 if (
10522 (expression_var = expression_rule(p)) // expression
10523 )
10524 {
10525 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10526 _res = expression_var;
10527 goto done;
10528 }
10529 p->mark = _mark;
10530 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10532 }
10533 _res = NULL;
10534 done:
10535 D(p->level--);
10536 return _res;
10537}
10538
Pablo Galindob2802482021-04-15 21:38:45 +010010539// expression:
10540// | invalid_expression
10541// | disjunction 'if' disjunction 'else' expression
10542// | disjunction
10543// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010544static expr_ty
10545expression_rule(Parser *p)
10546{
10547 D(p->level++);
10548 if (p->error_indicator) {
10549 D(p->level--);
10550 return NULL;
10551 }
10552 expr_ty _res = NULL;
10553 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10554 D(p->level--);
10555 return _res;
10556 }
10557 int _mark = p->mark;
10558 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10559 p->error_indicator = 1;
10560 D(p->level--);
10561 return NULL;
10562 }
10563 int _start_lineno = p->tokens[_mark]->lineno;
10564 UNUSED(_start_lineno); // Only used by EXTRA macro
10565 int _start_col_offset = p->tokens[_mark]->col_offset;
10566 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010567 if (p->call_invalid_rules) { // invalid_expression
10568 if (p->error_indicator) {
10569 D(p->level--);
10570 return NULL;
10571 }
10572 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10573 void *invalid_expression_var;
10574 if (
10575 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10576 )
10577 {
10578 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10579 _res = invalid_expression_var;
10580 goto done;
10581 }
10582 p->mark = _mark;
10583 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10585 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010586 { // disjunction 'if' disjunction 'else' expression
10587 if (p->error_indicator) {
10588 D(p->level--);
10589 return NULL;
10590 }
10591 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10592 Token * _keyword;
10593 Token * _keyword_1;
10594 expr_ty a;
10595 expr_ty b;
10596 expr_ty c;
10597 if (
10598 (a = disjunction_rule(p)) // disjunction
10599 &&
10600 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10601 &&
10602 (b = disjunction_rule(p)) // disjunction
10603 &&
10604 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10605 &&
10606 (c = expression_rule(p)) // expression
10607 )
10608 {
10609 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10610 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10611 if (_token == NULL) {
10612 D(p->level--);
10613 return NULL;
10614 }
10615 int _end_lineno = _token->end_lineno;
10616 UNUSED(_end_lineno); // Only used by EXTRA macro
10617 int _end_col_offset = _token->end_col_offset;
10618 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010619 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010620 if (_res == NULL && PyErr_Occurred()) {
10621 p->error_indicator = 1;
10622 D(p->level--);
10623 return NULL;
10624 }
10625 goto done;
10626 }
10627 p->mark = _mark;
10628 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10630 }
10631 { // disjunction
10632 if (p->error_indicator) {
10633 D(p->level--);
10634 return NULL;
10635 }
10636 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10637 expr_ty disjunction_var;
10638 if (
10639 (disjunction_var = disjunction_rule(p)) // disjunction
10640 )
10641 {
10642 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10643 _res = disjunction_var;
10644 goto done;
10645 }
10646 p->mark = _mark;
10647 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10649 }
10650 { // lambdef
10651 if (p->error_indicator) {
10652 D(p->level--);
10653 return NULL;
10654 }
10655 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10656 expr_ty lambdef_var;
10657 if (
10658 (lambdef_var = lambdef_rule(p)) // lambdef
10659 )
10660 {
10661 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10662 _res = lambdef_var;
10663 goto done;
10664 }
10665 p->mark = _mark;
10666 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10668 }
10669 _res = NULL;
10670 done:
10671 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10672 D(p->level--);
10673 return _res;
10674}
10675
10676// lambdef: 'lambda' lambda_params? ':' expression
10677static expr_ty
10678lambdef_rule(Parser *p)
10679{
10680 D(p->level++);
10681 if (p->error_indicator) {
10682 D(p->level--);
10683 return NULL;
10684 }
10685 expr_ty _res = NULL;
10686 int _mark = p->mark;
10687 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10688 p->error_indicator = 1;
10689 D(p->level--);
10690 return NULL;
10691 }
10692 int _start_lineno = p->tokens[_mark]->lineno;
10693 UNUSED(_start_lineno); // Only used by EXTRA macro
10694 int _start_col_offset = p->tokens[_mark]->col_offset;
10695 UNUSED(_start_col_offset); // Only used by EXTRA macro
10696 { // 'lambda' lambda_params? ':' expression
10697 if (p->error_indicator) {
10698 D(p->level--);
10699 return NULL;
10700 }
10701 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10702 Token * _keyword;
10703 Token * _literal;
10704 void *a;
10705 expr_ty b;
10706 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010707 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010708 &&
10709 (a = lambda_params_rule(p), 1) // lambda_params?
10710 &&
10711 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10712 &&
10713 (b = expression_rule(p)) // expression
10714 )
10715 {
10716 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10717 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10718 if (_token == NULL) {
10719 D(p->level--);
10720 return NULL;
10721 }
10722 int _end_lineno = _token->end_lineno;
10723 UNUSED(_end_lineno); // Only used by EXTRA macro
10724 int _end_col_offset = _token->end_col_offset;
10725 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010726 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010727 if (_res == NULL && PyErr_Occurred()) {
10728 p->error_indicator = 1;
10729 D(p->level--);
10730 return NULL;
10731 }
10732 goto done;
10733 }
10734 p->mark = _mark;
10735 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10737 }
10738 _res = NULL;
10739 done:
10740 D(p->level--);
10741 return _res;
10742}
10743
10744// lambda_params: invalid_lambda_parameters | lambda_parameters
10745static arguments_ty
10746lambda_params_rule(Parser *p)
10747{
10748 D(p->level++);
10749 if (p->error_indicator) {
10750 D(p->level--);
10751 return NULL;
10752 }
10753 arguments_ty _res = NULL;
10754 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010755 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010756 if (p->error_indicator) {
10757 D(p->level--);
10758 return NULL;
10759 }
10760 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10761 void *invalid_lambda_parameters_var;
10762 if (
10763 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10764 )
10765 {
10766 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10767 _res = invalid_lambda_parameters_var;
10768 goto done;
10769 }
10770 p->mark = _mark;
10771 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10773 }
10774 { // lambda_parameters
10775 if (p->error_indicator) {
10776 D(p->level--);
10777 return NULL;
10778 }
10779 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10780 arguments_ty lambda_parameters_var;
10781 if (
10782 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10783 )
10784 {
10785 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10786 _res = lambda_parameters_var;
10787 goto done;
10788 }
10789 p->mark = _mark;
10790 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10792 }
10793 _res = NULL;
10794 done:
10795 D(p->level--);
10796 return _res;
10797}
10798
10799// lambda_parameters:
10800// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10801// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10802// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10803// | lambda_param_with_default+ lambda_star_etc?
10804// | lambda_star_etc
10805static arguments_ty
10806lambda_parameters_rule(Parser *p)
10807{
10808 D(p->level++);
10809 if (p->error_indicator) {
10810 D(p->level--);
10811 return NULL;
10812 }
10813 arguments_ty _res = NULL;
10814 int _mark = p->mark;
10815 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10816 if (p->error_indicator) {
10817 D(p->level--);
10818 return NULL;
10819 }
10820 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 +010010821 asdl_arg_seq* a;
10822 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010823 asdl_seq * c;
10824 void *d;
10825 if (
10826 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10827 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010828 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010829 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010830 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010831 &&
10832 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10833 )
10834 {
10835 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?"));
10836 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10837 if (_res == NULL && PyErr_Occurred()) {
10838 p->error_indicator = 1;
10839 D(p->level--);
10840 return NULL;
10841 }
10842 goto done;
10843 }
10844 p->mark = _mark;
10845 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10847 }
10848 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10849 if (p->error_indicator) {
10850 D(p->level--);
10851 return NULL;
10852 }
10853 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?"));
10854 SlashWithDefault* a;
10855 asdl_seq * b;
10856 void *c;
10857 if (
10858 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10859 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010860 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010861 &&
10862 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10863 )
10864 {
10865 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?"));
10866 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10867 if (_res == NULL && PyErr_Occurred()) {
10868 p->error_indicator = 1;
10869 D(p->level--);
10870 return NULL;
10871 }
10872 goto done;
10873 }
10874 p->mark = _mark;
10875 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10877 }
10878 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10879 if (p->error_indicator) {
10880 D(p->level--);
10881 return NULL;
10882 }
10883 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 +010010884 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010885 asdl_seq * b;
10886 void *c;
10887 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010888 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010889 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010890 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010891 &&
10892 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10893 )
10894 {
10895 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?"));
10896 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10897 if (_res == NULL && PyErr_Occurred()) {
10898 p->error_indicator = 1;
10899 D(p->level--);
10900 return NULL;
10901 }
10902 goto done;
10903 }
10904 p->mark = _mark;
10905 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10907 }
10908 { // lambda_param_with_default+ lambda_star_etc?
10909 if (p->error_indicator) {
10910 D(p->level--);
10911 return NULL;
10912 }
10913 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10914 asdl_seq * a;
10915 void *b;
10916 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010917 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010918 &&
10919 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10920 )
10921 {
10922 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10923 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10924 if (_res == NULL && PyErr_Occurred()) {
10925 p->error_indicator = 1;
10926 D(p->level--);
10927 return NULL;
10928 }
10929 goto done;
10930 }
10931 p->mark = _mark;
10932 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10934 }
10935 { // lambda_star_etc
10936 if (p->error_indicator) {
10937 D(p->level--);
10938 return NULL;
10939 }
10940 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10941 StarEtc* a;
10942 if (
10943 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10944 )
10945 {
10946 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10947 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10948 if (_res == NULL && PyErr_Occurred()) {
10949 p->error_indicator = 1;
10950 D(p->level--);
10951 return NULL;
10952 }
10953 goto done;
10954 }
10955 p->mark = _mark;
10956 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10958 }
10959 _res = NULL;
10960 done:
10961 D(p->level--);
10962 return _res;
10963}
10964
10965// lambda_slash_no_default:
10966// | lambda_param_no_default+ '/' ','
10967// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010968static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010969lambda_slash_no_default_rule(Parser *p)
10970{
10971 D(p->level++);
10972 if (p->error_indicator) {
10973 D(p->level--);
10974 return NULL;
10975 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010976 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010977 int _mark = p->mark;
10978 { // lambda_param_no_default+ '/' ','
10979 if (p->error_indicator) {
10980 D(p->level--);
10981 return NULL;
10982 }
10983 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10984 Token * _literal;
10985 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010986 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010987 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010988 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010989 &&
10990 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10991 &&
10992 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10993 )
10994 {
10995 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10996 _res = a;
10997 if (_res == NULL && PyErr_Occurred()) {
10998 p->error_indicator = 1;
10999 D(p->level--);
11000 return NULL;
11001 }
11002 goto done;
11003 }
11004 p->mark = _mark;
11005 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11007 }
11008 { // lambda_param_no_default+ '/' &':'
11009 if (p->error_indicator) {
11010 D(p->level--);
11011 return NULL;
11012 }
11013 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11014 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011015 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011016 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011017 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011018 &&
11019 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11020 &&
11021 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11022 )
11023 {
11024 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11025 _res = a;
11026 if (_res == NULL && PyErr_Occurred()) {
11027 p->error_indicator = 1;
11028 D(p->level--);
11029 return NULL;
11030 }
11031 goto done;
11032 }
11033 p->mark = _mark;
11034 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11036 }
11037 _res = NULL;
11038 done:
11039 D(p->level--);
11040 return _res;
11041}
11042
11043// lambda_slash_with_default:
11044// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11045// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11046static SlashWithDefault*
11047lambda_slash_with_default_rule(Parser *p)
11048{
11049 D(p->level++);
11050 if (p->error_indicator) {
11051 D(p->level--);
11052 return NULL;
11053 }
11054 SlashWithDefault* _res = NULL;
11055 int _mark = p->mark;
11056 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11057 if (p->error_indicator) {
11058 D(p->level--);
11059 return NULL;
11060 }
11061 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+ '/' ','"));
11062 Token * _literal;
11063 Token * _literal_1;
11064 asdl_seq * a;
11065 asdl_seq * b;
11066 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011067 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011068 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011069 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011070 &&
11071 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11072 &&
11073 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11074 )
11075 {
11076 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 +010011077 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011078 if (_res == NULL && PyErr_Occurred()) {
11079 p->error_indicator = 1;
11080 D(p->level--);
11081 return NULL;
11082 }
11083 goto done;
11084 }
11085 p->mark = _mark;
11086 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11088 }
11089 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11090 if (p->error_indicator) {
11091 D(p->level--);
11092 return NULL;
11093 }
11094 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+ '/' &':'"));
11095 Token * _literal;
11096 asdl_seq * a;
11097 asdl_seq * b;
11098 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011099 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011100 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011101 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011102 &&
11103 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11104 &&
11105 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11106 )
11107 {
11108 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 +010011109 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011110 if (_res == NULL && PyErr_Occurred()) {
11111 p->error_indicator = 1;
11112 D(p->level--);
11113 return NULL;
11114 }
11115 goto done;
11116 }
11117 p->mark = _mark;
11118 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11120 }
11121 _res = NULL;
11122 done:
11123 D(p->level--);
11124 return _res;
11125}
11126
11127// lambda_star_etc:
11128// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11129// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11130// | lambda_kwds
11131// | invalid_lambda_star_etc
11132static StarEtc*
11133lambda_star_etc_rule(Parser *p)
11134{
11135 D(p->level++);
11136 if (p->error_indicator) {
11137 D(p->level--);
11138 return NULL;
11139 }
11140 StarEtc* _res = NULL;
11141 int _mark = p->mark;
11142 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11143 if (p->error_indicator) {
11144 D(p->level--);
11145 return NULL;
11146 }
11147 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?"));
11148 Token * _literal;
11149 arg_ty a;
11150 asdl_seq * b;
11151 void *c;
11152 if (
11153 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11154 &&
11155 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11156 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011157 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011158 &&
11159 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11160 )
11161 {
11162 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?"));
11163 _res = _PyPegen_star_etc ( p , a , b , c );
11164 if (_res == NULL && PyErr_Occurred()) {
11165 p->error_indicator = 1;
11166 D(p->level--);
11167 return NULL;
11168 }
11169 goto done;
11170 }
11171 p->mark = _mark;
11172 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11174 }
11175 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11176 if (p->error_indicator) {
11177 D(p->level--);
11178 return NULL;
11179 }
11180 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11181 Token * _literal;
11182 Token * _literal_1;
11183 asdl_seq * b;
11184 void *c;
11185 if (
11186 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11187 &&
11188 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11189 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011190 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011191 &&
11192 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11193 )
11194 {
11195 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11196 _res = _PyPegen_star_etc ( p , NULL , b , c );
11197 if (_res == NULL && PyErr_Occurred()) {
11198 p->error_indicator = 1;
11199 D(p->level--);
11200 return NULL;
11201 }
11202 goto done;
11203 }
11204 p->mark = _mark;
11205 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11207 }
11208 { // lambda_kwds
11209 if (p->error_indicator) {
11210 D(p->level--);
11211 return NULL;
11212 }
11213 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11214 arg_ty a;
11215 if (
11216 (a = lambda_kwds_rule(p)) // lambda_kwds
11217 )
11218 {
11219 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11220 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11221 if (_res == NULL && PyErr_Occurred()) {
11222 p->error_indicator = 1;
11223 D(p->level--);
11224 return NULL;
11225 }
11226 goto done;
11227 }
11228 p->mark = _mark;
11229 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11231 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011232 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011233 if (p->error_indicator) {
11234 D(p->level--);
11235 return NULL;
11236 }
11237 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11238 void *invalid_lambda_star_etc_var;
11239 if (
11240 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11241 )
11242 {
11243 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11244 _res = invalid_lambda_star_etc_var;
11245 goto done;
11246 }
11247 p->mark = _mark;
11248 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11250 }
11251 _res = NULL;
11252 done:
11253 D(p->level--);
11254 return _res;
11255}
11256
11257// lambda_kwds: '**' lambda_param_no_default
11258static arg_ty
11259lambda_kwds_rule(Parser *p)
11260{
11261 D(p->level++);
11262 if (p->error_indicator) {
11263 D(p->level--);
11264 return NULL;
11265 }
11266 arg_ty _res = NULL;
11267 int _mark = p->mark;
11268 { // '**' lambda_param_no_default
11269 if (p->error_indicator) {
11270 D(p->level--);
11271 return NULL;
11272 }
11273 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11274 Token * _literal;
11275 arg_ty a;
11276 if (
11277 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11278 &&
11279 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11280 )
11281 {
11282 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11283 _res = a;
11284 if (_res == NULL && PyErr_Occurred()) {
11285 p->error_indicator = 1;
11286 D(p->level--);
11287 return NULL;
11288 }
11289 goto done;
11290 }
11291 p->mark = _mark;
11292 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11294 }
11295 _res = NULL;
11296 done:
11297 D(p->level--);
11298 return _res;
11299}
11300
11301// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11302static arg_ty
11303lambda_param_no_default_rule(Parser *p)
11304{
11305 D(p->level++);
11306 if (p->error_indicator) {
11307 D(p->level--);
11308 return NULL;
11309 }
11310 arg_ty _res = NULL;
11311 int _mark = p->mark;
11312 { // lambda_param ','
11313 if (p->error_indicator) {
11314 D(p->level--);
11315 return NULL;
11316 }
11317 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11318 Token * _literal;
11319 arg_ty a;
11320 if (
11321 (a = lambda_param_rule(p)) // lambda_param
11322 &&
11323 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11324 )
11325 {
11326 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11327 _res = a;
11328 if (_res == NULL && PyErr_Occurred()) {
11329 p->error_indicator = 1;
11330 D(p->level--);
11331 return NULL;
11332 }
11333 goto done;
11334 }
11335 p->mark = _mark;
11336 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11338 }
11339 { // lambda_param &':'
11340 if (p->error_indicator) {
11341 D(p->level--);
11342 return NULL;
11343 }
11344 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11345 arg_ty a;
11346 if (
11347 (a = lambda_param_rule(p)) // lambda_param
11348 &&
11349 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11350 )
11351 {
11352 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11353 _res = a;
11354 if (_res == NULL && PyErr_Occurred()) {
11355 p->error_indicator = 1;
11356 D(p->level--);
11357 return NULL;
11358 }
11359 goto done;
11360 }
11361 p->mark = _mark;
11362 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11364 }
11365 _res = NULL;
11366 done:
11367 D(p->level--);
11368 return _res;
11369}
11370
11371// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11372static NameDefaultPair*
11373lambda_param_with_default_rule(Parser *p)
11374{
11375 D(p->level++);
11376 if (p->error_indicator) {
11377 D(p->level--);
11378 return NULL;
11379 }
11380 NameDefaultPair* _res = NULL;
11381 int _mark = p->mark;
11382 { // lambda_param default ','
11383 if (p->error_indicator) {
11384 D(p->level--);
11385 return NULL;
11386 }
11387 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11388 Token * _literal;
11389 arg_ty a;
11390 expr_ty c;
11391 if (
11392 (a = lambda_param_rule(p)) // lambda_param
11393 &&
11394 (c = default_rule(p)) // default
11395 &&
11396 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11397 )
11398 {
11399 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11400 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11401 if (_res == NULL && PyErr_Occurred()) {
11402 p->error_indicator = 1;
11403 D(p->level--);
11404 return NULL;
11405 }
11406 goto done;
11407 }
11408 p->mark = _mark;
11409 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11411 }
11412 { // lambda_param default &':'
11413 if (p->error_indicator) {
11414 D(p->level--);
11415 return NULL;
11416 }
11417 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11418 arg_ty a;
11419 expr_ty c;
11420 if (
11421 (a = lambda_param_rule(p)) // lambda_param
11422 &&
11423 (c = default_rule(p)) // default
11424 &&
11425 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11426 )
11427 {
11428 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11429 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11430 if (_res == NULL && PyErr_Occurred()) {
11431 p->error_indicator = 1;
11432 D(p->level--);
11433 return NULL;
11434 }
11435 goto done;
11436 }
11437 p->mark = _mark;
11438 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11440 }
11441 _res = NULL;
11442 done:
11443 D(p->level--);
11444 return _res;
11445}
11446
11447// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11448static NameDefaultPair*
11449lambda_param_maybe_default_rule(Parser *p)
11450{
11451 D(p->level++);
11452 if (p->error_indicator) {
11453 D(p->level--);
11454 return NULL;
11455 }
11456 NameDefaultPair* _res = NULL;
11457 int _mark = p->mark;
11458 { // lambda_param default? ','
11459 if (p->error_indicator) {
11460 D(p->level--);
11461 return NULL;
11462 }
11463 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11464 Token * _literal;
11465 arg_ty a;
11466 void *c;
11467 if (
11468 (a = lambda_param_rule(p)) // lambda_param
11469 &&
11470 (c = default_rule(p), 1) // default?
11471 &&
11472 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11473 )
11474 {
11475 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11476 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11477 if (_res == NULL && PyErr_Occurred()) {
11478 p->error_indicator = 1;
11479 D(p->level--);
11480 return NULL;
11481 }
11482 goto done;
11483 }
11484 p->mark = _mark;
11485 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11487 }
11488 { // lambda_param default? &':'
11489 if (p->error_indicator) {
11490 D(p->level--);
11491 return NULL;
11492 }
11493 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11494 arg_ty a;
11495 void *c;
11496 if (
11497 (a = lambda_param_rule(p)) // lambda_param
11498 &&
11499 (c = default_rule(p), 1) // default?
11500 &&
11501 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11502 )
11503 {
11504 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11505 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11506 if (_res == NULL && PyErr_Occurred()) {
11507 p->error_indicator = 1;
11508 D(p->level--);
11509 return NULL;
11510 }
11511 goto done;
11512 }
11513 p->mark = _mark;
11514 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11516 }
11517 _res = NULL;
11518 done:
11519 D(p->level--);
11520 return _res;
11521}
11522
11523// lambda_param: NAME
11524static arg_ty
11525lambda_param_rule(Parser *p)
11526{
11527 D(p->level++);
11528 if (p->error_indicator) {
11529 D(p->level--);
11530 return NULL;
11531 }
11532 arg_ty _res = NULL;
11533 int _mark = p->mark;
11534 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11535 p->error_indicator = 1;
11536 D(p->level--);
11537 return NULL;
11538 }
11539 int _start_lineno = p->tokens[_mark]->lineno;
11540 UNUSED(_start_lineno); // Only used by EXTRA macro
11541 int _start_col_offset = p->tokens[_mark]->col_offset;
11542 UNUSED(_start_col_offset); // Only used by EXTRA macro
11543 { // NAME
11544 if (p->error_indicator) {
11545 D(p->level--);
11546 return NULL;
11547 }
11548 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11549 expr_ty a;
11550 if (
11551 (a = _PyPegen_name_token(p)) // NAME
11552 )
11553 {
11554 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11555 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11556 if (_token == NULL) {
11557 D(p->level--);
11558 return NULL;
11559 }
11560 int _end_lineno = _token->end_lineno;
11561 UNUSED(_end_lineno); // Only used by EXTRA macro
11562 int _end_col_offset = _token->end_col_offset;
11563 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011564 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011565 if (_res == NULL && PyErr_Occurred()) {
11566 p->error_indicator = 1;
11567 D(p->level--);
11568 return NULL;
11569 }
11570 goto done;
11571 }
11572 p->mark = _mark;
11573 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11575 }
11576 _res = NULL;
11577 done:
11578 D(p->level--);
11579 return _res;
11580}
11581
11582// disjunction: conjunction (('or' conjunction))+ | conjunction
11583static expr_ty
11584disjunction_rule(Parser *p)
11585{
11586 D(p->level++);
11587 if (p->error_indicator) {
11588 D(p->level--);
11589 return NULL;
11590 }
11591 expr_ty _res = NULL;
11592 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11593 D(p->level--);
11594 return _res;
11595 }
11596 int _mark = p->mark;
11597 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11598 p->error_indicator = 1;
11599 D(p->level--);
11600 return NULL;
11601 }
11602 int _start_lineno = p->tokens[_mark]->lineno;
11603 UNUSED(_start_lineno); // Only used by EXTRA macro
11604 int _start_col_offset = p->tokens[_mark]->col_offset;
11605 UNUSED(_start_col_offset); // Only used by EXTRA macro
11606 { // conjunction (('or' conjunction))+
11607 if (p->error_indicator) {
11608 D(p->level--);
11609 return NULL;
11610 }
11611 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11612 expr_ty a;
11613 asdl_seq * b;
11614 if (
11615 (a = conjunction_rule(p)) // conjunction
11616 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011617 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011618 )
11619 {
11620 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11621 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11622 if (_token == NULL) {
11623 D(p->level--);
11624 return NULL;
11625 }
11626 int _end_lineno = _token->end_lineno;
11627 UNUSED(_end_lineno); // Only used by EXTRA macro
11628 int _end_col_offset = _token->end_col_offset;
11629 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011630 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011631 if (_res == NULL && PyErr_Occurred()) {
11632 p->error_indicator = 1;
11633 D(p->level--);
11634 return NULL;
11635 }
11636 goto done;
11637 }
11638 p->mark = _mark;
11639 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11641 }
11642 { // conjunction
11643 if (p->error_indicator) {
11644 D(p->level--);
11645 return NULL;
11646 }
11647 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11648 expr_ty conjunction_var;
11649 if (
11650 (conjunction_var = conjunction_rule(p)) // conjunction
11651 )
11652 {
11653 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11654 _res = conjunction_var;
11655 goto done;
11656 }
11657 p->mark = _mark;
11658 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11660 }
11661 _res = NULL;
11662 done:
11663 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11664 D(p->level--);
11665 return _res;
11666}
11667
11668// conjunction: inversion (('and' inversion))+ | inversion
11669static expr_ty
11670conjunction_rule(Parser *p)
11671{
11672 D(p->level++);
11673 if (p->error_indicator) {
11674 D(p->level--);
11675 return NULL;
11676 }
11677 expr_ty _res = NULL;
11678 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11679 D(p->level--);
11680 return _res;
11681 }
11682 int _mark = p->mark;
11683 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11684 p->error_indicator = 1;
11685 D(p->level--);
11686 return NULL;
11687 }
11688 int _start_lineno = p->tokens[_mark]->lineno;
11689 UNUSED(_start_lineno); // Only used by EXTRA macro
11690 int _start_col_offset = p->tokens[_mark]->col_offset;
11691 UNUSED(_start_col_offset); // Only used by EXTRA macro
11692 { // inversion (('and' inversion))+
11693 if (p->error_indicator) {
11694 D(p->level--);
11695 return NULL;
11696 }
11697 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11698 expr_ty a;
11699 asdl_seq * b;
11700 if (
11701 (a = inversion_rule(p)) // inversion
11702 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011703 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011704 )
11705 {
11706 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11707 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11708 if (_token == NULL) {
11709 D(p->level--);
11710 return NULL;
11711 }
11712 int _end_lineno = _token->end_lineno;
11713 UNUSED(_end_lineno); // Only used by EXTRA macro
11714 int _end_col_offset = _token->end_col_offset;
11715 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011716 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011717 if (_res == NULL && PyErr_Occurred()) {
11718 p->error_indicator = 1;
11719 D(p->level--);
11720 return NULL;
11721 }
11722 goto done;
11723 }
11724 p->mark = _mark;
11725 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11727 }
11728 { // inversion
11729 if (p->error_indicator) {
11730 D(p->level--);
11731 return NULL;
11732 }
11733 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11734 expr_ty inversion_var;
11735 if (
11736 (inversion_var = inversion_rule(p)) // inversion
11737 )
11738 {
11739 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11740 _res = inversion_var;
11741 goto done;
11742 }
11743 p->mark = _mark;
11744 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11746 }
11747 _res = NULL;
11748 done:
11749 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11750 D(p->level--);
11751 return _res;
11752}
11753
11754// inversion: 'not' inversion | comparison
11755static expr_ty
11756inversion_rule(Parser *p)
11757{
11758 D(p->level++);
11759 if (p->error_indicator) {
11760 D(p->level--);
11761 return NULL;
11762 }
11763 expr_ty _res = NULL;
11764 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11765 D(p->level--);
11766 return _res;
11767 }
11768 int _mark = p->mark;
11769 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11770 p->error_indicator = 1;
11771 D(p->level--);
11772 return NULL;
11773 }
11774 int _start_lineno = p->tokens[_mark]->lineno;
11775 UNUSED(_start_lineno); // Only used by EXTRA macro
11776 int _start_col_offset = p->tokens[_mark]->col_offset;
11777 UNUSED(_start_col_offset); // Only used by EXTRA macro
11778 { // 'not' inversion
11779 if (p->error_indicator) {
11780 D(p->level--);
11781 return NULL;
11782 }
11783 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11784 Token * _keyword;
11785 expr_ty a;
11786 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011787 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011788 &&
11789 (a = inversion_rule(p)) // inversion
11790 )
11791 {
11792 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11793 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11794 if (_token == NULL) {
11795 D(p->level--);
11796 return NULL;
11797 }
11798 int _end_lineno = _token->end_lineno;
11799 UNUSED(_end_lineno); // Only used by EXTRA macro
11800 int _end_col_offset = _token->end_col_offset;
11801 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011802 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011803 if (_res == NULL && PyErr_Occurred()) {
11804 p->error_indicator = 1;
11805 D(p->level--);
11806 return NULL;
11807 }
11808 goto done;
11809 }
11810 p->mark = _mark;
11811 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11813 }
11814 { // comparison
11815 if (p->error_indicator) {
11816 D(p->level--);
11817 return NULL;
11818 }
11819 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11820 expr_ty comparison_var;
11821 if (
11822 (comparison_var = comparison_rule(p)) // comparison
11823 )
11824 {
11825 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11826 _res = comparison_var;
11827 goto done;
11828 }
11829 p->mark = _mark;
11830 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11832 }
11833 _res = NULL;
11834 done:
11835 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11836 D(p->level--);
11837 return _res;
11838}
11839
11840// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11841static expr_ty
11842comparison_rule(Parser *p)
11843{
11844 D(p->level++);
11845 if (p->error_indicator) {
11846 D(p->level--);
11847 return NULL;
11848 }
11849 expr_ty _res = NULL;
11850 int _mark = p->mark;
11851 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11852 p->error_indicator = 1;
11853 D(p->level--);
11854 return NULL;
11855 }
11856 int _start_lineno = p->tokens[_mark]->lineno;
11857 UNUSED(_start_lineno); // Only used by EXTRA macro
11858 int _start_col_offset = p->tokens[_mark]->col_offset;
11859 UNUSED(_start_col_offset); // Only used by EXTRA macro
11860 { // bitwise_or compare_op_bitwise_or_pair+
11861 if (p->error_indicator) {
11862 D(p->level--);
11863 return NULL;
11864 }
11865 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11866 expr_ty a;
11867 asdl_seq * b;
11868 if (
11869 (a = bitwise_or_rule(p)) // bitwise_or
11870 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011871 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011872 )
11873 {
11874 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11875 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11876 if (_token == NULL) {
11877 D(p->level--);
11878 return NULL;
11879 }
11880 int _end_lineno = _token->end_lineno;
11881 UNUSED(_end_lineno); // Only used by EXTRA macro
11882 int _end_col_offset = _token->end_col_offset;
11883 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011884 _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 +010011885 if (_res == NULL && PyErr_Occurred()) {
11886 p->error_indicator = 1;
11887 D(p->level--);
11888 return NULL;
11889 }
11890 goto done;
11891 }
11892 p->mark = _mark;
11893 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11895 }
11896 { // bitwise_or
11897 if (p->error_indicator) {
11898 D(p->level--);
11899 return NULL;
11900 }
11901 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11902 expr_ty bitwise_or_var;
11903 if (
11904 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11905 )
11906 {
11907 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11908 _res = bitwise_or_var;
11909 goto done;
11910 }
11911 p->mark = _mark;
11912 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11914 }
11915 _res = NULL;
11916 done:
11917 D(p->level--);
11918 return _res;
11919}
11920
11921// compare_op_bitwise_or_pair:
11922// | eq_bitwise_or
11923// | noteq_bitwise_or
11924// | lte_bitwise_or
11925// | lt_bitwise_or
11926// | gte_bitwise_or
11927// | gt_bitwise_or
11928// | notin_bitwise_or
11929// | in_bitwise_or
11930// | isnot_bitwise_or
11931// | is_bitwise_or
11932static CmpopExprPair*
11933compare_op_bitwise_or_pair_rule(Parser *p)
11934{
11935 D(p->level++);
11936 if (p->error_indicator) {
11937 D(p->level--);
11938 return NULL;
11939 }
11940 CmpopExprPair* _res = NULL;
11941 int _mark = p->mark;
11942 { // eq_bitwise_or
11943 if (p->error_indicator) {
11944 D(p->level--);
11945 return NULL;
11946 }
11947 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11948 CmpopExprPair* eq_bitwise_or_var;
11949 if (
11950 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11951 )
11952 {
11953 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11954 _res = eq_bitwise_or_var;
11955 goto done;
11956 }
11957 p->mark = _mark;
11958 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11960 }
11961 { // noteq_bitwise_or
11962 if (p->error_indicator) {
11963 D(p->level--);
11964 return NULL;
11965 }
11966 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11967 CmpopExprPair* noteq_bitwise_or_var;
11968 if (
11969 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11970 )
11971 {
11972 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11973 _res = noteq_bitwise_or_var;
11974 goto done;
11975 }
11976 p->mark = _mark;
11977 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11979 }
11980 { // lte_bitwise_or
11981 if (p->error_indicator) {
11982 D(p->level--);
11983 return NULL;
11984 }
11985 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11986 CmpopExprPair* lte_bitwise_or_var;
11987 if (
11988 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11989 )
11990 {
11991 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11992 _res = lte_bitwise_or_var;
11993 goto done;
11994 }
11995 p->mark = _mark;
11996 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11998 }
11999 { // lt_bitwise_or
12000 if (p->error_indicator) {
12001 D(p->level--);
12002 return NULL;
12003 }
12004 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12005 CmpopExprPair* lt_bitwise_or_var;
12006 if (
12007 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
12008 )
12009 {
12010 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12011 _res = lt_bitwise_or_var;
12012 goto done;
12013 }
12014 p->mark = _mark;
12015 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
12017 }
12018 { // gte_bitwise_or
12019 if (p->error_indicator) {
12020 D(p->level--);
12021 return NULL;
12022 }
12023 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12024 CmpopExprPair* gte_bitwise_or_var;
12025 if (
12026 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
12027 )
12028 {
12029 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12030 _res = gte_bitwise_or_var;
12031 goto done;
12032 }
12033 p->mark = _mark;
12034 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
12036 }
12037 { // gt_bitwise_or
12038 if (p->error_indicator) {
12039 D(p->level--);
12040 return NULL;
12041 }
12042 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12043 CmpopExprPair* gt_bitwise_or_var;
12044 if (
12045 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12046 )
12047 {
12048 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12049 _res = gt_bitwise_or_var;
12050 goto done;
12051 }
12052 p->mark = _mark;
12053 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12055 }
12056 { // notin_bitwise_or
12057 if (p->error_indicator) {
12058 D(p->level--);
12059 return NULL;
12060 }
12061 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12062 CmpopExprPair* notin_bitwise_or_var;
12063 if (
12064 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12065 )
12066 {
12067 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12068 _res = notin_bitwise_or_var;
12069 goto done;
12070 }
12071 p->mark = _mark;
12072 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12074 }
12075 { // in_bitwise_or
12076 if (p->error_indicator) {
12077 D(p->level--);
12078 return NULL;
12079 }
12080 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12081 CmpopExprPair* in_bitwise_or_var;
12082 if (
12083 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12084 )
12085 {
12086 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12087 _res = in_bitwise_or_var;
12088 goto done;
12089 }
12090 p->mark = _mark;
12091 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12093 }
12094 { // isnot_bitwise_or
12095 if (p->error_indicator) {
12096 D(p->level--);
12097 return NULL;
12098 }
12099 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12100 CmpopExprPair* isnot_bitwise_or_var;
12101 if (
12102 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12103 )
12104 {
12105 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12106 _res = isnot_bitwise_or_var;
12107 goto done;
12108 }
12109 p->mark = _mark;
12110 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12112 }
12113 { // is_bitwise_or
12114 if (p->error_indicator) {
12115 D(p->level--);
12116 return NULL;
12117 }
12118 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12119 CmpopExprPair* is_bitwise_or_var;
12120 if (
12121 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12122 )
12123 {
12124 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12125 _res = is_bitwise_or_var;
12126 goto done;
12127 }
12128 p->mark = _mark;
12129 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12131 }
12132 _res = NULL;
12133 done:
12134 D(p->level--);
12135 return _res;
12136}
12137
12138// eq_bitwise_or: '==' bitwise_or
12139static CmpopExprPair*
12140eq_bitwise_or_rule(Parser *p)
12141{
12142 D(p->level++);
12143 if (p->error_indicator) {
12144 D(p->level--);
12145 return NULL;
12146 }
12147 CmpopExprPair* _res = NULL;
12148 int _mark = p->mark;
12149 { // '==' bitwise_or
12150 if (p->error_indicator) {
12151 D(p->level--);
12152 return NULL;
12153 }
12154 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12155 Token * _literal;
12156 expr_ty a;
12157 if (
12158 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12159 &&
12160 (a = bitwise_or_rule(p)) // bitwise_or
12161 )
12162 {
12163 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12164 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12165 if (_res == NULL && PyErr_Occurred()) {
12166 p->error_indicator = 1;
12167 D(p->level--);
12168 return NULL;
12169 }
12170 goto done;
12171 }
12172 p->mark = _mark;
12173 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12175 }
12176 _res = NULL;
12177 done:
12178 D(p->level--);
12179 return _res;
12180}
12181
12182// noteq_bitwise_or: ('!=') bitwise_or
12183static CmpopExprPair*
12184noteq_bitwise_or_rule(Parser *p)
12185{
12186 D(p->level++);
12187 if (p->error_indicator) {
12188 D(p->level--);
12189 return NULL;
12190 }
12191 CmpopExprPair* _res = NULL;
12192 int _mark = p->mark;
12193 { // ('!=') bitwise_or
12194 if (p->error_indicator) {
12195 D(p->level--);
12196 return NULL;
12197 }
12198 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 -080012199 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012200 expr_ty a;
12201 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012202 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012203 &&
12204 (a = bitwise_or_rule(p)) // bitwise_or
12205 )
12206 {
12207 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12208 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12209 if (_res == NULL && PyErr_Occurred()) {
12210 p->error_indicator = 1;
12211 D(p->level--);
12212 return NULL;
12213 }
12214 goto done;
12215 }
12216 p->mark = _mark;
12217 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12219 }
12220 _res = NULL;
12221 done:
12222 D(p->level--);
12223 return _res;
12224}
12225
12226// lte_bitwise_or: '<=' bitwise_or
12227static CmpopExprPair*
12228lte_bitwise_or_rule(Parser *p)
12229{
12230 D(p->level++);
12231 if (p->error_indicator) {
12232 D(p->level--);
12233 return NULL;
12234 }
12235 CmpopExprPair* _res = NULL;
12236 int _mark = p->mark;
12237 { // '<=' bitwise_or
12238 if (p->error_indicator) {
12239 D(p->level--);
12240 return NULL;
12241 }
12242 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12243 Token * _literal;
12244 expr_ty a;
12245 if (
12246 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12247 &&
12248 (a = bitwise_or_rule(p)) // bitwise_or
12249 )
12250 {
12251 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12252 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12253 if (_res == NULL && PyErr_Occurred()) {
12254 p->error_indicator = 1;
12255 D(p->level--);
12256 return NULL;
12257 }
12258 goto done;
12259 }
12260 p->mark = _mark;
12261 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12263 }
12264 _res = NULL;
12265 done:
12266 D(p->level--);
12267 return _res;
12268}
12269
12270// lt_bitwise_or: '<' bitwise_or
12271static CmpopExprPair*
12272lt_bitwise_or_rule(Parser *p)
12273{
12274 D(p->level++);
12275 if (p->error_indicator) {
12276 D(p->level--);
12277 return NULL;
12278 }
12279 CmpopExprPair* _res = NULL;
12280 int _mark = p->mark;
12281 { // '<' bitwise_or
12282 if (p->error_indicator) {
12283 D(p->level--);
12284 return NULL;
12285 }
12286 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12287 Token * _literal;
12288 expr_ty a;
12289 if (
12290 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12291 &&
12292 (a = bitwise_or_rule(p)) // bitwise_or
12293 )
12294 {
12295 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12296 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12297 if (_res == NULL && PyErr_Occurred()) {
12298 p->error_indicator = 1;
12299 D(p->level--);
12300 return NULL;
12301 }
12302 goto done;
12303 }
12304 p->mark = _mark;
12305 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12307 }
12308 _res = NULL;
12309 done:
12310 D(p->level--);
12311 return _res;
12312}
12313
12314// gte_bitwise_or: '>=' bitwise_or
12315static CmpopExprPair*
12316gte_bitwise_or_rule(Parser *p)
12317{
12318 D(p->level++);
12319 if (p->error_indicator) {
12320 D(p->level--);
12321 return NULL;
12322 }
12323 CmpopExprPair* _res = NULL;
12324 int _mark = p->mark;
12325 { // '>=' bitwise_or
12326 if (p->error_indicator) {
12327 D(p->level--);
12328 return NULL;
12329 }
12330 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12331 Token * _literal;
12332 expr_ty a;
12333 if (
12334 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12335 &&
12336 (a = bitwise_or_rule(p)) // bitwise_or
12337 )
12338 {
12339 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12340 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12341 if (_res == NULL && PyErr_Occurred()) {
12342 p->error_indicator = 1;
12343 D(p->level--);
12344 return NULL;
12345 }
12346 goto done;
12347 }
12348 p->mark = _mark;
12349 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12351 }
12352 _res = NULL;
12353 done:
12354 D(p->level--);
12355 return _res;
12356}
12357
12358// gt_bitwise_or: '>' bitwise_or
12359static CmpopExprPair*
12360gt_bitwise_or_rule(Parser *p)
12361{
12362 D(p->level++);
12363 if (p->error_indicator) {
12364 D(p->level--);
12365 return NULL;
12366 }
12367 CmpopExprPair* _res = NULL;
12368 int _mark = p->mark;
12369 { // '>' bitwise_or
12370 if (p->error_indicator) {
12371 D(p->level--);
12372 return NULL;
12373 }
12374 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12375 Token * _literal;
12376 expr_ty a;
12377 if (
12378 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12379 &&
12380 (a = bitwise_or_rule(p)) // bitwise_or
12381 )
12382 {
12383 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12384 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12385 if (_res == NULL && PyErr_Occurred()) {
12386 p->error_indicator = 1;
12387 D(p->level--);
12388 return NULL;
12389 }
12390 goto done;
12391 }
12392 p->mark = _mark;
12393 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12395 }
12396 _res = NULL;
12397 done:
12398 D(p->level--);
12399 return _res;
12400}
12401
12402// notin_bitwise_or: 'not' 'in' bitwise_or
12403static CmpopExprPair*
12404notin_bitwise_or_rule(Parser *p)
12405{
12406 D(p->level++);
12407 if (p->error_indicator) {
12408 D(p->level--);
12409 return NULL;
12410 }
12411 CmpopExprPair* _res = NULL;
12412 int _mark = p->mark;
12413 { // 'not' 'in' bitwise_or
12414 if (p->error_indicator) {
12415 D(p->level--);
12416 return NULL;
12417 }
12418 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12419 Token * _keyword;
12420 Token * _keyword_1;
12421 expr_ty a;
12422 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012423 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012424 &&
12425 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12426 &&
12427 (a = bitwise_or_rule(p)) // bitwise_or
12428 )
12429 {
12430 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12431 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12432 if (_res == NULL && PyErr_Occurred()) {
12433 p->error_indicator = 1;
12434 D(p->level--);
12435 return NULL;
12436 }
12437 goto done;
12438 }
12439 p->mark = _mark;
12440 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12442 }
12443 _res = NULL;
12444 done:
12445 D(p->level--);
12446 return _res;
12447}
12448
12449// in_bitwise_or: 'in' bitwise_or
12450static CmpopExprPair*
12451in_bitwise_or_rule(Parser *p)
12452{
12453 D(p->level++);
12454 if (p->error_indicator) {
12455 D(p->level--);
12456 return NULL;
12457 }
12458 CmpopExprPair* _res = NULL;
12459 int _mark = p->mark;
12460 { // 'in' bitwise_or
12461 if (p->error_indicator) {
12462 D(p->level--);
12463 return NULL;
12464 }
12465 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12466 Token * _keyword;
12467 expr_ty a;
12468 if (
12469 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12470 &&
12471 (a = bitwise_or_rule(p)) // bitwise_or
12472 )
12473 {
12474 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12475 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12476 if (_res == NULL && PyErr_Occurred()) {
12477 p->error_indicator = 1;
12478 D(p->level--);
12479 return NULL;
12480 }
12481 goto done;
12482 }
12483 p->mark = _mark;
12484 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12486 }
12487 _res = NULL;
12488 done:
12489 D(p->level--);
12490 return _res;
12491}
12492
12493// isnot_bitwise_or: 'is' 'not' bitwise_or
12494static CmpopExprPair*
12495isnot_bitwise_or_rule(Parser *p)
12496{
12497 D(p->level++);
12498 if (p->error_indicator) {
12499 D(p->level--);
12500 return NULL;
12501 }
12502 CmpopExprPair* _res = NULL;
12503 int _mark = p->mark;
12504 { // 'is' 'not' bitwise_or
12505 if (p->error_indicator) {
12506 D(p->level--);
12507 return NULL;
12508 }
12509 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12510 Token * _keyword;
12511 Token * _keyword_1;
12512 expr_ty a;
12513 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012514 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012515 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012516 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012517 &&
12518 (a = bitwise_or_rule(p)) // bitwise_or
12519 )
12520 {
12521 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12522 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12523 if (_res == NULL && PyErr_Occurred()) {
12524 p->error_indicator = 1;
12525 D(p->level--);
12526 return NULL;
12527 }
12528 goto done;
12529 }
12530 p->mark = _mark;
12531 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12533 }
12534 _res = NULL;
12535 done:
12536 D(p->level--);
12537 return _res;
12538}
12539
12540// is_bitwise_or: 'is' bitwise_or
12541static CmpopExprPair*
12542is_bitwise_or_rule(Parser *p)
12543{
12544 D(p->level++);
12545 if (p->error_indicator) {
12546 D(p->level--);
12547 return NULL;
12548 }
12549 CmpopExprPair* _res = NULL;
12550 int _mark = p->mark;
12551 { // 'is' bitwise_or
12552 if (p->error_indicator) {
12553 D(p->level--);
12554 return NULL;
12555 }
12556 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12557 Token * _keyword;
12558 expr_ty a;
12559 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012560 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012561 &&
12562 (a = bitwise_or_rule(p)) // bitwise_or
12563 )
12564 {
12565 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12566 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12567 if (_res == NULL && PyErr_Occurred()) {
12568 p->error_indicator = 1;
12569 D(p->level--);
12570 return NULL;
12571 }
12572 goto done;
12573 }
12574 p->mark = _mark;
12575 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12577 }
12578 _res = NULL;
12579 done:
12580 D(p->level--);
12581 return _res;
12582}
12583
12584// Left-recursive
12585// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12586static expr_ty bitwise_or_raw(Parser *);
12587static expr_ty
12588bitwise_or_rule(Parser *p)
12589{
12590 D(p->level++);
12591 expr_ty _res = NULL;
12592 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12593 D(p->level--);
12594 return _res;
12595 }
12596 int _mark = p->mark;
12597 int _resmark = p->mark;
12598 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012599 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12600 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012601 D(p->level--);
12602 return _res;
12603 }
12604 p->mark = _mark;
12605 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012606 if (p->error_indicator)
12607 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012608 if (_raw == NULL || p->mark <= _resmark)
12609 break;
12610 _resmark = p->mark;
12611 _res = _raw;
12612 }
12613 p->mark = _resmark;
12614 D(p->level--);
12615 return _res;
12616}
12617static expr_ty
12618bitwise_or_raw(Parser *p)
12619{
12620 D(p->level++);
12621 if (p->error_indicator) {
12622 D(p->level--);
12623 return NULL;
12624 }
12625 expr_ty _res = NULL;
12626 int _mark = p->mark;
12627 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12628 p->error_indicator = 1;
12629 D(p->level--);
12630 return NULL;
12631 }
12632 int _start_lineno = p->tokens[_mark]->lineno;
12633 UNUSED(_start_lineno); // Only used by EXTRA macro
12634 int _start_col_offset = p->tokens[_mark]->col_offset;
12635 UNUSED(_start_col_offset); // Only used by EXTRA macro
12636 { // bitwise_or '|' bitwise_xor
12637 if (p->error_indicator) {
12638 D(p->level--);
12639 return NULL;
12640 }
12641 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12642 Token * _literal;
12643 expr_ty a;
12644 expr_ty b;
12645 if (
12646 (a = bitwise_or_rule(p)) // bitwise_or
12647 &&
12648 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12649 &&
12650 (b = bitwise_xor_rule(p)) // bitwise_xor
12651 )
12652 {
12653 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12654 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12655 if (_token == NULL) {
12656 D(p->level--);
12657 return NULL;
12658 }
12659 int _end_lineno = _token->end_lineno;
12660 UNUSED(_end_lineno); // Only used by EXTRA macro
12661 int _end_col_offset = _token->end_col_offset;
12662 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012663 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012664 if (_res == NULL && PyErr_Occurred()) {
12665 p->error_indicator = 1;
12666 D(p->level--);
12667 return NULL;
12668 }
12669 goto done;
12670 }
12671 p->mark = _mark;
12672 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12674 }
12675 { // bitwise_xor
12676 if (p->error_indicator) {
12677 D(p->level--);
12678 return NULL;
12679 }
12680 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12681 expr_ty bitwise_xor_var;
12682 if (
12683 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12684 )
12685 {
12686 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12687 _res = bitwise_xor_var;
12688 goto done;
12689 }
12690 p->mark = _mark;
12691 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12693 }
12694 _res = NULL;
12695 done:
12696 D(p->level--);
12697 return _res;
12698}
12699
12700// Left-recursive
12701// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12702static expr_ty bitwise_xor_raw(Parser *);
12703static expr_ty
12704bitwise_xor_rule(Parser *p)
12705{
12706 D(p->level++);
12707 expr_ty _res = NULL;
12708 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12709 D(p->level--);
12710 return _res;
12711 }
12712 int _mark = p->mark;
12713 int _resmark = p->mark;
12714 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012715 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12716 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012717 D(p->level--);
12718 return _res;
12719 }
12720 p->mark = _mark;
12721 void *_raw = bitwise_xor_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012722 if (p->error_indicator)
12723 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012724 if (_raw == NULL || p->mark <= _resmark)
12725 break;
12726 _resmark = p->mark;
12727 _res = _raw;
12728 }
12729 p->mark = _resmark;
12730 D(p->level--);
12731 return _res;
12732}
12733static expr_ty
12734bitwise_xor_raw(Parser *p)
12735{
12736 D(p->level++);
12737 if (p->error_indicator) {
12738 D(p->level--);
12739 return NULL;
12740 }
12741 expr_ty _res = NULL;
12742 int _mark = p->mark;
12743 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12744 p->error_indicator = 1;
12745 D(p->level--);
12746 return NULL;
12747 }
12748 int _start_lineno = p->tokens[_mark]->lineno;
12749 UNUSED(_start_lineno); // Only used by EXTRA macro
12750 int _start_col_offset = p->tokens[_mark]->col_offset;
12751 UNUSED(_start_col_offset); // Only used by EXTRA macro
12752 { // bitwise_xor '^' bitwise_and
12753 if (p->error_indicator) {
12754 D(p->level--);
12755 return NULL;
12756 }
12757 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12758 Token * _literal;
12759 expr_ty a;
12760 expr_ty b;
12761 if (
12762 (a = bitwise_xor_rule(p)) // bitwise_xor
12763 &&
12764 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12765 &&
12766 (b = bitwise_and_rule(p)) // bitwise_and
12767 )
12768 {
12769 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12770 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12771 if (_token == NULL) {
12772 D(p->level--);
12773 return NULL;
12774 }
12775 int _end_lineno = _token->end_lineno;
12776 UNUSED(_end_lineno); // Only used by EXTRA macro
12777 int _end_col_offset = _token->end_col_offset;
12778 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012779 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012780 if (_res == NULL && PyErr_Occurred()) {
12781 p->error_indicator = 1;
12782 D(p->level--);
12783 return NULL;
12784 }
12785 goto done;
12786 }
12787 p->mark = _mark;
12788 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12790 }
12791 { // bitwise_and
12792 if (p->error_indicator) {
12793 D(p->level--);
12794 return NULL;
12795 }
12796 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12797 expr_ty bitwise_and_var;
12798 if (
12799 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12800 )
12801 {
12802 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12803 _res = bitwise_and_var;
12804 goto done;
12805 }
12806 p->mark = _mark;
12807 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12809 }
12810 _res = NULL;
12811 done:
12812 D(p->level--);
12813 return _res;
12814}
12815
12816// Left-recursive
12817// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12818static expr_ty bitwise_and_raw(Parser *);
12819static expr_ty
12820bitwise_and_rule(Parser *p)
12821{
12822 D(p->level++);
12823 expr_ty _res = NULL;
12824 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12825 D(p->level--);
12826 return _res;
12827 }
12828 int _mark = p->mark;
12829 int _resmark = p->mark;
12830 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012831 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12832 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012833 D(p->level--);
12834 return _res;
12835 }
12836 p->mark = _mark;
12837 void *_raw = bitwise_and_raw(p);
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;
12953 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012954 if (p->error_indicator)
12955 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012956 if (_raw == NULL || p->mark <= _resmark)
12957 break;
12958 _resmark = p->mark;
12959 _res = _raw;
12960 }
12961 p->mark = _resmark;
12962 D(p->level--);
12963 return _res;
12964}
12965static expr_ty
12966shift_expr_raw(Parser *p)
12967{
12968 D(p->level++);
12969 if (p->error_indicator) {
12970 D(p->level--);
12971 return NULL;
12972 }
12973 expr_ty _res = NULL;
12974 int _mark = p->mark;
12975 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12976 p->error_indicator = 1;
12977 D(p->level--);
12978 return NULL;
12979 }
12980 int _start_lineno = p->tokens[_mark]->lineno;
12981 UNUSED(_start_lineno); // Only used by EXTRA macro
12982 int _start_col_offset = p->tokens[_mark]->col_offset;
12983 UNUSED(_start_col_offset); // Only used by EXTRA macro
12984 { // shift_expr '<<' sum
12985 if (p->error_indicator) {
12986 D(p->level--);
12987 return NULL;
12988 }
12989 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12990 Token * _literal;
12991 expr_ty a;
12992 expr_ty b;
12993 if (
12994 (a = shift_expr_rule(p)) // shift_expr
12995 &&
12996 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12997 &&
12998 (b = sum_rule(p)) // sum
12999 )
13000 {
13001 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13003 if (_token == NULL) {
13004 D(p->level--);
13005 return NULL;
13006 }
13007 int _end_lineno = _token->end_lineno;
13008 UNUSED(_end_lineno); // Only used by EXTRA macro
13009 int _end_col_offset = _token->end_col_offset;
13010 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013011 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013012 if (_res == NULL && PyErr_Occurred()) {
13013 p->error_indicator = 1;
13014 D(p->level--);
13015 return NULL;
13016 }
13017 goto done;
13018 }
13019 p->mark = _mark;
13020 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
13022 }
13023 { // shift_expr '>>' sum
13024 if (p->error_indicator) {
13025 D(p->level--);
13026 return NULL;
13027 }
13028 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13029 Token * _literal;
13030 expr_ty a;
13031 expr_ty b;
13032 if (
13033 (a = shift_expr_rule(p)) // shift_expr
13034 &&
13035 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13036 &&
13037 (b = sum_rule(p)) // sum
13038 )
13039 {
13040 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13042 if (_token == NULL) {
13043 D(p->level--);
13044 return NULL;
13045 }
13046 int _end_lineno = _token->end_lineno;
13047 UNUSED(_end_lineno); // Only used by EXTRA macro
13048 int _end_col_offset = _token->end_col_offset;
13049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013050 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013051 if (_res == NULL && PyErr_Occurred()) {
13052 p->error_indicator = 1;
13053 D(p->level--);
13054 return NULL;
13055 }
13056 goto done;
13057 }
13058 p->mark = _mark;
13059 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13061 }
13062 { // sum
13063 if (p->error_indicator) {
13064 D(p->level--);
13065 return NULL;
13066 }
13067 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13068 expr_ty sum_var;
13069 if (
13070 (sum_var = sum_rule(p)) // sum
13071 )
13072 {
13073 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13074 _res = sum_var;
13075 goto done;
13076 }
13077 p->mark = _mark;
13078 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13080 }
13081 _res = NULL;
13082 done:
13083 D(p->level--);
13084 return _res;
13085}
13086
13087// Left-recursive
13088// sum: sum '+' term | sum '-' term | term
13089static expr_ty sum_raw(Parser *);
13090static expr_ty
13091sum_rule(Parser *p)
13092{
13093 D(p->level++);
13094 expr_ty _res = NULL;
13095 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13096 D(p->level--);
13097 return _res;
13098 }
13099 int _mark = p->mark;
13100 int _resmark = p->mark;
13101 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013102 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13103 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013104 D(p->level--);
13105 return _res;
13106 }
13107 p->mark = _mark;
13108 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013109 if (p->error_indicator)
13110 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013111 if (_raw == NULL || p->mark <= _resmark)
13112 break;
13113 _resmark = p->mark;
13114 _res = _raw;
13115 }
13116 p->mark = _resmark;
13117 D(p->level--);
13118 return _res;
13119}
13120static expr_ty
13121sum_raw(Parser *p)
13122{
13123 D(p->level++);
13124 if (p->error_indicator) {
13125 D(p->level--);
13126 return NULL;
13127 }
13128 expr_ty _res = NULL;
13129 int _mark = p->mark;
13130 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13131 p->error_indicator = 1;
13132 D(p->level--);
13133 return NULL;
13134 }
13135 int _start_lineno = p->tokens[_mark]->lineno;
13136 UNUSED(_start_lineno); // Only used by EXTRA macro
13137 int _start_col_offset = p->tokens[_mark]->col_offset;
13138 UNUSED(_start_col_offset); // Only used by EXTRA macro
13139 { // sum '+' term
13140 if (p->error_indicator) {
13141 D(p->level--);
13142 return NULL;
13143 }
13144 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13145 Token * _literal;
13146 expr_ty a;
13147 expr_ty b;
13148 if (
13149 (a = sum_rule(p)) // sum
13150 &&
13151 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13152 &&
13153 (b = term_rule(p)) // term
13154 )
13155 {
13156 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13157 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13158 if (_token == NULL) {
13159 D(p->level--);
13160 return NULL;
13161 }
13162 int _end_lineno = _token->end_lineno;
13163 UNUSED(_end_lineno); // Only used by EXTRA macro
13164 int _end_col_offset = _token->end_col_offset;
13165 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013166 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013167 if (_res == NULL && PyErr_Occurred()) {
13168 p->error_indicator = 1;
13169 D(p->level--);
13170 return NULL;
13171 }
13172 goto done;
13173 }
13174 p->mark = _mark;
13175 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13177 }
13178 { // sum '-' term
13179 if (p->error_indicator) {
13180 D(p->level--);
13181 return NULL;
13182 }
13183 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13184 Token * _literal;
13185 expr_ty a;
13186 expr_ty b;
13187 if (
13188 (a = sum_rule(p)) // sum
13189 &&
13190 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13191 &&
13192 (b = term_rule(p)) // term
13193 )
13194 {
13195 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13196 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13197 if (_token == NULL) {
13198 D(p->level--);
13199 return NULL;
13200 }
13201 int _end_lineno = _token->end_lineno;
13202 UNUSED(_end_lineno); // Only used by EXTRA macro
13203 int _end_col_offset = _token->end_col_offset;
13204 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013205 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013206 if (_res == NULL && PyErr_Occurred()) {
13207 p->error_indicator = 1;
13208 D(p->level--);
13209 return NULL;
13210 }
13211 goto done;
13212 }
13213 p->mark = _mark;
13214 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13216 }
13217 { // term
13218 if (p->error_indicator) {
13219 D(p->level--);
13220 return NULL;
13221 }
13222 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13223 expr_ty term_var;
13224 if (
13225 (term_var = term_rule(p)) // term
13226 )
13227 {
13228 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13229 _res = term_var;
13230 goto done;
13231 }
13232 p->mark = _mark;
13233 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13235 }
13236 _res = NULL;
13237 done:
13238 D(p->level--);
13239 return _res;
13240}
13241
13242// Left-recursive
13243// term:
13244// | term '*' factor
13245// | term '/' factor
13246// | term '//' factor
13247// | term '%' factor
13248// | term '@' factor
13249// | factor
13250static expr_ty term_raw(Parser *);
13251static expr_ty
13252term_rule(Parser *p)
13253{
13254 D(p->level++);
13255 expr_ty _res = NULL;
13256 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13257 D(p->level--);
13258 return _res;
13259 }
13260 int _mark = p->mark;
13261 int _resmark = p->mark;
13262 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013263 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13264 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013265 D(p->level--);
13266 return _res;
13267 }
13268 p->mark = _mark;
13269 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013270 if (p->error_indicator)
13271 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013272 if (_raw == NULL || p->mark <= _resmark)
13273 break;
13274 _resmark = p->mark;
13275 _res = _raw;
13276 }
13277 p->mark = _resmark;
13278 D(p->level--);
13279 return _res;
13280}
13281static expr_ty
13282term_raw(Parser *p)
13283{
13284 D(p->level++);
13285 if (p->error_indicator) {
13286 D(p->level--);
13287 return NULL;
13288 }
13289 expr_ty _res = NULL;
13290 int _mark = p->mark;
13291 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13292 p->error_indicator = 1;
13293 D(p->level--);
13294 return NULL;
13295 }
13296 int _start_lineno = p->tokens[_mark]->lineno;
13297 UNUSED(_start_lineno); // Only used by EXTRA macro
13298 int _start_col_offset = p->tokens[_mark]->col_offset;
13299 UNUSED(_start_col_offset); // Only used by EXTRA macro
13300 { // term '*' factor
13301 if (p->error_indicator) {
13302 D(p->level--);
13303 return NULL;
13304 }
13305 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13306 Token * _literal;
13307 expr_ty a;
13308 expr_ty b;
13309 if (
13310 (a = term_rule(p)) // term
13311 &&
13312 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13313 &&
13314 (b = factor_rule(p)) // factor
13315 )
13316 {
13317 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13318 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13319 if (_token == NULL) {
13320 D(p->level--);
13321 return NULL;
13322 }
13323 int _end_lineno = _token->end_lineno;
13324 UNUSED(_end_lineno); // Only used by EXTRA macro
13325 int _end_col_offset = _token->end_col_offset;
13326 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013327 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013328 if (_res == NULL && PyErr_Occurred()) {
13329 p->error_indicator = 1;
13330 D(p->level--);
13331 return NULL;
13332 }
13333 goto done;
13334 }
13335 p->mark = _mark;
13336 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13338 }
13339 { // term '/' factor
13340 if (p->error_indicator) {
13341 D(p->level--);
13342 return NULL;
13343 }
13344 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13345 Token * _literal;
13346 expr_ty a;
13347 expr_ty b;
13348 if (
13349 (a = term_rule(p)) // term
13350 &&
13351 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13352 &&
13353 (b = factor_rule(p)) // factor
13354 )
13355 {
13356 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13357 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13358 if (_token == NULL) {
13359 D(p->level--);
13360 return NULL;
13361 }
13362 int _end_lineno = _token->end_lineno;
13363 UNUSED(_end_lineno); // Only used by EXTRA macro
13364 int _end_col_offset = _token->end_col_offset;
13365 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013366 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013367 if (_res == NULL && PyErr_Occurred()) {
13368 p->error_indicator = 1;
13369 D(p->level--);
13370 return NULL;
13371 }
13372 goto done;
13373 }
13374 p->mark = _mark;
13375 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13377 }
13378 { // term '//' factor
13379 if (p->error_indicator) {
13380 D(p->level--);
13381 return NULL;
13382 }
13383 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13384 Token * _literal;
13385 expr_ty a;
13386 expr_ty b;
13387 if (
13388 (a = term_rule(p)) // term
13389 &&
13390 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13391 &&
13392 (b = factor_rule(p)) // factor
13393 )
13394 {
13395 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13396 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13397 if (_token == NULL) {
13398 D(p->level--);
13399 return NULL;
13400 }
13401 int _end_lineno = _token->end_lineno;
13402 UNUSED(_end_lineno); // Only used by EXTRA macro
13403 int _end_col_offset = _token->end_col_offset;
13404 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013405 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013406 if (_res == NULL && PyErr_Occurred()) {
13407 p->error_indicator = 1;
13408 D(p->level--);
13409 return NULL;
13410 }
13411 goto done;
13412 }
13413 p->mark = _mark;
13414 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13416 }
13417 { // term '%' factor
13418 if (p->error_indicator) {
13419 D(p->level--);
13420 return NULL;
13421 }
13422 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13423 Token * _literal;
13424 expr_ty a;
13425 expr_ty b;
13426 if (
13427 (a = term_rule(p)) // term
13428 &&
13429 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13430 &&
13431 (b = factor_rule(p)) // factor
13432 )
13433 {
13434 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13435 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13436 if (_token == NULL) {
13437 D(p->level--);
13438 return NULL;
13439 }
13440 int _end_lineno = _token->end_lineno;
13441 UNUSED(_end_lineno); // Only used by EXTRA macro
13442 int _end_col_offset = _token->end_col_offset;
13443 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013444 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013445 if (_res == NULL && PyErr_Occurred()) {
13446 p->error_indicator = 1;
13447 D(p->level--);
13448 return NULL;
13449 }
13450 goto done;
13451 }
13452 p->mark = _mark;
13453 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13455 }
13456 { // term '@' factor
13457 if (p->error_indicator) {
13458 D(p->level--);
13459 return NULL;
13460 }
13461 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13462 Token * _literal;
13463 expr_ty a;
13464 expr_ty b;
13465 if (
13466 (a = term_rule(p)) // term
13467 &&
13468 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13469 &&
13470 (b = factor_rule(p)) // factor
13471 )
13472 {
13473 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13474 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13475 if (_token == NULL) {
13476 D(p->level--);
13477 return NULL;
13478 }
13479 int _end_lineno = _token->end_lineno;
13480 UNUSED(_end_lineno); // Only used by EXTRA macro
13481 int _end_col_offset = _token->end_col_offset;
13482 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013483 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013484 if (_res == NULL && PyErr_Occurred()) {
13485 p->error_indicator = 1;
13486 D(p->level--);
13487 return NULL;
13488 }
13489 goto done;
13490 }
13491 p->mark = _mark;
13492 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13494 }
13495 { // factor
13496 if (p->error_indicator) {
13497 D(p->level--);
13498 return NULL;
13499 }
13500 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13501 expr_ty factor_var;
13502 if (
13503 (factor_var = factor_rule(p)) // factor
13504 )
13505 {
13506 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13507 _res = factor_var;
13508 goto done;
13509 }
13510 p->mark = _mark;
13511 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13513 }
13514 _res = NULL;
13515 done:
13516 D(p->level--);
13517 return _res;
13518}
13519
13520// factor: '+' factor | '-' factor | '~' factor | power
13521static expr_ty
13522factor_rule(Parser *p)
13523{
13524 D(p->level++);
13525 if (p->error_indicator) {
13526 D(p->level--);
13527 return NULL;
13528 }
13529 expr_ty _res = NULL;
13530 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13531 D(p->level--);
13532 return _res;
13533 }
13534 int _mark = p->mark;
13535 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13536 p->error_indicator = 1;
13537 D(p->level--);
13538 return NULL;
13539 }
13540 int _start_lineno = p->tokens[_mark]->lineno;
13541 UNUSED(_start_lineno); // Only used by EXTRA macro
13542 int _start_col_offset = p->tokens[_mark]->col_offset;
13543 UNUSED(_start_col_offset); // Only used by EXTRA macro
13544 { // '+' factor
13545 if (p->error_indicator) {
13546 D(p->level--);
13547 return NULL;
13548 }
13549 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13550 Token * _literal;
13551 expr_ty a;
13552 if (
13553 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13554 &&
13555 (a = factor_rule(p)) // factor
13556 )
13557 {
13558 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13559 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13560 if (_token == NULL) {
13561 D(p->level--);
13562 return NULL;
13563 }
13564 int _end_lineno = _token->end_lineno;
13565 UNUSED(_end_lineno); // Only used by EXTRA macro
13566 int _end_col_offset = _token->end_col_offset;
13567 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013568 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013569 if (_res == NULL && PyErr_Occurred()) {
13570 p->error_indicator = 1;
13571 D(p->level--);
13572 return NULL;
13573 }
13574 goto done;
13575 }
13576 p->mark = _mark;
13577 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13579 }
13580 { // '-' factor
13581 if (p->error_indicator) {
13582 D(p->level--);
13583 return NULL;
13584 }
13585 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13586 Token * _literal;
13587 expr_ty a;
13588 if (
13589 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13590 &&
13591 (a = factor_rule(p)) // factor
13592 )
13593 {
13594 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13595 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13596 if (_token == NULL) {
13597 D(p->level--);
13598 return NULL;
13599 }
13600 int _end_lineno = _token->end_lineno;
13601 UNUSED(_end_lineno); // Only used by EXTRA macro
13602 int _end_col_offset = _token->end_col_offset;
13603 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013604 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013605 if (_res == NULL && PyErr_Occurred()) {
13606 p->error_indicator = 1;
13607 D(p->level--);
13608 return NULL;
13609 }
13610 goto done;
13611 }
13612 p->mark = _mark;
13613 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13615 }
13616 { // '~' factor
13617 if (p->error_indicator) {
13618 D(p->level--);
13619 return NULL;
13620 }
13621 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13622 Token * _literal;
13623 expr_ty a;
13624 if (
13625 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13626 &&
13627 (a = factor_rule(p)) // factor
13628 )
13629 {
13630 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13631 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13632 if (_token == NULL) {
13633 D(p->level--);
13634 return NULL;
13635 }
13636 int _end_lineno = _token->end_lineno;
13637 UNUSED(_end_lineno); // Only used by EXTRA macro
13638 int _end_col_offset = _token->end_col_offset;
13639 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013640 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013641 if (_res == NULL && PyErr_Occurred()) {
13642 p->error_indicator = 1;
13643 D(p->level--);
13644 return NULL;
13645 }
13646 goto done;
13647 }
13648 p->mark = _mark;
13649 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13651 }
13652 { // power
13653 if (p->error_indicator) {
13654 D(p->level--);
13655 return NULL;
13656 }
13657 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13658 expr_ty power_var;
13659 if (
13660 (power_var = power_rule(p)) // power
13661 )
13662 {
13663 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13664 _res = power_var;
13665 goto done;
13666 }
13667 p->mark = _mark;
13668 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13670 }
13671 _res = NULL;
13672 done:
13673 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13674 D(p->level--);
13675 return _res;
13676}
13677
13678// power: await_primary '**' factor | await_primary
13679static expr_ty
13680power_rule(Parser *p)
13681{
13682 D(p->level++);
13683 if (p->error_indicator) {
13684 D(p->level--);
13685 return NULL;
13686 }
13687 expr_ty _res = NULL;
13688 int _mark = p->mark;
13689 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13690 p->error_indicator = 1;
13691 D(p->level--);
13692 return NULL;
13693 }
13694 int _start_lineno = p->tokens[_mark]->lineno;
13695 UNUSED(_start_lineno); // Only used by EXTRA macro
13696 int _start_col_offset = p->tokens[_mark]->col_offset;
13697 UNUSED(_start_col_offset); // Only used by EXTRA macro
13698 { // await_primary '**' factor
13699 if (p->error_indicator) {
13700 D(p->level--);
13701 return NULL;
13702 }
13703 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13704 Token * _literal;
13705 expr_ty a;
13706 expr_ty b;
13707 if (
13708 (a = await_primary_rule(p)) // await_primary
13709 &&
13710 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13711 &&
13712 (b = factor_rule(p)) // factor
13713 )
13714 {
13715 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13716 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13717 if (_token == NULL) {
13718 D(p->level--);
13719 return NULL;
13720 }
13721 int _end_lineno = _token->end_lineno;
13722 UNUSED(_end_lineno); // Only used by EXTRA macro
13723 int _end_col_offset = _token->end_col_offset;
13724 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013725 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013726 if (_res == NULL && PyErr_Occurred()) {
13727 p->error_indicator = 1;
13728 D(p->level--);
13729 return NULL;
13730 }
13731 goto done;
13732 }
13733 p->mark = _mark;
13734 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13736 }
13737 { // await_primary
13738 if (p->error_indicator) {
13739 D(p->level--);
13740 return NULL;
13741 }
13742 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13743 expr_ty await_primary_var;
13744 if (
13745 (await_primary_var = await_primary_rule(p)) // await_primary
13746 )
13747 {
13748 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13749 _res = await_primary_var;
13750 goto done;
13751 }
13752 p->mark = _mark;
13753 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13755 }
13756 _res = NULL;
13757 done:
13758 D(p->level--);
13759 return _res;
13760}
13761
13762// await_primary: AWAIT primary | primary
13763static expr_ty
13764await_primary_rule(Parser *p)
13765{
13766 D(p->level++);
13767 if (p->error_indicator) {
13768 D(p->level--);
13769 return NULL;
13770 }
13771 expr_ty _res = NULL;
13772 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13773 D(p->level--);
13774 return _res;
13775 }
13776 int _mark = p->mark;
13777 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13778 p->error_indicator = 1;
13779 D(p->level--);
13780 return NULL;
13781 }
13782 int _start_lineno = p->tokens[_mark]->lineno;
13783 UNUSED(_start_lineno); // Only used by EXTRA macro
13784 int _start_col_offset = p->tokens[_mark]->col_offset;
13785 UNUSED(_start_col_offset); // Only used by EXTRA macro
13786 { // AWAIT primary
13787 if (p->error_indicator) {
13788 D(p->level--);
13789 return NULL;
13790 }
13791 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13792 expr_ty a;
13793 Token * await_var;
13794 if (
13795 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13796 &&
13797 (a = primary_rule(p)) // primary
13798 )
13799 {
13800 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13801 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13802 if (_token == NULL) {
13803 D(p->level--);
13804 return NULL;
13805 }
13806 int _end_lineno = _token->end_lineno;
13807 UNUSED(_end_lineno); // Only used by EXTRA macro
13808 int _end_col_offset = _token->end_col_offset;
13809 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013810 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013811 if (_res == NULL && PyErr_Occurred()) {
13812 p->error_indicator = 1;
13813 D(p->level--);
13814 return NULL;
13815 }
13816 goto done;
13817 }
13818 p->mark = _mark;
13819 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13821 }
13822 { // primary
13823 if (p->error_indicator) {
13824 D(p->level--);
13825 return NULL;
13826 }
13827 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13828 expr_ty primary_var;
13829 if (
13830 (primary_var = primary_rule(p)) // primary
13831 )
13832 {
13833 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13834 _res = primary_var;
13835 goto done;
13836 }
13837 p->mark = _mark;
13838 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13840 }
13841 _res = NULL;
13842 done:
13843 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13844 D(p->level--);
13845 return _res;
13846}
13847
13848// Left-recursive
13849// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013850// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013851// | primary '.' NAME
13852// | primary genexp
13853// | primary '(' arguments? ')'
13854// | primary '[' slices ']'
13855// | atom
13856static expr_ty primary_raw(Parser *);
13857static expr_ty
13858primary_rule(Parser *p)
13859{
13860 D(p->level++);
13861 expr_ty _res = NULL;
13862 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13863 D(p->level--);
13864 return _res;
13865 }
13866 int _mark = p->mark;
13867 int _resmark = p->mark;
13868 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013869 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13870 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013871 D(p->level--);
13872 return _res;
13873 }
13874 p->mark = _mark;
13875 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013876 if (p->error_indicator)
13877 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013878 if (_raw == NULL || p->mark <= _resmark)
13879 break;
13880 _resmark = p->mark;
13881 _res = _raw;
13882 }
13883 p->mark = _resmark;
13884 D(p->level--);
13885 return _res;
13886}
13887static expr_ty
13888primary_raw(Parser *p)
13889{
13890 D(p->level++);
13891 if (p->error_indicator) {
13892 D(p->level--);
13893 return NULL;
13894 }
13895 expr_ty _res = NULL;
13896 int _mark = p->mark;
13897 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13898 p->error_indicator = 1;
13899 D(p->level--);
13900 return NULL;
13901 }
13902 int _start_lineno = p->tokens[_mark]->lineno;
13903 UNUSED(_start_lineno); // Only used by EXTRA macro
13904 int _start_col_offset = p->tokens[_mark]->col_offset;
13905 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013906 if (p->call_invalid_rules) { // invalid_primary
13907 if (p->error_indicator) {
13908 D(p->level--);
13909 return NULL;
13910 }
13911 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13912 void *invalid_primary_var;
13913 if (
13914 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13915 )
13916 {
13917 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13918 _res = invalid_primary_var;
13919 goto done;
13920 }
13921 p->mark = _mark;
13922 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13924 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013925 { // primary '.' NAME
13926 if (p->error_indicator) {
13927 D(p->level--);
13928 return NULL;
13929 }
13930 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13931 Token * _literal;
13932 expr_ty a;
13933 expr_ty b;
13934 if (
13935 (a = primary_rule(p)) // primary
13936 &&
13937 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13938 &&
13939 (b = _PyPegen_name_token(p)) // NAME
13940 )
13941 {
13942 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13943 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13944 if (_token == NULL) {
13945 D(p->level--);
13946 return NULL;
13947 }
13948 int _end_lineno = _token->end_lineno;
13949 UNUSED(_end_lineno); // Only used by EXTRA macro
13950 int _end_col_offset = _token->end_col_offset;
13951 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013952 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013953 if (_res == NULL && PyErr_Occurred()) {
13954 p->error_indicator = 1;
13955 D(p->level--);
13956 return NULL;
13957 }
13958 goto done;
13959 }
13960 p->mark = _mark;
13961 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13963 }
13964 { // primary genexp
13965 if (p->error_indicator) {
13966 D(p->level--);
13967 return NULL;
13968 }
13969 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13970 expr_ty a;
13971 expr_ty b;
13972 if (
13973 (a = primary_rule(p)) // primary
13974 &&
13975 (b = genexp_rule(p)) // genexp
13976 )
13977 {
13978 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13979 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13980 if (_token == NULL) {
13981 D(p->level--);
13982 return NULL;
13983 }
13984 int _end_lineno = _token->end_lineno;
13985 UNUSED(_end_lineno); // Only used by EXTRA macro
13986 int _end_col_offset = _token->end_col_offset;
13987 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013988 _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 +010013989 if (_res == NULL && PyErr_Occurred()) {
13990 p->error_indicator = 1;
13991 D(p->level--);
13992 return NULL;
13993 }
13994 goto done;
13995 }
13996 p->mark = _mark;
13997 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13999 }
14000 { // primary '(' arguments? ')'
14001 if (p->error_indicator) {
14002 D(p->level--);
14003 return NULL;
14004 }
14005 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14006 Token * _literal;
14007 Token * _literal_1;
14008 expr_ty a;
14009 void *b;
14010 if (
14011 (a = primary_rule(p)) // primary
14012 &&
14013 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14014 &&
14015 (b = arguments_rule(p), 1) // arguments?
14016 &&
14017 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14018 )
14019 {
14020 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14021 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14022 if (_token == NULL) {
14023 D(p->level--);
14024 return NULL;
14025 }
14026 int _end_lineno = _token->end_lineno;
14027 UNUSED(_end_lineno); // Only used by EXTRA macro
14028 int _end_col_offset = _token->end_col_offset;
14029 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014030 _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 +010014031 if (_res == NULL && PyErr_Occurred()) {
14032 p->error_indicator = 1;
14033 D(p->level--);
14034 return NULL;
14035 }
14036 goto done;
14037 }
14038 p->mark = _mark;
14039 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14041 }
14042 { // primary '[' slices ']'
14043 if (p->error_indicator) {
14044 D(p->level--);
14045 return NULL;
14046 }
14047 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14048 Token * _literal;
14049 Token * _literal_1;
14050 expr_ty a;
14051 expr_ty b;
14052 if (
14053 (a = primary_rule(p)) // primary
14054 &&
14055 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14056 &&
14057 (b = slices_rule(p)) // slices
14058 &&
14059 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14060 )
14061 {
14062 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14063 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14064 if (_token == NULL) {
14065 D(p->level--);
14066 return NULL;
14067 }
14068 int _end_lineno = _token->end_lineno;
14069 UNUSED(_end_lineno); // Only used by EXTRA macro
14070 int _end_col_offset = _token->end_col_offset;
14071 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014072 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014073 if (_res == NULL && PyErr_Occurred()) {
14074 p->error_indicator = 1;
14075 D(p->level--);
14076 return NULL;
14077 }
14078 goto done;
14079 }
14080 p->mark = _mark;
14081 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14083 }
14084 { // atom
14085 if (p->error_indicator) {
14086 D(p->level--);
14087 return NULL;
14088 }
14089 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14090 expr_ty atom_var;
14091 if (
14092 (atom_var = atom_rule(p)) // atom
14093 )
14094 {
14095 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14096 _res = atom_var;
14097 goto done;
14098 }
14099 p->mark = _mark;
14100 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14102 }
14103 _res = NULL;
14104 done:
14105 D(p->level--);
14106 return _res;
14107}
14108
14109// slices: slice !',' | ','.slice+ ','?
14110static expr_ty
14111slices_rule(Parser *p)
14112{
14113 D(p->level++);
14114 if (p->error_indicator) {
14115 D(p->level--);
14116 return NULL;
14117 }
14118 expr_ty _res = NULL;
14119 int _mark = p->mark;
14120 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14121 p->error_indicator = 1;
14122 D(p->level--);
14123 return NULL;
14124 }
14125 int _start_lineno = p->tokens[_mark]->lineno;
14126 UNUSED(_start_lineno); // Only used by EXTRA macro
14127 int _start_col_offset = p->tokens[_mark]->col_offset;
14128 UNUSED(_start_col_offset); // Only used by EXTRA macro
14129 { // slice !','
14130 if (p->error_indicator) {
14131 D(p->level--);
14132 return NULL;
14133 }
14134 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14135 expr_ty a;
14136 if (
14137 (a = slice_rule(p)) // slice
14138 &&
14139 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14140 )
14141 {
14142 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14143 _res = a;
14144 if (_res == NULL && PyErr_Occurred()) {
14145 p->error_indicator = 1;
14146 D(p->level--);
14147 return NULL;
14148 }
14149 goto done;
14150 }
14151 p->mark = _mark;
14152 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14154 }
14155 { // ','.slice+ ','?
14156 if (p->error_indicator) {
14157 D(p->level--);
14158 return NULL;
14159 }
14160 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14161 void *_opt_var;
14162 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014163 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014164 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014165 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014166 &&
14167 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14168 )
14169 {
14170 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14171 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14172 if (_token == NULL) {
14173 D(p->level--);
14174 return NULL;
14175 }
14176 int _end_lineno = _token->end_lineno;
14177 UNUSED(_end_lineno); // Only used by EXTRA macro
14178 int _end_col_offset = _token->end_col_offset;
14179 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014180 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014181 if (_res == NULL && PyErr_Occurred()) {
14182 p->error_indicator = 1;
14183 D(p->level--);
14184 return NULL;
14185 }
14186 goto done;
14187 }
14188 p->mark = _mark;
14189 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14191 }
14192 _res = NULL;
14193 done:
14194 D(p->level--);
14195 return _res;
14196}
14197
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014198// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014199static expr_ty
14200slice_rule(Parser *p)
14201{
14202 D(p->level++);
14203 if (p->error_indicator) {
14204 D(p->level--);
14205 return NULL;
14206 }
14207 expr_ty _res = NULL;
14208 int _mark = p->mark;
14209 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14210 p->error_indicator = 1;
14211 D(p->level--);
14212 return NULL;
14213 }
14214 int _start_lineno = p->tokens[_mark]->lineno;
14215 UNUSED(_start_lineno); // Only used by EXTRA macro
14216 int _start_col_offset = p->tokens[_mark]->col_offset;
14217 UNUSED(_start_col_offset); // Only used by EXTRA macro
14218 { // expression? ':' expression? [':' expression?]
14219 if (p->error_indicator) {
14220 D(p->level--);
14221 return NULL;
14222 }
14223 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14224 Token * _literal;
14225 void *a;
14226 void *b;
14227 void *c;
14228 if (
14229 (a = expression_rule(p), 1) // expression?
14230 &&
14231 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14232 &&
14233 (b = expression_rule(p), 1) // expression?
14234 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014235 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014236 )
14237 {
14238 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14239 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14240 if (_token == NULL) {
14241 D(p->level--);
14242 return NULL;
14243 }
14244 int _end_lineno = _token->end_lineno;
14245 UNUSED(_end_lineno); // Only used by EXTRA macro
14246 int _end_col_offset = _token->end_col_offset;
14247 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014248 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014249 if (_res == NULL && PyErr_Occurred()) {
14250 p->error_indicator = 1;
14251 D(p->level--);
14252 return NULL;
14253 }
14254 goto done;
14255 }
14256 p->mark = _mark;
14257 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14258 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14259 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014260 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014261 if (p->error_indicator) {
14262 D(p->level--);
14263 return NULL;
14264 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014265 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014266 expr_ty a;
14267 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014268 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014269 )
14270 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014271 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014272 _res = a;
14273 if (_res == NULL && PyErr_Occurred()) {
14274 p->error_indicator = 1;
14275 D(p->level--);
14276 return NULL;
14277 }
14278 goto done;
14279 }
14280 p->mark = _mark;
14281 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014283 }
14284 _res = NULL;
14285 done:
14286 D(p->level--);
14287 return _res;
14288}
14289
14290// atom:
14291// | NAME
14292// | 'True'
14293// | 'False'
14294// | 'None'
14295// | &STRING strings
14296// | NUMBER
14297// | &'(' (tuple | group | genexp)
14298// | &'[' (list | listcomp)
14299// | &'{' (dict | set | dictcomp | setcomp)
14300// | '...'
14301static expr_ty
14302atom_rule(Parser *p)
14303{
14304 D(p->level++);
14305 if (p->error_indicator) {
14306 D(p->level--);
14307 return NULL;
14308 }
14309 expr_ty _res = NULL;
14310 int _mark = p->mark;
14311 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14312 p->error_indicator = 1;
14313 D(p->level--);
14314 return NULL;
14315 }
14316 int _start_lineno = p->tokens[_mark]->lineno;
14317 UNUSED(_start_lineno); // Only used by EXTRA macro
14318 int _start_col_offset = p->tokens[_mark]->col_offset;
14319 UNUSED(_start_col_offset); // Only used by EXTRA macro
14320 { // NAME
14321 if (p->error_indicator) {
14322 D(p->level--);
14323 return NULL;
14324 }
14325 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14326 expr_ty name_var;
14327 if (
14328 (name_var = _PyPegen_name_token(p)) // NAME
14329 )
14330 {
14331 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14332 _res = name_var;
14333 goto done;
14334 }
14335 p->mark = _mark;
14336 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14338 }
14339 { // 'True'
14340 if (p->error_indicator) {
14341 D(p->level--);
14342 return NULL;
14343 }
14344 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14345 Token * _keyword;
14346 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014347 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014348 )
14349 {
14350 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14351 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14352 if (_token == NULL) {
14353 D(p->level--);
14354 return NULL;
14355 }
14356 int _end_lineno = _token->end_lineno;
14357 UNUSED(_end_lineno); // Only used by EXTRA macro
14358 int _end_col_offset = _token->end_col_offset;
14359 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014360 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014361 if (_res == NULL && PyErr_Occurred()) {
14362 p->error_indicator = 1;
14363 D(p->level--);
14364 return NULL;
14365 }
14366 goto done;
14367 }
14368 p->mark = _mark;
14369 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14371 }
14372 { // 'False'
14373 if (p->error_indicator) {
14374 D(p->level--);
14375 return NULL;
14376 }
14377 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14378 Token * _keyword;
14379 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014380 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014381 )
14382 {
14383 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14384 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14385 if (_token == NULL) {
14386 D(p->level--);
14387 return NULL;
14388 }
14389 int _end_lineno = _token->end_lineno;
14390 UNUSED(_end_lineno); // Only used by EXTRA macro
14391 int _end_col_offset = _token->end_col_offset;
14392 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014393 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014394 if (_res == NULL && PyErr_Occurred()) {
14395 p->error_indicator = 1;
14396 D(p->level--);
14397 return NULL;
14398 }
14399 goto done;
14400 }
14401 p->mark = _mark;
14402 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14404 }
14405 { // 'None'
14406 if (p->error_indicator) {
14407 D(p->level--);
14408 return NULL;
14409 }
14410 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14411 Token * _keyword;
14412 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014413 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014414 )
14415 {
14416 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14417 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14418 if (_token == NULL) {
14419 D(p->level--);
14420 return NULL;
14421 }
14422 int _end_lineno = _token->end_lineno;
14423 UNUSED(_end_lineno); // Only used by EXTRA macro
14424 int _end_col_offset = _token->end_col_offset;
14425 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014426 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014427 if (_res == NULL && PyErr_Occurred()) {
14428 p->error_indicator = 1;
14429 D(p->level--);
14430 return NULL;
14431 }
14432 goto done;
14433 }
14434 p->mark = _mark;
14435 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14437 }
14438 { // &STRING strings
14439 if (p->error_indicator) {
14440 D(p->level--);
14441 return NULL;
14442 }
14443 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14444 expr_ty strings_var;
14445 if (
14446 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14447 &&
14448 (strings_var = strings_rule(p)) // strings
14449 )
14450 {
14451 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14452 _res = strings_var;
14453 goto done;
14454 }
14455 p->mark = _mark;
14456 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14458 }
14459 { // NUMBER
14460 if (p->error_indicator) {
14461 D(p->level--);
14462 return NULL;
14463 }
14464 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14465 expr_ty number_var;
14466 if (
14467 (number_var = _PyPegen_number_token(p)) // NUMBER
14468 )
14469 {
14470 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14471 _res = number_var;
14472 goto done;
14473 }
14474 p->mark = _mark;
14475 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14477 }
14478 { // &'(' (tuple | group | genexp)
14479 if (p->error_indicator) {
14480 D(p->level--);
14481 return NULL;
14482 }
14483 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014484 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014485 if (
14486 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14487 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014488 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014489 )
14490 {
14491 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 -080014492 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014493 goto done;
14494 }
14495 p->mark = _mark;
14496 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14498 }
14499 { // &'[' (list | listcomp)
14500 if (p->error_indicator) {
14501 D(p->level--);
14502 return NULL;
14503 }
14504 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014505 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014506 if (
14507 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14508 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014509 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014510 )
14511 {
14512 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014513 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014514 goto done;
14515 }
14516 p->mark = _mark;
14517 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14519 }
14520 { // &'{' (dict | set | dictcomp | setcomp)
14521 if (p->error_indicator) {
14522 D(p->level--);
14523 return NULL;
14524 }
14525 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 -080014526 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014527 if (
14528 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14529 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014530 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014531 )
14532 {
14533 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 -080014534 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014535 goto done;
14536 }
14537 p->mark = _mark;
14538 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14540 }
14541 { // '...'
14542 if (p->error_indicator) {
14543 D(p->level--);
14544 return NULL;
14545 }
14546 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14547 Token * _literal;
14548 if (
14549 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14550 )
14551 {
14552 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14553 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14554 if (_token == NULL) {
14555 D(p->level--);
14556 return NULL;
14557 }
14558 int _end_lineno = _token->end_lineno;
14559 UNUSED(_end_lineno); // Only used by EXTRA macro
14560 int _end_col_offset = _token->end_col_offset;
14561 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014562 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014563 if (_res == NULL && PyErr_Occurred()) {
14564 p->error_indicator = 1;
14565 D(p->level--);
14566 return NULL;
14567 }
14568 goto done;
14569 }
14570 p->mark = _mark;
14571 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14573 }
14574 _res = NULL;
14575 done:
14576 D(p->level--);
14577 return _res;
14578}
14579
14580// strings: STRING+
14581static expr_ty
14582strings_rule(Parser *p)
14583{
14584 D(p->level++);
14585 if (p->error_indicator) {
14586 D(p->level--);
14587 return NULL;
14588 }
14589 expr_ty _res = NULL;
14590 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14591 D(p->level--);
14592 return _res;
14593 }
14594 int _mark = p->mark;
14595 { // STRING+
14596 if (p->error_indicator) {
14597 D(p->level--);
14598 return NULL;
14599 }
14600 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14601 asdl_seq * a;
14602 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014603 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014604 )
14605 {
14606 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14607 _res = _PyPegen_concatenate_strings ( p , a );
14608 if (_res == NULL && PyErr_Occurred()) {
14609 p->error_indicator = 1;
14610 D(p->level--);
14611 return NULL;
14612 }
14613 goto done;
14614 }
14615 p->mark = _mark;
14616 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14618 }
14619 _res = NULL;
14620 done:
14621 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14622 D(p->level--);
14623 return _res;
14624}
14625
14626// list: '[' star_named_expressions? ']'
14627static expr_ty
14628list_rule(Parser *p)
14629{
14630 D(p->level++);
14631 if (p->error_indicator) {
14632 D(p->level--);
14633 return NULL;
14634 }
14635 expr_ty _res = NULL;
14636 int _mark = p->mark;
14637 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14638 p->error_indicator = 1;
14639 D(p->level--);
14640 return NULL;
14641 }
14642 int _start_lineno = p->tokens[_mark]->lineno;
14643 UNUSED(_start_lineno); // Only used by EXTRA macro
14644 int _start_col_offset = p->tokens[_mark]->col_offset;
14645 UNUSED(_start_col_offset); // Only used by EXTRA macro
14646 { // '[' star_named_expressions? ']'
14647 if (p->error_indicator) {
14648 D(p->level--);
14649 return NULL;
14650 }
14651 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14652 Token * _literal;
14653 Token * _literal_1;
14654 void *a;
14655 if (
14656 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14657 &&
14658 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14659 &&
14660 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14661 )
14662 {
14663 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14664 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14665 if (_token == NULL) {
14666 D(p->level--);
14667 return NULL;
14668 }
14669 int _end_lineno = _token->end_lineno;
14670 UNUSED(_end_lineno); // Only used by EXTRA macro
14671 int _end_col_offset = _token->end_col_offset;
14672 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014673 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014674 if (_res == NULL && PyErr_Occurred()) {
14675 p->error_indicator = 1;
14676 D(p->level--);
14677 return NULL;
14678 }
14679 goto done;
14680 }
14681 p->mark = _mark;
14682 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14684 }
14685 _res = NULL;
14686 done:
14687 D(p->level--);
14688 return _res;
14689}
14690
Pablo Galindo835f14f2021-01-31 22:52:56 +000014691// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014692static expr_ty
14693listcomp_rule(Parser *p)
14694{
14695 D(p->level++);
14696 if (p->error_indicator) {
14697 D(p->level--);
14698 return NULL;
14699 }
14700 expr_ty _res = NULL;
14701 int _mark = p->mark;
14702 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14703 p->error_indicator = 1;
14704 D(p->level--);
14705 return NULL;
14706 }
14707 int _start_lineno = p->tokens[_mark]->lineno;
14708 UNUSED(_start_lineno); // Only used by EXTRA macro
14709 int _start_col_offset = p->tokens[_mark]->col_offset;
14710 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014711 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014712 if (p->error_indicator) {
14713 D(p->level--);
14714 return NULL;
14715 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014716 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 +010014717 Token * _literal;
14718 Token * _literal_1;
14719 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014720 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014721 if (
14722 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14723 &&
14724 (a = named_expression_rule(p)) // named_expression
14725 &&
14726 (b = for_if_clauses_rule(p)) // for_if_clauses
14727 &&
14728 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14729 )
14730 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014731 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 +010014732 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14733 if (_token == NULL) {
14734 D(p->level--);
14735 return NULL;
14736 }
14737 int _end_lineno = _token->end_lineno;
14738 UNUSED(_end_lineno); // Only used by EXTRA macro
14739 int _end_col_offset = _token->end_col_offset;
14740 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014741 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014742 if (_res == NULL && PyErr_Occurred()) {
14743 p->error_indicator = 1;
14744 D(p->level--);
14745 return NULL;
14746 }
14747 goto done;
14748 }
14749 p->mark = _mark;
14750 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014752 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014753 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014754 if (p->error_indicator) {
14755 D(p->level--);
14756 return NULL;
14757 }
14758 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14759 void *invalid_comprehension_var;
14760 if (
14761 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14762 )
14763 {
14764 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14765 _res = invalid_comprehension_var;
14766 goto done;
14767 }
14768 p->mark = _mark;
14769 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14771 }
14772 _res = NULL;
14773 done:
14774 D(p->level--);
14775 return _res;
14776}
14777
14778// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14779static expr_ty
14780tuple_rule(Parser *p)
14781{
14782 D(p->level++);
14783 if (p->error_indicator) {
14784 D(p->level--);
14785 return NULL;
14786 }
14787 expr_ty _res = NULL;
14788 int _mark = p->mark;
14789 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14790 p->error_indicator = 1;
14791 D(p->level--);
14792 return NULL;
14793 }
14794 int _start_lineno = p->tokens[_mark]->lineno;
14795 UNUSED(_start_lineno); // Only used by EXTRA macro
14796 int _start_col_offset = p->tokens[_mark]->col_offset;
14797 UNUSED(_start_col_offset); // Only used by EXTRA macro
14798 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14799 if (p->error_indicator) {
14800 D(p->level--);
14801 return NULL;
14802 }
14803 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14804 Token * _literal;
14805 Token * _literal_1;
14806 void *a;
14807 if (
14808 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14809 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014810 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014811 &&
14812 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14813 )
14814 {
14815 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14817 if (_token == NULL) {
14818 D(p->level--);
14819 return NULL;
14820 }
14821 int _end_lineno = _token->end_lineno;
14822 UNUSED(_end_lineno); // Only used by EXTRA macro
14823 int _end_col_offset = _token->end_col_offset;
14824 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014825 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014826 if (_res == NULL && PyErr_Occurred()) {
14827 p->error_indicator = 1;
14828 D(p->level--);
14829 return NULL;
14830 }
14831 goto done;
14832 }
14833 p->mark = _mark;
14834 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14836 }
14837 _res = NULL;
14838 done:
14839 D(p->level--);
14840 return _res;
14841}
14842
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014843// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014844static expr_ty
14845group_rule(Parser *p)
14846{
14847 D(p->level++);
14848 if (p->error_indicator) {
14849 D(p->level--);
14850 return NULL;
14851 }
14852 expr_ty _res = NULL;
14853 int _mark = p->mark;
14854 { // '(' (yield_expr | named_expression) ')'
14855 if (p->error_indicator) {
14856 D(p->level--);
14857 return NULL;
14858 }
14859 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14860 Token * _literal;
14861 Token * _literal_1;
14862 void *a;
14863 if (
14864 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14865 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014866 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014867 &&
14868 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14869 )
14870 {
14871 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14872 _res = a;
14873 if (_res == NULL && PyErr_Occurred()) {
14874 p->error_indicator = 1;
14875 D(p->level--);
14876 return NULL;
14877 }
14878 goto done;
14879 }
14880 p->mark = _mark;
14881 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14883 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014884 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014885 if (p->error_indicator) {
14886 D(p->level--);
14887 return NULL;
14888 }
14889 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14890 void *invalid_group_var;
14891 if (
14892 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14893 )
14894 {
14895 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14896 _res = invalid_group_var;
14897 goto done;
14898 }
14899 p->mark = _mark;
14900 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14902 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014903 _res = NULL;
14904 done:
14905 D(p->level--);
14906 return _res;
14907}
14908
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014909// genexp: '(' direct_named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014910static expr_ty
14911genexp_rule(Parser *p)
14912{
14913 D(p->level++);
14914 if (p->error_indicator) {
14915 D(p->level--);
14916 return NULL;
14917 }
14918 expr_ty _res = NULL;
14919 int _mark = p->mark;
14920 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14921 p->error_indicator = 1;
14922 D(p->level--);
14923 return NULL;
14924 }
14925 int _start_lineno = p->tokens[_mark]->lineno;
14926 UNUSED(_start_lineno); // Only used by EXTRA macro
14927 int _start_col_offset = p->tokens[_mark]->col_offset;
14928 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014929 { // '(' direct_named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014930 if (p->error_indicator) {
14931 D(p->level--);
14932 return NULL;
14933 }
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014934 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014935 Token * _literal;
14936 Token * _literal_1;
14937 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014938 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014939 if (
14940 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14941 &&
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014942 (a = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014943 &&
14944 (b = for_if_clauses_rule(p)) // for_if_clauses
14945 &&
14946 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14947 )
14948 {
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014949 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014950 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14951 if (_token == NULL) {
14952 D(p->level--);
14953 return NULL;
14954 }
14955 int _end_lineno = _token->end_lineno;
14956 UNUSED(_end_lineno); // Only used by EXTRA macro
14957 int _end_col_offset = _token->end_col_offset;
14958 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014959 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014960 if (_res == NULL && PyErr_Occurred()) {
14961 p->error_indicator = 1;
14962 D(p->level--);
14963 return NULL;
14964 }
14965 goto done;
14966 }
14967 p->mark = _mark;
14968 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014970 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014971 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014972 if (p->error_indicator) {
14973 D(p->level--);
14974 return NULL;
14975 }
14976 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14977 void *invalid_comprehension_var;
14978 if (
14979 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14980 )
14981 {
14982 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14983 _res = invalid_comprehension_var;
14984 goto done;
14985 }
14986 p->mark = _mark;
14987 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14989 }
14990 _res = NULL;
14991 done:
14992 D(p->level--);
14993 return _res;
14994}
14995
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014996// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014997static expr_ty
14998set_rule(Parser *p)
14999{
15000 D(p->level++);
15001 if (p->error_indicator) {
15002 D(p->level--);
15003 return NULL;
15004 }
15005 expr_ty _res = NULL;
15006 int _mark = p->mark;
15007 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15008 p->error_indicator = 1;
15009 D(p->level--);
15010 return NULL;
15011 }
15012 int _start_lineno = p->tokens[_mark]->lineno;
15013 UNUSED(_start_lineno); // Only used by EXTRA macro
15014 int _start_col_offset = p->tokens[_mark]->col_offset;
15015 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015016 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015017 if (p->error_indicator) {
15018 D(p->level--);
15019 return NULL;
15020 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015021 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015022 Token * _literal;
15023 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015024 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015025 if (
15026 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15027 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015028 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015029 &&
15030 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15031 )
15032 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015033 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 +010015034 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15035 if (_token == NULL) {
15036 D(p->level--);
15037 return NULL;
15038 }
15039 int _end_lineno = _token->end_lineno;
15040 UNUSED(_end_lineno); // Only used by EXTRA macro
15041 int _end_col_offset = _token->end_col_offset;
15042 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015043 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015044 if (_res == NULL && PyErr_Occurred()) {
15045 p->error_indicator = 1;
15046 D(p->level--);
15047 return NULL;
15048 }
15049 goto done;
15050 }
15051 p->mark = _mark;
15052 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015054 }
15055 _res = NULL;
15056 done:
15057 D(p->level--);
15058 return _res;
15059}
15060
Pablo Galindo835f14f2021-01-31 22:52:56 +000015061// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015062static expr_ty
15063setcomp_rule(Parser *p)
15064{
15065 D(p->level++);
15066 if (p->error_indicator) {
15067 D(p->level--);
15068 return NULL;
15069 }
15070 expr_ty _res = NULL;
15071 int _mark = p->mark;
15072 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15073 p->error_indicator = 1;
15074 D(p->level--);
15075 return NULL;
15076 }
15077 int _start_lineno = p->tokens[_mark]->lineno;
15078 UNUSED(_start_lineno); // Only used by EXTRA macro
15079 int _start_col_offset = p->tokens[_mark]->col_offset;
15080 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015081 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015082 if (p->error_indicator) {
15083 D(p->level--);
15084 return NULL;
15085 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015086 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 +010015087 Token * _literal;
15088 Token * _literal_1;
15089 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015090 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015091 if (
15092 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15093 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015094 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015095 &&
15096 (b = for_if_clauses_rule(p)) // for_if_clauses
15097 &&
15098 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15099 )
15100 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015101 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 +010015102 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15103 if (_token == NULL) {
15104 D(p->level--);
15105 return NULL;
15106 }
15107 int _end_lineno = _token->end_lineno;
15108 UNUSED(_end_lineno); // Only used by EXTRA macro
15109 int _end_col_offset = _token->end_col_offset;
15110 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015111 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015112 if (_res == NULL && PyErr_Occurred()) {
15113 p->error_indicator = 1;
15114 D(p->level--);
15115 return NULL;
15116 }
15117 goto done;
15118 }
15119 p->mark = _mark;
15120 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015122 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015123 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015124 if (p->error_indicator) {
15125 D(p->level--);
15126 return NULL;
15127 }
15128 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15129 void *invalid_comprehension_var;
15130 if (
15131 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15132 )
15133 {
15134 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15135 _res = invalid_comprehension_var;
15136 goto done;
15137 }
15138 p->mark = _mark;
15139 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15141 }
15142 _res = NULL;
15143 done:
15144 D(p->level--);
15145 return _res;
15146}
15147
Pablo Galindoda743502021-04-15 14:06:39 +010015148// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015149static expr_ty
15150dict_rule(Parser *p)
15151{
15152 D(p->level++);
15153 if (p->error_indicator) {
15154 D(p->level--);
15155 return NULL;
15156 }
15157 expr_ty _res = NULL;
15158 int _mark = p->mark;
15159 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15160 p->error_indicator = 1;
15161 D(p->level--);
15162 return NULL;
15163 }
15164 int _start_lineno = p->tokens[_mark]->lineno;
15165 UNUSED(_start_lineno); // Only used by EXTRA macro
15166 int _start_col_offset = p->tokens[_mark]->col_offset;
15167 UNUSED(_start_col_offset); // Only used by EXTRA macro
15168 { // '{' double_starred_kvpairs? '}'
15169 if (p->error_indicator) {
15170 D(p->level--);
15171 return NULL;
15172 }
15173 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15174 Token * _literal;
15175 Token * _literal_1;
15176 void *a;
15177 if (
15178 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15179 &&
15180 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15181 &&
15182 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15183 )
15184 {
15185 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15186 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15187 if (_token == NULL) {
15188 D(p->level--);
15189 return NULL;
15190 }
15191 int _end_lineno = _token->end_lineno;
15192 UNUSED(_end_lineno); // Only used by EXTRA macro
15193 int _end_col_offset = _token->end_col_offset;
15194 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015195 _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 +010015196 if (_res == NULL && PyErr_Occurred()) {
15197 p->error_indicator = 1;
15198 D(p->level--);
15199 return NULL;
15200 }
15201 goto done;
15202 }
15203 p->mark = _mark;
15204 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15206 }
Pablo Galindoda743502021-04-15 14:06:39 +010015207 { // '{' invalid_double_starred_kvpairs '}'
15208 if (p->error_indicator) {
15209 D(p->level--);
15210 return NULL;
15211 }
15212 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15213 Token * _literal;
15214 Token * _literal_1;
15215 void *invalid_double_starred_kvpairs_var;
15216 if (
15217 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15218 &&
15219 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15220 &&
15221 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15222 )
15223 {
15224 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15225 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15226 goto done;
15227 }
15228 p->mark = _mark;
15229 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15231 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015232 _res = NULL;
15233 done:
15234 D(p->level--);
15235 return _res;
15236}
15237
15238// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15239static expr_ty
15240dictcomp_rule(Parser *p)
15241{
15242 D(p->level++);
15243 if (p->error_indicator) {
15244 D(p->level--);
15245 return NULL;
15246 }
15247 expr_ty _res = NULL;
15248 int _mark = p->mark;
15249 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15250 p->error_indicator = 1;
15251 D(p->level--);
15252 return NULL;
15253 }
15254 int _start_lineno = p->tokens[_mark]->lineno;
15255 UNUSED(_start_lineno); // Only used by EXTRA macro
15256 int _start_col_offset = p->tokens[_mark]->col_offset;
15257 UNUSED(_start_col_offset); // Only used by EXTRA macro
15258 { // '{' kvpair for_if_clauses '}'
15259 if (p->error_indicator) {
15260 D(p->level--);
15261 return NULL;
15262 }
15263 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15264 Token * _literal;
15265 Token * _literal_1;
15266 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015267 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015268 if (
15269 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15270 &&
15271 (a = kvpair_rule(p)) // kvpair
15272 &&
15273 (b = for_if_clauses_rule(p)) // for_if_clauses
15274 &&
15275 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15276 )
15277 {
15278 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15279 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15280 if (_token == NULL) {
15281 D(p->level--);
15282 return NULL;
15283 }
15284 int _end_lineno = _token->end_lineno;
15285 UNUSED(_end_lineno); // Only used by EXTRA macro
15286 int _end_col_offset = _token->end_col_offset;
15287 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015288 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015289 if (_res == NULL && PyErr_Occurred()) {
15290 p->error_indicator = 1;
15291 D(p->level--);
15292 return NULL;
15293 }
15294 goto done;
15295 }
15296 p->mark = _mark;
15297 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15299 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015300 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015301 if (p->error_indicator) {
15302 D(p->level--);
15303 return NULL;
15304 }
15305 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15306 void *invalid_dict_comprehension_var;
15307 if (
15308 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15309 )
15310 {
15311 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15312 _res = invalid_dict_comprehension_var;
15313 goto done;
15314 }
15315 p->mark = _mark;
15316 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15318 }
15319 _res = NULL;
15320 done:
15321 D(p->level--);
15322 return _res;
15323}
15324
15325// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15326static asdl_seq*
15327double_starred_kvpairs_rule(Parser *p)
15328{
15329 D(p->level++);
15330 if (p->error_indicator) {
15331 D(p->level--);
15332 return NULL;
15333 }
15334 asdl_seq* _res = NULL;
15335 int _mark = p->mark;
15336 { // ','.double_starred_kvpair+ ','?
15337 if (p->error_indicator) {
15338 D(p->level--);
15339 return NULL;
15340 }
15341 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15342 void *_opt_var;
15343 UNUSED(_opt_var); // Silence compiler warnings
15344 asdl_seq * a;
15345 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015346 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015347 &&
15348 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15349 )
15350 {
15351 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15352 _res = a;
15353 if (_res == NULL && PyErr_Occurred()) {
15354 p->error_indicator = 1;
15355 D(p->level--);
15356 return NULL;
15357 }
15358 goto done;
15359 }
15360 p->mark = _mark;
15361 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15363 }
15364 _res = NULL;
15365 done:
15366 D(p->level--);
15367 return _res;
15368}
15369
15370// double_starred_kvpair: '**' bitwise_or | kvpair
15371static KeyValuePair*
15372double_starred_kvpair_rule(Parser *p)
15373{
15374 D(p->level++);
15375 if (p->error_indicator) {
15376 D(p->level--);
15377 return NULL;
15378 }
15379 KeyValuePair* _res = NULL;
15380 int _mark = p->mark;
15381 { // '**' bitwise_or
15382 if (p->error_indicator) {
15383 D(p->level--);
15384 return NULL;
15385 }
15386 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15387 Token * _literal;
15388 expr_ty a;
15389 if (
15390 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15391 &&
15392 (a = bitwise_or_rule(p)) // bitwise_or
15393 )
15394 {
15395 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15396 _res = _PyPegen_key_value_pair ( p , NULL , a );
15397 if (_res == NULL && PyErr_Occurred()) {
15398 p->error_indicator = 1;
15399 D(p->level--);
15400 return NULL;
15401 }
15402 goto done;
15403 }
15404 p->mark = _mark;
15405 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15407 }
15408 { // kvpair
15409 if (p->error_indicator) {
15410 D(p->level--);
15411 return NULL;
15412 }
15413 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15414 KeyValuePair* kvpair_var;
15415 if (
15416 (kvpair_var = kvpair_rule(p)) // kvpair
15417 )
15418 {
15419 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15420 _res = kvpair_var;
15421 goto done;
15422 }
15423 p->mark = _mark;
15424 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15426 }
15427 _res = NULL;
15428 done:
15429 D(p->level--);
15430 return _res;
15431}
15432
15433// kvpair: expression ':' expression
15434static KeyValuePair*
15435kvpair_rule(Parser *p)
15436{
15437 D(p->level++);
15438 if (p->error_indicator) {
15439 D(p->level--);
15440 return NULL;
15441 }
15442 KeyValuePair* _res = NULL;
15443 int _mark = p->mark;
15444 { // expression ':' expression
15445 if (p->error_indicator) {
15446 D(p->level--);
15447 return NULL;
15448 }
15449 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15450 Token * _literal;
15451 expr_ty a;
15452 expr_ty b;
15453 if (
15454 (a = expression_rule(p)) // expression
15455 &&
15456 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15457 &&
15458 (b = expression_rule(p)) // expression
15459 )
15460 {
15461 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15462 _res = _PyPegen_key_value_pair ( p , a , b );
15463 if (_res == NULL && PyErr_Occurred()) {
15464 p->error_indicator = 1;
15465 D(p->level--);
15466 return NULL;
15467 }
15468 goto done;
15469 }
15470 p->mark = _mark;
15471 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15473 }
15474 _res = NULL;
15475 done:
15476 D(p->level--);
15477 return _res;
15478}
15479
15480// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015481static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015482for_if_clauses_rule(Parser *p)
15483{
15484 D(p->level++);
15485 if (p->error_indicator) {
15486 D(p->level--);
15487 return NULL;
15488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015489 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015490 int _mark = p->mark;
15491 { // for_if_clause+
15492 if (p->error_indicator) {
15493 D(p->level--);
15494 return NULL;
15495 }
15496 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 +010015497 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015498 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015499 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015500 )
15501 {
15502 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 +010015503 _res = a;
15504 if (_res == NULL && PyErr_Occurred()) {
15505 p->error_indicator = 1;
15506 D(p->level--);
15507 return NULL;
15508 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015509 goto done;
15510 }
15511 p->mark = _mark;
15512 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15514 }
15515 _res = NULL;
15516 done:
15517 D(p->level--);
15518 return _res;
15519}
15520
15521// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015522// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15523// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15524// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015525static comprehension_ty
15526for_if_clause_rule(Parser *p)
15527{
15528 D(p->level++);
15529 if (p->error_indicator) {
15530 D(p->level--);
15531 return NULL;
15532 }
15533 comprehension_ty _res = NULL;
15534 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015535 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015536 if (p->error_indicator) {
15537 D(p->level--);
15538 return NULL;
15539 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015540 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15541 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015542 Token * _keyword;
15543 Token * _keyword_1;
15544 expr_ty a;
15545 Token * async_var;
15546 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015547 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015548 if (
15549 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15550 &&
15551 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15552 &&
15553 (a = star_targets_rule(p)) // star_targets
15554 &&
15555 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15556 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015557 (_cut_var = 1)
15558 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015559 (b = disjunction_rule(p)) // disjunction
15560 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015561 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015562 )
15563 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015564 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 +020015565 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015566 if (_res == NULL && PyErr_Occurred()) {
15567 p->error_indicator = 1;
15568 D(p->level--);
15569 return NULL;
15570 }
15571 goto done;
15572 }
15573 p->mark = _mark;
15574 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15576 if (_cut_var) {
15577 D(p->level--);
15578 return NULL;
15579 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015580 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015581 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015582 if (p->error_indicator) {
15583 D(p->level--);
15584 return NULL;
15585 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015586 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15587 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015588 Token * _keyword;
15589 Token * _keyword_1;
15590 expr_ty a;
15591 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015592 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015593 if (
15594 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15595 &&
15596 (a = star_targets_rule(p)) // star_targets
15597 &&
15598 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15599 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015600 (_cut_var = 1)
15601 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015602 (b = disjunction_rule(p)) // disjunction
15603 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015604 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015605 )
15606 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015607 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 +020015608 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015609 if (_res == NULL && PyErr_Occurred()) {
15610 p->error_indicator = 1;
15611 D(p->level--);
15612 return NULL;
15613 }
15614 goto done;
15615 }
15616 p->mark = _mark;
15617 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15619 if (_cut_var) {
15620 D(p->level--);
15621 return NULL;
15622 }
15623 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015624 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015625 if (p->error_indicator) {
15626 D(p->level--);
15627 return NULL;
15628 }
15629 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15630 void *invalid_for_target_var;
15631 if (
15632 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15633 )
15634 {
15635 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15636 _res = invalid_for_target_var;
15637 goto done;
15638 }
15639 p->mark = _mark;
15640 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015642 }
15643 _res = NULL;
15644 done:
15645 D(p->level--);
15646 return _res;
15647}
15648
15649// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15650static expr_ty
15651yield_expr_rule(Parser *p)
15652{
15653 D(p->level++);
15654 if (p->error_indicator) {
15655 D(p->level--);
15656 return NULL;
15657 }
15658 expr_ty _res = NULL;
15659 int _mark = p->mark;
15660 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15661 p->error_indicator = 1;
15662 D(p->level--);
15663 return NULL;
15664 }
15665 int _start_lineno = p->tokens[_mark]->lineno;
15666 UNUSED(_start_lineno); // Only used by EXTRA macro
15667 int _start_col_offset = p->tokens[_mark]->col_offset;
15668 UNUSED(_start_col_offset); // Only used by EXTRA macro
15669 { // 'yield' 'from' expression
15670 if (p->error_indicator) {
15671 D(p->level--);
15672 return NULL;
15673 }
15674 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15675 Token * _keyword;
15676 Token * _keyword_1;
15677 expr_ty a;
15678 if (
15679 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15680 &&
15681 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15682 &&
15683 (a = expression_rule(p)) // expression
15684 )
15685 {
15686 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15687 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15688 if (_token == NULL) {
15689 D(p->level--);
15690 return NULL;
15691 }
15692 int _end_lineno = _token->end_lineno;
15693 UNUSED(_end_lineno); // Only used by EXTRA macro
15694 int _end_col_offset = _token->end_col_offset;
15695 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015696 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015697 if (_res == NULL && PyErr_Occurred()) {
15698 p->error_indicator = 1;
15699 D(p->level--);
15700 return NULL;
15701 }
15702 goto done;
15703 }
15704 p->mark = _mark;
15705 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15707 }
15708 { // 'yield' star_expressions?
15709 if (p->error_indicator) {
15710 D(p->level--);
15711 return NULL;
15712 }
15713 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15714 Token * _keyword;
15715 void *a;
15716 if (
15717 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15718 &&
15719 (a = star_expressions_rule(p), 1) // star_expressions?
15720 )
15721 {
15722 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15723 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15724 if (_token == NULL) {
15725 D(p->level--);
15726 return NULL;
15727 }
15728 int _end_lineno = _token->end_lineno;
15729 UNUSED(_end_lineno); // Only used by EXTRA macro
15730 int _end_col_offset = _token->end_col_offset;
15731 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015732 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015733 if (_res == NULL && PyErr_Occurred()) {
15734 p->error_indicator = 1;
15735 D(p->level--);
15736 return NULL;
15737 }
15738 goto done;
15739 }
15740 p->mark = _mark;
15741 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15743 }
15744 _res = NULL;
15745 done:
15746 D(p->level--);
15747 return _res;
15748}
15749
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015750// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015751static expr_ty
15752arguments_rule(Parser *p)
15753{
15754 D(p->level++);
15755 if (p->error_indicator) {
15756 D(p->level--);
15757 return NULL;
15758 }
15759 expr_ty _res = NULL;
15760 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15761 D(p->level--);
15762 return _res;
15763 }
15764 int _mark = p->mark;
15765 { // args ','? &')'
15766 if (p->error_indicator) {
15767 D(p->level--);
15768 return NULL;
15769 }
15770 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15771 void *_opt_var;
15772 UNUSED(_opt_var); // Silence compiler warnings
15773 expr_ty a;
15774 if (
15775 (a = args_rule(p)) // args
15776 &&
15777 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15778 &&
15779 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15780 )
15781 {
15782 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15783 _res = a;
15784 if (_res == NULL && PyErr_Occurred()) {
15785 p->error_indicator = 1;
15786 D(p->level--);
15787 return NULL;
15788 }
15789 goto done;
15790 }
15791 p->mark = _mark;
15792 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15794 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015795 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015796 if (p->error_indicator) {
15797 D(p->level--);
15798 return NULL;
15799 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015800 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15801 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015802 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015803 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015804 )
15805 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015806 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15807 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015808 goto done;
15809 }
15810 p->mark = _mark;
15811 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015813 }
15814 _res = NULL;
15815 done:
15816 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15817 D(p->level--);
15818 return _res;
15819}
15820
Pablo Galindod9151cb2021-04-13 02:32:33 +010015821// args: ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015822static expr_ty
15823args_rule(Parser *p)
15824{
15825 D(p->level++);
15826 if (p->error_indicator) {
15827 D(p->level--);
15828 return NULL;
15829 }
15830 expr_ty _res = NULL;
15831 int _mark = p->mark;
15832 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15833 p->error_indicator = 1;
15834 D(p->level--);
15835 return NULL;
15836 }
15837 int _start_lineno = p->tokens[_mark]->lineno;
15838 UNUSED(_start_lineno); // Only used by EXTRA macro
15839 int _start_col_offset = p->tokens[_mark]->col_offset;
15840 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindod9151cb2021-04-13 02:32:33 +010015841 { // ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015842 if (p->error_indicator) {
15843 D(p->level--);
15844 return NULL;
15845 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010015846 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015847 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015848 void *b;
15849 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010015850 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | direct_named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015851 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015852 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015853 )
15854 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010015855 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015856 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15857 if (_token == NULL) {
15858 D(p->level--);
15859 return NULL;
15860 }
15861 int _end_lineno = _token->end_lineno;
15862 UNUSED(_end_lineno); // Only used by EXTRA macro
15863 int _end_col_offset = _token->end_col_offset;
15864 UNUSED(_end_col_offset); // Only used by EXTRA macro
15865 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015866 if (_res == NULL && PyErr_Occurred()) {
15867 p->error_indicator = 1;
15868 D(p->level--);
15869 return NULL;
15870 }
15871 goto done;
15872 }
15873 p->mark = _mark;
15874 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010015875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015876 }
15877 { // kwargs
15878 if (p->error_indicator) {
15879 D(p->level--);
15880 return NULL;
15881 }
15882 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15883 asdl_seq* a;
15884 if (
15885 (a = kwargs_rule(p)) // kwargs
15886 )
15887 {
15888 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15889 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15890 if (_token == NULL) {
15891 D(p->level--);
15892 return NULL;
15893 }
15894 int _end_lineno = _token->end_lineno;
15895 UNUSED(_end_lineno); // Only used by EXTRA macro
15896 int _end_col_offset = _token->end_col_offset;
15897 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015898 _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 +010015899 if (_res == NULL && PyErr_Occurred()) {
15900 p->error_indicator = 1;
15901 D(p->level--);
15902 return NULL;
15903 }
15904 goto done;
15905 }
15906 p->mark = _mark;
15907 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15909 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015910 _res = NULL;
15911 done:
15912 D(p->level--);
15913 return _res;
15914}
15915
15916// kwargs:
15917// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15918// | ','.kwarg_or_starred+
15919// | ','.kwarg_or_double_starred+
15920static asdl_seq*
15921kwargs_rule(Parser *p)
15922{
15923 D(p->level++);
15924 if (p->error_indicator) {
15925 D(p->level--);
15926 return NULL;
15927 }
15928 asdl_seq* _res = NULL;
15929 int _mark = p->mark;
15930 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15931 if (p->error_indicator) {
15932 D(p->level--);
15933 return NULL;
15934 }
15935 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15936 Token * _literal;
15937 asdl_seq * a;
15938 asdl_seq * b;
15939 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015940 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015941 &&
15942 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15943 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015944 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015945 )
15946 {
15947 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15948 _res = _PyPegen_join_sequences ( p , a , b );
15949 if (_res == NULL && PyErr_Occurred()) {
15950 p->error_indicator = 1;
15951 D(p->level--);
15952 return NULL;
15953 }
15954 goto done;
15955 }
15956 p->mark = _mark;
15957 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15959 }
15960 { // ','.kwarg_or_starred+
15961 if (p->error_indicator) {
15962 D(p->level--);
15963 return NULL;
15964 }
15965 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015966 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015967 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015968 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015969 )
15970 {
15971 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015972 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015973 goto done;
15974 }
15975 p->mark = _mark;
15976 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15977 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15978 }
15979 { // ','.kwarg_or_double_starred+
15980 if (p->error_indicator) {
15981 D(p->level--);
15982 return NULL;
15983 }
15984 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015985 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015986 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015987 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015988 )
15989 {
15990 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015991 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015992 goto done;
15993 }
15994 p->mark = _mark;
15995 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15997 }
15998 _res = NULL;
15999 done:
16000 D(p->level--);
16001 return _res;
16002}
16003
16004// starred_expression: '*' expression
16005static expr_ty
16006starred_expression_rule(Parser *p)
16007{
16008 D(p->level++);
16009 if (p->error_indicator) {
16010 D(p->level--);
16011 return NULL;
16012 }
16013 expr_ty _res = NULL;
16014 int _mark = p->mark;
16015 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16016 p->error_indicator = 1;
16017 D(p->level--);
16018 return NULL;
16019 }
16020 int _start_lineno = p->tokens[_mark]->lineno;
16021 UNUSED(_start_lineno); // Only used by EXTRA macro
16022 int _start_col_offset = p->tokens[_mark]->col_offset;
16023 UNUSED(_start_col_offset); // Only used by EXTRA macro
16024 { // '*' expression
16025 if (p->error_indicator) {
16026 D(p->level--);
16027 return NULL;
16028 }
16029 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16030 Token * _literal;
16031 expr_ty a;
16032 if (
16033 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16034 &&
16035 (a = expression_rule(p)) // expression
16036 )
16037 {
16038 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16039 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16040 if (_token == NULL) {
16041 D(p->level--);
16042 return NULL;
16043 }
16044 int _end_lineno = _token->end_lineno;
16045 UNUSED(_end_lineno); // Only used by EXTRA macro
16046 int _end_col_offset = _token->end_col_offset;
16047 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016048 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016049 if (_res == NULL && PyErr_Occurred()) {
16050 p->error_indicator = 1;
16051 D(p->level--);
16052 return NULL;
16053 }
16054 goto done;
16055 }
16056 p->mark = _mark;
16057 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16059 }
16060 _res = NULL;
16061 done:
16062 D(p->level--);
16063 return _res;
16064}
16065
16066// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
16067static KeywordOrStarred*
16068kwarg_or_starred_rule(Parser *p)
16069{
16070 D(p->level++);
16071 if (p->error_indicator) {
16072 D(p->level--);
16073 return NULL;
16074 }
16075 KeywordOrStarred* _res = NULL;
16076 int _mark = p->mark;
16077 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16078 p->error_indicator = 1;
16079 D(p->level--);
16080 return NULL;
16081 }
16082 int _start_lineno = p->tokens[_mark]->lineno;
16083 UNUSED(_start_lineno); // Only used by EXTRA macro
16084 int _start_col_offset = p->tokens[_mark]->col_offset;
16085 UNUSED(_start_col_offset); // Only used by EXTRA macro
16086 { // NAME '=' expression
16087 if (p->error_indicator) {
16088 D(p->level--);
16089 return NULL;
16090 }
16091 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16092 Token * _literal;
16093 expr_ty a;
16094 expr_ty b;
16095 if (
16096 (a = _PyPegen_name_token(p)) // NAME
16097 &&
16098 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16099 &&
16100 (b = expression_rule(p)) // expression
16101 )
16102 {
16103 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16104 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16105 if (_token == NULL) {
16106 D(p->level--);
16107 return NULL;
16108 }
16109 int _end_lineno = _token->end_lineno;
16110 UNUSED(_end_lineno); // Only used by EXTRA macro
16111 int _end_col_offset = _token->end_col_offset;
16112 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016113 _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 +010016114 if (_res == NULL && PyErr_Occurred()) {
16115 p->error_indicator = 1;
16116 D(p->level--);
16117 return NULL;
16118 }
16119 goto done;
16120 }
16121 p->mark = _mark;
16122 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16124 }
16125 { // starred_expression
16126 if (p->error_indicator) {
16127 D(p->level--);
16128 return NULL;
16129 }
16130 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16131 expr_ty a;
16132 if (
16133 (a = starred_expression_rule(p)) // starred_expression
16134 )
16135 {
16136 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16137 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16138 if (_res == NULL && PyErr_Occurred()) {
16139 p->error_indicator = 1;
16140 D(p->level--);
16141 return NULL;
16142 }
16143 goto done;
16144 }
16145 p->mark = _mark;
16146 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16148 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016149 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016150 if (p->error_indicator) {
16151 D(p->level--);
16152 return NULL;
16153 }
16154 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16155 void *invalid_kwarg_var;
16156 if (
16157 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16158 )
16159 {
16160 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16161 _res = invalid_kwarg_var;
16162 goto done;
16163 }
16164 p->mark = _mark;
16165 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16167 }
16168 _res = NULL;
16169 done:
16170 D(p->level--);
16171 return _res;
16172}
16173
16174// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
16175static KeywordOrStarred*
16176kwarg_or_double_starred_rule(Parser *p)
16177{
16178 D(p->level++);
16179 if (p->error_indicator) {
16180 D(p->level--);
16181 return NULL;
16182 }
16183 KeywordOrStarred* _res = NULL;
16184 int _mark = p->mark;
16185 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16186 p->error_indicator = 1;
16187 D(p->level--);
16188 return NULL;
16189 }
16190 int _start_lineno = p->tokens[_mark]->lineno;
16191 UNUSED(_start_lineno); // Only used by EXTRA macro
16192 int _start_col_offset = p->tokens[_mark]->col_offset;
16193 UNUSED(_start_col_offset); // Only used by EXTRA macro
16194 { // NAME '=' expression
16195 if (p->error_indicator) {
16196 D(p->level--);
16197 return NULL;
16198 }
16199 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16200 Token * _literal;
16201 expr_ty a;
16202 expr_ty b;
16203 if (
16204 (a = _PyPegen_name_token(p)) // NAME
16205 &&
16206 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16207 &&
16208 (b = expression_rule(p)) // expression
16209 )
16210 {
16211 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16212 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16213 if (_token == NULL) {
16214 D(p->level--);
16215 return NULL;
16216 }
16217 int _end_lineno = _token->end_lineno;
16218 UNUSED(_end_lineno); // Only used by EXTRA macro
16219 int _end_col_offset = _token->end_col_offset;
16220 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016221 _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 +010016222 if (_res == NULL && PyErr_Occurred()) {
16223 p->error_indicator = 1;
16224 D(p->level--);
16225 return NULL;
16226 }
16227 goto done;
16228 }
16229 p->mark = _mark;
16230 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16232 }
16233 { // '**' expression
16234 if (p->error_indicator) {
16235 D(p->level--);
16236 return NULL;
16237 }
16238 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16239 Token * _literal;
16240 expr_ty a;
16241 if (
16242 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16243 &&
16244 (a = expression_rule(p)) // expression
16245 )
16246 {
16247 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16248 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16249 if (_token == NULL) {
16250 D(p->level--);
16251 return NULL;
16252 }
16253 int _end_lineno = _token->end_lineno;
16254 UNUSED(_end_lineno); // Only used by EXTRA macro
16255 int _end_col_offset = _token->end_col_offset;
16256 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016257 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016258 if (_res == NULL && PyErr_Occurred()) {
16259 p->error_indicator = 1;
16260 D(p->level--);
16261 return NULL;
16262 }
16263 goto done;
16264 }
16265 p->mark = _mark;
16266 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16268 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016269 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016270 if (p->error_indicator) {
16271 D(p->level--);
16272 return NULL;
16273 }
16274 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16275 void *invalid_kwarg_var;
16276 if (
16277 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16278 )
16279 {
16280 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16281 _res = invalid_kwarg_var;
16282 goto done;
16283 }
16284 p->mark = _mark;
16285 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16287 }
16288 _res = NULL;
16289 done:
16290 D(p->level--);
16291 return _res;
16292}
16293
16294// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16295static expr_ty
16296star_targets_rule(Parser *p)
16297{
16298 D(p->level++);
16299 if (p->error_indicator) {
16300 D(p->level--);
16301 return NULL;
16302 }
16303 expr_ty _res = NULL;
16304 int _mark = p->mark;
16305 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16306 p->error_indicator = 1;
16307 D(p->level--);
16308 return NULL;
16309 }
16310 int _start_lineno = p->tokens[_mark]->lineno;
16311 UNUSED(_start_lineno); // Only used by EXTRA macro
16312 int _start_col_offset = p->tokens[_mark]->col_offset;
16313 UNUSED(_start_col_offset); // Only used by EXTRA macro
16314 { // star_target !','
16315 if (p->error_indicator) {
16316 D(p->level--);
16317 return NULL;
16318 }
16319 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16320 expr_ty a;
16321 if (
16322 (a = star_target_rule(p)) // star_target
16323 &&
16324 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16325 )
16326 {
16327 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16328 _res = a;
16329 if (_res == NULL && PyErr_Occurred()) {
16330 p->error_indicator = 1;
16331 D(p->level--);
16332 return NULL;
16333 }
16334 goto done;
16335 }
16336 p->mark = _mark;
16337 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16339 }
16340 { // star_target ((',' star_target))* ','?
16341 if (p->error_indicator) {
16342 D(p->level--);
16343 return NULL;
16344 }
16345 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16346 void *_opt_var;
16347 UNUSED(_opt_var); // Silence compiler warnings
16348 expr_ty a;
16349 asdl_seq * b;
16350 if (
16351 (a = star_target_rule(p)) // star_target
16352 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016353 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016354 &&
16355 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16356 )
16357 {
16358 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16359 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16360 if (_token == NULL) {
16361 D(p->level--);
16362 return NULL;
16363 }
16364 int _end_lineno = _token->end_lineno;
16365 UNUSED(_end_lineno); // Only used by EXTRA macro
16366 int _end_col_offset = _token->end_col_offset;
16367 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016368 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016369 if (_res == NULL && PyErr_Occurred()) {
16370 p->error_indicator = 1;
16371 D(p->level--);
16372 return NULL;
16373 }
16374 goto done;
16375 }
16376 p->mark = _mark;
16377 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16379 }
16380 _res = NULL;
16381 done:
16382 D(p->level--);
16383 return _res;
16384}
16385
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016386// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016387static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016388star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016389{
16390 D(p->level++);
16391 if (p->error_indicator) {
16392 D(p->level--);
16393 return NULL;
16394 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016395 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016396 int _mark = p->mark;
16397 { // ','.star_target+ ','?
16398 if (p->error_indicator) {
16399 D(p->level--);
16400 return NULL;
16401 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016402 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 +010016403 void *_opt_var;
16404 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016405 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016406 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016407 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016408 &&
16409 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16410 )
16411 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016412 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 +010016413 _res = a;
16414 if (_res == NULL && PyErr_Occurred()) {
16415 p->error_indicator = 1;
16416 D(p->level--);
16417 return NULL;
16418 }
16419 goto done;
16420 }
16421 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016422 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16424 }
16425 _res = NULL;
16426 done:
16427 D(p->level--);
16428 return _res;
16429}
16430
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016431// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16432static asdl_expr_seq*
16433star_targets_tuple_seq_rule(Parser *p)
16434{
16435 D(p->level++);
16436 if (p->error_indicator) {
16437 D(p->level--);
16438 return NULL;
16439 }
16440 asdl_expr_seq* _res = NULL;
16441 int _mark = p->mark;
16442 { // star_target ((',' star_target))+ ','?
16443 if (p->error_indicator) {
16444 D(p->level--);
16445 return NULL;
16446 }
16447 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16448 void *_opt_var;
16449 UNUSED(_opt_var); // Silence compiler warnings
16450 expr_ty a;
16451 asdl_seq * b;
16452 if (
16453 (a = star_target_rule(p)) // star_target
16454 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016455 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016456 &&
16457 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16458 )
16459 {
16460 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16461 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16462 if (_res == NULL && PyErr_Occurred()) {
16463 p->error_indicator = 1;
16464 D(p->level--);
16465 return NULL;
16466 }
16467 goto done;
16468 }
16469 p->mark = _mark;
16470 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16472 }
16473 { // star_target ','
16474 if (p->error_indicator) {
16475 D(p->level--);
16476 return NULL;
16477 }
16478 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16479 Token * _literal;
16480 expr_ty a;
16481 if (
16482 (a = star_target_rule(p)) // star_target
16483 &&
16484 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16485 )
16486 {
16487 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16488 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16489 if (_res == NULL && PyErr_Occurred()) {
16490 p->error_indicator = 1;
16491 D(p->level--);
16492 return NULL;
16493 }
16494 goto done;
16495 }
16496 p->mark = _mark;
16497 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16499 }
16500 _res = NULL;
16501 done:
16502 D(p->level--);
16503 return _res;
16504}
16505
16506// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016507static expr_ty
16508star_target_rule(Parser *p)
16509{
16510 D(p->level++);
16511 if (p->error_indicator) {
16512 D(p->level--);
16513 return NULL;
16514 }
16515 expr_ty _res = NULL;
16516 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16517 D(p->level--);
16518 return _res;
16519 }
16520 int _mark = p->mark;
16521 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16522 p->error_indicator = 1;
16523 D(p->level--);
16524 return NULL;
16525 }
16526 int _start_lineno = p->tokens[_mark]->lineno;
16527 UNUSED(_start_lineno); // Only used by EXTRA macro
16528 int _start_col_offset = p->tokens[_mark]->col_offset;
16529 UNUSED(_start_col_offset); // Only used by EXTRA macro
16530 { // '*' (!'*' star_target)
16531 if (p->error_indicator) {
16532 D(p->level--);
16533 return NULL;
16534 }
16535 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16536 Token * _literal;
16537 void *a;
16538 if (
16539 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16540 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016541 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016542 )
16543 {
16544 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16545 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16546 if (_token == NULL) {
16547 D(p->level--);
16548 return NULL;
16549 }
16550 int _end_lineno = _token->end_lineno;
16551 UNUSED(_end_lineno); // Only used by EXTRA macro
16552 int _end_col_offset = _token->end_col_offset;
16553 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016554 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016555 if (_res == NULL && PyErr_Occurred()) {
16556 p->error_indicator = 1;
16557 D(p->level--);
16558 return NULL;
16559 }
16560 goto done;
16561 }
16562 p->mark = _mark;
16563 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16565 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016566 { // target_with_star_atom
16567 if (p->error_indicator) {
16568 D(p->level--);
16569 return NULL;
16570 }
16571 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16572 expr_ty target_with_star_atom_var;
16573 if (
16574 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16575 )
16576 {
16577 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16578 _res = target_with_star_atom_var;
16579 goto done;
16580 }
16581 p->mark = _mark;
16582 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16584 }
16585 _res = NULL;
16586 done:
16587 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16588 D(p->level--);
16589 return _res;
16590}
16591
16592// target_with_star_atom:
16593// | t_primary '.' NAME !t_lookahead
16594// | t_primary '[' slices ']' !t_lookahead
16595// | star_atom
16596static expr_ty
16597target_with_star_atom_rule(Parser *p)
16598{
16599 D(p->level++);
16600 if (p->error_indicator) {
16601 D(p->level--);
16602 return NULL;
16603 }
16604 expr_ty _res = NULL;
16605 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16606 D(p->level--);
16607 return _res;
16608 }
16609 int _mark = p->mark;
16610 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16611 p->error_indicator = 1;
16612 D(p->level--);
16613 return NULL;
16614 }
16615 int _start_lineno = p->tokens[_mark]->lineno;
16616 UNUSED(_start_lineno); // Only used by EXTRA macro
16617 int _start_col_offset = p->tokens[_mark]->col_offset;
16618 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016619 { // t_primary '.' NAME !t_lookahead
16620 if (p->error_indicator) {
16621 D(p->level--);
16622 return NULL;
16623 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016624 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 +010016625 Token * _literal;
16626 expr_ty a;
16627 expr_ty b;
16628 if (
16629 (a = t_primary_rule(p)) // t_primary
16630 &&
16631 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16632 &&
16633 (b = _PyPegen_name_token(p)) // NAME
16634 &&
16635 _PyPegen_lookahead(0, t_lookahead_rule, p)
16636 )
16637 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016638 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 +010016639 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16640 if (_token == NULL) {
16641 D(p->level--);
16642 return NULL;
16643 }
16644 int _end_lineno = _token->end_lineno;
16645 UNUSED(_end_lineno); // Only used by EXTRA macro
16646 int _end_col_offset = _token->end_col_offset;
16647 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016648 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016649 if (_res == NULL && PyErr_Occurred()) {
16650 p->error_indicator = 1;
16651 D(p->level--);
16652 return NULL;
16653 }
16654 goto done;
16655 }
16656 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016657 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16659 }
16660 { // t_primary '[' slices ']' !t_lookahead
16661 if (p->error_indicator) {
16662 D(p->level--);
16663 return NULL;
16664 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016665 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 +010016666 Token * _literal;
16667 Token * _literal_1;
16668 expr_ty a;
16669 expr_ty b;
16670 if (
16671 (a = t_primary_rule(p)) // t_primary
16672 &&
16673 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16674 &&
16675 (b = slices_rule(p)) // slices
16676 &&
16677 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16678 &&
16679 _PyPegen_lookahead(0, t_lookahead_rule, p)
16680 )
16681 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016682 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 +010016683 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16684 if (_token == NULL) {
16685 D(p->level--);
16686 return NULL;
16687 }
16688 int _end_lineno = _token->end_lineno;
16689 UNUSED(_end_lineno); // Only used by EXTRA macro
16690 int _end_col_offset = _token->end_col_offset;
16691 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016692 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016693 if (_res == NULL && PyErr_Occurred()) {
16694 p->error_indicator = 1;
16695 D(p->level--);
16696 return NULL;
16697 }
16698 goto done;
16699 }
16700 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016701 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16703 }
16704 { // star_atom
16705 if (p->error_indicator) {
16706 D(p->level--);
16707 return NULL;
16708 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016709 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 +010016710 expr_ty star_atom_var;
16711 if (
16712 (star_atom_var = star_atom_rule(p)) // star_atom
16713 )
16714 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016715 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 +010016716 _res = star_atom_var;
16717 goto done;
16718 }
16719 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016720 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16722 }
16723 _res = NULL;
16724 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016725 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016726 D(p->level--);
16727 return _res;
16728}
16729
16730// star_atom:
16731// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016732// | '(' target_with_star_atom ')'
16733// | '(' star_targets_tuple_seq? ')'
16734// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016735static expr_ty
16736star_atom_rule(Parser *p)
16737{
16738 D(p->level++);
16739 if (p->error_indicator) {
16740 D(p->level--);
16741 return NULL;
16742 }
16743 expr_ty _res = NULL;
16744 int _mark = p->mark;
16745 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16746 p->error_indicator = 1;
16747 D(p->level--);
16748 return NULL;
16749 }
16750 int _start_lineno = p->tokens[_mark]->lineno;
16751 UNUSED(_start_lineno); // Only used by EXTRA macro
16752 int _start_col_offset = p->tokens[_mark]->col_offset;
16753 UNUSED(_start_col_offset); // Only used by EXTRA macro
16754 { // NAME
16755 if (p->error_indicator) {
16756 D(p->level--);
16757 return NULL;
16758 }
16759 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16760 expr_ty a;
16761 if (
16762 (a = _PyPegen_name_token(p)) // NAME
16763 )
16764 {
16765 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16766 _res = _PyPegen_set_expr_context ( p , a , Store );
16767 if (_res == NULL && PyErr_Occurred()) {
16768 p->error_indicator = 1;
16769 D(p->level--);
16770 return NULL;
16771 }
16772 goto done;
16773 }
16774 p->mark = _mark;
16775 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16777 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016778 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016779 if (p->error_indicator) {
16780 D(p->level--);
16781 return NULL;
16782 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016783 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 +010016784 Token * _literal;
16785 Token * _literal_1;
16786 expr_ty a;
16787 if (
16788 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16789 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016790 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016791 &&
16792 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16793 )
16794 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016795 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 +010016796 _res = _PyPegen_set_expr_context ( p , a , Store );
16797 if (_res == NULL && PyErr_Occurred()) {
16798 p->error_indicator = 1;
16799 D(p->level--);
16800 return NULL;
16801 }
16802 goto done;
16803 }
16804 p->mark = _mark;
16805 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016806 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016807 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016808 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016809 if (p->error_indicator) {
16810 D(p->level--);
16811 return NULL;
16812 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016813 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 +010016814 Token * _literal;
16815 Token * _literal_1;
16816 void *a;
16817 if (
16818 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16819 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016820 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016821 &&
16822 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16823 )
16824 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016825 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 +010016826 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16827 if (_token == NULL) {
16828 D(p->level--);
16829 return NULL;
16830 }
16831 int _end_lineno = _token->end_lineno;
16832 UNUSED(_end_lineno); // Only used by EXTRA macro
16833 int _end_col_offset = _token->end_col_offset;
16834 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016835 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016836 if (_res == NULL && PyErr_Occurred()) {
16837 p->error_indicator = 1;
16838 D(p->level--);
16839 return NULL;
16840 }
16841 goto done;
16842 }
16843 p->mark = _mark;
16844 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016846 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016847 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016848 if (p->error_indicator) {
16849 D(p->level--);
16850 return NULL;
16851 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016852 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 +010016853 Token * _literal;
16854 Token * _literal_1;
16855 void *a;
16856 if (
16857 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16858 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016859 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016860 &&
16861 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16862 )
16863 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016864 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 +010016865 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16866 if (_token == NULL) {
16867 D(p->level--);
16868 return NULL;
16869 }
16870 int _end_lineno = _token->end_lineno;
16871 UNUSED(_end_lineno); // Only used by EXTRA macro
16872 int _end_col_offset = _token->end_col_offset;
16873 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016874 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016875 if (_res == NULL && PyErr_Occurred()) {
16876 p->error_indicator = 1;
16877 D(p->level--);
16878 return NULL;
16879 }
16880 goto done;
16881 }
16882 p->mark = _mark;
16883 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016885 }
16886 _res = NULL;
16887 done:
16888 D(p->level--);
16889 return _res;
16890}
16891
16892// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16893static expr_ty
16894single_target_rule(Parser *p)
16895{
16896 D(p->level++);
16897 if (p->error_indicator) {
16898 D(p->level--);
16899 return NULL;
16900 }
16901 expr_ty _res = NULL;
16902 int _mark = p->mark;
16903 { // single_subscript_attribute_target
16904 if (p->error_indicator) {
16905 D(p->level--);
16906 return NULL;
16907 }
16908 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16909 expr_ty single_subscript_attribute_target_var;
16910 if (
16911 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16912 )
16913 {
16914 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16915 _res = single_subscript_attribute_target_var;
16916 goto done;
16917 }
16918 p->mark = _mark;
16919 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16921 }
16922 { // NAME
16923 if (p->error_indicator) {
16924 D(p->level--);
16925 return NULL;
16926 }
16927 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16928 expr_ty a;
16929 if (
16930 (a = _PyPegen_name_token(p)) // NAME
16931 )
16932 {
16933 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16934 _res = _PyPegen_set_expr_context ( p , a , Store );
16935 if (_res == NULL && PyErr_Occurred()) {
16936 p->error_indicator = 1;
16937 D(p->level--);
16938 return NULL;
16939 }
16940 goto done;
16941 }
16942 p->mark = _mark;
16943 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16945 }
16946 { // '(' single_target ')'
16947 if (p->error_indicator) {
16948 D(p->level--);
16949 return NULL;
16950 }
16951 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16952 Token * _literal;
16953 Token * _literal_1;
16954 expr_ty a;
16955 if (
16956 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16957 &&
16958 (a = single_target_rule(p)) // single_target
16959 &&
16960 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16961 )
16962 {
16963 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16964 _res = a;
16965 if (_res == NULL && PyErr_Occurred()) {
16966 p->error_indicator = 1;
16967 D(p->level--);
16968 return NULL;
16969 }
16970 goto done;
16971 }
16972 p->mark = _mark;
16973 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16975 }
16976 _res = NULL;
16977 done:
16978 D(p->level--);
16979 return _res;
16980}
16981
16982// single_subscript_attribute_target:
16983// | t_primary '.' NAME !t_lookahead
16984// | t_primary '[' slices ']' !t_lookahead
16985static expr_ty
16986single_subscript_attribute_target_rule(Parser *p)
16987{
16988 D(p->level++);
16989 if (p->error_indicator) {
16990 D(p->level--);
16991 return NULL;
16992 }
16993 expr_ty _res = NULL;
16994 int _mark = p->mark;
16995 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16996 p->error_indicator = 1;
16997 D(p->level--);
16998 return NULL;
16999 }
17000 int _start_lineno = p->tokens[_mark]->lineno;
17001 UNUSED(_start_lineno); // Only used by EXTRA macro
17002 int _start_col_offset = p->tokens[_mark]->col_offset;
17003 UNUSED(_start_col_offset); // Only used by EXTRA macro
17004 { // t_primary '.' NAME !t_lookahead
17005 if (p->error_indicator) {
17006 D(p->level--);
17007 return NULL;
17008 }
17009 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17010 Token * _literal;
17011 expr_ty a;
17012 expr_ty b;
17013 if (
17014 (a = t_primary_rule(p)) // t_primary
17015 &&
17016 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17017 &&
17018 (b = _PyPegen_name_token(p)) // NAME
17019 &&
17020 _PyPegen_lookahead(0, t_lookahead_rule, p)
17021 )
17022 {
17023 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17024 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17025 if (_token == NULL) {
17026 D(p->level--);
17027 return NULL;
17028 }
17029 int _end_lineno = _token->end_lineno;
17030 UNUSED(_end_lineno); // Only used by EXTRA macro
17031 int _end_col_offset = _token->end_col_offset;
17032 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017033 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017034 if (_res == NULL && PyErr_Occurred()) {
17035 p->error_indicator = 1;
17036 D(p->level--);
17037 return NULL;
17038 }
17039 goto done;
17040 }
17041 p->mark = _mark;
17042 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17044 }
17045 { // t_primary '[' slices ']' !t_lookahead
17046 if (p->error_indicator) {
17047 D(p->level--);
17048 return NULL;
17049 }
17050 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17051 Token * _literal;
17052 Token * _literal_1;
17053 expr_ty a;
17054 expr_ty b;
17055 if (
17056 (a = t_primary_rule(p)) // t_primary
17057 &&
17058 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17059 &&
17060 (b = slices_rule(p)) // slices
17061 &&
17062 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17063 &&
17064 _PyPegen_lookahead(0, t_lookahead_rule, p)
17065 )
17066 {
17067 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17068 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17069 if (_token == NULL) {
17070 D(p->level--);
17071 return NULL;
17072 }
17073 int _end_lineno = _token->end_lineno;
17074 UNUSED(_end_lineno); // Only used by EXTRA macro
17075 int _end_col_offset = _token->end_col_offset;
17076 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017077 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017078 if (_res == NULL && PyErr_Occurred()) {
17079 p->error_indicator = 1;
17080 D(p->level--);
17081 return NULL;
17082 }
17083 goto done;
17084 }
17085 p->mark = _mark;
17086 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17088 }
17089 _res = NULL;
17090 done:
17091 D(p->level--);
17092 return _res;
17093}
17094
17095// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017096static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017097del_targets_rule(Parser *p)
17098{
17099 D(p->level++);
17100 if (p->error_indicator) {
17101 D(p->level--);
17102 return NULL;
17103 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017104 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017105 int _mark = p->mark;
17106 { // ','.del_target+ ','?
17107 if (p->error_indicator) {
17108 D(p->level--);
17109 return NULL;
17110 }
17111 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17112 void *_opt_var;
17113 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017114 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017115 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017116 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017117 &&
17118 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17119 )
17120 {
17121 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17122 _res = a;
17123 if (_res == NULL && PyErr_Occurred()) {
17124 p->error_indicator = 1;
17125 D(p->level--);
17126 return NULL;
17127 }
17128 goto done;
17129 }
17130 p->mark = _mark;
17131 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17133 }
17134 _res = NULL;
17135 done:
17136 D(p->level--);
17137 return _res;
17138}
17139
17140// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017141// | t_primary '.' NAME !t_lookahead
17142// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017143// | del_t_atom
17144static expr_ty
17145del_target_rule(Parser *p)
17146{
17147 D(p->level++);
17148 if (p->error_indicator) {
17149 D(p->level--);
17150 return NULL;
17151 }
17152 expr_ty _res = NULL;
17153 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17154 D(p->level--);
17155 return _res;
17156 }
17157 int _mark = p->mark;
17158 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17159 p->error_indicator = 1;
17160 D(p->level--);
17161 return NULL;
17162 }
17163 int _start_lineno = p->tokens[_mark]->lineno;
17164 UNUSED(_start_lineno); // Only used by EXTRA macro
17165 int _start_col_offset = p->tokens[_mark]->col_offset;
17166 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017167 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017168 if (p->error_indicator) {
17169 D(p->level--);
17170 return NULL;
17171 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017172 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 +010017173 Token * _literal;
17174 expr_ty a;
17175 expr_ty b;
17176 if (
17177 (a = t_primary_rule(p)) // t_primary
17178 &&
17179 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17180 &&
17181 (b = _PyPegen_name_token(p)) // NAME
17182 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017183 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017184 )
17185 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017186 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 +010017187 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17188 if (_token == NULL) {
17189 D(p->level--);
17190 return NULL;
17191 }
17192 int _end_lineno = _token->end_lineno;
17193 UNUSED(_end_lineno); // Only used by EXTRA macro
17194 int _end_col_offset = _token->end_col_offset;
17195 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017196 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017197 if (_res == NULL && PyErr_Occurred()) {
17198 p->error_indicator = 1;
17199 D(p->level--);
17200 return NULL;
17201 }
17202 goto done;
17203 }
17204 p->mark = _mark;
17205 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017207 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017208 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017209 if (p->error_indicator) {
17210 D(p->level--);
17211 return NULL;
17212 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017213 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 +010017214 Token * _literal;
17215 Token * _literal_1;
17216 expr_ty a;
17217 expr_ty b;
17218 if (
17219 (a = t_primary_rule(p)) // t_primary
17220 &&
17221 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17222 &&
17223 (b = slices_rule(p)) // slices
17224 &&
17225 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17226 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017227 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017228 )
17229 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017230 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 +010017231 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17232 if (_token == NULL) {
17233 D(p->level--);
17234 return NULL;
17235 }
17236 int _end_lineno = _token->end_lineno;
17237 UNUSED(_end_lineno); // Only used by EXTRA macro
17238 int _end_col_offset = _token->end_col_offset;
17239 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017240 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017241 if (_res == NULL && PyErr_Occurred()) {
17242 p->error_indicator = 1;
17243 D(p->level--);
17244 return NULL;
17245 }
17246 goto done;
17247 }
17248 p->mark = _mark;
17249 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017251 }
17252 { // del_t_atom
17253 if (p->error_indicator) {
17254 D(p->level--);
17255 return NULL;
17256 }
17257 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17258 expr_ty del_t_atom_var;
17259 if (
17260 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17261 )
17262 {
17263 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17264 _res = del_t_atom_var;
17265 goto done;
17266 }
17267 p->mark = _mark;
17268 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17270 }
17271 _res = NULL;
17272 done:
17273 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17274 D(p->level--);
17275 return _res;
17276}
17277
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017278// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017279static expr_ty
17280del_t_atom_rule(Parser *p)
17281{
17282 D(p->level++);
17283 if (p->error_indicator) {
17284 D(p->level--);
17285 return NULL;
17286 }
17287 expr_ty _res = NULL;
17288 int _mark = p->mark;
17289 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17290 p->error_indicator = 1;
17291 D(p->level--);
17292 return NULL;
17293 }
17294 int _start_lineno = p->tokens[_mark]->lineno;
17295 UNUSED(_start_lineno); // Only used by EXTRA macro
17296 int _start_col_offset = p->tokens[_mark]->col_offset;
17297 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017298 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017299 if (p->error_indicator) {
17300 D(p->level--);
17301 return NULL;
17302 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017303 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017304 expr_ty a;
17305 if (
17306 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017307 )
17308 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017309 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 +010017310 _res = _PyPegen_set_expr_context ( p , a , Del );
17311 if (_res == NULL && PyErr_Occurred()) {
17312 p->error_indicator = 1;
17313 D(p->level--);
17314 return NULL;
17315 }
17316 goto done;
17317 }
17318 p->mark = _mark;
17319 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017321 }
17322 { // '(' del_target ')'
17323 if (p->error_indicator) {
17324 D(p->level--);
17325 return NULL;
17326 }
17327 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17328 Token * _literal;
17329 Token * _literal_1;
17330 expr_ty a;
17331 if (
17332 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17333 &&
17334 (a = del_target_rule(p)) // del_target
17335 &&
17336 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17337 )
17338 {
17339 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17340 _res = _PyPegen_set_expr_context ( p , a , Del );
17341 if (_res == NULL && PyErr_Occurred()) {
17342 p->error_indicator = 1;
17343 D(p->level--);
17344 return NULL;
17345 }
17346 goto done;
17347 }
17348 p->mark = _mark;
17349 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17351 }
17352 { // '(' del_targets? ')'
17353 if (p->error_indicator) {
17354 D(p->level--);
17355 return NULL;
17356 }
17357 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17358 Token * _literal;
17359 Token * _literal_1;
17360 void *a;
17361 if (
17362 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17363 &&
17364 (a = del_targets_rule(p), 1) // del_targets?
17365 &&
17366 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17367 )
17368 {
17369 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17370 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17371 if (_token == NULL) {
17372 D(p->level--);
17373 return NULL;
17374 }
17375 int _end_lineno = _token->end_lineno;
17376 UNUSED(_end_lineno); // Only used by EXTRA macro
17377 int _end_col_offset = _token->end_col_offset;
17378 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017379 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017380 if (_res == NULL && PyErr_Occurred()) {
17381 p->error_indicator = 1;
17382 D(p->level--);
17383 return NULL;
17384 }
17385 goto done;
17386 }
17387 p->mark = _mark;
17388 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17390 }
17391 { // '[' del_targets? ']'
17392 if (p->error_indicator) {
17393 D(p->level--);
17394 return NULL;
17395 }
17396 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17397 Token * _literal;
17398 Token * _literal_1;
17399 void *a;
17400 if (
17401 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17402 &&
17403 (a = del_targets_rule(p), 1) // del_targets?
17404 &&
17405 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17406 )
17407 {
17408 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17409 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17410 if (_token == NULL) {
17411 D(p->level--);
17412 return NULL;
17413 }
17414 int _end_lineno = _token->end_lineno;
17415 UNUSED(_end_lineno); // Only used by EXTRA macro
17416 int _end_col_offset = _token->end_col_offset;
17417 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017418 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017419 if (_res == NULL && PyErr_Occurred()) {
17420 p->error_indicator = 1;
17421 D(p->level--);
17422 return NULL;
17423 }
17424 goto done;
17425 }
17426 p->mark = _mark;
17427 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17429 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017430 _res = NULL;
17431 done:
17432 D(p->level--);
17433 return _res;
17434}
17435
17436// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017437static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017438targets_rule(Parser *p)
17439{
17440 D(p->level++);
17441 if (p->error_indicator) {
17442 D(p->level--);
17443 return NULL;
17444 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017445 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017446 int _mark = p->mark;
17447 { // ','.target+ ','?
17448 if (p->error_indicator) {
17449 D(p->level--);
17450 return NULL;
17451 }
17452 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17453 void *_opt_var;
17454 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017455 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017456 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017457 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017458 &&
17459 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17460 )
17461 {
17462 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17463 _res = a;
17464 if (_res == NULL && PyErr_Occurred()) {
17465 p->error_indicator = 1;
17466 D(p->level--);
17467 return NULL;
17468 }
17469 goto done;
17470 }
17471 p->mark = _mark;
17472 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
17473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
17474 }
17475 _res = NULL;
17476 done:
17477 D(p->level--);
17478 return _res;
17479}
17480
17481// target:
17482// | t_primary '.' NAME !t_lookahead
17483// | t_primary '[' slices ']' !t_lookahead
17484// | t_atom
17485static expr_ty
17486target_rule(Parser *p)
17487{
17488 D(p->level++);
17489 if (p->error_indicator) {
17490 D(p->level--);
17491 return NULL;
17492 }
17493 expr_ty _res = NULL;
17494 if (_PyPegen_is_memoized(p, target_type, &_res)) {
17495 D(p->level--);
17496 return _res;
17497 }
17498 int _mark = p->mark;
17499 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17500 p->error_indicator = 1;
17501 D(p->level--);
17502 return NULL;
17503 }
17504 int _start_lineno = p->tokens[_mark]->lineno;
17505 UNUSED(_start_lineno); // Only used by EXTRA macro
17506 int _start_col_offset = p->tokens[_mark]->col_offset;
17507 UNUSED(_start_col_offset); // Only used by EXTRA macro
17508 { // t_primary '.' NAME !t_lookahead
17509 if (p->error_indicator) {
17510 D(p->level--);
17511 return NULL;
17512 }
17513 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17514 Token * _literal;
17515 expr_ty a;
17516 expr_ty b;
17517 if (
17518 (a = t_primary_rule(p)) // t_primary
17519 &&
17520 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17521 &&
17522 (b = _PyPegen_name_token(p)) // NAME
17523 &&
17524 _PyPegen_lookahead(0, t_lookahead_rule, p)
17525 )
17526 {
17527 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17528 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17529 if (_token == NULL) {
17530 D(p->level--);
17531 return NULL;
17532 }
17533 int _end_lineno = _token->end_lineno;
17534 UNUSED(_end_lineno); // Only used by EXTRA macro
17535 int _end_col_offset = _token->end_col_offset;
17536 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017537 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017538 if (_res == NULL && PyErr_Occurred()) {
17539 p->error_indicator = 1;
17540 D(p->level--);
17541 return NULL;
17542 }
17543 goto done;
17544 }
17545 p->mark = _mark;
17546 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17548 }
17549 { // t_primary '[' slices ']' !t_lookahead
17550 if (p->error_indicator) {
17551 D(p->level--);
17552 return NULL;
17553 }
17554 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17555 Token * _literal;
17556 Token * _literal_1;
17557 expr_ty a;
17558 expr_ty b;
17559 if (
17560 (a = t_primary_rule(p)) // t_primary
17561 &&
17562 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17563 &&
17564 (b = slices_rule(p)) // slices
17565 &&
17566 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17567 &&
17568 _PyPegen_lookahead(0, t_lookahead_rule, p)
17569 )
17570 {
17571 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17572 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17573 if (_token == NULL) {
17574 D(p->level--);
17575 return NULL;
17576 }
17577 int _end_lineno = _token->end_lineno;
17578 UNUSED(_end_lineno); // Only used by EXTRA macro
17579 int _end_col_offset = _token->end_col_offset;
17580 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017581 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017582 if (_res == NULL && PyErr_Occurred()) {
17583 p->error_indicator = 1;
17584 D(p->level--);
17585 return NULL;
17586 }
17587 goto done;
17588 }
17589 p->mark = _mark;
17590 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17592 }
17593 { // t_atom
17594 if (p->error_indicator) {
17595 D(p->level--);
17596 return NULL;
17597 }
17598 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
17599 expr_ty t_atom_var;
17600 if (
17601 (t_atom_var = t_atom_rule(p)) // t_atom
17602 )
17603 {
17604 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
17605 _res = t_atom_var;
17606 goto done;
17607 }
17608 p->mark = _mark;
17609 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
17611 }
17612 _res = NULL;
17613 done:
17614 _PyPegen_insert_memo(p, _mark, target_type, _res);
17615 D(p->level--);
17616 return _res;
17617}
17618
17619// Left-recursive
17620// t_primary:
17621// | t_primary '.' NAME &t_lookahead
17622// | t_primary '[' slices ']' &t_lookahead
17623// | t_primary genexp &t_lookahead
17624// | t_primary '(' arguments? ')' &t_lookahead
17625// | atom &t_lookahead
17626static expr_ty t_primary_raw(Parser *);
17627static expr_ty
17628t_primary_rule(Parser *p)
17629{
17630 D(p->level++);
17631 expr_ty _res = NULL;
17632 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17633 D(p->level--);
17634 return _res;
17635 }
17636 int _mark = p->mark;
17637 int _resmark = p->mark;
17638 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017639 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17640 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017641 D(p->level--);
17642 return _res;
17643 }
17644 p->mark = _mark;
17645 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017646 if (p->error_indicator)
17647 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017648 if (_raw == NULL || p->mark <= _resmark)
17649 break;
17650 _resmark = p->mark;
17651 _res = _raw;
17652 }
17653 p->mark = _resmark;
17654 D(p->level--);
17655 return _res;
17656}
17657static expr_ty
17658t_primary_raw(Parser *p)
17659{
17660 D(p->level++);
17661 if (p->error_indicator) {
17662 D(p->level--);
17663 return NULL;
17664 }
17665 expr_ty _res = NULL;
17666 int _mark = p->mark;
17667 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17668 p->error_indicator = 1;
17669 D(p->level--);
17670 return NULL;
17671 }
17672 int _start_lineno = p->tokens[_mark]->lineno;
17673 UNUSED(_start_lineno); // Only used by EXTRA macro
17674 int _start_col_offset = p->tokens[_mark]->col_offset;
17675 UNUSED(_start_col_offset); // Only used by EXTRA macro
17676 { // t_primary '.' NAME &t_lookahead
17677 if (p->error_indicator) {
17678 D(p->level--);
17679 return NULL;
17680 }
17681 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17682 Token * _literal;
17683 expr_ty a;
17684 expr_ty b;
17685 if (
17686 (a = t_primary_rule(p)) // t_primary
17687 &&
17688 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17689 &&
17690 (b = _PyPegen_name_token(p)) // NAME
17691 &&
17692 _PyPegen_lookahead(1, t_lookahead_rule, p)
17693 )
17694 {
17695 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17697 if (_token == NULL) {
17698 D(p->level--);
17699 return NULL;
17700 }
17701 int _end_lineno = _token->end_lineno;
17702 UNUSED(_end_lineno); // Only used by EXTRA macro
17703 int _end_col_offset = _token->end_col_offset;
17704 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017705 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017706 if (_res == NULL && PyErr_Occurred()) {
17707 p->error_indicator = 1;
17708 D(p->level--);
17709 return NULL;
17710 }
17711 goto done;
17712 }
17713 p->mark = _mark;
17714 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17716 }
17717 { // t_primary '[' slices ']' &t_lookahead
17718 if (p->error_indicator) {
17719 D(p->level--);
17720 return NULL;
17721 }
17722 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17723 Token * _literal;
17724 Token * _literal_1;
17725 expr_ty a;
17726 expr_ty b;
17727 if (
17728 (a = t_primary_rule(p)) // t_primary
17729 &&
17730 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17731 &&
17732 (b = slices_rule(p)) // slices
17733 &&
17734 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17735 &&
17736 _PyPegen_lookahead(1, t_lookahead_rule, p)
17737 )
17738 {
17739 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17741 if (_token == NULL) {
17742 D(p->level--);
17743 return NULL;
17744 }
17745 int _end_lineno = _token->end_lineno;
17746 UNUSED(_end_lineno); // Only used by EXTRA macro
17747 int _end_col_offset = _token->end_col_offset;
17748 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017749 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017750 if (_res == NULL && PyErr_Occurred()) {
17751 p->error_indicator = 1;
17752 D(p->level--);
17753 return NULL;
17754 }
17755 goto done;
17756 }
17757 p->mark = _mark;
17758 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17760 }
17761 { // t_primary genexp &t_lookahead
17762 if (p->error_indicator) {
17763 D(p->level--);
17764 return NULL;
17765 }
17766 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17767 expr_ty a;
17768 expr_ty b;
17769 if (
17770 (a = t_primary_rule(p)) // t_primary
17771 &&
17772 (b = genexp_rule(p)) // genexp
17773 &&
17774 _PyPegen_lookahead(1, t_lookahead_rule, p)
17775 )
17776 {
17777 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17778 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17779 if (_token == NULL) {
17780 D(p->level--);
17781 return NULL;
17782 }
17783 int _end_lineno = _token->end_lineno;
17784 UNUSED(_end_lineno); // Only used by EXTRA macro
17785 int _end_col_offset = _token->end_col_offset;
17786 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017787 _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 +010017788 if (_res == NULL && PyErr_Occurred()) {
17789 p->error_indicator = 1;
17790 D(p->level--);
17791 return NULL;
17792 }
17793 goto done;
17794 }
17795 p->mark = _mark;
17796 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17798 }
17799 { // t_primary '(' arguments? ')' &t_lookahead
17800 if (p->error_indicator) {
17801 D(p->level--);
17802 return NULL;
17803 }
17804 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17805 Token * _literal;
17806 Token * _literal_1;
17807 expr_ty a;
17808 void *b;
17809 if (
17810 (a = t_primary_rule(p)) // t_primary
17811 &&
17812 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17813 &&
17814 (b = arguments_rule(p), 1) // arguments?
17815 &&
17816 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17817 &&
17818 _PyPegen_lookahead(1, t_lookahead_rule, p)
17819 )
17820 {
17821 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17822 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17823 if (_token == NULL) {
17824 D(p->level--);
17825 return NULL;
17826 }
17827 int _end_lineno = _token->end_lineno;
17828 UNUSED(_end_lineno); // Only used by EXTRA macro
17829 int _end_col_offset = _token->end_col_offset;
17830 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017831 _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 +010017832 if (_res == NULL && PyErr_Occurred()) {
17833 p->error_indicator = 1;
17834 D(p->level--);
17835 return NULL;
17836 }
17837 goto done;
17838 }
17839 p->mark = _mark;
17840 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17842 }
17843 { // atom &t_lookahead
17844 if (p->error_indicator) {
17845 D(p->level--);
17846 return NULL;
17847 }
17848 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17849 expr_ty a;
17850 if (
17851 (a = atom_rule(p)) // atom
17852 &&
17853 _PyPegen_lookahead(1, t_lookahead_rule, p)
17854 )
17855 {
17856 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17857 _res = a;
17858 if (_res == NULL && PyErr_Occurred()) {
17859 p->error_indicator = 1;
17860 D(p->level--);
17861 return NULL;
17862 }
17863 goto done;
17864 }
17865 p->mark = _mark;
17866 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17868 }
17869 _res = NULL;
17870 done:
17871 D(p->level--);
17872 return _res;
17873}
17874
17875// t_lookahead: '(' | '[' | '.'
17876static void *
17877t_lookahead_rule(Parser *p)
17878{
17879 D(p->level++);
17880 if (p->error_indicator) {
17881 D(p->level--);
17882 return NULL;
17883 }
17884 void * _res = NULL;
17885 int _mark = p->mark;
17886 { // '('
17887 if (p->error_indicator) {
17888 D(p->level--);
17889 return NULL;
17890 }
17891 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17892 Token * _literal;
17893 if (
17894 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17895 )
17896 {
17897 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17898 _res = _literal;
17899 goto done;
17900 }
17901 p->mark = _mark;
17902 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17904 }
17905 { // '['
17906 if (p->error_indicator) {
17907 D(p->level--);
17908 return NULL;
17909 }
17910 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17911 Token * _literal;
17912 if (
17913 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17914 )
17915 {
17916 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17917 _res = _literal;
17918 goto done;
17919 }
17920 p->mark = _mark;
17921 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17923 }
17924 { // '.'
17925 if (p->error_indicator) {
17926 D(p->level--);
17927 return NULL;
17928 }
17929 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17930 Token * _literal;
17931 if (
17932 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17933 )
17934 {
17935 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17936 _res = _literal;
17937 goto done;
17938 }
17939 p->mark = _mark;
17940 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17942 }
17943 _res = NULL;
17944 done:
17945 D(p->level--);
17946 return _res;
17947}
17948
17949// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17950static expr_ty
17951t_atom_rule(Parser *p)
17952{
17953 D(p->level++);
17954 if (p->error_indicator) {
17955 D(p->level--);
17956 return NULL;
17957 }
17958 expr_ty _res = NULL;
17959 int _mark = p->mark;
17960 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17961 p->error_indicator = 1;
17962 D(p->level--);
17963 return NULL;
17964 }
17965 int _start_lineno = p->tokens[_mark]->lineno;
17966 UNUSED(_start_lineno); // Only used by EXTRA macro
17967 int _start_col_offset = p->tokens[_mark]->col_offset;
17968 UNUSED(_start_col_offset); // Only used by EXTRA macro
17969 { // NAME
17970 if (p->error_indicator) {
17971 D(p->level--);
17972 return NULL;
17973 }
17974 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17975 expr_ty a;
17976 if (
17977 (a = _PyPegen_name_token(p)) // NAME
17978 )
17979 {
17980 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17981 _res = _PyPegen_set_expr_context ( p , a , Store );
17982 if (_res == NULL && PyErr_Occurred()) {
17983 p->error_indicator = 1;
17984 D(p->level--);
17985 return NULL;
17986 }
17987 goto done;
17988 }
17989 p->mark = _mark;
17990 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17992 }
17993 { // '(' target ')'
17994 if (p->error_indicator) {
17995 D(p->level--);
17996 return NULL;
17997 }
17998 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
17999 Token * _literal;
18000 Token * _literal_1;
18001 expr_ty a;
18002 if (
18003 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18004 &&
18005 (a = target_rule(p)) // target
18006 &&
18007 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18008 )
18009 {
18010 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
18011 _res = _PyPegen_set_expr_context ( p , a , Store );
18012 if (_res == NULL && PyErr_Occurred()) {
18013 p->error_indicator = 1;
18014 D(p->level--);
18015 return NULL;
18016 }
18017 goto done;
18018 }
18019 p->mark = _mark;
18020 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
18022 }
18023 { // '(' targets? ')'
18024 if (p->error_indicator) {
18025 D(p->level--);
18026 return NULL;
18027 }
18028 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
18029 Token * _literal;
18030 Token * _literal_1;
18031 void *b;
18032 if (
18033 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18034 &&
18035 (b = targets_rule(p), 1) // targets?
18036 &&
18037 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18038 )
18039 {
18040 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
18041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18042 if (_token == NULL) {
18043 D(p->level--);
18044 return NULL;
18045 }
18046 int _end_lineno = _token->end_lineno;
18047 UNUSED(_end_lineno); // Only used by EXTRA macro
18048 int _end_col_offset = _token->end_col_offset;
18049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018050 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018051 if (_res == NULL && PyErr_Occurred()) {
18052 p->error_indicator = 1;
18053 D(p->level--);
18054 return NULL;
18055 }
18056 goto done;
18057 }
18058 p->mark = _mark;
18059 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
18061 }
18062 { // '[' targets? ']'
18063 if (p->error_indicator) {
18064 D(p->level--);
18065 return NULL;
18066 }
18067 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
18068 Token * _literal;
18069 Token * _literal_1;
18070 void *b;
18071 if (
18072 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18073 &&
18074 (b = targets_rule(p), 1) // targets?
18075 &&
18076 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
18077 )
18078 {
18079 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
18080 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18081 if (_token == NULL) {
18082 D(p->level--);
18083 return NULL;
18084 }
18085 int _end_lineno = _token->end_lineno;
18086 UNUSED(_end_lineno); // Only used by EXTRA macro
18087 int _end_col_offset = _token->end_col_offset;
18088 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018089 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018090 if (_res == NULL && PyErr_Occurred()) {
18091 p->error_indicator = 1;
18092 D(p->level--);
18093 return NULL;
18094 }
18095 goto done;
18096 }
18097 p->mark = _mark;
18098 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
18100 }
18101 _res = NULL;
18102 done:
18103 D(p->level--);
18104 return _res;
18105}
18106
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018107// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018108// | args ',' '*'
18109// | expression for_if_clauses ',' [args | expression for_if_clauses]
18110// | args for_if_clauses
18111// | args ',' expression for_if_clauses
18112// | args ',' args
18113static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018114invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018115{
18116 D(p->level++);
18117 if (p->error_indicator) {
18118 D(p->level--);
18119 return NULL;
18120 }
18121 void * _res = NULL;
18122 int _mark = p->mark;
18123 { // args ',' '*'
18124 if (p->error_indicator) {
18125 D(p->level--);
18126 return NULL;
18127 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018128 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018129 Token * _literal;
18130 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018131 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018132 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018133 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018134 &&
18135 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18136 &&
18137 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
18138 )
18139 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018140 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018141 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018142 if (_res == NULL && PyErr_Occurred()) {
18143 p->error_indicator = 1;
18144 D(p->level--);
18145 return NULL;
18146 }
18147 goto done;
18148 }
18149 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018150 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
18152 }
18153 { // expression for_if_clauses ',' [args | expression for_if_clauses]
18154 if (p->error_indicator) {
18155 D(p->level--);
18156 return NULL;
18157 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018158 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 +010018159 Token * _literal;
18160 void *_opt_var;
18161 UNUSED(_opt_var); // Silence compiler warnings
18162 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018163 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018164 if (
18165 (a = expression_rule(p)) // expression
18166 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018167 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018168 &&
18169 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18170 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018171 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018172 )
18173 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018174 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 +010018175 _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 +010018176 if (_res == NULL && PyErr_Occurred()) {
18177 p->error_indicator = 1;
18178 D(p->level--);
18179 return NULL;
18180 }
18181 goto done;
18182 }
18183 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018184 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
18186 }
18187 { // args for_if_clauses
18188 if (p->error_indicator) {
18189 D(p->level--);
18190 return NULL;
18191 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018192 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 +010018193 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018194 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018195 if (
18196 (a = args_rule(p)) // args
18197 &&
18198 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18199 )
18200 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018201 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 +010018202 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
18203 if (_res == NULL && PyErr_Occurred()) {
18204 p->error_indicator = 1;
18205 D(p->level--);
18206 return NULL;
18207 }
18208 goto done;
18209 }
18210 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018211 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
18213 }
18214 { // args ',' expression for_if_clauses
18215 if (p->error_indicator) {
18216 D(p->level--);
18217 return NULL;
18218 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018219 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 +010018220 Token * _literal;
18221 expr_ty a;
18222 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018223 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018224 if (
18225 (args_var = args_rule(p)) // args
18226 &&
18227 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18228 &&
18229 (a = expression_rule(p)) // expression
18230 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018231 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018232 )
18233 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018234 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 +010018235 _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 +010018236 if (_res == NULL && PyErr_Occurred()) {
18237 p->error_indicator = 1;
18238 D(p->level--);
18239 return NULL;
18240 }
18241 goto done;
18242 }
18243 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018244 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
18246 }
18247 { // args ',' args
18248 if (p->error_indicator) {
18249 D(p->level--);
18250 return NULL;
18251 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018252 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018253 Token * _literal;
18254 expr_ty a;
18255 expr_ty args_var;
18256 if (
18257 (a = args_rule(p)) // args
18258 &&
18259 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18260 &&
18261 (args_var = args_rule(p)) // args
18262 )
18263 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018264 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 +010018265 _res = _PyPegen_arguments_parsing_error ( p , a );
18266 if (_res == NULL && PyErr_Occurred()) {
18267 p->error_indicator = 1;
18268 D(p->level--);
18269 return NULL;
18270 }
18271 goto done;
18272 }
18273 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018274 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
18276 }
18277 _res = NULL;
18278 done:
18279 D(p->level--);
18280 return _res;
18281}
18282
18283// invalid_kwarg: expression '='
18284static void *
18285invalid_kwarg_rule(Parser *p)
18286{
18287 D(p->level++);
18288 if (p->error_indicator) {
18289 D(p->level--);
18290 return NULL;
18291 }
18292 void * _res = NULL;
18293 int _mark = p->mark;
18294 { // expression '='
18295 if (p->error_indicator) {
18296 D(p->level--);
18297 return NULL;
18298 }
18299 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018300 expr_ty a;
18301 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018302 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018303 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018304 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018305 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018306 )
18307 {
18308 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018309 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018310 if (_res == NULL && PyErr_Occurred()) {
18311 p->error_indicator = 1;
18312 D(p->level--);
18313 return NULL;
18314 }
18315 goto done;
18316 }
18317 p->mark = _mark;
18318 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
18320 }
18321 _res = NULL;
18322 done:
18323 D(p->level--);
18324 return _res;
18325}
18326
Pablo Galindob2802482021-04-15 21:38:45 +010018327// invalid_expression: !(NAME STRING | SOFT_KEYWORD) disjunction expression
18328static void *
18329invalid_expression_rule(Parser *p)
18330{
18331 D(p->level++);
18332 if (p->error_indicator) {
18333 D(p->level--);
18334 return NULL;
18335 }
18336 void * _res = NULL;
18337 int _mark = p->mark;
18338 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression
18339 if (p->error_indicator) {
18340 D(p->level--);
18341 return NULL;
18342 }
18343 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
18344 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018345 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018346 if (
18347 _PyPegen_lookahead(0, _tmp_143_rule, p)
18348 &&
18349 (a = disjunction_rule(p)) // disjunction
18350 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018351 (b = expression_rule(p)) // expression
Pablo Galindob2802482021-04-15 21:38:45 +010018352 )
18353 {
18354 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018355 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018356 if (_res == NULL && PyErr_Occurred()) {
18357 p->error_indicator = 1;
18358 D(p->level--);
18359 return NULL;
18360 }
18361 goto done;
18362 }
18363 p->mark = _mark;
18364 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
18365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
18366 }
18367 _res = NULL;
18368 done:
18369 D(p->level--);
18370 return _res;
18371}
18372
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018373// invalid_named_expression:
18374// | expression ':=' expression
18375// | NAME '=' bitwise_or !('=' | ':=' | ',')
18376// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018377static void *
18378invalid_named_expression_rule(Parser *p)
18379{
18380 D(p->level++);
18381 if (p->error_indicator) {
18382 D(p->level--);
18383 return NULL;
18384 }
18385 void * _res = NULL;
18386 int _mark = p->mark;
18387 { // expression ':=' expression
18388 if (p->error_indicator) {
18389 D(p->level--);
18390 return NULL;
18391 }
18392 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18393 Token * _literal;
18394 expr_ty a;
18395 expr_ty expression_var;
18396 if (
18397 (a = expression_rule(p)) // expression
18398 &&
18399 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18400 &&
18401 (expression_var = expression_rule(p)) // expression
18402 )
18403 {
18404 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18405 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18406 if (_res == NULL && PyErr_Occurred()) {
18407 p->error_indicator = 1;
18408 D(p->level--);
18409 return NULL;
18410 }
18411 goto done;
18412 }
18413 p->mark = _mark;
18414 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18416 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018417 { // NAME '=' bitwise_or !('=' | ':=' | ',')
18418 if (p->error_indicator) {
18419 D(p->level--);
18420 return NULL;
18421 }
18422 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 +010018423 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018424 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018425 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018426 if (
18427 (a = _PyPegen_name_token(p)) // NAME
18428 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018429 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018430 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018431 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018432 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018433 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018434 )
18435 {
18436 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018437 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018438 if (_res == NULL && PyErr_Occurred()) {
18439 p->error_indicator = 1;
18440 D(p->level--);
18441 return NULL;
18442 }
18443 goto done;
18444 }
18445 p->mark = _mark;
18446 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
18448 }
18449 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
18450 if (p->error_indicator) {
18451 D(p->level--);
18452 return NULL;
18453 }
18454 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 !('=' | ':=' | ',')"));
18455 expr_ty a;
18456 Token * b;
18457 expr_ty bitwise_or_var;
18458 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018459 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018460 &&
18461 (a = bitwise_or_rule(p)) // bitwise_or
18462 &&
18463 (b = _PyPegen_expect_token(p, 22)) // token='='
18464 &&
18465 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18466 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018467 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018468 )
18469 {
18470 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018471 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018472 if (_res == NULL && PyErr_Occurred()) {
18473 p->error_indicator = 1;
18474 D(p->level--);
18475 return NULL;
18476 }
18477 goto done;
18478 }
18479 p->mark = _mark;
18480 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
18482 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018483 _res = NULL;
18484 done:
18485 D(p->level--);
18486 return _res;
18487}
18488
18489// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018490// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018491// | star_named_expression ',' star_named_expressions* ':' expression
18492// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018493// | ((star_targets '='))* star_expressions '='
18494// | ((star_targets '='))* yield_expr '='
18495// | star_expressions augassign (yield_expr | star_expressions)
18496static void *
18497invalid_assignment_rule(Parser *p)
18498{
18499 D(p->level++);
18500 if (p->error_indicator) {
18501 D(p->level--);
18502 return NULL;
18503 }
18504 void * _res = NULL;
18505 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018506 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018507 if (p->error_indicator) {
18508 D(p->level--);
18509 return NULL;
18510 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018511 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 +010018512 Token * _literal;
18513 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018514 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018515 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018516 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018517 &&
18518 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018519 &&
18520 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018521 )
18522 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018523 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18524 _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 +010018525 if (_res == NULL && PyErr_Occurred()) {
18526 p->error_indicator = 1;
18527 D(p->level--);
18528 return NULL;
18529 }
18530 goto done;
18531 }
18532 p->mark = _mark;
18533 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018535 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018536 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018537 if (p->error_indicator) {
18538 D(p->level--);
18539 return NULL;
18540 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018541 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 +010018542 Token * _literal;
18543 Token * _literal_1;
Pablo Galindob2802482021-04-15 21:38:45 +010018544 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018545 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018546 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018547 if (
18548 (a = star_named_expression_rule(p)) // star_named_expression
18549 &&
18550 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18551 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018552 (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018553 &&
18554 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018555 &&
18556 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018557 )
18558 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018559 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 +010018560 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18561 if (_res == NULL && PyErr_Occurred()) {
18562 p->error_indicator = 1;
18563 D(p->level--);
18564 return NULL;
18565 }
18566 goto done;
18567 }
18568 p->mark = _mark;
18569 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018571 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018572 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018573 if (p->error_indicator) {
18574 D(p->level--);
18575 return NULL;
18576 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018577 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018578 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018579 expr_ty a;
18580 expr_ty expression_var;
18581 if (
18582 (a = expression_rule(p)) // expression
18583 &&
18584 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18585 &&
18586 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018587 )
18588 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018589 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 +010018590 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18591 if (_res == NULL && PyErr_Occurred()) {
18592 p->error_indicator = 1;
18593 D(p->level--);
18594 return NULL;
18595 }
18596 goto done;
18597 }
18598 p->mark = _mark;
18599 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018601 }
18602 { // ((star_targets '='))* star_expressions '='
18603 if (p->error_indicator) {
18604 D(p->level--);
18605 return NULL;
18606 }
18607 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18608 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018609 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018610 expr_ty a;
18611 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018612 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018613 &&
18614 (a = star_expressions_rule(p)) // star_expressions
18615 &&
18616 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18617 )
18618 {
18619 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 +030018620 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018621 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_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18631 }
18632 { // ((star_targets '='))* yield_expr '='
18633 if (p->error_indicator) {
18634 D(p->level--);
18635 return NULL;
18636 }
18637 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18638 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018639 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018640 expr_ty a;
18641 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018642 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018643 &&
18644 (a = yield_expr_rule(p)) // yield_expr
18645 &&
18646 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18647 )
18648 {
18649 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18650 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18651 if (_res == NULL && PyErr_Occurred()) {
18652 p->error_indicator = 1;
18653 D(p->level--);
18654 return NULL;
18655 }
18656 goto done;
18657 }
18658 p->mark = _mark;
18659 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18661 }
18662 { // star_expressions augassign (yield_expr | star_expressions)
18663 if (p->error_indicator) {
18664 D(p->level--);
18665 return NULL;
18666 }
18667 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindob2802482021-04-15 21:38:45 +010018668 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018669 expr_ty a;
18670 AugOperator* augassign_var;
18671 if (
18672 (a = star_expressions_rule(p)) // star_expressions
18673 &&
18674 (augassign_var = augassign_rule(p)) // augassign
18675 &&
Pablo Galindob2802482021-04-15 21:38:45 +010018676 (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018677 )
18678 {
18679 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18680 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18681 if (_res == NULL && PyErr_Occurred()) {
18682 p->error_indicator = 1;
18683 D(p->level--);
18684 return NULL;
18685 }
18686 goto done;
18687 }
18688 p->mark = _mark;
18689 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18691 }
18692 _res = NULL;
18693 done:
18694 D(p->level--);
18695 return _res;
18696}
18697
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018698// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18699static expr_ty
18700invalid_ann_assign_target_rule(Parser *p)
18701{
18702 D(p->level++);
18703 if (p->error_indicator) {
18704 D(p->level--);
18705 return NULL;
18706 }
18707 expr_ty _res = NULL;
18708 int _mark = p->mark;
18709 { // list
18710 if (p->error_indicator) {
18711 D(p->level--);
18712 return NULL;
18713 }
18714 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18715 expr_ty list_var;
18716 if (
18717 (list_var = list_rule(p)) // list
18718 )
18719 {
18720 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18721 _res = list_var;
18722 goto done;
18723 }
18724 p->mark = _mark;
18725 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18727 }
18728 { // tuple
18729 if (p->error_indicator) {
18730 D(p->level--);
18731 return NULL;
18732 }
18733 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18734 expr_ty tuple_var;
18735 if (
18736 (tuple_var = tuple_rule(p)) // tuple
18737 )
18738 {
18739 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18740 _res = tuple_var;
18741 goto done;
18742 }
18743 p->mark = _mark;
18744 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18746 }
18747 { // '(' invalid_ann_assign_target ')'
18748 if (p->error_indicator) {
18749 D(p->level--);
18750 return NULL;
18751 }
18752 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18753 Token * _literal;
18754 Token * _literal_1;
18755 expr_ty a;
18756 if (
18757 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18758 &&
18759 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18760 &&
18761 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18762 )
18763 {
18764 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18765 _res = a;
18766 if (_res == NULL && PyErr_Occurred()) {
18767 p->error_indicator = 1;
18768 D(p->level--);
18769 return NULL;
18770 }
18771 goto done;
18772 }
18773 p->mark = _mark;
18774 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18776 }
18777 _res = NULL;
18778 done:
18779 D(p->level--);
18780 return _res;
18781}
18782
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018783// invalid_del_stmt: 'del' star_expressions
18784static void *
18785invalid_del_stmt_rule(Parser *p)
18786{
18787 D(p->level++);
18788 if (p->error_indicator) {
18789 D(p->level--);
18790 return NULL;
18791 }
18792 void * _res = NULL;
18793 int _mark = p->mark;
18794 { // 'del' star_expressions
18795 if (p->error_indicator) {
18796 D(p->level--);
18797 return NULL;
18798 }
18799 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18800 Token * _keyword;
18801 expr_ty a;
18802 if (
18803 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18804 &&
18805 (a = star_expressions_rule(p)) // star_expressions
18806 )
18807 {
18808 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 +030018809 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018810 if (_res == NULL && PyErr_Occurred()) {
18811 p->error_indicator = 1;
18812 D(p->level--);
18813 return NULL;
18814 }
18815 goto done;
18816 }
18817 p->mark = _mark;
18818 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18820 }
18821 _res = NULL;
18822 done:
18823 D(p->level--);
18824 return _res;
18825}
18826
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018827// invalid_block: NEWLINE !INDENT
18828static void *
18829invalid_block_rule(Parser *p)
18830{
18831 D(p->level++);
18832 if (p->error_indicator) {
18833 D(p->level--);
18834 return NULL;
18835 }
18836 void * _res = NULL;
18837 int _mark = p->mark;
18838 { // NEWLINE !INDENT
18839 if (p->error_indicator) {
18840 D(p->level--);
18841 return NULL;
18842 }
18843 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18844 Token * newline_var;
18845 if (
18846 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18847 &&
18848 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18849 )
18850 {
18851 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18852 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18853 if (_res == NULL && PyErr_Occurred()) {
18854 p->error_indicator = 1;
18855 D(p->level--);
18856 return NULL;
18857 }
18858 goto done;
18859 }
18860 p->mark = _mark;
18861 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18863 }
18864 _res = NULL;
18865 done:
18866 D(p->level--);
18867 return _res;
18868}
18869
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018870// Left-recursive
18871// invalid_primary: primary '{'
18872static void *
18873invalid_primary_rule(Parser *p)
18874{
18875 D(p->level++);
18876 if (p->error_indicator) {
18877 D(p->level--);
18878 return NULL;
18879 }
18880 void * _res = NULL;
18881 int _mark = p->mark;
18882 { // primary '{'
18883 if (p->error_indicator) {
18884 D(p->level--);
18885 return NULL;
18886 }
18887 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18888 Token * a;
18889 expr_ty primary_var;
18890 if (
18891 (primary_var = primary_rule(p)) // primary
18892 &&
18893 (a = _PyPegen_expect_token(p, 25)) // token='{'
18894 )
18895 {
18896 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18897 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18898 if (_res == NULL && PyErr_Occurred()) {
18899 p->error_indicator = 1;
18900 D(p->level--);
18901 return NULL;
18902 }
18903 goto done;
18904 }
18905 p->mark = _mark;
18906 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18908 }
18909 _res = NULL;
18910 done:
18911 D(p->level--);
18912 return _res;
18913}
18914
Pablo Galindo835f14f2021-01-31 22:52:56 +000018915// invalid_comprehension:
18916// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018917// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18918// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018919static void *
18920invalid_comprehension_rule(Parser *p)
18921{
18922 D(p->level++);
18923 if (p->error_indicator) {
18924 D(p->level--);
18925 return NULL;
18926 }
18927 void * _res = NULL;
18928 int _mark = p->mark;
18929 { // ('[' | '(' | '{') starred_expression for_if_clauses
18930 if (p->error_indicator) {
18931 D(p->level--);
18932 return NULL;
18933 }
18934 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindob2802482021-04-15 21:38:45 +010018935 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018936 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018937 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018938 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018939 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018940 &&
18941 (a = starred_expression_rule(p)) // starred_expression
18942 &&
18943 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18944 )
18945 {
18946 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18947 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18948 if (_res == NULL && PyErr_Occurred()) {
18949 p->error_indicator = 1;
18950 D(p->level--);
18951 return NULL;
18952 }
18953 goto done;
18954 }
18955 p->mark = _mark;
18956 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18958 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018959 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018960 if (p->error_indicator) {
18961 D(p->level--);
18962 return NULL;
18963 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018964 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 +000018965 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010018966 void *_tmp_152_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018967 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018968 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018969 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018970 if (
Pablo Galindob2802482021-04-15 21:38:45 +010018971 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018972 &&
18973 (a = star_named_expression_rule(p)) // star_named_expression
18974 &&
18975 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18976 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018977 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018978 &&
18979 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018980 )
18981 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018982 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"));
18983 _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 +000018984 if (_res == NULL && PyErr_Occurred()) {
18985 p->error_indicator = 1;
18986 D(p->level--);
18987 return NULL;
18988 }
18989 goto done;
18990 }
18991 p->mark = _mark;
18992 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18994 }
18995 { // ('[' | '{') star_named_expression ',' for_if_clauses
18996 if (p->error_indicator) {
18997 D(p->level--);
18998 return NULL;
18999 }
19000 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
19001 void *_tmp_153_var;
19002 expr_ty a;
19003 Token * b;
19004 asdl_comprehension_seq* for_if_clauses_var;
19005 if (
19006 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{'
19007 &&
19008 (a = star_named_expression_rule(p)) // star_named_expression
19009 &&
19010 (b = _PyPegen_expect_token(p, 12)) // token=','
19011 &&
19012 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19013 )
19014 {
19015 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
19016 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
19017 if (_res == NULL && PyErr_Occurred()) {
19018 p->error_indicator = 1;
19019 D(p->level--);
19020 return NULL;
19021 }
19022 goto done;
19023 }
19024 p->mark = _mark;
19025 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000019027 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019028 _res = NULL;
19029 done:
19030 D(p->level--);
19031 return _res;
19032}
19033
19034// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
19035static void *
19036invalid_dict_comprehension_rule(Parser *p)
19037{
19038 D(p->level++);
19039 if (p->error_indicator) {
19040 D(p->level--);
19041 return NULL;
19042 }
19043 void * _res = NULL;
19044 int _mark = p->mark;
19045 { // '{' '**' bitwise_or for_if_clauses '}'
19046 if (p->error_indicator) {
19047 D(p->level--);
19048 return NULL;
19049 }
19050 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19051 Token * _literal;
19052 Token * _literal_1;
19053 Token * a;
19054 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019055 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019056 if (
19057 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
19058 &&
19059 (a = _PyPegen_expect_token(p, 35)) // token='**'
19060 &&
19061 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19062 &&
19063 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19064 &&
19065 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
19066 )
19067 {
19068 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19069 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
19070 if (_res == NULL && PyErr_Occurred()) {
19071 p->error_indicator = 1;
19072 D(p->level--);
19073 return NULL;
19074 }
19075 goto done;
19076 }
19077 p->mark = _mark;
19078 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19080 }
19081 _res = NULL;
19082 done:
19083 D(p->level--);
19084 return _res;
19085}
19086
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019087// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019088static void *
19089invalid_parameters_rule(Parser *p)
19090{
19091 D(p->level++);
19092 if (p->error_indicator) {
19093 D(p->level--);
19094 return NULL;
19095 }
19096 void * _res = NULL;
19097 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019098 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019099 if (p->error_indicator) {
19100 D(p->level--);
19101 return NULL;
19102 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019103 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019104 asdl_seq * _loop0_154_var;
19105 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019106 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019107 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019108 (_loop0_154_var = _loop0_154_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019109 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019110 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019111 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019112 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019113 )
19114 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019115 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 +010019116 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019117 if (_res == NULL && PyErr_Occurred()) {
19118 p->error_indicator = 1;
19119 D(p->level--);
19120 return NULL;
19121 }
19122 goto done;
19123 }
19124 p->mark = _mark;
19125 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19127 }
19128 _res = NULL;
19129 done:
19130 D(p->level--);
19131 return _res;
19132}
19133
19134// invalid_parameters_helper: slash_with_default | param_with_default+
19135static void *
19136invalid_parameters_helper_rule(Parser *p)
19137{
19138 D(p->level++);
19139 if (p->error_indicator) {
19140 D(p->level--);
19141 return NULL;
19142 }
19143 void * _res = NULL;
19144 int _mark = p->mark;
19145 { // slash_with_default
19146 if (p->error_indicator) {
19147 D(p->level--);
19148 return NULL;
19149 }
19150 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19151 SlashWithDefault* a;
19152 if (
19153 (a = slash_with_default_rule(p)) // slash_with_default
19154 )
19155 {
19156 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19157 _res = _PyPegen_singleton_seq ( p , a );
19158 if (_res == NULL && PyErr_Occurred()) {
19159 p->error_indicator = 1;
19160 D(p->level--);
19161 return NULL;
19162 }
19163 goto done;
19164 }
19165 p->mark = _mark;
19166 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19168 }
19169 { // param_with_default+
19170 if (p->error_indicator) {
19171 D(p->level--);
19172 return NULL;
19173 }
19174 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019175 asdl_seq * _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019176 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019177 (_loop1_155_var = _loop1_155_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019178 )
19179 {
19180 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019181 _res = _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019182 goto done;
19183 }
19184 p->mark = _mark;
19185 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019187 }
19188 _res = NULL;
19189 done:
19190 D(p->level--);
19191 return _res;
19192}
19193
19194// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019195// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019196static void *
19197invalid_lambda_parameters_rule(Parser *p)
19198{
19199 D(p->level++);
19200 if (p->error_indicator) {
19201 D(p->level--);
19202 return NULL;
19203 }
19204 void * _res = NULL;
19205 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019206 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019207 if (p->error_indicator) {
19208 D(p->level--);
19209 return NULL;
19210 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019211 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019212 asdl_seq * _loop0_156_var;
19213 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019214 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019215 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019216 (_loop0_156_var = _loop0_156_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019217 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019218 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019219 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019220 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019221 )
19222 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019223 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 +010019224 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019225 if (_res == NULL && PyErr_Occurred()) {
19226 p->error_indicator = 1;
19227 D(p->level--);
19228 return NULL;
19229 }
19230 goto done;
19231 }
19232 p->mark = _mark;
19233 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19235 }
19236 _res = NULL;
19237 done:
19238 D(p->level--);
19239 return _res;
19240}
19241
19242// invalid_lambda_parameters_helper:
19243// | lambda_slash_with_default
19244// | lambda_param_with_default+
19245static void *
19246invalid_lambda_parameters_helper_rule(Parser *p)
19247{
19248 D(p->level++);
19249 if (p->error_indicator) {
19250 D(p->level--);
19251 return NULL;
19252 }
19253 void * _res = NULL;
19254 int _mark = p->mark;
19255 { // lambda_slash_with_default
19256 if (p->error_indicator) {
19257 D(p->level--);
19258 return NULL;
19259 }
19260 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19261 SlashWithDefault* a;
19262 if (
19263 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19264 )
19265 {
19266 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19267 _res = _PyPegen_singleton_seq ( p , a );
19268 if (_res == NULL && PyErr_Occurred()) {
19269 p->error_indicator = 1;
19270 D(p->level--);
19271 return NULL;
19272 }
19273 goto done;
19274 }
19275 p->mark = _mark;
19276 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19278 }
19279 { // lambda_param_with_default+
19280 if (p->error_indicator) {
19281 D(p->level--);
19282 return NULL;
19283 }
19284 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019285 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019286 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019287 (_loop1_157_var = _loop1_157_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019288 )
19289 {
19290 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019291 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019292 goto done;
19293 }
19294 p->mark = _mark;
19295 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019297 }
19298 _res = NULL;
19299 done:
19300 D(p->level--);
19301 return _res;
19302}
19303
19304// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19305static void *
19306invalid_star_etc_rule(Parser *p)
19307{
19308 D(p->level++);
19309 if (p->error_indicator) {
19310 D(p->level--);
19311 return NULL;
19312 }
19313 void * _res = NULL;
19314 int _mark = p->mark;
19315 { // '*' (')' | ',' (')' | '**'))
19316 if (p->error_indicator) {
19317 D(p->level--);
19318 return NULL;
19319 }
19320 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019321 void *_tmp_158_var;
19322 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019323 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019324 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019325 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019326 (_tmp_158_var = _tmp_158_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019327 )
19328 {
19329 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019330 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019331 if (_res == NULL && PyErr_Occurred()) {
19332 p->error_indicator = 1;
19333 D(p->level--);
19334 return NULL;
19335 }
19336 goto done;
19337 }
19338 p->mark = _mark;
19339 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19341 }
19342 { // '*' ',' TYPE_COMMENT
19343 if (p->error_indicator) {
19344 D(p->level--);
19345 return NULL;
19346 }
19347 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19348 Token * _literal;
19349 Token * _literal_1;
19350 Token * type_comment_var;
19351 if (
19352 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19353 &&
19354 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19355 &&
19356 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19357 )
19358 {
19359 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19360 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19361 if (_res == NULL && PyErr_Occurred()) {
19362 p->error_indicator = 1;
19363 D(p->level--);
19364 return NULL;
19365 }
19366 goto done;
19367 }
19368 p->mark = _mark;
19369 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19371 }
19372 _res = NULL;
19373 done:
19374 D(p->level--);
19375 return _res;
19376}
19377
19378// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19379static void *
19380invalid_lambda_star_etc_rule(Parser *p)
19381{
19382 D(p->level++);
19383 if (p->error_indicator) {
19384 D(p->level--);
19385 return NULL;
19386 }
19387 void * _res = NULL;
19388 int _mark = p->mark;
19389 { // '*' (':' | ',' (':' | '**'))
19390 if (p->error_indicator) {
19391 D(p->level--);
19392 return NULL;
19393 }
19394 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19395 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019396 void *_tmp_159_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019397 if (
19398 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19399 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019400 (_tmp_159_var = _tmp_159_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019401 )
19402 {
19403 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19404 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19405 if (_res == NULL && PyErr_Occurred()) {
19406 p->error_indicator = 1;
19407 D(p->level--);
19408 return NULL;
19409 }
19410 goto done;
19411 }
19412 p->mark = _mark;
19413 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19415 }
19416 _res = NULL;
19417 done:
19418 D(p->level--);
19419 return _res;
19420}
19421
19422// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19423static void *
19424invalid_double_type_comments_rule(Parser *p)
19425{
19426 D(p->level++);
19427 if (p->error_indicator) {
19428 D(p->level--);
19429 return NULL;
19430 }
19431 void * _res = NULL;
19432 int _mark = p->mark;
19433 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19434 if (p->error_indicator) {
19435 D(p->level--);
19436 return NULL;
19437 }
19438 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19439 Token * indent_var;
19440 Token * newline_var;
19441 Token * newline_var_1;
19442 Token * type_comment_var;
19443 Token * type_comment_var_1;
19444 if (
19445 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19446 &&
19447 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19448 &&
19449 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19450 &&
19451 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19452 &&
19453 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19454 )
19455 {
19456 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"));
19457 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19458 if (_res == NULL && PyErr_Occurred()) {
19459 p->error_indicator = 1;
19460 D(p->level--);
19461 return NULL;
19462 }
19463 goto done;
19464 }
19465 p->mark = _mark;
19466 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19468 }
19469 _res = NULL;
19470 done:
19471 D(p->level--);
19472 return _res;
19473}
19474
Pablo Galindo58fb1562021-02-02 19:54:22 +000019475// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019476static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019477invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019478{
19479 D(p->level++);
19480 if (p->error_indicator) {
19481 D(p->level--);
19482 return NULL;
19483 }
19484 void * _res = NULL;
19485 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019486 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019487 if (p->error_indicator) {
19488 D(p->level--);
19489 return NULL;
19490 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019491 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 +030019492 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019493 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019494 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019495 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019496 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019497 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019498 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19499 &&
19500 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019501 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019502 _PyPegen_lookahead(1, _tmp_160_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019503 )
19504 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019505 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 +030019506 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019507 if (_res == NULL && PyErr_Occurred()) {
19508 p->error_indicator = 1;
19509 D(p->level--);
19510 return NULL;
19511 }
19512 goto done;
19513 }
19514 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019515 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019517 }
19518 _res = NULL;
19519 done:
19520 D(p->level--);
19521 return _res;
19522}
19523
19524// invalid_for_target: ASYNC? 'for' star_expressions
19525static void *
19526invalid_for_target_rule(Parser *p)
19527{
19528 D(p->level++);
19529 if (p->error_indicator) {
19530 D(p->level--);
19531 return NULL;
19532 }
19533 void * _res = NULL;
19534 int _mark = p->mark;
19535 { // ASYNC? 'for' star_expressions
19536 if (p->error_indicator) {
19537 D(p->level--);
19538 return NULL;
19539 }
19540 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19541 Token * _keyword;
19542 void *_opt_var;
19543 UNUSED(_opt_var); // Silence compiler warnings
19544 expr_ty a;
19545 if (
19546 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19547 &&
19548 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19549 &&
19550 (a = star_expressions_rule(p)) // star_expressions
19551 )
19552 {
19553 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 +030019554 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019555 if (_res == NULL && PyErr_Occurred()) {
19556 p->error_indicator = 1;
19557 D(p->level--);
19558 return NULL;
19559 }
19560 goto done;
19561 }
19562 p->mark = _mark;
19563 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19565 }
19566 _res = NULL;
19567 done:
19568 D(p->level--);
19569 return _res;
19570}
19571
Pablo Galindo8efad612021-03-24 19:34:17 +000019572// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019573static void *
19574invalid_group_rule(Parser *p)
19575{
19576 D(p->level++);
19577 if (p->error_indicator) {
19578 D(p->level--);
19579 return NULL;
19580 }
19581 void * _res = NULL;
19582 int _mark = p->mark;
19583 { // '(' starred_expression ')'
19584 if (p->error_indicator) {
19585 D(p->level--);
19586 return NULL;
19587 }
19588 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19589 Token * _literal;
19590 Token * _literal_1;
19591 expr_ty a;
19592 if (
19593 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19594 &&
19595 (a = starred_expression_rule(p)) // starred_expression
19596 &&
19597 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19598 )
19599 {
19600 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 +010019601 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019602 if (_res == NULL && PyErr_Occurred()) {
19603 p->error_indicator = 1;
19604 D(p->level--);
19605 return NULL;
19606 }
19607 goto done;
19608 }
19609 p->mark = _mark;
19610 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019612 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019613 { // '(' '**' expression ')'
19614 if (p->error_indicator) {
19615 D(p->level--);
19616 return NULL;
19617 }
19618 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19619 Token * _literal;
19620 Token * _literal_1;
19621 Token * a;
19622 expr_ty expression_var;
19623 if (
19624 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19625 &&
19626 (a = _PyPegen_expect_token(p, 35)) // token='**'
19627 &&
19628 (expression_var = expression_rule(p)) // expression
19629 &&
19630 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19631 )
19632 {
19633 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019634 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019635 if (_res == NULL && PyErr_Occurred()) {
19636 p->error_indicator = 1;
19637 D(p->level--);
19638 return NULL;
19639 }
19640 goto done;
19641 }
19642 p->mark = _mark;
19643 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19645 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019646 _res = NULL;
19647 done:
19648 D(p->level--);
19649 return _res;
19650}
19651
19652// invalid_import_from_targets: import_from_as_names ','
19653static void *
19654invalid_import_from_targets_rule(Parser *p)
19655{
19656 D(p->level++);
19657 if (p->error_indicator) {
19658 D(p->level--);
19659 return NULL;
19660 }
19661 void * _res = NULL;
19662 int _mark = p->mark;
19663 { // import_from_as_names ','
19664 if (p->error_indicator) {
19665 D(p->level--);
19666 return NULL;
19667 }
19668 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19669 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019670 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019671 if (
19672 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19673 &&
19674 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19675 )
19676 {
19677 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19678 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
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_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19689 }
19690 _res = NULL;
19691 done:
19692 D(p->level--);
19693 return _res;
19694}
19695
Pablo Galindo58fb1562021-02-02 19:54:22 +000019696// invalid_with_stmt:
19697// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19698// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19699static void *
19700invalid_with_stmt_rule(Parser *p)
19701{
19702 D(p->level++);
19703 if (p->error_indicator) {
19704 D(p->level--);
19705 return NULL;
19706 }
19707 void * _res = NULL;
19708 int _mark = p->mark;
19709 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19710 if (p->error_indicator) {
19711 D(p->level--);
19712 return NULL;
19713 }
19714 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019715 asdl_seq * _gather_161_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019716 Token * _keyword;
19717 Token * _literal;
19718 void *_opt_var;
19719 UNUSED(_opt_var); // Silence compiler warnings
19720 if (
19721 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19722 &&
19723 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19724 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019725 (_gather_161_var = _gather_161_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019726 &&
19727 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19728 )
19729 {
19730 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019731 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_161_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019732 goto done;
19733 }
19734 p->mark = _mark;
19735 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19737 }
19738 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19739 if (p->error_indicator) {
19740 D(p->level--);
19741 return NULL;
19742 }
19743 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019744 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019745 Token * _keyword;
19746 Token * _literal;
19747 Token * _literal_1;
19748 Token * _literal_2;
19749 void *_opt_var;
19750 UNUSED(_opt_var); // Silence compiler warnings
19751 void *_opt_var_1;
19752 UNUSED(_opt_var_1); // Silence compiler warnings
19753 if (
19754 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19755 &&
19756 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19757 &&
19758 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19759 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019760 (_gather_163_var = _gather_163_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019761 &&
19762 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19763 &&
19764 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19765 &&
19766 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19767 )
19768 {
19769 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019770 _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 +000019771 goto done;
19772 }
19773 p->mark = _mark;
19774 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19776 }
19777 _res = NULL;
19778 done:
19779 D(p->level--);
19780 return _res;
19781}
19782
Pablo Galindo56c95df2021-04-21 15:28:21 +010019783// invalid_with_stmt_indent:
19784// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19785// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019786static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019787invalid_with_stmt_indent_rule(Parser *p)
19788{
19789 D(p->level++);
19790 if (p->error_indicator) {
19791 D(p->level--);
19792 return NULL;
19793 }
19794 void * _res = NULL;
19795 int _mark = p->mark;
19796 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19797 if (p->error_indicator) {
19798 D(p->level--);
19799 return NULL;
19800 }
19801 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019802 asdl_seq * _gather_165_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019803 Token * _literal;
19804 void *_opt_var;
19805 UNUSED(_opt_var); // Silence compiler warnings
19806 Token * a;
19807 Token * newline_var;
19808 if (
19809 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19810 &&
19811 (a = _PyPegen_expect_token(p, 519)) // token='with'
19812 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019813 (_gather_165_var = _gather_165_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019814 &&
19815 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19816 &&
19817 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19818 &&
19819 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19820 )
19821 {
19822 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"));
19823 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19824 if (_res == NULL && PyErr_Occurred()) {
19825 p->error_indicator = 1;
19826 D(p->level--);
19827 return NULL;
19828 }
19829 goto done;
19830 }
19831 p->mark = _mark;
19832 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19834 }
19835 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19836 if (p->error_indicator) {
19837 D(p->level--);
19838 return NULL;
19839 }
19840 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019841 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019842 Token * _literal;
19843 Token * _literal_1;
19844 Token * _literal_2;
19845 void *_opt_var;
19846 UNUSED(_opt_var); // Silence compiler warnings
19847 void *_opt_var_1;
19848 UNUSED(_opt_var_1); // Silence compiler warnings
19849 Token * a;
19850 Token * newline_var;
19851 if (
19852 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19853 &&
19854 (a = _PyPegen_expect_token(p, 519)) // token='with'
19855 &&
19856 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19857 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019858 (_gather_167_var = _gather_167_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019859 &&
19860 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19861 &&
19862 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19863 &&
19864 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19865 &&
19866 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19867 &&
19868 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19869 )
19870 {
19871 D(fprintf(stderr, "%*c+ invalid_with_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19872 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19873 if (_res == NULL && PyErr_Occurred()) {
19874 p->error_indicator = 1;
19875 D(p->level--);
19876 return NULL;
19877 }
19878 goto done;
19879 }
19880 p->mark = _mark;
19881 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19883 }
19884 _res = NULL;
19885 done:
19886 D(p->level--);
19887 return _res;
19888}
19889
19890// invalid_try_stmt: 'try' ':' NEWLINE !INDENT
19891static void *
19892invalid_try_stmt_rule(Parser *p)
19893{
19894 D(p->level++);
19895 if (p->error_indicator) {
19896 D(p->level--);
19897 return NULL;
19898 }
19899 void * _res = NULL;
19900 int _mark = p->mark;
19901 { // 'try' ':' NEWLINE !INDENT
19902 if (p->error_indicator) {
19903 D(p->level--);
19904 return NULL;
19905 }
19906 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19907 Token * _literal;
19908 Token * a;
19909 Token * newline_var;
19910 if (
19911 (a = _PyPegen_expect_token(p, 511)) // token='try'
19912 &&
19913 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19914 &&
19915 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19916 &&
19917 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19918 )
19919 {
19920 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19921 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19922 if (_res == NULL && PyErr_Occurred()) {
19923 p->error_indicator = 1;
19924 D(p->level--);
19925 return NULL;
19926 }
19927 goto done;
19928 }
19929 p->mark = _mark;
19930 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19932 }
19933 _res = NULL;
19934 done:
19935 D(p->level--);
19936 return _res;
19937}
19938
19939// invalid_except_stmt:
19940// | 'except' expression ',' expressions ['as' NAME] ':'
19941// | 'except' expression ['as' NAME] NEWLINE
19942// | 'except' NEWLINE
19943static void *
19944invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019945{
19946 D(p->level++);
19947 if (p->error_indicator) {
19948 D(p->level--);
19949 return NULL;
19950 }
19951 void * _res = NULL;
19952 int _mark = p->mark;
19953 { // 'except' expression ',' expressions ['as' NAME] ':'
19954 if (p->error_indicator) {
19955 D(p->level--);
19956 return NULL;
19957 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019958 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 +000019959 Token * _keyword;
19960 Token * _literal;
19961 Token * _literal_1;
19962 void *_opt_var;
19963 UNUSED(_opt_var); // Silence compiler warnings
19964 expr_ty a;
19965 expr_ty expressions_var;
19966 if (
19967 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19968 &&
19969 (a = expression_rule(p)) // expression
19970 &&
19971 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19972 &&
19973 (expressions_var = expressions_rule(p)) // expressions
19974 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019975 (_opt_var = _tmp_169_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019976 &&
19977 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19978 )
19979 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019980 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019981 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "exception group must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019982 if (_res == NULL && PyErr_Occurred()) {
19983 p->error_indicator = 1;
19984 D(p->level--);
19985 return NULL;
19986 }
19987 goto done;
19988 }
19989 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019990 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19992 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019993 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019994 if (p->error_indicator) {
19995 D(p->level--);
19996 return NULL;
19997 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019998 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 +000019999 void *_opt_var;
20000 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010020001 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020002 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020003 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020004 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020005 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020006 &&
20007 (expression_var = expression_rule(p)) // expression
20008 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020009 (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020010 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020011 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020012 )
20013 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020014 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
20015 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20016 if (_res == NULL && PyErr_Occurred()) {
20017 p->error_indicator = 1;
20018 D(p->level--);
20019 return NULL;
20020 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020021 goto done;
20022 }
20023 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020024 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020026 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020027 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020028 if (p->error_indicator) {
20029 D(p->level--);
20030 return NULL;
20031 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020032 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20033 Token * a;
20034 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020035 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020036 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020037 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020038 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020039 )
20040 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020041 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20042 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20043 if (_res == NULL && PyErr_Occurred()) {
20044 p->error_indicator = 1;
20045 D(p->level--);
20046 return NULL;
20047 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020048 goto done;
20049 }
20050 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020051 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020053 }
20054 _res = NULL;
20055 done:
20056 D(p->level--);
20057 return _res;
20058}
20059
Pablo Galindo56c95df2021-04-21 15:28:21 +010020060// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
20061static void *
20062invalid_finally_stmt_rule(Parser *p)
20063{
20064 D(p->level++);
20065 if (p->error_indicator) {
20066 D(p->level--);
20067 return NULL;
20068 }
20069 void * _res = NULL;
20070 int _mark = p->mark;
20071 { // 'finally' ':' NEWLINE !INDENT
20072 if (p->error_indicator) {
20073 D(p->level--);
20074 return NULL;
20075 }
20076 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20077 Token * _literal;
20078 Token * a;
20079 Token * newline_var;
20080 if (
20081 (a = _PyPegen_expect_token(p, 522)) // token='finally'
20082 &&
20083 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20084 &&
20085 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20086 &&
20087 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20088 )
20089 {
20090 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20091 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
20092 if (_res == NULL && PyErr_Occurred()) {
20093 p->error_indicator = 1;
20094 D(p->level--);
20095 return NULL;
20096 }
20097 goto done;
20098 }
20099 p->mark = _mark;
20100 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20102 }
20103 _res = NULL;
20104 done:
20105 D(p->level--);
20106 return _res;
20107}
20108
20109// invalid_except_stmt_indent:
20110// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20111// | 'except' ':' NEWLINE !INDENT
20112static void *
20113invalid_except_stmt_indent_rule(Parser *p)
20114{
20115 D(p->level++);
20116 if (p->error_indicator) {
20117 D(p->level--);
20118 return NULL;
20119 }
20120 void * _res = NULL;
20121 int _mark = p->mark;
20122 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20123 if (p->error_indicator) {
20124 D(p->level--);
20125 return NULL;
20126 }
20127 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20128 Token * _literal;
20129 void *_opt_var;
20130 UNUSED(_opt_var); // Silence compiler warnings
20131 Token * a;
20132 expr_ty expression_var;
20133 Token * newline_var;
20134 if (
20135 (a = _PyPegen_expect_token(p, 521)) // token='except'
20136 &&
20137 (expression_var = expression_rule(p)) // expression
20138 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020139 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020140 &&
20141 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20142 &&
20143 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20144 &&
20145 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20146 )
20147 {
20148 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20149 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20150 if (_res == NULL && PyErr_Occurred()) {
20151 p->error_indicator = 1;
20152 D(p->level--);
20153 return NULL;
20154 }
20155 goto done;
20156 }
20157 p->mark = _mark;
20158 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20160 }
20161 { // 'except' ':' NEWLINE !INDENT
20162 if (p->error_indicator) {
20163 D(p->level--);
20164 return NULL;
20165 }
20166 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20167 Token * _literal;
20168 Token * a;
20169 Token * newline_var;
20170 if (
20171 (a = _PyPegen_expect_token(p, 521)) // token='except'
20172 &&
20173 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20174 &&
20175 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20176 &&
20177 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20178 )
20179 {
20180 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20181 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20182 if (_res == NULL && PyErr_Occurred()) {
20183 p->error_indicator = 1;
20184 D(p->level--);
20185 return NULL;
20186 }
20187 goto done;
20188 }
20189 p->mark = _mark;
20190 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20192 }
20193 _res = NULL;
20194 done:
20195 D(p->level--);
20196 return _res;
20197}
20198
20199// invalid_match_stmt:
20200// | "match" subject_expr !':'
20201// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020202static void *
20203invalid_match_stmt_rule(Parser *p)
20204{
20205 D(p->level++);
20206 if (p->error_indicator) {
20207 D(p->level--);
20208 return NULL;
20209 }
20210 void * _res = NULL;
20211 int _mark = p->mark;
20212 { // "match" subject_expr !':'
20213 if (p->error_indicator) {
20214 D(p->level--);
20215 return NULL;
20216 }
20217 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20218 expr_ty _keyword;
20219 expr_ty subject_expr_var;
20220 if (
20221 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20222 &&
20223 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20224 &&
20225 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20226 )
20227 {
20228 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20229 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20230 if (_res == NULL && PyErr_Occurred()) {
20231 p->error_indicator = 1;
20232 D(p->level--);
20233 return NULL;
20234 }
20235 goto done;
20236 }
20237 p->mark = _mark;
20238 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20240 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020241 { // "match" subject_expr ':' NEWLINE !INDENT
20242 if (p->error_indicator) {
20243 D(p->level--);
20244 return NULL;
20245 }
20246 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20247 Token * _literal;
20248 expr_ty a;
20249 Token * newline_var;
20250 expr_ty subject;
20251 if (
20252 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20253 &&
20254 (subject = subject_expr_rule(p)) // subject_expr
20255 &&
20256 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20257 &&
20258 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20259 &&
20260 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20261 )
20262 {
20263 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20264 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20265 if (_res == NULL && PyErr_Occurred()) {
20266 p->error_indicator = 1;
20267 D(p->level--);
20268 return NULL;
20269 }
20270 goto done;
20271 }
20272 p->mark = _mark;
20273 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20275 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020276 _res = NULL;
20277 done:
20278 D(p->level--);
20279 return _res;
20280}
20281
Pablo Galindo56c95df2021-04-21 15:28:21 +010020282// invalid_case_block:
20283// | "case" patterns guard? !':'
20284// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020285static void *
20286invalid_case_block_rule(Parser *p)
20287{
20288 D(p->level++);
20289 if (p->error_indicator) {
20290 D(p->level--);
20291 return NULL;
20292 }
20293 void * _res = NULL;
20294 int _mark = p->mark;
20295 { // "case" patterns guard? !':'
20296 if (p->error_indicator) {
20297 D(p->level--);
20298 return NULL;
20299 }
20300 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20301 expr_ty _keyword;
20302 void *_opt_var;
20303 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020304 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020305 if (
20306 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20307 &&
20308 (patterns_var = patterns_rule(p)) // patterns
20309 &&
20310 (_opt_var = guard_rule(p), 1) // guard?
20311 &&
20312 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20313 )
20314 {
20315 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20316 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20317 if (_res == NULL && PyErr_Occurred()) {
20318 p->error_indicator = 1;
20319 D(p->level--);
20320 return NULL;
20321 }
20322 goto done;
20323 }
20324 p->mark = _mark;
20325 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20327 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020328 { // "case" patterns guard? ':' NEWLINE !INDENT
20329 if (p->error_indicator) {
20330 D(p->level--);
20331 return NULL;
20332 }
20333 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20334 Token * _literal;
20335 void *_opt_var;
20336 UNUSED(_opt_var); // Silence compiler warnings
20337 expr_ty a;
20338 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020339 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020340 if (
20341 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20342 &&
20343 (patterns_var = patterns_rule(p)) // patterns
20344 &&
20345 (_opt_var = guard_rule(p), 1) // guard?
20346 &&
20347 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20348 &&
20349 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20350 &&
20351 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20352 )
20353 {
20354 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20355 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20356 if (_res == NULL && PyErr_Occurred()) {
20357 p->error_indicator = 1;
20358 D(p->level--);
20359 return NULL;
20360 }
20361 goto done;
20362 }
20363 p->mark = _mark;
20364 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20366 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020367 _res = NULL;
20368 done:
20369 D(p->level--);
20370 return _res;
20371}
20372
Pablo Galindo56c95df2021-04-21 15:28:21 +010020373// invalid_if_stmt:
20374// | 'if' named_expression NEWLINE
20375// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020376static void *
20377invalid_if_stmt_rule(Parser *p)
20378{
20379 D(p->level++);
20380 if (p->error_indicator) {
20381 D(p->level--);
20382 return NULL;
20383 }
20384 void * _res = NULL;
20385 int _mark = p->mark;
20386 { // 'if' named_expression NEWLINE
20387 if (p->error_indicator) {
20388 D(p->level--);
20389 return NULL;
20390 }
20391 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20392 Token * _keyword;
20393 expr_ty named_expression_var;
20394 Token * newline_var;
20395 if (
20396 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20397 &&
20398 (named_expression_var = named_expression_rule(p)) // named_expression
20399 &&
20400 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20401 )
20402 {
20403 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20404 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20405 if (_res == NULL && PyErr_Occurred()) {
20406 p->error_indicator = 1;
20407 D(p->level--);
20408 return NULL;
20409 }
20410 goto done;
20411 }
20412 p->mark = _mark;
20413 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20415 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020416 { // 'if' named_expression ':' NEWLINE !INDENT
20417 if (p->error_indicator) {
20418 D(p->level--);
20419 return NULL;
20420 }
20421 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20422 Token * _literal;
20423 Token * a;
20424 expr_ty a_1;
20425 Token * newline_var;
20426 if (
20427 (a = _PyPegen_expect_token(p, 510)) // token='if'
20428 &&
20429 (a_1 = named_expression_rule(p)) // named_expression
20430 &&
20431 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20432 &&
20433 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20434 &&
20435 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20436 )
20437 {
20438 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20439 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20440 if (_res == NULL && PyErr_Occurred()) {
20441 p->error_indicator = 1;
20442 D(p->level--);
20443 return NULL;
20444 }
20445 goto done;
20446 }
20447 p->mark = _mark;
20448 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20450 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020451 _res = NULL;
20452 done:
20453 D(p->level--);
20454 return _res;
20455}
20456
Pablo Galindo56c95df2021-04-21 15:28:21 +010020457// invalid_elif_stmt:
20458// | 'elif' named_expression NEWLINE
20459// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020460static void *
20461invalid_elif_stmt_rule(Parser *p)
20462{
20463 D(p->level++);
20464 if (p->error_indicator) {
20465 D(p->level--);
20466 return NULL;
20467 }
20468 void * _res = NULL;
20469 int _mark = p->mark;
20470 { // 'elif' named_expression NEWLINE
20471 if (p->error_indicator) {
20472 D(p->level--);
20473 return NULL;
20474 }
20475 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20476 Token * _keyword;
20477 expr_ty named_expression_var;
20478 Token * newline_var;
20479 if (
20480 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20481 &&
20482 (named_expression_var = named_expression_rule(p)) // named_expression
20483 &&
20484 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20485 )
20486 {
20487 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20488 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20489 if (_res == NULL && PyErr_Occurred()) {
20490 p->error_indicator = 1;
20491 D(p->level--);
20492 return NULL;
20493 }
20494 goto done;
20495 }
20496 p->mark = _mark;
20497 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20499 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020500 { // 'elif' named_expression ':' NEWLINE !INDENT
20501 if (p->error_indicator) {
20502 D(p->level--);
20503 return NULL;
20504 }
20505 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20506 Token * _literal;
20507 Token * a;
20508 expr_ty named_expression_var;
20509 Token * newline_var;
20510 if (
20511 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20512 &&
20513 (named_expression_var = named_expression_rule(p)) // named_expression
20514 &&
20515 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20516 &&
20517 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20518 &&
20519 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20520 )
20521 {
20522 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20523 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20524 if (_res == NULL && PyErr_Occurred()) {
20525 p->error_indicator = 1;
20526 D(p->level--);
20527 return NULL;
20528 }
20529 goto done;
20530 }
20531 p->mark = _mark;
20532 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20534 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020535 _res = NULL;
20536 done:
20537 D(p->level--);
20538 return _res;
20539}
20540
Pablo Galindo56c95df2021-04-21 15:28:21 +010020541// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20542static void *
20543invalid_else_stmt_rule(Parser *p)
20544{
20545 D(p->level++);
20546 if (p->error_indicator) {
20547 D(p->level--);
20548 return NULL;
20549 }
20550 void * _res = NULL;
20551 int _mark = p->mark;
20552 { // 'else' ':' NEWLINE !INDENT
20553 if (p->error_indicator) {
20554 D(p->level--);
20555 return NULL;
20556 }
20557 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20558 Token * _literal;
20559 Token * a;
20560 Token * newline_var;
20561 if (
20562 (a = _PyPegen_expect_token(p, 516)) // token='else'
20563 &&
20564 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20565 &&
20566 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20567 &&
20568 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20569 )
20570 {
20571 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20572 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20573 if (_res == NULL && PyErr_Occurred()) {
20574 p->error_indicator = 1;
20575 D(p->level--);
20576 return NULL;
20577 }
20578 goto done;
20579 }
20580 p->mark = _mark;
20581 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20583 }
20584 _res = NULL;
20585 done:
20586 D(p->level--);
20587 return _res;
20588}
20589
20590// invalid_while_stmt:
20591// | 'while' named_expression NEWLINE
20592// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020593static void *
20594invalid_while_stmt_rule(Parser *p)
20595{
20596 D(p->level++);
20597 if (p->error_indicator) {
20598 D(p->level--);
20599 return NULL;
20600 }
20601 void * _res = NULL;
20602 int _mark = p->mark;
20603 { // 'while' named_expression NEWLINE
20604 if (p->error_indicator) {
20605 D(p->level--);
20606 return NULL;
20607 }
20608 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20609 Token * _keyword;
20610 expr_ty named_expression_var;
20611 Token * newline_var;
20612 if (
20613 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20614 &&
20615 (named_expression_var = named_expression_rule(p)) // named_expression
20616 &&
20617 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20618 )
20619 {
20620 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20621 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20622 if (_res == NULL && PyErr_Occurred()) {
20623 p->error_indicator = 1;
20624 D(p->level--);
20625 return NULL;
20626 }
20627 goto done;
20628 }
20629 p->mark = _mark;
20630 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20632 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020633 { // 'while' named_expression ':' NEWLINE !INDENT
20634 if (p->error_indicator) {
20635 D(p->level--);
20636 return NULL;
20637 }
20638 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20639 Token * _literal;
20640 Token * a;
20641 expr_ty named_expression_var;
20642 Token * newline_var;
20643 if (
20644 (a = _PyPegen_expect_token(p, 512)) // token='while'
20645 &&
20646 (named_expression_var = named_expression_rule(p)) // named_expression
20647 &&
20648 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20649 &&
20650 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20651 &&
20652 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20653 )
20654 {
20655 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20656 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20657 if (_res == NULL && PyErr_Occurred()) {
20658 p->error_indicator = 1;
20659 D(p->level--);
20660 return NULL;
20661 }
20662 goto done;
20663 }
20664 p->mark = _mark;
20665 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20667 }
20668 _res = NULL;
20669 done:
20670 D(p->level--);
20671 return _res;
20672}
20673
20674// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20675static void *
20676invalid_for_stmt_rule(Parser *p)
20677{
20678 D(p->level++);
20679 if (p->error_indicator) {
20680 D(p->level--);
20681 return NULL;
20682 }
20683 void * _res = NULL;
20684 int _mark = p->mark;
20685 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20686 if (p->error_indicator) {
20687 D(p->level--);
20688 return NULL;
20689 }
20690 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"));
20691 Token * _keyword;
20692 Token * _literal;
20693 void *_opt_var;
20694 UNUSED(_opt_var); // Silence compiler warnings
20695 Token * a;
20696 Token * newline_var;
20697 expr_ty star_expressions_var;
20698 expr_ty star_targets_var;
20699 if (
20700 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20701 &&
20702 (a = _PyPegen_expect_token(p, 517)) // token='for'
20703 &&
20704 (star_targets_var = star_targets_rule(p)) // star_targets
20705 &&
20706 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20707 &&
20708 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20709 &&
20710 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20711 &&
20712 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20713 &&
20714 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20715 )
20716 {
20717 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"));
20718 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20719 if (_res == NULL && PyErr_Occurred()) {
20720 p->error_indicator = 1;
20721 D(p->level--);
20722 return NULL;
20723 }
20724 goto done;
20725 }
20726 p->mark = _mark;
20727 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20729 }
20730 _res = NULL;
20731 done:
20732 D(p->level--);
20733 return _res;
20734}
20735
20736// invalid_def_raw:
20737// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20738static void *
20739invalid_def_raw_rule(Parser *p)
20740{
20741 D(p->level++);
20742 if (p->error_indicator) {
20743 D(p->level--);
20744 return NULL;
20745 }
20746 void * _res = NULL;
20747 int _mark = p->mark;
20748 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20749 if (p->error_indicator) {
20750 D(p->level--);
20751 return NULL;
20752 }
20753 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20754 Token * _literal;
20755 Token * _literal_1;
20756 Token * _literal_2;
20757 void *_opt_var;
20758 UNUSED(_opt_var); // Silence compiler warnings
20759 void *_opt_var_1;
20760 UNUSED(_opt_var_1); // Silence compiler warnings
20761 void *_opt_var_2;
20762 UNUSED(_opt_var_2); // Silence compiler warnings
20763 Token * a;
20764 expr_ty name_var;
20765 Token * newline_var;
20766 if (
20767 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20768 &&
20769 (a = _PyPegen_expect_token(p, 526)) // token='def'
20770 &&
20771 (name_var = _PyPegen_name_token(p)) // NAME
20772 &&
20773 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20774 &&
20775 (_opt_var_1 = params_rule(p), 1) // params?
20776 &&
20777 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20778 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020779 (_opt_var_2 = _tmp_172_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020780 &&
20781 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20782 &&
20783 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20784 &&
20785 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20786 )
20787 {
20788 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20789 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20790 if (_res == NULL && PyErr_Occurred()) {
20791 p->error_indicator = 1;
20792 D(p->level--);
20793 return NULL;
20794 }
20795 goto done;
20796 }
20797 p->mark = _mark;
20798 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20800 }
20801 _res = NULL;
20802 done:
20803 D(p->level--);
20804 return _res;
20805}
20806
20807// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20808static void *
20809invalid_class_def_raw_rule(Parser *p)
20810{
20811 D(p->level++);
20812 if (p->error_indicator) {
20813 D(p->level--);
20814 return NULL;
20815 }
20816 void * _res = NULL;
20817 int _mark = p->mark;
20818 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20819 if (p->error_indicator) {
20820 D(p->level--);
20821 return NULL;
20822 }
20823 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20824 Token * _literal;
20825 void *_opt_var;
20826 UNUSED(_opt_var); // Silence compiler warnings
20827 Token * a;
20828 expr_ty name_var;
20829 Token * newline_var;
20830 if (
20831 (a = _PyPegen_expect_token(p, 527)) // token='class'
20832 &&
20833 (name_var = _PyPegen_name_token(p)) // NAME
20834 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020835 (_opt_var = _tmp_173_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010020836 &&
20837 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20838 &&
20839 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20840 &&
20841 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20842 )
20843 {
20844 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20845 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
20846 if (_res == NULL && PyErr_Occurred()) {
20847 p->error_indicator = 1;
20848 D(p->level--);
20849 return NULL;
20850 }
20851 goto done;
20852 }
20853 p->mark = _mark;
20854 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20856 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020857 _res = NULL;
20858 done:
20859 D(p->level--);
20860 return _res;
20861}
20862
Pablo Galindoda743502021-04-15 14:06:39 +010020863// invalid_double_starred_kvpairs:
20864// | ','.double_starred_kvpair+ ',' invalid_kvpair
20865// | expression ':' '*' bitwise_or
20866// | expression ':' &('}' | ',')
20867static void *
20868invalid_double_starred_kvpairs_rule(Parser *p)
20869{
20870 D(p->level++);
20871 if (p->error_indicator) {
20872 D(p->level--);
20873 return NULL;
20874 }
20875 void * _res = NULL;
20876 int _mark = p->mark;
20877 { // ','.double_starred_kvpair+ ',' invalid_kvpair
20878 if (p->error_indicator) {
20879 D(p->level--);
20880 return NULL;
20881 }
20882 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020883 asdl_seq * _gather_174_var;
Pablo Galindoda743502021-04-15 14:06:39 +010020884 Token * _literal;
20885 void *invalid_kvpair_var;
20886 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010020887 (_gather_174_var = _gather_174_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010020888 &&
20889 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20890 &&
20891 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
20892 )
20893 {
20894 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020895 _res = _PyPegen_dummy_name(p, _gather_174_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010020896 goto done;
20897 }
20898 p->mark = _mark;
20899 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
20901 }
20902 { // expression ':' '*' bitwise_or
20903 if (p->error_indicator) {
20904 D(p->level--);
20905 return NULL;
20906 }
20907 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20908 Token * _literal;
20909 Token * a;
20910 expr_ty bitwise_or_var;
20911 expr_ty expression_var;
20912 if (
20913 (expression_var = expression_rule(p)) // expression
20914 &&
20915 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20916 &&
20917 (a = _PyPegen_expect_token(p, 16)) // token='*'
20918 &&
20919 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20920 )
20921 {
20922 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 +010020923 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020924 if (_res == NULL && PyErr_Occurred()) {
20925 p->error_indicator = 1;
20926 D(p->level--);
20927 return NULL;
20928 }
20929 goto done;
20930 }
20931 p->mark = _mark;
20932 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20934 }
20935 { // expression ':' &('}' | ',')
20936 if (p->error_indicator) {
20937 D(p->level--);
20938 return NULL;
20939 }
20940 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20941 Token * a;
20942 expr_ty expression_var;
20943 if (
20944 (expression_var = expression_rule(p)) // expression
20945 &&
20946 (a = _PyPegen_expect_token(p, 11)) // token=':'
20947 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010020948 _PyPegen_lookahead(1, _tmp_176_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010020949 )
20950 {
20951 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20952 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20953 if (_res == NULL && PyErr_Occurred()) {
20954 p->error_indicator = 1;
20955 D(p->level--);
20956 return NULL;
20957 }
20958 goto done;
20959 }
20960 p->mark = _mark;
20961 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
20963 }
20964 _res = NULL;
20965 done:
20966 D(p->level--);
20967 return _res;
20968}
20969
20970// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
20971static void *
20972invalid_kvpair_rule(Parser *p)
20973{
20974 D(p->level++);
20975 if (p->error_indicator) {
20976 D(p->level--);
20977 return NULL;
20978 }
20979 void * _res = NULL;
20980 int _mark = p->mark;
20981 { // expression !(':')
20982 if (p->error_indicator) {
20983 D(p->level--);
20984 return NULL;
20985 }
20986 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
20987 expr_ty a;
20988 if (
20989 (a = expression_rule(p)) // expression
20990 &&
20991 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
20992 )
20993 {
20994 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020995 _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 +010020996 if (_res == NULL && PyErr_Occurred()) {
20997 p->error_indicator = 1;
20998 D(p->level--);
20999 return NULL;
21000 }
21001 goto done;
21002 }
21003 p->mark = _mark;
21004 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21006 }
21007 { // expression ':' '*' bitwise_or
21008 if (p->error_indicator) {
21009 D(p->level--);
21010 return NULL;
21011 }
21012 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21013 Token * _literal;
21014 Token * a;
21015 expr_ty bitwise_or_var;
21016 expr_ty expression_var;
21017 if (
21018 (expression_var = expression_rule(p)) // expression
21019 &&
21020 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21021 &&
21022 (a = _PyPegen_expect_token(p, 16)) // token='*'
21023 &&
21024 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21025 )
21026 {
21027 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 +010021028 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021029 if (_res == NULL && PyErr_Occurred()) {
21030 p->error_indicator = 1;
21031 D(p->level--);
21032 return NULL;
21033 }
21034 goto done;
21035 }
21036 p->mark = _mark;
21037 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21039 }
21040 { // expression ':'
21041 if (p->error_indicator) {
21042 D(p->level--);
21043 return NULL;
21044 }
21045 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21046 Token * a;
21047 expr_ty expression_var;
21048 if (
21049 (expression_var = expression_rule(p)) // expression
21050 &&
21051 (a = _PyPegen_expect_token(p, 11)) // token=':'
21052 )
21053 {
21054 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21055 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21056 if (_res == NULL && PyErr_Occurred()) {
21057 p->error_indicator = 1;
21058 D(p->level--);
21059 return NULL;
21060 }
21061 goto done;
21062 }
21063 p->mark = _mark;
21064 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21066 }
21067 _res = NULL;
21068 done:
21069 D(p->level--);
21070 return _res;
21071}
21072
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021073// _loop0_1: NEWLINE
21074static asdl_seq *
21075_loop0_1_rule(Parser *p)
21076{
21077 D(p->level++);
21078 if (p->error_indicator) {
21079 D(p->level--);
21080 return NULL;
21081 }
21082 void *_res = NULL;
21083 int _mark = p->mark;
21084 int _start_mark = p->mark;
21085 void **_children = PyMem_Malloc(sizeof(void *));
21086 if (!_children) {
21087 p->error_indicator = 1;
21088 PyErr_NoMemory();
21089 D(p->level--);
21090 return NULL;
21091 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021092 Py_ssize_t _children_capacity = 1;
21093 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021094 { // NEWLINE
21095 if (p->error_indicator) {
21096 D(p->level--);
21097 return NULL;
21098 }
21099 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21100 Token * newline_var;
21101 while (
21102 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21103 )
21104 {
21105 _res = newline_var;
21106 if (_n == _children_capacity) {
21107 _children_capacity *= 2;
21108 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21109 if (!_new_children) {
21110 p->error_indicator = 1;
21111 PyErr_NoMemory();
21112 D(p->level--);
21113 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021114 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021115 _children = _new_children;
21116 }
21117 _children[_n++] = _res;
21118 _mark = p->mark;
21119 }
21120 p->mark = _mark;
21121 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21123 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021124 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021125 if (!_seq) {
21126 PyMem_Free(_children);
21127 p->error_indicator = 1;
21128 PyErr_NoMemory();
21129 D(p->level--);
21130 return NULL;
21131 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021132 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021133 PyMem_Free(_children);
21134 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21135 D(p->level--);
21136 return _seq;
21137}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021138
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021139// _loop0_2: NEWLINE
21140static asdl_seq *
21141_loop0_2_rule(Parser *p)
21142{
21143 D(p->level++);
21144 if (p->error_indicator) {
21145 D(p->level--);
21146 return NULL;
21147 }
21148 void *_res = NULL;
21149 int _mark = p->mark;
21150 int _start_mark = p->mark;
21151 void **_children = PyMem_Malloc(sizeof(void *));
21152 if (!_children) {
21153 p->error_indicator = 1;
21154 PyErr_NoMemory();
21155 D(p->level--);
21156 return NULL;
21157 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021158 Py_ssize_t _children_capacity = 1;
21159 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021160 { // NEWLINE
21161 if (p->error_indicator) {
21162 D(p->level--);
21163 return NULL;
21164 }
21165 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21166 Token * newline_var;
21167 while (
21168 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21169 )
21170 {
21171 _res = newline_var;
21172 if (_n == _children_capacity) {
21173 _children_capacity *= 2;
21174 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21175 if (!_new_children) {
21176 p->error_indicator = 1;
21177 PyErr_NoMemory();
21178 D(p->level--);
21179 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021180 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021181 _children = _new_children;
21182 }
21183 _children[_n++] = _res;
21184 _mark = p->mark;
21185 }
21186 p->mark = _mark;
21187 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21189 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021190 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021191 if (!_seq) {
21192 PyMem_Free(_children);
21193 p->error_indicator = 1;
21194 PyErr_NoMemory();
21195 D(p->level--);
21196 return NULL;
21197 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021198 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021199 PyMem_Free(_children);
21200 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21201 D(p->level--);
21202 return _seq;
21203}
21204
21205// _loop0_4: ',' expression
21206static asdl_seq *
21207_loop0_4_rule(Parser *p)
21208{
21209 D(p->level++);
21210 if (p->error_indicator) {
21211 D(p->level--);
21212 return NULL;
21213 }
21214 void *_res = NULL;
21215 int _mark = p->mark;
21216 int _start_mark = p->mark;
21217 void **_children = PyMem_Malloc(sizeof(void *));
21218 if (!_children) {
21219 p->error_indicator = 1;
21220 PyErr_NoMemory();
21221 D(p->level--);
21222 return NULL;
21223 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021224 Py_ssize_t _children_capacity = 1;
21225 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021226 { // ',' expression
21227 if (p->error_indicator) {
21228 D(p->level--);
21229 return NULL;
21230 }
21231 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21232 Token * _literal;
21233 expr_ty elem;
21234 while (
21235 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21236 &&
21237 (elem = expression_rule(p)) // expression
21238 )
21239 {
21240 _res = elem;
21241 if (_res == NULL && PyErr_Occurred()) {
21242 p->error_indicator = 1;
21243 PyMem_Free(_children);
21244 D(p->level--);
21245 return NULL;
21246 }
21247 if (_n == _children_capacity) {
21248 _children_capacity *= 2;
21249 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21250 if (!_new_children) {
21251 p->error_indicator = 1;
21252 PyErr_NoMemory();
21253 D(p->level--);
21254 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021255 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021256 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021257 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021258 _children[_n++] = _res;
21259 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021260 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021261 p->mark = _mark;
21262 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021264 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021265 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021266 if (!_seq) {
21267 PyMem_Free(_children);
21268 p->error_indicator = 1;
21269 PyErr_NoMemory();
21270 D(p->level--);
21271 return NULL;
21272 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021273 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021274 PyMem_Free(_children);
21275 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21276 D(p->level--);
21277 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021278}
21279
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021280// _gather_3: expression _loop0_4
21281static asdl_seq *
21282_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021283{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021284 D(p->level++);
21285 if (p->error_indicator) {
21286 D(p->level--);
21287 return NULL;
21288 }
21289 asdl_seq * _res = NULL;
21290 int _mark = p->mark;
21291 { // expression _loop0_4
21292 if (p->error_indicator) {
21293 D(p->level--);
21294 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021295 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021296 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21297 expr_ty elem;
21298 asdl_seq * seq;
21299 if (
21300 (elem = expression_rule(p)) // expression
21301 &&
21302 (seq = _loop0_4_rule(p)) // _loop0_4
21303 )
21304 {
21305 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21306 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21307 goto done;
21308 }
21309 p->mark = _mark;
21310 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021312 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021313 _res = NULL;
21314 done:
21315 D(p->level--);
21316 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021317}
21318
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021319// _loop0_6: ',' expression
21320static asdl_seq *
21321_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021322{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021323 D(p->level++);
21324 if (p->error_indicator) {
21325 D(p->level--);
21326 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021327 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021328 void *_res = NULL;
21329 int _mark = p->mark;
21330 int _start_mark = p->mark;
21331 void **_children = PyMem_Malloc(sizeof(void *));
21332 if (!_children) {
21333 p->error_indicator = 1;
21334 PyErr_NoMemory();
21335 D(p->level--);
21336 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021337 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021338 Py_ssize_t _children_capacity = 1;
21339 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021340 { // ',' expression
21341 if (p->error_indicator) {
21342 D(p->level--);
21343 return NULL;
21344 }
21345 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21346 Token * _literal;
21347 expr_ty elem;
21348 while (
21349 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21350 &&
21351 (elem = expression_rule(p)) // expression
21352 )
21353 {
21354 _res = elem;
21355 if (_res == NULL && PyErr_Occurred()) {
21356 p->error_indicator = 1;
21357 PyMem_Free(_children);
21358 D(p->level--);
21359 return NULL;
21360 }
21361 if (_n == _children_capacity) {
21362 _children_capacity *= 2;
21363 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21364 if (!_new_children) {
21365 p->error_indicator = 1;
21366 PyErr_NoMemory();
21367 D(p->level--);
21368 return NULL;
21369 }
21370 _children = _new_children;
21371 }
21372 _children[_n++] = _res;
21373 _mark = p->mark;
21374 }
21375 p->mark = _mark;
21376 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21378 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021379 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021380 if (!_seq) {
21381 PyMem_Free(_children);
21382 p->error_indicator = 1;
21383 PyErr_NoMemory();
21384 D(p->level--);
21385 return NULL;
21386 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021387 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021388 PyMem_Free(_children);
21389 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21390 D(p->level--);
21391 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021392}
21393
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021394// _gather_5: expression _loop0_6
21395static asdl_seq *
21396_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021397{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021398 D(p->level++);
21399 if (p->error_indicator) {
21400 D(p->level--);
21401 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021402 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021403 asdl_seq * _res = NULL;
21404 int _mark = p->mark;
21405 { // expression _loop0_6
21406 if (p->error_indicator) {
21407 D(p->level--);
21408 return NULL;
21409 }
21410 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21411 expr_ty elem;
21412 asdl_seq * seq;
21413 if (
21414 (elem = expression_rule(p)) // expression
21415 &&
21416 (seq = _loop0_6_rule(p)) // _loop0_6
21417 )
21418 {
21419 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21420 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21421 goto done;
21422 }
21423 p->mark = _mark;
21424 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21426 }
21427 _res = NULL;
21428 done:
21429 D(p->level--);
21430 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021431}
21432
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021433// _loop0_8: ',' expression
21434static asdl_seq *
21435_loop0_8_rule(Parser *p)
21436{
21437 D(p->level++);
21438 if (p->error_indicator) {
21439 D(p->level--);
21440 return NULL;
21441 }
21442 void *_res = NULL;
21443 int _mark = p->mark;
21444 int _start_mark = p->mark;
21445 void **_children = PyMem_Malloc(sizeof(void *));
21446 if (!_children) {
21447 p->error_indicator = 1;
21448 PyErr_NoMemory();
21449 D(p->level--);
21450 return NULL;
21451 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021452 Py_ssize_t _children_capacity = 1;
21453 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021454 { // ',' expression
21455 if (p->error_indicator) {
21456 D(p->level--);
21457 return NULL;
21458 }
21459 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21460 Token * _literal;
21461 expr_ty elem;
21462 while (
21463 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21464 &&
21465 (elem = expression_rule(p)) // expression
21466 )
21467 {
21468 _res = elem;
21469 if (_res == NULL && PyErr_Occurred()) {
21470 p->error_indicator = 1;
21471 PyMem_Free(_children);
21472 D(p->level--);
21473 return NULL;
21474 }
21475 if (_n == _children_capacity) {
21476 _children_capacity *= 2;
21477 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21478 if (!_new_children) {
21479 p->error_indicator = 1;
21480 PyErr_NoMemory();
21481 D(p->level--);
21482 return NULL;
21483 }
21484 _children = _new_children;
21485 }
21486 _children[_n++] = _res;
21487 _mark = p->mark;
21488 }
21489 p->mark = _mark;
21490 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21492 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021493 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021494 if (!_seq) {
21495 PyMem_Free(_children);
21496 p->error_indicator = 1;
21497 PyErr_NoMemory();
21498 D(p->level--);
21499 return NULL;
21500 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021501 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021502 PyMem_Free(_children);
21503 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21504 D(p->level--);
21505 return _seq;
21506}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021507
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021508// _gather_7: expression _loop0_8
21509static asdl_seq *
21510_gather_7_rule(Parser *p)
21511{
21512 D(p->level++);
21513 if (p->error_indicator) {
21514 D(p->level--);
21515 return NULL;
21516 }
21517 asdl_seq * _res = NULL;
21518 int _mark = p->mark;
21519 { // expression _loop0_8
21520 if (p->error_indicator) {
21521 D(p->level--);
21522 return NULL;
21523 }
21524 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21525 expr_ty elem;
21526 asdl_seq * seq;
21527 if (
21528 (elem = expression_rule(p)) // expression
21529 &&
21530 (seq = _loop0_8_rule(p)) // _loop0_8
21531 )
21532 {
21533 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21534 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21535 goto done;
21536 }
21537 p->mark = _mark;
21538 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21540 }
21541 _res = NULL;
21542 done:
21543 D(p->level--);
21544 return _res;
21545}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021546
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021547// _loop0_10: ',' expression
21548static asdl_seq *
21549_loop0_10_rule(Parser *p)
21550{
21551 D(p->level++);
21552 if (p->error_indicator) {
21553 D(p->level--);
21554 return NULL;
21555 }
21556 void *_res = NULL;
21557 int _mark = p->mark;
21558 int _start_mark = p->mark;
21559 void **_children = PyMem_Malloc(sizeof(void *));
21560 if (!_children) {
21561 p->error_indicator = 1;
21562 PyErr_NoMemory();
21563 D(p->level--);
21564 return NULL;
21565 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021566 Py_ssize_t _children_capacity = 1;
21567 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021568 { // ',' expression
21569 if (p->error_indicator) {
21570 D(p->level--);
21571 return NULL;
21572 }
21573 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21574 Token * _literal;
21575 expr_ty elem;
21576 while (
21577 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21578 &&
21579 (elem = expression_rule(p)) // expression
21580 )
21581 {
21582 _res = elem;
21583 if (_res == NULL && PyErr_Occurred()) {
21584 p->error_indicator = 1;
21585 PyMem_Free(_children);
21586 D(p->level--);
21587 return NULL;
21588 }
21589 if (_n == _children_capacity) {
21590 _children_capacity *= 2;
21591 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21592 if (!_new_children) {
21593 p->error_indicator = 1;
21594 PyErr_NoMemory();
21595 D(p->level--);
21596 return NULL;
21597 }
21598 _children = _new_children;
21599 }
21600 _children[_n++] = _res;
21601 _mark = p->mark;
21602 }
21603 p->mark = _mark;
21604 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21606 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021607 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021608 if (!_seq) {
21609 PyMem_Free(_children);
21610 p->error_indicator = 1;
21611 PyErr_NoMemory();
21612 D(p->level--);
21613 return NULL;
21614 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021615 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021616 PyMem_Free(_children);
21617 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21618 D(p->level--);
21619 return _seq;
21620}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021621
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021622// _gather_9: expression _loop0_10
21623static asdl_seq *
21624_gather_9_rule(Parser *p)
21625{
21626 D(p->level++);
21627 if (p->error_indicator) {
21628 D(p->level--);
21629 return NULL;
21630 }
21631 asdl_seq * _res = NULL;
21632 int _mark = p->mark;
21633 { // expression _loop0_10
21634 if (p->error_indicator) {
21635 D(p->level--);
21636 return NULL;
21637 }
21638 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21639 expr_ty elem;
21640 asdl_seq * seq;
21641 if (
21642 (elem = expression_rule(p)) // expression
21643 &&
21644 (seq = _loop0_10_rule(p)) // _loop0_10
21645 )
21646 {
21647 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21648 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21649 goto done;
21650 }
21651 p->mark = _mark;
21652 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21654 }
21655 _res = NULL;
21656 done:
21657 D(p->level--);
21658 return _res;
21659}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021660
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021661// _loop1_11: statement
21662static asdl_seq *
21663_loop1_11_rule(Parser *p)
21664{
21665 D(p->level++);
21666 if (p->error_indicator) {
21667 D(p->level--);
21668 return NULL;
21669 }
21670 void *_res = NULL;
21671 int _mark = p->mark;
21672 int _start_mark = p->mark;
21673 void **_children = PyMem_Malloc(sizeof(void *));
21674 if (!_children) {
21675 p->error_indicator = 1;
21676 PyErr_NoMemory();
21677 D(p->level--);
21678 return NULL;
21679 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021680 Py_ssize_t _children_capacity = 1;
21681 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021682 { // statement
21683 if (p->error_indicator) {
21684 D(p->level--);
21685 return NULL;
21686 }
21687 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021688 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021689 while (
21690 (statement_var = statement_rule(p)) // statement
21691 )
21692 {
21693 _res = statement_var;
21694 if (_n == _children_capacity) {
21695 _children_capacity *= 2;
21696 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21697 if (!_new_children) {
21698 p->error_indicator = 1;
21699 PyErr_NoMemory();
21700 D(p->level--);
21701 return NULL;
21702 }
21703 _children = _new_children;
21704 }
21705 _children[_n++] = _res;
21706 _mark = p->mark;
21707 }
21708 p->mark = _mark;
21709 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21711 }
21712 if (_n == 0 || p->error_indicator) {
21713 PyMem_Free(_children);
21714 D(p->level--);
21715 return NULL;
21716 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021717 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021718 if (!_seq) {
21719 PyMem_Free(_children);
21720 p->error_indicator = 1;
21721 PyErr_NoMemory();
21722 D(p->level--);
21723 return NULL;
21724 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021725 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021726 PyMem_Free(_children);
21727 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21728 D(p->level--);
21729 return _seq;
21730}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021731
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021732// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021733static asdl_seq *
21734_loop0_13_rule(Parser *p)
21735{
21736 D(p->level++);
21737 if (p->error_indicator) {
21738 D(p->level--);
21739 return NULL;
21740 }
21741 void *_res = NULL;
21742 int _mark = p->mark;
21743 int _start_mark = p->mark;
21744 void **_children = PyMem_Malloc(sizeof(void *));
21745 if (!_children) {
21746 p->error_indicator = 1;
21747 PyErr_NoMemory();
21748 D(p->level--);
21749 return NULL;
21750 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021751 Py_ssize_t _children_capacity = 1;
21752 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021753 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021754 if (p->error_indicator) {
21755 D(p->level--);
21756 return NULL;
21757 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021758 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021759 Token * _literal;
21760 stmt_ty elem;
21761 while (
21762 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21763 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021764 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021765 )
21766 {
21767 _res = elem;
21768 if (_res == NULL && PyErr_Occurred()) {
21769 p->error_indicator = 1;
21770 PyMem_Free(_children);
21771 D(p->level--);
21772 return NULL;
21773 }
21774 if (_n == _children_capacity) {
21775 _children_capacity *= 2;
21776 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21777 if (!_new_children) {
21778 p->error_indicator = 1;
21779 PyErr_NoMemory();
21780 D(p->level--);
21781 return NULL;
21782 }
21783 _children = _new_children;
21784 }
21785 _children[_n++] = _res;
21786 _mark = p->mark;
21787 }
21788 p->mark = _mark;
21789 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021791 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021792 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021793 if (!_seq) {
21794 PyMem_Free(_children);
21795 p->error_indicator = 1;
21796 PyErr_NoMemory();
21797 D(p->level--);
21798 return NULL;
21799 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021800 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021801 PyMem_Free(_children);
21802 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21803 D(p->level--);
21804 return _seq;
21805}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021806
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021807// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021808static asdl_seq *
21809_gather_12_rule(Parser *p)
21810{
21811 D(p->level++);
21812 if (p->error_indicator) {
21813 D(p->level--);
21814 return NULL;
21815 }
21816 asdl_seq * _res = NULL;
21817 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021818 { // simple_stmt _loop0_13
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> _gather_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021824 stmt_ty elem;
21825 asdl_seq * seq;
21826 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021827 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021828 &&
21829 (seq = _loop0_13_rule(p)) // _loop0_13
21830 )
21831 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021832 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 +010021833 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21834 goto done;
21835 }
21836 p->mark = _mark;
21837 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021839 }
21840 _res = NULL;
21841 done:
21842 D(p->level--);
21843 return _res;
21844}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021845
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021846// _tmp_14: 'import' | 'from'
21847static void *
21848_tmp_14_rule(Parser *p)
21849{
21850 D(p->level++);
21851 if (p->error_indicator) {
21852 D(p->level--);
21853 return NULL;
21854 }
21855 void * _res = NULL;
21856 int _mark = p->mark;
21857 { // 'import'
21858 if (p->error_indicator) {
21859 D(p->level--);
21860 return NULL;
21861 }
21862 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
21863 Token * _keyword;
21864 if (
21865 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
21866 )
21867 {
21868 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
21869 _res = _keyword;
21870 goto done;
21871 }
21872 p->mark = _mark;
21873 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
21875 }
21876 { // 'from'
21877 if (p->error_indicator) {
21878 D(p->level--);
21879 return NULL;
21880 }
21881 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
21882 Token * _keyword;
21883 if (
21884 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
21885 )
21886 {
21887 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
21888 _res = _keyword;
21889 goto done;
21890 }
21891 p->mark = _mark;
21892 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
21894 }
21895 _res = NULL;
21896 done:
21897 D(p->level--);
21898 return _res;
21899}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021900
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021901// _tmp_15: 'def' | '@' | ASYNC
21902static void *
21903_tmp_15_rule(Parser *p)
21904{
21905 D(p->level++);
21906 if (p->error_indicator) {
21907 D(p->level--);
21908 return NULL;
21909 }
21910 void * _res = NULL;
21911 int _mark = p->mark;
21912 { // 'def'
21913 if (p->error_indicator) {
21914 D(p->level--);
21915 return NULL;
21916 }
21917 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
21918 Token * _keyword;
21919 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021920 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021921 )
21922 {
21923 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
21924 _res = _keyword;
21925 goto done;
21926 }
21927 p->mark = _mark;
21928 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
21930 }
21931 { // '@'
21932 if (p->error_indicator) {
21933 D(p->level--);
21934 return NULL;
21935 }
21936 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21937 Token * _literal;
21938 if (
21939 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21940 )
21941 {
21942 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21943 _res = _literal;
21944 goto done;
21945 }
21946 p->mark = _mark;
21947 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21949 }
21950 { // ASYNC
21951 if (p->error_indicator) {
21952 D(p->level--);
21953 return NULL;
21954 }
21955 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21956 Token * async_var;
21957 if (
21958 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21959 )
21960 {
21961 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21962 _res = async_var;
21963 goto done;
21964 }
21965 p->mark = _mark;
21966 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21968 }
21969 _res = NULL;
21970 done:
21971 D(p->level--);
21972 return _res;
21973}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021974
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021975// _tmp_16: 'class' | '@'
21976static void *
21977_tmp_16_rule(Parser *p)
21978{
21979 D(p->level++);
21980 if (p->error_indicator) {
21981 D(p->level--);
21982 return NULL;
21983 }
21984 void * _res = NULL;
21985 int _mark = p->mark;
21986 { // 'class'
21987 if (p->error_indicator) {
21988 D(p->level--);
21989 return NULL;
21990 }
21991 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
21992 Token * _keyword;
21993 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021994 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021995 )
21996 {
21997 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
21998 _res = _keyword;
21999 goto done;
22000 }
22001 p->mark = _mark;
22002 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22004 }
22005 { // '@'
22006 if (p->error_indicator) {
22007 D(p->level--);
22008 return NULL;
22009 }
22010 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22011 Token * _literal;
22012 if (
22013 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22014 )
22015 {
22016 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22017 _res = _literal;
22018 goto done;
22019 }
22020 p->mark = _mark;
22021 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22023 }
22024 _res = NULL;
22025 done:
22026 D(p->level--);
22027 return _res;
22028}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022029
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022030// _tmp_17: 'with' | ASYNC
22031static void *
22032_tmp_17_rule(Parser *p)
22033{
22034 D(p->level++);
22035 if (p->error_indicator) {
22036 D(p->level--);
22037 return NULL;
22038 }
22039 void * _res = NULL;
22040 int _mark = p->mark;
22041 { // 'with'
22042 if (p->error_indicator) {
22043 D(p->level--);
22044 return NULL;
22045 }
22046 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22047 Token * _keyword;
22048 if (
22049 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22050 )
22051 {
22052 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22053 _res = _keyword;
22054 goto done;
22055 }
22056 p->mark = _mark;
22057 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22059 }
22060 { // ASYNC
22061 if (p->error_indicator) {
22062 D(p->level--);
22063 return NULL;
22064 }
22065 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22066 Token * async_var;
22067 if (
22068 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22069 )
22070 {
22071 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22072 _res = async_var;
22073 goto done;
22074 }
22075 p->mark = _mark;
22076 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22078 }
22079 _res = NULL;
22080 done:
22081 D(p->level--);
22082 return _res;
22083}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022084
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022085// _tmp_18: 'for' | ASYNC
22086static void *
22087_tmp_18_rule(Parser *p)
22088{
22089 D(p->level++);
22090 if (p->error_indicator) {
22091 D(p->level--);
22092 return NULL;
22093 }
22094 void * _res = NULL;
22095 int _mark = p->mark;
22096 { // 'for'
22097 if (p->error_indicator) {
22098 D(p->level--);
22099 return NULL;
22100 }
22101 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22102 Token * _keyword;
22103 if (
22104 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22105 )
22106 {
22107 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22108 _res = _keyword;
22109 goto done;
22110 }
22111 p->mark = _mark;
22112 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22114 }
22115 { // ASYNC
22116 if (p->error_indicator) {
22117 D(p->level--);
22118 return NULL;
22119 }
22120 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22121 Token * async_var;
22122 if (
22123 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22124 )
22125 {
22126 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22127 _res = async_var;
22128 goto done;
22129 }
22130 p->mark = _mark;
22131 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22133 }
22134 _res = NULL;
22135 done:
22136 D(p->level--);
22137 return _res;
22138}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022139
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022140// _tmp_19: '=' annotated_rhs
22141static void *
22142_tmp_19_rule(Parser *p)
22143{
22144 D(p->level++);
22145 if (p->error_indicator) {
22146 D(p->level--);
22147 return NULL;
22148 }
22149 void * _res = NULL;
22150 int _mark = p->mark;
22151 { // '=' annotated_rhs
22152 if (p->error_indicator) {
22153 D(p->level--);
22154 return NULL;
22155 }
22156 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22157 Token * _literal;
22158 expr_ty d;
22159 if (
22160 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22161 &&
22162 (d = annotated_rhs_rule(p)) // annotated_rhs
22163 )
22164 {
22165 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22166 _res = d;
22167 if (_res == NULL && PyErr_Occurred()) {
22168 p->error_indicator = 1;
22169 D(p->level--);
22170 return NULL;
22171 }
22172 goto done;
22173 }
22174 p->mark = _mark;
22175 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22177 }
22178 _res = NULL;
22179 done:
22180 D(p->level--);
22181 return _res;
22182}
22183
22184// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22185static void *
22186_tmp_20_rule(Parser *p)
22187{
22188 D(p->level++);
22189 if (p->error_indicator) {
22190 D(p->level--);
22191 return NULL;
22192 }
22193 void * _res = NULL;
22194 int _mark = p->mark;
22195 { // '(' single_target ')'
22196 if (p->error_indicator) {
22197 D(p->level--);
22198 return NULL;
22199 }
22200 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22201 Token * _literal;
22202 Token * _literal_1;
22203 expr_ty b;
22204 if (
22205 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22206 &&
22207 (b = single_target_rule(p)) // single_target
22208 &&
22209 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22210 )
22211 {
22212 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22213 _res = b;
22214 if (_res == NULL && PyErr_Occurred()) {
22215 p->error_indicator = 1;
22216 D(p->level--);
22217 return NULL;
22218 }
22219 goto done;
22220 }
22221 p->mark = _mark;
22222 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22224 }
22225 { // single_subscript_attribute_target
22226 if (p->error_indicator) {
22227 D(p->level--);
22228 return NULL;
22229 }
22230 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22231 expr_ty single_subscript_attribute_target_var;
22232 if (
22233 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22234 )
22235 {
22236 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22237 _res = single_subscript_attribute_target_var;
22238 goto done;
22239 }
22240 p->mark = _mark;
22241 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22243 }
22244 _res = NULL;
22245 done:
22246 D(p->level--);
22247 return _res;
22248}
22249
22250// _tmp_21: '=' annotated_rhs
22251static void *
22252_tmp_21_rule(Parser *p)
22253{
22254 D(p->level++);
22255 if (p->error_indicator) {
22256 D(p->level--);
22257 return NULL;
22258 }
22259 void * _res = NULL;
22260 int _mark = p->mark;
22261 { // '=' annotated_rhs
22262 if (p->error_indicator) {
22263 D(p->level--);
22264 return NULL;
22265 }
22266 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22267 Token * _literal;
22268 expr_ty d;
22269 if (
22270 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22271 &&
22272 (d = annotated_rhs_rule(p)) // annotated_rhs
22273 )
22274 {
22275 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22276 _res = d;
22277 if (_res == NULL && PyErr_Occurred()) {
22278 p->error_indicator = 1;
22279 D(p->level--);
22280 return NULL;
22281 }
22282 goto done;
22283 }
22284 p->mark = _mark;
22285 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22287 }
22288 _res = NULL;
22289 done:
22290 D(p->level--);
22291 return _res;
22292}
22293
22294// _loop1_22: (star_targets '=')
22295static asdl_seq *
22296_loop1_22_rule(Parser *p)
22297{
22298 D(p->level++);
22299 if (p->error_indicator) {
22300 D(p->level--);
22301 return NULL;
22302 }
22303 void *_res = NULL;
22304 int _mark = p->mark;
22305 int _start_mark = p->mark;
22306 void **_children = PyMem_Malloc(sizeof(void *));
22307 if (!_children) {
22308 p->error_indicator = 1;
22309 PyErr_NoMemory();
22310 D(p->level--);
22311 return NULL;
22312 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022313 Py_ssize_t _children_capacity = 1;
22314 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022315 { // (star_targets '=')
22316 if (p->error_indicator) {
22317 D(p->level--);
22318 return NULL;
22319 }
22320 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010022321 void *_tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022322 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010022323 (_tmp_177_var = _tmp_177_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022324 )
22325 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010022326 _res = _tmp_177_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022327 if (_n == _children_capacity) {
22328 _children_capacity *= 2;
22329 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22330 if (!_new_children) {
22331 p->error_indicator = 1;
22332 PyErr_NoMemory();
22333 D(p->level--);
22334 return NULL;
22335 }
22336 _children = _new_children;
22337 }
22338 _children[_n++] = _res;
22339 _mark = p->mark;
22340 }
22341 p->mark = _mark;
22342 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22344 }
22345 if (_n == 0 || p->error_indicator) {
22346 PyMem_Free(_children);
22347 D(p->level--);
22348 return NULL;
22349 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022350 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022351 if (!_seq) {
22352 PyMem_Free(_children);
22353 p->error_indicator = 1;
22354 PyErr_NoMemory();
22355 D(p->level--);
22356 return NULL;
22357 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022358 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022359 PyMem_Free(_children);
22360 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22361 D(p->level--);
22362 return _seq;
22363}
22364
22365// _tmp_23: yield_expr | star_expressions
22366static void *
22367_tmp_23_rule(Parser *p)
22368{
22369 D(p->level++);
22370 if (p->error_indicator) {
22371 D(p->level--);
22372 return NULL;
22373 }
22374 void * _res = NULL;
22375 int _mark = p->mark;
22376 { // yield_expr
22377 if (p->error_indicator) {
22378 D(p->level--);
22379 return NULL;
22380 }
22381 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22382 expr_ty yield_expr_var;
22383 if (
22384 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22385 )
22386 {
22387 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22388 _res = yield_expr_var;
22389 goto done;
22390 }
22391 p->mark = _mark;
22392 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22394 }
22395 { // star_expressions
22396 if (p->error_indicator) {
22397 D(p->level--);
22398 return NULL;
22399 }
22400 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22401 expr_ty star_expressions_var;
22402 if (
22403 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22404 )
22405 {
22406 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22407 _res = star_expressions_var;
22408 goto done;
22409 }
22410 p->mark = _mark;
22411 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22413 }
22414 _res = NULL;
22415 done:
22416 D(p->level--);
22417 return _res;
22418}
22419
22420// _tmp_24: yield_expr | star_expressions
22421static void *
22422_tmp_24_rule(Parser *p)
22423{
22424 D(p->level++);
22425 if (p->error_indicator) {
22426 D(p->level--);
22427 return NULL;
22428 }
22429 void * _res = NULL;
22430 int _mark = p->mark;
22431 { // yield_expr
22432 if (p->error_indicator) {
22433 D(p->level--);
22434 return NULL;
22435 }
22436 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22437 expr_ty yield_expr_var;
22438 if (
22439 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22440 )
22441 {
22442 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22443 _res = yield_expr_var;
22444 goto done;
22445 }
22446 p->mark = _mark;
22447 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22449 }
22450 { // star_expressions
22451 if (p->error_indicator) {
22452 D(p->level--);
22453 return NULL;
22454 }
22455 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22456 expr_ty star_expressions_var;
22457 if (
22458 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22459 )
22460 {
22461 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22462 _res = star_expressions_var;
22463 goto done;
22464 }
22465 p->mark = _mark;
22466 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22468 }
22469 _res = NULL;
22470 done:
22471 D(p->level--);
22472 return _res;
22473}
22474
22475// _loop0_26: ',' NAME
22476static asdl_seq *
22477_loop0_26_rule(Parser *p)
22478{
22479 D(p->level++);
22480 if (p->error_indicator) {
22481 D(p->level--);
22482 return NULL;
22483 }
22484 void *_res = NULL;
22485 int _mark = p->mark;
22486 int _start_mark = p->mark;
22487 void **_children = PyMem_Malloc(sizeof(void *));
22488 if (!_children) {
22489 p->error_indicator = 1;
22490 PyErr_NoMemory();
22491 D(p->level--);
22492 return NULL;
22493 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022494 Py_ssize_t _children_capacity = 1;
22495 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022496 { // ',' NAME
22497 if (p->error_indicator) {
22498 D(p->level--);
22499 return NULL;
22500 }
22501 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22502 Token * _literal;
22503 expr_ty elem;
22504 while (
22505 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22506 &&
22507 (elem = _PyPegen_name_token(p)) // NAME
22508 )
22509 {
22510 _res = elem;
22511 if (_res == NULL && PyErr_Occurred()) {
22512 p->error_indicator = 1;
22513 PyMem_Free(_children);
22514 D(p->level--);
22515 return NULL;
22516 }
22517 if (_n == _children_capacity) {
22518 _children_capacity *= 2;
22519 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22520 if (!_new_children) {
22521 p->error_indicator = 1;
22522 PyErr_NoMemory();
22523 D(p->level--);
22524 return NULL;
22525 }
22526 _children = _new_children;
22527 }
22528 _children[_n++] = _res;
22529 _mark = p->mark;
22530 }
22531 p->mark = _mark;
22532 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22534 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022535 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022536 if (!_seq) {
22537 PyMem_Free(_children);
22538 p->error_indicator = 1;
22539 PyErr_NoMemory();
22540 D(p->level--);
22541 return NULL;
22542 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022543 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022544 PyMem_Free(_children);
22545 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22546 D(p->level--);
22547 return _seq;
22548}
22549
22550// _gather_25: NAME _loop0_26
22551static asdl_seq *
22552_gather_25_rule(Parser *p)
22553{
22554 D(p->level++);
22555 if (p->error_indicator) {
22556 D(p->level--);
22557 return NULL;
22558 }
22559 asdl_seq * _res = NULL;
22560 int _mark = p->mark;
22561 { // NAME _loop0_26
22562 if (p->error_indicator) {
22563 D(p->level--);
22564 return NULL;
22565 }
22566 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22567 expr_ty elem;
22568 asdl_seq * seq;
22569 if (
22570 (elem = _PyPegen_name_token(p)) // NAME
22571 &&
22572 (seq = _loop0_26_rule(p)) // _loop0_26
22573 )
22574 {
22575 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22576 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22577 goto done;
22578 }
22579 p->mark = _mark;
22580 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22582 }
22583 _res = NULL;
22584 done:
22585 D(p->level--);
22586 return _res;
22587}
22588
22589// _loop0_28: ',' NAME
22590static asdl_seq *
22591_loop0_28_rule(Parser *p)
22592{
22593 D(p->level++);
22594 if (p->error_indicator) {
22595 D(p->level--);
22596 return NULL;
22597 }
22598 void *_res = NULL;
22599 int _mark = p->mark;
22600 int _start_mark = p->mark;
22601 void **_children = PyMem_Malloc(sizeof(void *));
22602 if (!_children) {
22603 p->error_indicator = 1;
22604 PyErr_NoMemory();
22605 D(p->level--);
22606 return NULL;
22607 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022608 Py_ssize_t _children_capacity = 1;
22609 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022610 { // ',' NAME
22611 if (p->error_indicator) {
22612 D(p->level--);
22613 return NULL;
22614 }
22615 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22616 Token * _literal;
22617 expr_ty elem;
22618 while (
22619 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22620 &&
22621 (elem = _PyPegen_name_token(p)) // NAME
22622 )
22623 {
22624 _res = elem;
22625 if (_res == NULL && PyErr_Occurred()) {
22626 p->error_indicator = 1;
22627 PyMem_Free(_children);
22628 D(p->level--);
22629 return NULL;
22630 }
22631 if (_n == _children_capacity) {
22632 _children_capacity *= 2;
22633 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22634 if (!_new_children) {
22635 p->error_indicator = 1;
22636 PyErr_NoMemory();
22637 D(p->level--);
22638 return NULL;
22639 }
22640 _children = _new_children;
22641 }
22642 _children[_n++] = _res;
22643 _mark = p->mark;
22644 }
22645 p->mark = _mark;
22646 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22648 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022649 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022650 if (!_seq) {
22651 PyMem_Free(_children);
22652 p->error_indicator = 1;
22653 PyErr_NoMemory();
22654 D(p->level--);
22655 return NULL;
22656 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022657 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022658 PyMem_Free(_children);
22659 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22660 D(p->level--);
22661 return _seq;
22662}
22663
22664// _gather_27: NAME _loop0_28
22665static asdl_seq *
22666_gather_27_rule(Parser *p)
22667{
22668 D(p->level++);
22669 if (p->error_indicator) {
22670 D(p->level--);
22671 return NULL;
22672 }
22673 asdl_seq * _res = NULL;
22674 int _mark = p->mark;
22675 { // NAME _loop0_28
22676 if (p->error_indicator) {
22677 D(p->level--);
22678 return NULL;
22679 }
22680 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22681 expr_ty elem;
22682 asdl_seq * seq;
22683 if (
22684 (elem = _PyPegen_name_token(p)) // NAME
22685 &&
22686 (seq = _loop0_28_rule(p)) // _loop0_28
22687 )
22688 {
22689 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22690 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22691 goto done;
22692 }
22693 p->mark = _mark;
22694 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22696 }
22697 _res = NULL;
22698 done:
22699 D(p->level--);
22700 return _res;
22701}
22702
22703// _tmp_29: ',' expression
22704static void *
22705_tmp_29_rule(Parser *p)
22706{
22707 D(p->level++);
22708 if (p->error_indicator) {
22709 D(p->level--);
22710 return NULL;
22711 }
22712 void * _res = NULL;
22713 int _mark = p->mark;
22714 { // ',' expression
22715 if (p->error_indicator) {
22716 D(p->level--);
22717 return NULL;
22718 }
22719 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22720 Token * _literal;
22721 expr_ty z;
22722 if (
22723 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22724 &&
22725 (z = expression_rule(p)) // expression
22726 )
22727 {
22728 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22729 _res = z;
22730 if (_res == NULL && PyErr_Occurred()) {
22731 p->error_indicator = 1;
22732 D(p->level--);
22733 return NULL;
22734 }
22735 goto done;
22736 }
22737 p->mark = _mark;
22738 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22740 }
22741 _res = NULL;
22742 done:
22743 D(p->level--);
22744 return _res;
22745}
22746
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022747// _tmp_30: ';' | NEWLINE
22748static void *
22749_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022750{
22751 D(p->level++);
22752 if (p->error_indicator) {
22753 D(p->level--);
22754 return NULL;
22755 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022756 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022757 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022758 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022759 if (p->error_indicator) {
22760 D(p->level--);
22761 return NULL;
22762 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022763 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22764 Token * _literal;
22765 if (
22766 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022767 )
22768 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022769 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22770 _res = _literal;
22771 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022772 }
22773 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022774 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022776 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022777 { // NEWLINE
22778 if (p->error_indicator) {
22779 D(p->level--);
22780 return NULL;
22781 }
22782 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22783 Token * newline_var;
22784 if (
22785 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22786 )
22787 {
22788 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22789 _res = newline_var;
22790 goto done;
22791 }
22792 p->mark = _mark;
22793 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022795 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022796 _res = NULL;
22797 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022798 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022799 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022800}
22801
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022802// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022803static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022804_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022805{
22806 D(p->level++);
22807 if (p->error_indicator) {
22808 D(p->level--);
22809 return NULL;
22810 }
22811 void *_res = NULL;
22812 int _mark = p->mark;
22813 int _start_mark = p->mark;
22814 void **_children = PyMem_Malloc(sizeof(void *));
22815 if (!_children) {
22816 p->error_indicator = 1;
22817 PyErr_NoMemory();
22818 D(p->level--);
22819 return NULL;
22820 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022821 Py_ssize_t _children_capacity = 1;
22822 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022823 { // ('.' | '...')
22824 if (p->error_indicator) {
22825 D(p->level--);
22826 return NULL;
22827 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022828 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010022829 void *_tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022830 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010022831 (_tmp_178_var = _tmp_178_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022832 )
22833 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010022834 _res = _tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022835 if (_n == _children_capacity) {
22836 _children_capacity *= 2;
22837 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22838 if (!_new_children) {
22839 p->error_indicator = 1;
22840 PyErr_NoMemory();
22841 D(p->level--);
22842 return NULL;
22843 }
22844 _children = _new_children;
22845 }
22846 _children[_n++] = _res;
22847 _mark = p->mark;
22848 }
22849 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022850 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
22851 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22852 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022853 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022854 if (!_seq) {
22855 PyMem_Free(_children);
22856 p->error_indicator = 1;
22857 PyErr_NoMemory();
22858 D(p->level--);
22859 return NULL;
22860 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022861 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022862 PyMem_Free(_children);
22863 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
22864 D(p->level--);
22865 return _seq;
22866}
22867
22868// _loop1_32: ('.' | '...')
22869static asdl_seq *
22870_loop1_32_rule(Parser *p)
22871{
22872 D(p->level++);
22873 if (p->error_indicator) {
22874 D(p->level--);
22875 return NULL;
22876 }
22877 void *_res = NULL;
22878 int _mark = p->mark;
22879 int _start_mark = p->mark;
22880 void **_children = PyMem_Malloc(sizeof(void *));
22881 if (!_children) {
22882 p->error_indicator = 1;
22883 PyErr_NoMemory();
22884 D(p->level--);
22885 return NULL;
22886 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022887 Py_ssize_t _children_capacity = 1;
22888 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022889 { // ('.' | '...')
22890 if (p->error_indicator) {
22891 D(p->level--);
22892 return NULL;
22893 }
22894 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010022895 void *_tmp_179_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022896 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010022897 (_tmp_179_var = _tmp_179_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022898 )
22899 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010022900 _res = _tmp_179_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022901 if (_n == _children_capacity) {
22902 _children_capacity *= 2;
22903 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22904 if (!_new_children) {
22905 p->error_indicator = 1;
22906 PyErr_NoMemory();
22907 D(p->level--);
22908 return NULL;
22909 }
22910 _children = _new_children;
22911 }
22912 _children[_n++] = _res;
22913 _mark = p->mark;
22914 }
22915 p->mark = _mark;
22916 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22918 }
22919 if (_n == 0 || p->error_indicator) {
22920 PyMem_Free(_children);
22921 D(p->level--);
22922 return NULL;
22923 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022924 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022925 if (!_seq) {
22926 PyMem_Free(_children);
22927 p->error_indicator = 1;
22928 PyErr_NoMemory();
22929 D(p->level--);
22930 return NULL;
22931 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022932 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022933 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022934 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022935 D(p->level--);
22936 return _seq;
22937}
22938
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022939// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022940static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022941_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022942{
22943 D(p->level++);
22944 if (p->error_indicator) {
22945 D(p->level--);
22946 return NULL;
22947 }
22948 void *_res = NULL;
22949 int _mark = p->mark;
22950 int _start_mark = p->mark;
22951 void **_children = PyMem_Malloc(sizeof(void *));
22952 if (!_children) {
22953 p->error_indicator = 1;
22954 PyErr_NoMemory();
22955 D(p->level--);
22956 return NULL;
22957 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022958 Py_ssize_t _children_capacity = 1;
22959 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022960 { // ',' import_from_as_name
22961 if (p->error_indicator) {
22962 D(p->level--);
22963 return NULL;
22964 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022965 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 +010022966 Token * _literal;
22967 alias_ty elem;
22968 while (
22969 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22970 &&
22971 (elem = import_from_as_name_rule(p)) // import_from_as_name
22972 )
22973 {
22974 _res = elem;
22975 if (_res == NULL && PyErr_Occurred()) {
22976 p->error_indicator = 1;
22977 PyMem_Free(_children);
22978 D(p->level--);
22979 return NULL;
22980 }
22981 if (_n == _children_capacity) {
22982 _children_capacity *= 2;
22983 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22984 if (!_new_children) {
22985 p->error_indicator = 1;
22986 PyErr_NoMemory();
22987 D(p->level--);
22988 return NULL;
22989 }
22990 _children = _new_children;
22991 }
22992 _children[_n++] = _res;
22993 _mark = p->mark;
22994 }
22995 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022996 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
22998 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022999 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023000 if (!_seq) {
23001 PyMem_Free(_children);
23002 p->error_indicator = 1;
23003 PyErr_NoMemory();
23004 D(p->level--);
23005 return NULL;
23006 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023007 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023008 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023009 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023010 D(p->level--);
23011 return _seq;
23012}
23013
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023014// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023015static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023016_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023017{
23018 D(p->level++);
23019 if (p->error_indicator) {
23020 D(p->level--);
23021 return NULL;
23022 }
23023 asdl_seq * _res = NULL;
23024 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023025 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023026 if (p->error_indicator) {
23027 D(p->level--);
23028 return NULL;
23029 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023030 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 +010023031 alias_ty elem;
23032 asdl_seq * seq;
23033 if (
23034 (elem = import_from_as_name_rule(p)) // import_from_as_name
23035 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023036 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023037 )
23038 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023039 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 +010023040 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23041 goto done;
23042 }
23043 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023044 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023046 }
23047 _res = NULL;
23048 done:
23049 D(p->level--);
23050 return _res;
23051}
23052
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023053// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023054static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023055_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023056{
23057 D(p->level++);
23058 if (p->error_indicator) {
23059 D(p->level--);
23060 return NULL;
23061 }
23062 void * _res = NULL;
23063 int _mark = p->mark;
23064 { // 'as' NAME
23065 if (p->error_indicator) {
23066 D(p->level--);
23067 return NULL;
23068 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023069 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023070 Token * _keyword;
23071 expr_ty z;
23072 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023073 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023074 &&
23075 (z = _PyPegen_name_token(p)) // NAME
23076 )
23077 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023078 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 +010023079 _res = z;
23080 if (_res == NULL && PyErr_Occurred()) {
23081 p->error_indicator = 1;
23082 D(p->level--);
23083 return NULL;
23084 }
23085 goto done;
23086 }
23087 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023088 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23090 }
23091 _res = NULL;
23092 done:
23093 D(p->level--);
23094 return _res;
23095}
23096
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023097// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023098static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023099_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023100{
23101 D(p->level++);
23102 if (p->error_indicator) {
23103 D(p->level--);
23104 return NULL;
23105 }
23106 void *_res = NULL;
23107 int _mark = p->mark;
23108 int _start_mark = p->mark;
23109 void **_children = PyMem_Malloc(sizeof(void *));
23110 if (!_children) {
23111 p->error_indicator = 1;
23112 PyErr_NoMemory();
23113 D(p->level--);
23114 return NULL;
23115 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023116 Py_ssize_t _children_capacity = 1;
23117 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023118 { // ',' dotted_as_name
23119 if (p->error_indicator) {
23120 D(p->level--);
23121 return NULL;
23122 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023123 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 +010023124 Token * _literal;
23125 alias_ty elem;
23126 while (
23127 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23128 &&
23129 (elem = dotted_as_name_rule(p)) // dotted_as_name
23130 )
23131 {
23132 _res = elem;
23133 if (_res == NULL && PyErr_Occurred()) {
23134 p->error_indicator = 1;
23135 PyMem_Free(_children);
23136 D(p->level--);
23137 return NULL;
23138 }
23139 if (_n == _children_capacity) {
23140 _children_capacity *= 2;
23141 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23142 if (!_new_children) {
23143 p->error_indicator = 1;
23144 PyErr_NoMemory();
23145 D(p->level--);
23146 return NULL;
23147 }
23148 _children = _new_children;
23149 }
23150 _children[_n++] = _res;
23151 _mark = p->mark;
23152 }
23153 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023154 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23156 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023157 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023158 if (!_seq) {
23159 PyMem_Free(_children);
23160 p->error_indicator = 1;
23161 PyErr_NoMemory();
23162 D(p->level--);
23163 return NULL;
23164 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023165 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023166 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023167 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023168 D(p->level--);
23169 return _seq;
23170}
23171
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023172// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023173static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023174_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023175{
23176 D(p->level++);
23177 if (p->error_indicator) {
23178 D(p->level--);
23179 return NULL;
23180 }
23181 asdl_seq * _res = NULL;
23182 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023183 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023184 if (p->error_indicator) {
23185 D(p->level--);
23186 return NULL;
23187 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023188 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 +010023189 alias_ty elem;
23190 asdl_seq * seq;
23191 if (
23192 (elem = dotted_as_name_rule(p)) // dotted_as_name
23193 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023194 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023195 )
23196 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023197 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 +010023198 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23199 goto done;
23200 }
23201 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023202 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023204 }
23205 _res = NULL;
23206 done:
23207 D(p->level--);
23208 return _res;
23209}
23210
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023211// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023212static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023213_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023214{
23215 D(p->level++);
23216 if (p->error_indicator) {
23217 D(p->level--);
23218 return NULL;
23219 }
23220 void * _res = NULL;
23221 int _mark = p->mark;
23222 { // 'as' NAME
23223 if (p->error_indicator) {
23224 D(p->level--);
23225 return NULL;
23226 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023227 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023228 Token * _keyword;
23229 expr_ty z;
23230 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023231 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023232 &&
23233 (z = _PyPegen_name_token(p)) // NAME
23234 )
23235 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023236 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 +010023237 _res = z;
23238 if (_res == NULL && PyErr_Occurred()) {
23239 p->error_indicator = 1;
23240 D(p->level--);
23241 return NULL;
23242 }
23243 goto done;
23244 }
23245 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023246 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23248 }
23249 _res = NULL;
23250 done:
23251 D(p->level--);
23252 return _res;
23253}
23254
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023255// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023256static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023257_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023258{
23259 D(p->level++);
23260 if (p->error_indicator) {
23261 D(p->level--);
23262 return NULL;
23263 }
23264 void *_res = NULL;
23265 int _mark = p->mark;
23266 int _start_mark = p->mark;
23267 void **_children = PyMem_Malloc(sizeof(void *));
23268 if (!_children) {
23269 p->error_indicator = 1;
23270 PyErr_NoMemory();
23271 D(p->level--);
23272 return NULL;
23273 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023274 Py_ssize_t _children_capacity = 1;
23275 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023276 { // ',' with_item
23277 if (p->error_indicator) {
23278 D(p->level--);
23279 return NULL;
23280 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023281 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023282 Token * _literal;
23283 withitem_ty elem;
23284 while (
23285 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23286 &&
23287 (elem = with_item_rule(p)) // with_item
23288 )
23289 {
23290 _res = elem;
23291 if (_res == NULL && PyErr_Occurred()) {
23292 p->error_indicator = 1;
23293 PyMem_Free(_children);
23294 D(p->level--);
23295 return NULL;
23296 }
23297 if (_n == _children_capacity) {
23298 _children_capacity *= 2;
23299 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23300 if (!_new_children) {
23301 p->error_indicator = 1;
23302 PyErr_NoMemory();
23303 D(p->level--);
23304 return NULL;
23305 }
23306 _children = _new_children;
23307 }
23308 _children[_n++] = _res;
23309 _mark = p->mark;
23310 }
23311 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023312 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23314 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023315 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023316 if (!_seq) {
23317 PyMem_Free(_children);
23318 p->error_indicator = 1;
23319 PyErr_NoMemory();
23320 D(p->level--);
23321 return NULL;
23322 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023323 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023324 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023325 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023326 D(p->level--);
23327 return _seq;
23328}
23329
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023330// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023331static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023332_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023333{
23334 D(p->level++);
23335 if (p->error_indicator) {
23336 D(p->level--);
23337 return NULL;
23338 }
23339 asdl_seq * _res = NULL;
23340 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023341 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023342 if (p->error_indicator) {
23343 D(p->level--);
23344 return NULL;
23345 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023346 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 +010023347 withitem_ty elem;
23348 asdl_seq * seq;
23349 if (
23350 (elem = with_item_rule(p)) // with_item
23351 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023352 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023353 )
23354 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023355 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 +010023356 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23357 goto done;
23358 }
23359 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023360 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023362 }
23363 _res = NULL;
23364 done:
23365 D(p->level--);
23366 return _res;
23367}
23368
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023369// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023370static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023371_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023372{
23373 D(p->level++);
23374 if (p->error_indicator) {
23375 D(p->level--);
23376 return NULL;
23377 }
23378 void *_res = NULL;
23379 int _mark = p->mark;
23380 int _start_mark = p->mark;
23381 void **_children = PyMem_Malloc(sizeof(void *));
23382 if (!_children) {
23383 p->error_indicator = 1;
23384 PyErr_NoMemory();
23385 D(p->level--);
23386 return NULL;
23387 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023388 Py_ssize_t _children_capacity = 1;
23389 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023390 { // ',' with_item
23391 if (p->error_indicator) {
23392 D(p->level--);
23393 return NULL;
23394 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023395 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023396 Token * _literal;
23397 withitem_ty elem;
23398 while (
23399 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23400 &&
23401 (elem = with_item_rule(p)) // with_item
23402 )
23403 {
23404 _res = elem;
23405 if (_res == NULL && PyErr_Occurred()) {
23406 p->error_indicator = 1;
23407 PyMem_Free(_children);
23408 D(p->level--);
23409 return NULL;
23410 }
23411 if (_n == _children_capacity) {
23412 _children_capacity *= 2;
23413 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23414 if (!_new_children) {
23415 p->error_indicator = 1;
23416 PyErr_NoMemory();
23417 D(p->level--);
23418 return NULL;
23419 }
23420 _children = _new_children;
23421 }
23422 _children[_n++] = _res;
23423 _mark = p->mark;
23424 }
23425 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023426 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23428 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023429 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023430 if (!_seq) {
23431 PyMem_Free(_children);
23432 p->error_indicator = 1;
23433 PyErr_NoMemory();
23434 D(p->level--);
23435 return NULL;
23436 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023437 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023438 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023439 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023440 D(p->level--);
23441 return _seq;
23442}
23443
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023444// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023445static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023446_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023447{
23448 D(p->level++);
23449 if (p->error_indicator) {
23450 D(p->level--);
23451 return NULL;
23452 }
23453 asdl_seq * _res = NULL;
23454 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023455 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023456 if (p->error_indicator) {
23457 D(p->level--);
23458 return NULL;
23459 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023460 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 +010023461 withitem_ty elem;
23462 asdl_seq * seq;
23463 if (
23464 (elem = with_item_rule(p)) // with_item
23465 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023466 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023467 )
23468 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023469 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 +010023470 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23471 goto done;
23472 }
23473 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023474 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023476 }
23477 _res = NULL;
23478 done:
23479 D(p->level--);
23480 return _res;
23481}
23482
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023483// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023484static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023485_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023486{
23487 D(p->level++);
23488 if (p->error_indicator) {
23489 D(p->level--);
23490 return NULL;
23491 }
23492 void *_res = NULL;
23493 int _mark = p->mark;
23494 int _start_mark = p->mark;
23495 void **_children = PyMem_Malloc(sizeof(void *));
23496 if (!_children) {
23497 p->error_indicator = 1;
23498 PyErr_NoMemory();
23499 D(p->level--);
23500 return NULL;
23501 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023502 Py_ssize_t _children_capacity = 1;
23503 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023504 { // ',' with_item
23505 if (p->error_indicator) {
23506 D(p->level--);
23507 return NULL;
23508 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023509 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023510 Token * _literal;
23511 withitem_ty elem;
23512 while (
23513 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23514 &&
23515 (elem = with_item_rule(p)) // with_item
23516 )
23517 {
23518 _res = elem;
23519 if (_res == NULL && PyErr_Occurred()) {
23520 p->error_indicator = 1;
23521 PyMem_Free(_children);
23522 D(p->level--);
23523 return NULL;
23524 }
23525 if (_n == _children_capacity) {
23526 _children_capacity *= 2;
23527 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23528 if (!_new_children) {
23529 p->error_indicator = 1;
23530 PyErr_NoMemory();
23531 D(p->level--);
23532 return NULL;
23533 }
23534 _children = _new_children;
23535 }
23536 _children[_n++] = _res;
23537 _mark = p->mark;
23538 }
23539 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023540 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23542 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023543 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023544 if (!_seq) {
23545 PyMem_Free(_children);
23546 p->error_indicator = 1;
23547 PyErr_NoMemory();
23548 D(p->level--);
23549 return NULL;
23550 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023551 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023552 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023553 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023554 D(p->level--);
23555 return _seq;
23556}
23557
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023558// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023559static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023560_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023561{
23562 D(p->level++);
23563 if (p->error_indicator) {
23564 D(p->level--);
23565 return NULL;
23566 }
23567 asdl_seq * _res = NULL;
23568 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023569 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023570 if (p->error_indicator) {
23571 D(p->level--);
23572 return NULL;
23573 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023574 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 +010023575 withitem_ty elem;
23576 asdl_seq * seq;
23577 if (
23578 (elem = with_item_rule(p)) // with_item
23579 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023580 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023581 )
23582 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023583 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 +010023584 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23585 goto done;
23586 }
23587 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023588 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023590 }
23591 _res = NULL;
23592 done:
23593 D(p->level--);
23594 return _res;
23595}
23596
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023597// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023598static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023599_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023600{
23601 D(p->level++);
23602 if (p->error_indicator) {
23603 D(p->level--);
23604 return NULL;
23605 }
23606 void *_res = NULL;
23607 int _mark = p->mark;
23608 int _start_mark = p->mark;
23609 void **_children = PyMem_Malloc(sizeof(void *));
23610 if (!_children) {
23611 p->error_indicator = 1;
23612 PyErr_NoMemory();
23613 D(p->level--);
23614 return NULL;
23615 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023616 Py_ssize_t _children_capacity = 1;
23617 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023618 { // ',' with_item
23619 if (p->error_indicator) {
23620 D(p->level--);
23621 return NULL;
23622 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023623 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023624 Token * _literal;
23625 withitem_ty elem;
23626 while (
23627 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23628 &&
23629 (elem = with_item_rule(p)) // with_item
23630 )
23631 {
23632 _res = elem;
23633 if (_res == NULL && PyErr_Occurred()) {
23634 p->error_indicator = 1;
23635 PyMem_Free(_children);
23636 D(p->level--);
23637 return NULL;
23638 }
23639 if (_n == _children_capacity) {
23640 _children_capacity *= 2;
23641 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23642 if (!_new_children) {
23643 p->error_indicator = 1;
23644 PyErr_NoMemory();
23645 D(p->level--);
23646 return NULL;
23647 }
23648 _children = _new_children;
23649 }
23650 _children[_n++] = _res;
23651 _mark = p->mark;
23652 }
23653 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023654 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23656 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023657 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023658 if (!_seq) {
23659 PyMem_Free(_children);
23660 p->error_indicator = 1;
23661 PyErr_NoMemory();
23662 D(p->level--);
23663 return NULL;
23664 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023665 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023666 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023667 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023668 D(p->level--);
23669 return _seq;
23670}
23671
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023672// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023673static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023674_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023675{
23676 D(p->level++);
23677 if (p->error_indicator) {
23678 D(p->level--);
23679 return NULL;
23680 }
23681 asdl_seq * _res = NULL;
23682 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023683 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023684 if (p->error_indicator) {
23685 D(p->level--);
23686 return NULL;
23687 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023688 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 +010023689 withitem_ty elem;
23690 asdl_seq * seq;
23691 if (
23692 (elem = with_item_rule(p)) // with_item
23693 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023694 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023695 )
23696 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023697 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 +010023698 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23699 goto done;
23700 }
23701 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023702 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023704 }
23705 _res = NULL;
23706 done:
23707 D(p->level--);
23708 return _res;
23709}
23710
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023711// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023712static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023713_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023714{
23715 D(p->level++);
23716 if (p->error_indicator) {
23717 D(p->level--);
23718 return NULL;
23719 }
23720 void * _res = NULL;
23721 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023722 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023723 if (p->error_indicator) {
23724 D(p->level--);
23725 return NULL;
23726 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023727 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23728 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023729 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023730 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023731 )
23732 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023733 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23734 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023735 goto done;
23736 }
23737 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023738 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23740 }
23741 { // ')'
23742 if (p->error_indicator) {
23743 D(p->level--);
23744 return NULL;
23745 }
23746 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23747 Token * _literal;
23748 if (
23749 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23750 )
23751 {
23752 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23753 _res = _literal;
23754 goto done;
23755 }
23756 p->mark = _mark;
23757 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23759 }
23760 { // ':'
23761 if (p->error_indicator) {
23762 D(p->level--);
23763 return NULL;
23764 }
23765 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23766 Token * _literal;
23767 if (
23768 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23769 )
23770 {
23771 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23772 _res = _literal;
23773 goto done;
23774 }
23775 p->mark = _mark;
23776 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023778 }
23779 _res = NULL;
23780 done:
23781 D(p->level--);
23782 return _res;
23783}
23784
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023785// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023786static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023787_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023788{
23789 D(p->level++);
23790 if (p->error_indicator) {
23791 D(p->level--);
23792 return NULL;
23793 }
23794 void *_res = NULL;
23795 int _mark = p->mark;
23796 int _start_mark = p->mark;
23797 void **_children = PyMem_Malloc(sizeof(void *));
23798 if (!_children) {
23799 p->error_indicator = 1;
23800 PyErr_NoMemory();
23801 D(p->level--);
23802 return NULL;
23803 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023804 Py_ssize_t _children_capacity = 1;
23805 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023806 { // except_block
23807 if (p->error_indicator) {
23808 D(p->level--);
23809 return NULL;
23810 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023811 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023812 excepthandler_ty except_block_var;
23813 while (
23814 (except_block_var = except_block_rule(p)) // except_block
23815 )
23816 {
23817 _res = except_block_var;
23818 if (_n == _children_capacity) {
23819 _children_capacity *= 2;
23820 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23821 if (!_new_children) {
23822 p->error_indicator = 1;
23823 PyErr_NoMemory();
23824 D(p->level--);
23825 return NULL;
23826 }
23827 _children = _new_children;
23828 }
23829 _children[_n++] = _res;
23830 _mark = p->mark;
23831 }
23832 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023833 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23835 }
23836 if (_n == 0 || p->error_indicator) {
23837 PyMem_Free(_children);
23838 D(p->level--);
23839 return NULL;
23840 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023841 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023842 if (!_seq) {
23843 PyMem_Free(_children);
23844 p->error_indicator = 1;
23845 PyErr_NoMemory();
23846 D(p->level--);
23847 return NULL;
23848 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023849 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023850 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023851 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023852 D(p->level--);
23853 return _seq;
23854}
23855
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023856// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023857static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023858_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023859{
23860 D(p->level++);
23861 if (p->error_indicator) {
23862 D(p->level--);
23863 return NULL;
23864 }
23865 void * _res = NULL;
23866 int _mark = p->mark;
23867 { // 'as' NAME
23868 if (p->error_indicator) {
23869 D(p->level--);
23870 return NULL;
23871 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023872 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023873 Token * _keyword;
23874 expr_ty z;
23875 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023876 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023877 &&
23878 (z = _PyPegen_name_token(p)) // NAME
23879 )
23880 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023881 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 +010023882 _res = z;
23883 if (_res == NULL && PyErr_Occurred()) {
23884 p->error_indicator = 1;
23885 D(p->level--);
23886 return NULL;
23887 }
23888 goto done;
23889 }
23890 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023891 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23893 }
23894 _res = NULL;
23895 done:
23896 D(p->level--);
23897 return _res;
23898}
23899
Brandt Bucher145bf262021-02-26 14:51:55 -080023900// _loop1_50: case_block
23901static asdl_seq *
23902_loop1_50_rule(Parser *p)
23903{
23904 D(p->level++);
23905 if (p->error_indicator) {
23906 D(p->level--);
23907 return NULL;
23908 }
23909 void *_res = NULL;
23910 int _mark = p->mark;
23911 int _start_mark = p->mark;
23912 void **_children = PyMem_Malloc(sizeof(void *));
23913 if (!_children) {
23914 p->error_indicator = 1;
23915 PyErr_NoMemory();
23916 D(p->level--);
23917 return NULL;
23918 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023919 Py_ssize_t _children_capacity = 1;
23920 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023921 { // case_block
23922 if (p->error_indicator) {
23923 D(p->level--);
23924 return NULL;
23925 }
23926 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
23927 match_case_ty case_block_var;
23928 while (
23929 (case_block_var = case_block_rule(p)) // case_block
23930 )
23931 {
23932 _res = case_block_var;
23933 if (_n == _children_capacity) {
23934 _children_capacity *= 2;
23935 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23936 if (!_new_children) {
23937 p->error_indicator = 1;
23938 PyErr_NoMemory();
23939 D(p->level--);
23940 return NULL;
23941 }
23942 _children = _new_children;
23943 }
23944 _children[_n++] = _res;
23945 _mark = p->mark;
23946 }
23947 p->mark = _mark;
23948 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
23949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
23950 }
23951 if (_n == 0 || p->error_indicator) {
23952 PyMem_Free(_children);
23953 D(p->level--);
23954 return NULL;
23955 }
23956 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23957 if (!_seq) {
23958 PyMem_Free(_children);
23959 p->error_indicator = 1;
23960 PyErr_NoMemory();
23961 D(p->level--);
23962 return NULL;
23963 }
23964 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23965 PyMem_Free(_children);
23966 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
23967 D(p->level--);
23968 return _seq;
23969}
23970
23971// _loop0_52: '|' closed_pattern
23972static asdl_seq *
23973_loop0_52_rule(Parser *p)
23974{
23975 D(p->level++);
23976 if (p->error_indicator) {
23977 D(p->level--);
23978 return NULL;
23979 }
23980 void *_res = NULL;
23981 int _mark = p->mark;
23982 int _start_mark = p->mark;
23983 void **_children = PyMem_Malloc(sizeof(void *));
23984 if (!_children) {
23985 p->error_indicator = 1;
23986 PyErr_NoMemory();
23987 D(p->level--);
23988 return NULL;
23989 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023990 Py_ssize_t _children_capacity = 1;
23991 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023992 { // '|' closed_pattern
23993 if (p->error_indicator) {
23994 D(p->level--);
23995 return NULL;
23996 }
23997 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
23998 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100023999 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024000 while (
24001 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
24002 &&
24003 (elem = closed_pattern_rule(p)) // closed_pattern
24004 )
24005 {
24006 _res = elem;
24007 if (_res == NULL && PyErr_Occurred()) {
24008 p->error_indicator = 1;
24009 PyMem_Free(_children);
24010 D(p->level--);
24011 return NULL;
24012 }
24013 if (_n == _children_capacity) {
24014 _children_capacity *= 2;
24015 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24016 if (!_new_children) {
24017 p->error_indicator = 1;
24018 PyErr_NoMemory();
24019 D(p->level--);
24020 return NULL;
24021 }
24022 _children = _new_children;
24023 }
24024 _children[_n++] = _res;
24025 _mark = p->mark;
24026 }
24027 p->mark = _mark;
24028 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
24029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
24030 }
24031 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24032 if (!_seq) {
24033 PyMem_Free(_children);
24034 p->error_indicator = 1;
24035 PyErr_NoMemory();
24036 D(p->level--);
24037 return NULL;
24038 }
24039 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24040 PyMem_Free(_children);
24041 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
24042 D(p->level--);
24043 return _seq;
24044}
24045
24046// _gather_51: closed_pattern _loop0_52
24047static asdl_seq *
24048_gather_51_rule(Parser *p)
24049{
24050 D(p->level++);
24051 if (p->error_indicator) {
24052 D(p->level--);
24053 return NULL;
24054 }
24055 asdl_seq * _res = NULL;
24056 int _mark = p->mark;
24057 { // closed_pattern _loop0_52
24058 if (p->error_indicator) {
24059 D(p->level--);
24060 return NULL;
24061 }
24062 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 +100024063 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024064 asdl_seq * seq;
24065 if (
24066 (elem = closed_pattern_rule(p)) // closed_pattern
24067 &&
24068 (seq = _loop0_52_rule(p)) // _loop0_52
24069 )
24070 {
24071 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24072 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24073 goto done;
24074 }
24075 p->mark = _mark;
24076 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24078 }
24079 _res = NULL;
24080 done:
24081 D(p->level--);
24082 return _res;
24083}
24084
24085// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024086static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024087_tmp_53_rule(Parser *p)
24088{
24089 D(p->level++);
24090 if (p->error_indicator) {
24091 D(p->level--);
24092 return NULL;
24093 }
24094 void * _res = NULL;
24095 int _mark = p->mark;
24096 { // '+'
24097 if (p->error_indicator) {
24098 D(p->level--);
24099 return NULL;
24100 }
24101 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24102 Token * _literal;
24103 if (
24104 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24105 )
24106 {
24107 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24108 _res = _literal;
24109 goto done;
24110 }
24111 p->mark = _mark;
24112 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24114 }
24115 { // '-'
24116 if (p->error_indicator) {
24117 D(p->level--);
24118 return NULL;
24119 }
24120 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24121 Token * _literal;
24122 if (
24123 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24124 )
24125 {
24126 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24127 _res = _literal;
24128 goto done;
24129 }
24130 p->mark = _mark;
24131 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24133 }
24134 _res = NULL;
24135 done:
24136 D(p->level--);
24137 return _res;
24138}
24139
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024140// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024141static void *
24142_tmp_54_rule(Parser *p)
24143{
24144 D(p->level++);
24145 if (p->error_indicator) {
24146 D(p->level--);
24147 return NULL;
24148 }
24149 void * _res = NULL;
24150 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024151 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024152 if (p->error_indicator) {
24153 D(p->level--);
24154 return NULL;
24155 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024156 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024157 Token * _literal;
24158 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024159 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024160 )
24161 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024162 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024163 _res = _literal;
24164 goto done;
24165 }
24166 p->mark = _mark;
24167 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024169 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024170 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024171 if (p->error_indicator) {
24172 D(p->level--);
24173 return NULL;
24174 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024175 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024176 Token * _literal;
24177 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024178 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024179 )
24180 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024181 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024182 _res = _literal;
24183 goto done;
24184 }
24185 p->mark = _mark;
24186 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024188 }
24189 _res = NULL;
24190 done:
24191 D(p->level--);
24192 return _res;
24193}
24194
24195// _tmp_55: '.' | '(' | '='
24196static void *
24197_tmp_55_rule(Parser *p)
24198{
24199 D(p->level++);
24200 if (p->error_indicator) {
24201 D(p->level--);
24202 return NULL;
24203 }
24204 void * _res = NULL;
24205 int _mark = p->mark;
24206 { // '.'
24207 if (p->error_indicator) {
24208 D(p->level--);
24209 return NULL;
24210 }
24211 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24212 Token * _literal;
24213 if (
24214 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24215 )
24216 {
24217 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24218 _res = _literal;
24219 goto done;
24220 }
24221 p->mark = _mark;
24222 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24224 }
24225 { // '('
24226 if (p->error_indicator) {
24227 D(p->level--);
24228 return NULL;
24229 }
24230 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24231 Token * _literal;
24232 if (
24233 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24234 )
24235 {
24236 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24237 _res = _literal;
24238 goto done;
24239 }
24240 p->mark = _mark;
24241 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24243 }
24244 { // '='
24245 if (p->error_indicator) {
24246 D(p->level--);
24247 return NULL;
24248 }
24249 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24250 Token * _literal;
24251 if (
24252 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24253 )
24254 {
24255 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24256 _res = _literal;
24257 goto done;
24258 }
24259 p->mark = _mark;
24260 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24262 }
24263 _res = NULL;
24264 done:
24265 D(p->level--);
24266 return _res;
24267}
24268
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024269// _tmp_56: '.' | '(' | '='
24270static void *
24271_tmp_56_rule(Parser *p)
24272{
24273 D(p->level++);
24274 if (p->error_indicator) {
24275 D(p->level--);
24276 return NULL;
24277 }
24278 void * _res = NULL;
24279 int _mark = p->mark;
24280 { // '.'
24281 if (p->error_indicator) {
24282 D(p->level--);
24283 return NULL;
24284 }
24285 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24286 Token * _literal;
24287 if (
24288 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24289 )
24290 {
24291 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24292 _res = _literal;
24293 goto done;
24294 }
24295 p->mark = _mark;
24296 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24298 }
24299 { // '('
24300 if (p->error_indicator) {
24301 D(p->level--);
24302 return NULL;
24303 }
24304 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24305 Token * _literal;
24306 if (
24307 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24308 )
24309 {
24310 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24311 _res = _literal;
24312 goto done;
24313 }
24314 p->mark = _mark;
24315 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24317 }
24318 { // '='
24319 if (p->error_indicator) {
24320 D(p->level--);
24321 return NULL;
24322 }
24323 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24324 Token * _literal;
24325 if (
24326 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24327 )
24328 {
24329 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24330 _res = _literal;
24331 goto done;
24332 }
24333 p->mark = _mark;
24334 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24336 }
24337 _res = NULL;
24338 done:
24339 D(p->level--);
24340 return _res;
24341}
24342
24343// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024344static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024345_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024346{
24347 D(p->level++);
24348 if (p->error_indicator) {
24349 D(p->level--);
24350 return NULL;
24351 }
24352 void *_res = NULL;
24353 int _mark = p->mark;
24354 int _start_mark = p->mark;
24355 void **_children = PyMem_Malloc(sizeof(void *));
24356 if (!_children) {
24357 p->error_indicator = 1;
24358 PyErr_NoMemory();
24359 D(p->level--);
24360 return NULL;
24361 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024362 Py_ssize_t _children_capacity = 1;
24363 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024364 { // ',' maybe_star_pattern
24365 if (p->error_indicator) {
24366 D(p->level--);
24367 return NULL;
24368 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024369 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 -080024370 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024371 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024372 while (
24373 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24374 &&
24375 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24376 )
24377 {
24378 _res = elem;
24379 if (_res == NULL && PyErr_Occurred()) {
24380 p->error_indicator = 1;
24381 PyMem_Free(_children);
24382 D(p->level--);
24383 return NULL;
24384 }
24385 if (_n == _children_capacity) {
24386 _children_capacity *= 2;
24387 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24388 if (!_new_children) {
24389 p->error_indicator = 1;
24390 PyErr_NoMemory();
24391 D(p->level--);
24392 return NULL;
24393 }
24394 _children = _new_children;
24395 }
24396 _children[_n++] = _res;
24397 _mark = p->mark;
24398 }
24399 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024400 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24402 }
24403 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24404 if (!_seq) {
24405 PyMem_Free(_children);
24406 p->error_indicator = 1;
24407 PyErr_NoMemory();
24408 D(p->level--);
24409 return NULL;
24410 }
24411 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24412 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024413 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024414 D(p->level--);
24415 return _seq;
24416}
24417
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024418// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024419static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024420_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024421{
24422 D(p->level++);
24423 if (p->error_indicator) {
24424 D(p->level--);
24425 return NULL;
24426 }
24427 asdl_seq * _res = NULL;
24428 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024429 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024430 if (p->error_indicator) {
24431 D(p->level--);
24432 return NULL;
24433 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024434 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24435 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024436 asdl_seq * seq;
24437 if (
24438 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24439 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024440 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024441 )
24442 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024443 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 -080024444 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24445 goto done;
24446 }
24447 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024448 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024450 }
24451 _res = NULL;
24452 done:
24453 D(p->level--);
24454 return _res;
24455}
24456
24457// _loop0_60: ',' key_value_pattern
24458static asdl_seq *
24459_loop0_60_rule(Parser *p)
24460{
24461 D(p->level++);
24462 if (p->error_indicator) {
24463 D(p->level--);
24464 return NULL;
24465 }
24466 void *_res = NULL;
24467 int _mark = p->mark;
24468 int _start_mark = p->mark;
24469 void **_children = PyMem_Malloc(sizeof(void *));
24470 if (!_children) {
24471 p->error_indicator = 1;
24472 PyErr_NoMemory();
24473 D(p->level--);
24474 return NULL;
24475 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024476 Py_ssize_t _children_capacity = 1;
24477 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024478 { // ',' key_value_pattern
24479 if (p->error_indicator) {
24480 D(p->level--);
24481 return NULL;
24482 }
24483 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24484 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024485 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024486 while (
24487 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24488 &&
24489 (elem = key_value_pattern_rule(p)) // key_value_pattern
24490 )
24491 {
24492 _res = elem;
24493 if (_res == NULL && PyErr_Occurred()) {
24494 p->error_indicator = 1;
24495 PyMem_Free(_children);
24496 D(p->level--);
24497 return NULL;
24498 }
24499 if (_n == _children_capacity) {
24500 _children_capacity *= 2;
24501 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24502 if (!_new_children) {
24503 p->error_indicator = 1;
24504 PyErr_NoMemory();
24505 D(p->level--);
24506 return NULL;
24507 }
24508 _children = _new_children;
24509 }
24510 _children[_n++] = _res;
24511 _mark = p->mark;
24512 }
24513 p->mark = _mark;
24514 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24516 }
24517 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24518 if (!_seq) {
24519 PyMem_Free(_children);
24520 p->error_indicator = 1;
24521 PyErr_NoMemory();
24522 D(p->level--);
24523 return NULL;
24524 }
24525 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24526 PyMem_Free(_children);
24527 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24528 D(p->level--);
24529 return _seq;
24530}
24531
24532// _gather_59: key_value_pattern _loop0_60
24533static asdl_seq *
24534_gather_59_rule(Parser *p)
24535{
24536 D(p->level++);
24537 if (p->error_indicator) {
24538 D(p->level--);
24539 return NULL;
24540 }
24541 asdl_seq * _res = NULL;
24542 int _mark = p->mark;
24543 { // key_value_pattern _loop0_60
24544 if (p->error_indicator) {
24545 D(p->level--);
24546 return NULL;
24547 }
24548 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 +100024549 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024550 asdl_seq * seq;
24551 if (
24552 (elem = key_value_pattern_rule(p)) // key_value_pattern
24553 &&
24554 (seq = _loop0_60_rule(p)) // _loop0_60
24555 )
24556 {
24557 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24558 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24559 goto done;
24560 }
24561 p->mark = _mark;
24562 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24564 }
24565 _res = NULL;
24566 done:
24567 D(p->level--);
24568 return _res;
24569}
24570
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024571// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024572static void *
24573_tmp_61_rule(Parser *p)
24574{
24575 D(p->level++);
24576 if (p->error_indicator) {
24577 D(p->level--);
24578 return NULL;
24579 }
24580 void * _res = NULL;
24581 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024582 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024583 if (p->error_indicator) {
24584 D(p->level--);
24585 return NULL;
24586 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024587 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24588 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024589 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024590 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024591 )
24592 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024593 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24594 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024595 goto done;
24596 }
24597 p->mark = _mark;
24598 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024600 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024601 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024602 if (p->error_indicator) {
24603 D(p->level--);
24604 return NULL;
24605 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024606 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24607 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024608 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024609 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024610 )
24611 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024612 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24613 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024614 goto done;
24615 }
24616 p->mark = _mark;
24617 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024619 }
24620 _res = NULL;
24621 done:
24622 D(p->level--);
24623 return _res;
24624}
24625
24626// _loop0_63: ',' pattern
24627static asdl_seq *
24628_loop0_63_rule(Parser *p)
24629{
24630 D(p->level++);
24631 if (p->error_indicator) {
24632 D(p->level--);
24633 return NULL;
24634 }
24635 void *_res = NULL;
24636 int _mark = p->mark;
24637 int _start_mark = p->mark;
24638 void **_children = PyMem_Malloc(sizeof(void *));
24639 if (!_children) {
24640 p->error_indicator = 1;
24641 PyErr_NoMemory();
24642 D(p->level--);
24643 return NULL;
24644 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024645 Py_ssize_t _children_capacity = 1;
24646 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024647 { // ',' pattern
24648 if (p->error_indicator) {
24649 D(p->level--);
24650 return NULL;
24651 }
24652 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24653 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024654 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024655 while (
24656 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24657 &&
24658 (elem = pattern_rule(p)) // pattern
24659 )
24660 {
24661 _res = elem;
24662 if (_res == NULL && PyErr_Occurred()) {
24663 p->error_indicator = 1;
24664 PyMem_Free(_children);
24665 D(p->level--);
24666 return NULL;
24667 }
24668 if (_n == _children_capacity) {
24669 _children_capacity *= 2;
24670 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24671 if (!_new_children) {
24672 p->error_indicator = 1;
24673 PyErr_NoMemory();
24674 D(p->level--);
24675 return NULL;
24676 }
24677 _children = _new_children;
24678 }
24679 _children[_n++] = _res;
24680 _mark = p->mark;
24681 }
24682 p->mark = _mark;
24683 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24685 }
24686 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24687 if (!_seq) {
24688 PyMem_Free(_children);
24689 p->error_indicator = 1;
24690 PyErr_NoMemory();
24691 D(p->level--);
24692 return NULL;
24693 }
24694 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24695 PyMem_Free(_children);
24696 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24697 D(p->level--);
24698 return _seq;
24699}
24700
24701// _gather_62: pattern _loop0_63
24702static asdl_seq *
24703_gather_62_rule(Parser *p)
24704{
24705 D(p->level++);
24706 if (p->error_indicator) {
24707 D(p->level--);
24708 return NULL;
24709 }
24710 asdl_seq * _res = NULL;
24711 int _mark = p->mark;
24712 { // pattern _loop0_63
24713 if (p->error_indicator) {
24714 D(p->level--);
24715 return NULL;
24716 }
24717 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 +100024718 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024719 asdl_seq * seq;
24720 if (
24721 (elem = pattern_rule(p)) // pattern
24722 &&
24723 (seq = _loop0_63_rule(p)) // _loop0_63
24724 )
24725 {
24726 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24727 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24728 goto done;
24729 }
24730 p->mark = _mark;
24731 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24733 }
24734 _res = NULL;
24735 done:
24736 D(p->level--);
24737 return _res;
24738}
24739
24740// _loop0_65: ',' keyword_pattern
24741static asdl_seq *
24742_loop0_65_rule(Parser *p)
24743{
24744 D(p->level++);
24745 if (p->error_indicator) {
24746 D(p->level--);
24747 return NULL;
24748 }
24749 void *_res = NULL;
24750 int _mark = p->mark;
24751 int _start_mark = p->mark;
24752 void **_children = PyMem_Malloc(sizeof(void *));
24753 if (!_children) {
24754 p->error_indicator = 1;
24755 PyErr_NoMemory();
24756 D(p->level--);
24757 return NULL;
24758 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024759 Py_ssize_t _children_capacity = 1;
24760 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024761 { // ',' keyword_pattern
24762 if (p->error_indicator) {
24763 D(p->level--);
24764 return NULL;
24765 }
24766 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24767 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024768 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024769 while (
24770 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24771 &&
24772 (elem = keyword_pattern_rule(p)) // keyword_pattern
24773 )
24774 {
24775 _res = elem;
24776 if (_res == NULL && PyErr_Occurred()) {
24777 p->error_indicator = 1;
24778 PyMem_Free(_children);
24779 D(p->level--);
24780 return NULL;
24781 }
24782 if (_n == _children_capacity) {
24783 _children_capacity *= 2;
24784 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24785 if (!_new_children) {
24786 p->error_indicator = 1;
24787 PyErr_NoMemory();
24788 D(p->level--);
24789 return NULL;
24790 }
24791 _children = _new_children;
24792 }
24793 _children[_n++] = _res;
24794 _mark = p->mark;
24795 }
24796 p->mark = _mark;
24797 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24799 }
24800 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24801 if (!_seq) {
24802 PyMem_Free(_children);
24803 p->error_indicator = 1;
24804 PyErr_NoMemory();
24805 D(p->level--);
24806 return NULL;
24807 }
24808 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24809 PyMem_Free(_children);
24810 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24811 D(p->level--);
24812 return _seq;
24813}
24814
24815// _gather_64: keyword_pattern _loop0_65
24816static asdl_seq *
24817_gather_64_rule(Parser *p)
24818{
24819 D(p->level++);
24820 if (p->error_indicator) {
24821 D(p->level--);
24822 return NULL;
24823 }
24824 asdl_seq * _res = NULL;
24825 int _mark = p->mark;
24826 { // keyword_pattern _loop0_65
24827 if (p->error_indicator) {
24828 D(p->level--);
24829 return NULL;
24830 }
24831 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 +100024832 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024833 asdl_seq * seq;
24834 if (
24835 (elem = keyword_pattern_rule(p)) // keyword_pattern
24836 &&
24837 (seq = _loop0_65_rule(p)) // _loop0_65
24838 )
24839 {
24840 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24841 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24842 goto done;
24843 }
24844 p->mark = _mark;
24845 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
24846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
24847 }
24848 _res = NULL;
24849 done:
24850 D(p->level--);
24851 return _res;
24852}
24853
24854// _tmp_66: 'from' expression
24855static void *
24856_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024857{
24858 D(p->level++);
24859 if (p->error_indicator) {
24860 D(p->level--);
24861 return NULL;
24862 }
24863 void * _res = NULL;
24864 int _mark = p->mark;
24865 { // 'from' expression
24866 if (p->error_indicator) {
24867 D(p->level--);
24868 return NULL;
24869 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024870 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024871 Token * _keyword;
24872 expr_ty z;
24873 if (
24874 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
24875 &&
24876 (z = expression_rule(p)) // expression
24877 )
24878 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024879 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 +010024880 _res = z;
24881 if (_res == NULL && PyErr_Occurred()) {
24882 p->error_indicator = 1;
24883 D(p->level--);
24884 return NULL;
24885 }
24886 goto done;
24887 }
24888 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024889 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024891 }
24892 _res = NULL;
24893 done:
24894 D(p->level--);
24895 return _res;
24896}
24897
Brandt Bucher145bf262021-02-26 14:51:55 -080024898// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024899static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024900_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024901{
24902 D(p->level++);
24903 if (p->error_indicator) {
24904 D(p->level--);
24905 return NULL;
24906 }
24907 void * _res = NULL;
24908 int _mark = p->mark;
24909 { // '->' expression
24910 if (p->error_indicator) {
24911 D(p->level--);
24912 return NULL;
24913 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024914 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024915 Token * _literal;
24916 expr_ty z;
24917 if (
24918 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24919 &&
24920 (z = expression_rule(p)) // expression
24921 )
24922 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024923 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024924 _res = z;
24925 if (_res == NULL && PyErr_Occurred()) {
24926 p->error_indicator = 1;
24927 D(p->level--);
24928 return NULL;
24929 }
24930 goto done;
24931 }
24932 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024933 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24935 }
24936 _res = NULL;
24937 done:
24938 D(p->level--);
24939 return _res;
24940}
24941
Brandt Bucher145bf262021-02-26 14:51:55 -080024942// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024943static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024944_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024945{
24946 D(p->level++);
24947 if (p->error_indicator) {
24948 D(p->level--);
24949 return NULL;
24950 }
24951 void * _res = NULL;
24952 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024953 { // '->' expression
24954 if (p->error_indicator) {
24955 D(p->level--);
24956 return NULL;
24957 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024958 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024959 Token * _literal;
24960 expr_ty z;
24961 if (
24962 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24963 &&
24964 (z = expression_rule(p)) // expression
24965 )
24966 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024967 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024968 _res = z;
24969 if (_res == NULL && PyErr_Occurred()) {
24970 p->error_indicator = 1;
24971 D(p->level--);
24972 return NULL;
24973 }
24974 goto done;
24975 }
24976 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024977 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24979 }
24980 _res = NULL;
24981 done:
24982 D(p->level--);
24983 return _res;
24984}
24985
Brandt Bucher145bf262021-02-26 14:51:55 -080024986// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024987static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024988_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024989{
24990 D(p->level++);
24991 if (p->error_indicator) {
24992 D(p->level--);
24993 return NULL;
24994 }
24995 void * _res = NULL;
24996 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024997 { // NEWLINE INDENT
24998 if (p->error_indicator) {
24999 D(p->level--);
25000 return NULL;
25001 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025002 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025003 Token * indent_var;
25004 Token * newline_var;
25005 if (
25006 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25007 &&
25008 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
25009 )
25010 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025011 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 +010025012 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
25013 goto done;
25014 }
25015 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025016 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
25018 }
25019 _res = NULL;
25020 done:
25021 D(p->level--);
25022 return _res;
25023}
25024
Brandt Bucher145bf262021-02-26 14:51:55 -080025025// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025026static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025027_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025028{
25029 D(p->level++);
25030 if (p->error_indicator) {
25031 D(p->level--);
25032 return NULL;
25033 }
25034 void *_res = NULL;
25035 int _mark = p->mark;
25036 int _start_mark = p->mark;
25037 void **_children = PyMem_Malloc(sizeof(void *));
25038 if (!_children) {
25039 p->error_indicator = 1;
25040 PyErr_NoMemory();
25041 D(p->level--);
25042 return NULL;
25043 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025044 Py_ssize_t _children_capacity = 1;
25045 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025046 { // param_no_default
25047 if (p->error_indicator) {
25048 D(p->level--);
25049 return NULL;
25050 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025051 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 +010025052 arg_ty param_no_default_var;
25053 while (
25054 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25055 )
25056 {
25057 _res = param_no_default_var;
25058 if (_n == _children_capacity) {
25059 _children_capacity *= 2;
25060 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25061 if (!_new_children) {
25062 p->error_indicator = 1;
25063 PyErr_NoMemory();
25064 D(p->level--);
25065 return NULL;
25066 }
25067 _children = _new_children;
25068 }
25069 _children[_n++] = _res;
25070 _mark = p->mark;
25071 }
25072 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025073 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025075 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025076 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025077 if (!_seq) {
25078 PyMem_Free(_children);
25079 p->error_indicator = 1;
25080 PyErr_NoMemory();
25081 D(p->level--);
25082 return NULL;
25083 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025084 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025085 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025086 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025087 D(p->level--);
25088 return _seq;
25089}
25090
Brandt Bucher145bf262021-02-26 14:51:55 -080025091// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025092static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025093_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025094{
25095 D(p->level++);
25096 if (p->error_indicator) {
25097 D(p->level--);
25098 return NULL;
25099 }
25100 void *_res = NULL;
25101 int _mark = p->mark;
25102 int _start_mark = p->mark;
25103 void **_children = PyMem_Malloc(sizeof(void *));
25104 if (!_children) {
25105 p->error_indicator = 1;
25106 PyErr_NoMemory();
25107 D(p->level--);
25108 return NULL;
25109 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025110 Py_ssize_t _children_capacity = 1;
25111 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025112 { // param_with_default
25113 if (p->error_indicator) {
25114 D(p->level--);
25115 return NULL;
25116 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025117 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 +010025118 NameDefaultPair* param_with_default_var;
25119 while (
25120 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25121 )
25122 {
25123 _res = param_with_default_var;
25124 if (_n == _children_capacity) {
25125 _children_capacity *= 2;
25126 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25127 if (!_new_children) {
25128 p->error_indicator = 1;
25129 PyErr_NoMemory();
25130 D(p->level--);
25131 return NULL;
25132 }
25133 _children = _new_children;
25134 }
25135 _children[_n++] = _res;
25136 _mark = p->mark;
25137 }
25138 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025139 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25141 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025142 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025143 if (!_seq) {
25144 PyMem_Free(_children);
25145 p->error_indicator = 1;
25146 PyErr_NoMemory();
25147 D(p->level--);
25148 return NULL;
25149 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025150 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025151 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025152 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025153 D(p->level--);
25154 return _seq;
25155}
25156
Brandt Bucher145bf262021-02-26 14:51:55 -080025157// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025158static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025159_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025160{
25161 D(p->level++);
25162 if (p->error_indicator) {
25163 D(p->level--);
25164 return NULL;
25165 }
25166 void *_res = NULL;
25167 int _mark = p->mark;
25168 int _start_mark = p->mark;
25169 void **_children = PyMem_Malloc(sizeof(void *));
25170 if (!_children) {
25171 p->error_indicator = 1;
25172 PyErr_NoMemory();
25173 D(p->level--);
25174 return NULL;
25175 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025176 Py_ssize_t _children_capacity = 1;
25177 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025178 { // param_with_default
25179 if (p->error_indicator) {
25180 D(p->level--);
25181 return NULL;
25182 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025183 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 +030025184 NameDefaultPair* param_with_default_var;
25185 while (
25186 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25187 )
25188 {
25189 _res = param_with_default_var;
25190 if (_n == _children_capacity) {
25191 _children_capacity *= 2;
25192 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25193 if (!_new_children) {
25194 p->error_indicator = 1;
25195 PyErr_NoMemory();
25196 D(p->level--);
25197 return NULL;
25198 }
25199 _children = _new_children;
25200 }
25201 _children[_n++] = _res;
25202 _mark = p->mark;
25203 }
25204 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025205 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25207 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025208 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025209 if (!_seq) {
25210 PyMem_Free(_children);
25211 p->error_indicator = 1;
25212 PyErr_NoMemory();
25213 D(p->level--);
25214 return NULL;
25215 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025216 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025217 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025218 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025219 D(p->level--);
25220 return _seq;
25221}
25222
Brandt Bucher145bf262021-02-26 14:51:55 -080025223// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025224static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025225_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025226{
25227 D(p->level++);
25228 if (p->error_indicator) {
25229 D(p->level--);
25230 return NULL;
25231 }
25232 void *_res = NULL;
25233 int _mark = p->mark;
25234 int _start_mark = p->mark;
25235 void **_children = PyMem_Malloc(sizeof(void *));
25236 if (!_children) {
25237 p->error_indicator = 1;
25238 PyErr_NoMemory();
25239 D(p->level--);
25240 return NULL;
25241 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025242 Py_ssize_t _children_capacity = 1;
25243 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025244 { // param_no_default
25245 if (p->error_indicator) {
25246 D(p->level--);
25247 return NULL;
25248 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025249 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 +010025250 arg_ty param_no_default_var;
25251 while (
25252 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25253 )
25254 {
25255 _res = param_no_default_var;
25256 if (_n == _children_capacity) {
25257 _children_capacity *= 2;
25258 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25259 if (!_new_children) {
25260 p->error_indicator = 1;
25261 PyErr_NoMemory();
25262 D(p->level--);
25263 return NULL;
25264 }
25265 _children = _new_children;
25266 }
25267 _children[_n++] = _res;
25268 _mark = p->mark;
25269 }
25270 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025271 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25273 }
25274 if (_n == 0 || p->error_indicator) {
25275 PyMem_Free(_children);
25276 D(p->level--);
25277 return NULL;
25278 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025279 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025280 if (!_seq) {
25281 PyMem_Free(_children);
25282 p->error_indicator = 1;
25283 PyErr_NoMemory();
25284 D(p->level--);
25285 return NULL;
25286 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025287 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025288 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025289 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025290 D(p->level--);
25291 return _seq;
25292}
25293
Brandt Bucher145bf262021-02-26 14:51:55 -080025294// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025295static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025296_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025297{
25298 D(p->level++);
25299 if (p->error_indicator) {
25300 D(p->level--);
25301 return NULL;
25302 }
25303 void *_res = NULL;
25304 int _mark = p->mark;
25305 int _start_mark = p->mark;
25306 void **_children = PyMem_Malloc(sizeof(void *));
25307 if (!_children) {
25308 p->error_indicator = 1;
25309 PyErr_NoMemory();
25310 D(p->level--);
25311 return NULL;
25312 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025313 Py_ssize_t _children_capacity = 1;
25314 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025315 { // param_with_default
25316 if (p->error_indicator) {
25317 D(p->level--);
25318 return NULL;
25319 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025320 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 +010025321 NameDefaultPair* param_with_default_var;
25322 while (
25323 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25324 )
25325 {
25326 _res = param_with_default_var;
25327 if (_n == _children_capacity) {
25328 _children_capacity *= 2;
25329 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25330 if (!_new_children) {
25331 p->error_indicator = 1;
25332 PyErr_NoMemory();
25333 D(p->level--);
25334 return NULL;
25335 }
25336 _children = _new_children;
25337 }
25338 _children[_n++] = _res;
25339 _mark = p->mark;
25340 }
25341 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025342 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25344 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025345 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025346 if (!_seq) {
25347 PyMem_Free(_children);
25348 p->error_indicator = 1;
25349 PyErr_NoMemory();
25350 D(p->level--);
25351 return NULL;
25352 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025353 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025354 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025355 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025356 D(p->level--);
25357 return _seq;
25358}
25359
Brandt Bucher145bf262021-02-26 14:51:55 -080025360// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025361static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025362_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025363{
25364 D(p->level++);
25365 if (p->error_indicator) {
25366 D(p->level--);
25367 return NULL;
25368 }
25369 void *_res = NULL;
25370 int _mark = p->mark;
25371 int _start_mark = p->mark;
25372 void **_children = PyMem_Malloc(sizeof(void *));
25373 if (!_children) {
25374 p->error_indicator = 1;
25375 PyErr_NoMemory();
25376 D(p->level--);
25377 return NULL;
25378 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025379 Py_ssize_t _children_capacity = 1;
25380 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025381 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025382 if (p->error_indicator) {
25383 D(p->level--);
25384 return NULL;
25385 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025386 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 +030025387 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025388 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025389 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025390 )
25391 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025392 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025393 if (_n == _children_capacity) {
25394 _children_capacity *= 2;
25395 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25396 if (!_new_children) {
25397 p->error_indicator = 1;
25398 PyErr_NoMemory();
25399 D(p->level--);
25400 return NULL;
25401 }
25402 _children = _new_children;
25403 }
25404 _children[_n++] = _res;
25405 _mark = p->mark;
25406 }
25407 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025408 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025410 }
25411 if (_n == 0 || p->error_indicator) {
25412 PyMem_Free(_children);
25413 D(p->level--);
25414 return NULL;
25415 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025416 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025417 if (!_seq) {
25418 PyMem_Free(_children);
25419 p->error_indicator = 1;
25420 PyErr_NoMemory();
25421 D(p->level--);
25422 return NULL;
25423 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025424 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025425 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025426 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025427 D(p->level--);
25428 return _seq;
25429}
25430
Brandt Bucher145bf262021-02-26 14:51:55 -080025431// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025432static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025433_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025434{
25435 D(p->level++);
25436 if (p->error_indicator) {
25437 D(p->level--);
25438 return NULL;
25439 }
25440 void *_res = NULL;
25441 int _mark = p->mark;
25442 int _start_mark = p->mark;
25443 void **_children = PyMem_Malloc(sizeof(void *));
25444 if (!_children) {
25445 p->error_indicator = 1;
25446 PyErr_NoMemory();
25447 D(p->level--);
25448 return NULL;
25449 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025450 Py_ssize_t _children_capacity = 1;
25451 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025452 { // param_no_default
25453 if (p->error_indicator) {
25454 D(p->level--);
25455 return NULL;
25456 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025457 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 +010025458 arg_ty param_no_default_var;
25459 while (
25460 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25461 )
25462 {
25463 _res = param_no_default_var;
25464 if (_n == _children_capacity) {
25465 _children_capacity *= 2;
25466 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25467 if (!_new_children) {
25468 p->error_indicator = 1;
25469 PyErr_NoMemory();
25470 D(p->level--);
25471 return NULL;
25472 }
25473 _children = _new_children;
25474 }
25475 _children[_n++] = _res;
25476 _mark = p->mark;
25477 }
25478 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025479 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25481 }
25482 if (_n == 0 || p->error_indicator) {
25483 PyMem_Free(_children);
25484 D(p->level--);
25485 return NULL;
25486 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025487 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025488 if (!_seq) {
25489 PyMem_Free(_children);
25490 p->error_indicator = 1;
25491 PyErr_NoMemory();
25492 D(p->level--);
25493 return NULL;
25494 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025495 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025496 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025497 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025498 D(p->level--);
25499 return _seq;
25500}
25501
Brandt Bucher145bf262021-02-26 14:51:55 -080025502// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025503static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025504_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025505{
25506 D(p->level++);
25507 if (p->error_indicator) {
25508 D(p->level--);
25509 return NULL;
25510 }
25511 void *_res = NULL;
25512 int _mark = p->mark;
25513 int _start_mark = p->mark;
25514 void **_children = PyMem_Malloc(sizeof(void *));
25515 if (!_children) {
25516 p->error_indicator = 1;
25517 PyErr_NoMemory();
25518 D(p->level--);
25519 return NULL;
25520 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025521 Py_ssize_t _children_capacity = 1;
25522 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025523 { // param_no_default
25524 if (p->error_indicator) {
25525 D(p->level--);
25526 return NULL;
25527 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025528 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 +010025529 arg_ty param_no_default_var;
25530 while (
25531 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25532 )
25533 {
25534 _res = param_no_default_var;
25535 if (_n == _children_capacity) {
25536 _children_capacity *= 2;
25537 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25538 if (!_new_children) {
25539 p->error_indicator = 1;
25540 PyErr_NoMemory();
25541 D(p->level--);
25542 return NULL;
25543 }
25544 _children = _new_children;
25545 }
25546 _children[_n++] = _res;
25547 _mark = p->mark;
25548 }
25549 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025550 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25552 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025553 if (_n == 0 || p->error_indicator) {
25554 PyMem_Free(_children);
25555 D(p->level--);
25556 return NULL;
25557 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025558 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025559 if (!_seq) {
25560 PyMem_Free(_children);
25561 p->error_indicator = 1;
25562 PyErr_NoMemory();
25563 D(p->level--);
25564 return NULL;
25565 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025566 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025567 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025568 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025569 D(p->level--);
25570 return _seq;
25571}
25572
Brandt Bucher145bf262021-02-26 14:51:55 -080025573// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025574static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025575_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025576{
25577 D(p->level++);
25578 if (p->error_indicator) {
25579 D(p->level--);
25580 return NULL;
25581 }
25582 void *_res = NULL;
25583 int _mark = p->mark;
25584 int _start_mark = p->mark;
25585 void **_children = PyMem_Malloc(sizeof(void *));
25586 if (!_children) {
25587 p->error_indicator = 1;
25588 PyErr_NoMemory();
25589 D(p->level--);
25590 return NULL;
25591 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025592 Py_ssize_t _children_capacity = 1;
25593 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025594 { // param_no_default
25595 if (p->error_indicator) {
25596 D(p->level--);
25597 return NULL;
25598 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025599 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 +010025600 arg_ty param_no_default_var;
25601 while (
25602 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25603 )
25604 {
25605 _res = param_no_default_var;
25606 if (_n == _children_capacity) {
25607 _children_capacity *= 2;
25608 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25609 if (!_new_children) {
25610 p->error_indicator = 1;
25611 PyErr_NoMemory();
25612 D(p->level--);
25613 return NULL;
25614 }
25615 _children = _new_children;
25616 }
25617 _children[_n++] = _res;
25618 _mark = p->mark;
25619 }
25620 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025621 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25623 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025624 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025625 if (!_seq) {
25626 PyMem_Free(_children);
25627 p->error_indicator = 1;
25628 PyErr_NoMemory();
25629 D(p->level--);
25630 return NULL;
25631 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025632 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025633 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025634 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025635 D(p->level--);
25636 return _seq;
25637}
25638
Brandt Bucher145bf262021-02-26 14:51:55 -080025639// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025640static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025641_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025642{
25643 D(p->level++);
25644 if (p->error_indicator) {
25645 D(p->level--);
25646 return NULL;
25647 }
25648 void *_res = NULL;
25649 int _mark = p->mark;
25650 int _start_mark = p->mark;
25651 void **_children = PyMem_Malloc(sizeof(void *));
25652 if (!_children) {
25653 p->error_indicator = 1;
25654 PyErr_NoMemory();
25655 D(p->level--);
25656 return NULL;
25657 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025658 Py_ssize_t _children_capacity = 1;
25659 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025660 { // param_with_default
25661 if (p->error_indicator) {
25662 D(p->level--);
25663 return NULL;
25664 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025665 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 +010025666 NameDefaultPair* param_with_default_var;
25667 while (
25668 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25669 )
25670 {
25671 _res = param_with_default_var;
25672 if (_n == _children_capacity) {
25673 _children_capacity *= 2;
25674 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25675 if (!_new_children) {
25676 p->error_indicator = 1;
25677 PyErr_NoMemory();
25678 D(p->level--);
25679 return NULL;
25680 }
25681 _children = _new_children;
25682 }
25683 _children[_n++] = _res;
25684 _mark = p->mark;
25685 }
25686 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025687 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25689 }
25690 if (_n == 0 || p->error_indicator) {
25691 PyMem_Free(_children);
25692 D(p->level--);
25693 return NULL;
25694 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025695 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025696 if (!_seq) {
25697 PyMem_Free(_children);
25698 p->error_indicator = 1;
25699 PyErr_NoMemory();
25700 D(p->level--);
25701 return NULL;
25702 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025703 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025704 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025705 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025706 D(p->level--);
25707 return _seq;
25708}
25709
Brandt Bucher145bf262021-02-26 14:51:55 -080025710// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025711static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025712_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025713{
25714 D(p->level++);
25715 if (p->error_indicator) {
25716 D(p->level--);
25717 return NULL;
25718 }
25719 void *_res = NULL;
25720 int _mark = p->mark;
25721 int _start_mark = p->mark;
25722 void **_children = PyMem_Malloc(sizeof(void *));
25723 if (!_children) {
25724 p->error_indicator = 1;
25725 PyErr_NoMemory();
25726 D(p->level--);
25727 return NULL;
25728 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025729 Py_ssize_t _children_capacity = 1;
25730 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025731 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025732 if (p->error_indicator) {
25733 D(p->level--);
25734 return NULL;
25735 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025736 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 +030025737 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025738 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025739 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025740 )
25741 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025742 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025743 if (_n == _children_capacity) {
25744 _children_capacity *= 2;
25745 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25746 if (!_new_children) {
25747 p->error_indicator = 1;
25748 PyErr_NoMemory();
25749 D(p->level--);
25750 return NULL;
25751 }
25752 _children = _new_children;
25753 }
25754 _children[_n++] = _res;
25755 _mark = p->mark;
25756 }
25757 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025758 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025760 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025761 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025762 if (!_seq) {
25763 PyMem_Free(_children);
25764 p->error_indicator = 1;
25765 PyErr_NoMemory();
25766 D(p->level--);
25767 return NULL;
25768 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025769 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025770 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025771 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025772 D(p->level--);
25773 return _seq;
25774}
25775
Brandt Bucher145bf262021-02-26 14:51:55 -080025776// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025777static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025778_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025779{
25780 D(p->level++);
25781 if (p->error_indicator) {
25782 D(p->level--);
25783 return NULL;
25784 }
25785 void *_res = NULL;
25786 int _mark = p->mark;
25787 int _start_mark = p->mark;
25788 void **_children = PyMem_Malloc(sizeof(void *));
25789 if (!_children) {
25790 p->error_indicator = 1;
25791 PyErr_NoMemory();
25792 D(p->level--);
25793 return NULL;
25794 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025795 Py_ssize_t _children_capacity = 1;
25796 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025797 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025798 if (p->error_indicator) {
25799 D(p->level--);
25800 return NULL;
25801 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025802 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 +030025803 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025804 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025805 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025806 )
25807 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025808 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025809 if (_n == _children_capacity) {
25810 _children_capacity *= 2;
25811 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25812 if (!_new_children) {
25813 p->error_indicator = 1;
25814 PyErr_NoMemory();
25815 D(p->level--);
25816 return NULL;
25817 }
25818 _children = _new_children;
25819 }
25820 _children[_n++] = _res;
25821 _mark = p->mark;
25822 }
25823 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025824 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025826 }
25827 if (_n == 0 || p->error_indicator) {
25828 PyMem_Free(_children);
25829 D(p->level--);
25830 return NULL;
25831 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025832 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025833 if (!_seq) {
25834 PyMem_Free(_children);
25835 p->error_indicator = 1;
25836 PyErr_NoMemory();
25837 D(p->level--);
25838 return NULL;
25839 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025840 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025841 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025842 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025843 D(p->level--);
25844 return _seq;
25845}
25846
Brandt Bucher145bf262021-02-26 14:51:55 -080025847// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025848static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025849_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025850{
25851 D(p->level++);
25852 if (p->error_indicator) {
25853 D(p->level--);
25854 return NULL;
25855 }
25856 void *_res = NULL;
25857 int _mark = p->mark;
25858 int _start_mark = p->mark;
25859 void **_children = PyMem_Malloc(sizeof(void *));
25860 if (!_children) {
25861 p->error_indicator = 1;
25862 PyErr_NoMemory();
25863 D(p->level--);
25864 return NULL;
25865 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025866 Py_ssize_t _children_capacity = 1;
25867 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025868 { // param_maybe_default
25869 if (p->error_indicator) {
25870 D(p->level--);
25871 return NULL;
25872 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025873 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 +030025874 NameDefaultPair* param_maybe_default_var;
25875 while (
25876 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25877 )
25878 {
25879 _res = param_maybe_default_var;
25880 if (_n == _children_capacity) {
25881 _children_capacity *= 2;
25882 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25883 if (!_new_children) {
25884 p->error_indicator = 1;
25885 PyErr_NoMemory();
25886 D(p->level--);
25887 return NULL;
25888 }
25889 _children = _new_children;
25890 }
25891 _children[_n++] = _res;
25892 _mark = p->mark;
25893 }
25894 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025895 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25897 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025898 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025899 if (!_seq) {
25900 PyMem_Free(_children);
25901 p->error_indicator = 1;
25902 PyErr_NoMemory();
25903 D(p->level--);
25904 return NULL;
25905 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025906 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025907 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025908 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025909 D(p->level--);
25910 return _seq;
25911}
25912
Brandt Bucher145bf262021-02-26 14:51:55 -080025913// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025914static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025915_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025916{
25917 D(p->level++);
25918 if (p->error_indicator) {
25919 D(p->level--);
25920 return NULL;
25921 }
25922 void *_res = NULL;
25923 int _mark = p->mark;
25924 int _start_mark = p->mark;
25925 void **_children = PyMem_Malloc(sizeof(void *));
25926 if (!_children) {
25927 p->error_indicator = 1;
25928 PyErr_NoMemory();
25929 D(p->level--);
25930 return NULL;
25931 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025932 Py_ssize_t _children_capacity = 1;
25933 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025934 { // param_maybe_default
25935 if (p->error_indicator) {
25936 D(p->level--);
25937 return NULL;
25938 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025939 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 +030025940 NameDefaultPair* param_maybe_default_var;
25941 while (
25942 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25943 )
25944 {
25945 _res = param_maybe_default_var;
25946 if (_n == _children_capacity) {
25947 _children_capacity *= 2;
25948 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25949 if (!_new_children) {
25950 p->error_indicator = 1;
25951 PyErr_NoMemory();
25952 D(p->level--);
25953 return NULL;
25954 }
25955 _children = _new_children;
25956 }
25957 _children[_n++] = _res;
25958 _mark = p->mark;
25959 }
25960 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025961 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25963 }
25964 if (_n == 0 || p->error_indicator) {
25965 PyMem_Free(_children);
25966 D(p->level--);
25967 return NULL;
25968 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025969 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025970 if (!_seq) {
25971 PyMem_Free(_children);
25972 p->error_indicator = 1;
25973 PyErr_NoMemory();
25974 D(p->level--);
25975 return NULL;
25976 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025977 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025978 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025979 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025980 D(p->level--);
25981 return _seq;
25982}
25983
Brandt Bucher145bf262021-02-26 14:51:55 -080025984// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025985static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025986_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025987{
25988 D(p->level++);
25989 if (p->error_indicator) {
25990 D(p->level--);
25991 return NULL;
25992 }
25993 void *_res = NULL;
25994 int _mark = p->mark;
25995 int _start_mark = p->mark;
25996 void **_children = PyMem_Malloc(sizeof(void *));
25997 if (!_children) {
25998 p->error_indicator = 1;
25999 PyErr_NoMemory();
26000 D(p->level--);
26001 return NULL;
26002 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026003 Py_ssize_t _children_capacity = 1;
26004 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026005 { // ('@' named_expression NEWLINE)
26006 if (p->error_indicator) {
26007 D(p->level--);
26008 return NULL;
26009 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026010 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010026011 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026012 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010026013 (_tmp_180_var = _tmp_180_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026014 )
26015 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010026016 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026017 if (_n == _children_capacity) {
26018 _children_capacity *= 2;
26019 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26020 if (!_new_children) {
26021 p->error_indicator = 1;
26022 PyErr_NoMemory();
26023 D(p->level--);
26024 return NULL;
26025 }
26026 _children = _new_children;
26027 }
26028 _children[_n++] = _res;
26029 _mark = p->mark;
26030 }
26031 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026032 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
26034 }
26035 if (_n == 0 || p->error_indicator) {
26036 PyMem_Free(_children);
26037 D(p->level--);
26038 return NULL;
26039 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026040 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026041 if (!_seq) {
26042 PyMem_Free(_children);
26043 p->error_indicator = 1;
26044 PyErr_NoMemory();
26045 D(p->level--);
26046 return NULL;
26047 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026048 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026049 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026050 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026051 D(p->level--);
26052 return _seq;
26053}
26054
Brandt Bucher145bf262021-02-26 14:51:55 -080026055// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026056static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026057_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026058{
26059 D(p->level++);
26060 if (p->error_indicator) {
26061 D(p->level--);
26062 return NULL;
26063 }
26064 void * _res = NULL;
26065 int _mark = p->mark;
26066 { // '(' arguments? ')'
26067 if (p->error_indicator) {
26068 D(p->level--);
26069 return NULL;
26070 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026071 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026072 Token * _literal;
26073 Token * _literal_1;
26074 void *z;
26075 if (
26076 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26077 &&
26078 (z = arguments_rule(p), 1) // arguments?
26079 &&
26080 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26081 )
26082 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026083 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026084 _res = z;
26085 if (_res == NULL && PyErr_Occurred()) {
26086 p->error_indicator = 1;
26087 D(p->level--);
26088 return NULL;
26089 }
26090 goto done;
26091 }
26092 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026093 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26095 }
26096 _res = NULL;
26097 done:
26098 D(p->level--);
26099 return _res;
26100}
26101
Brandt Bucher145bf262021-02-26 14:51:55 -080026102// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026103static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026104_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026105{
26106 D(p->level++);
26107 if (p->error_indicator) {
26108 D(p->level--);
26109 return NULL;
26110 }
26111 void *_res = NULL;
26112 int _mark = p->mark;
26113 int _start_mark = p->mark;
26114 void **_children = PyMem_Malloc(sizeof(void *));
26115 if (!_children) {
26116 p->error_indicator = 1;
26117 PyErr_NoMemory();
26118 D(p->level--);
26119 return NULL;
26120 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026121 Py_ssize_t _children_capacity = 1;
26122 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026123 { // (',' star_expression)
26124 if (p->error_indicator) {
26125 D(p->level--);
26126 return NULL;
26127 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026128 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010026129 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026130 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010026131 (_tmp_181_var = _tmp_181_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026132 )
26133 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010026134 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026135 if (_n == _children_capacity) {
26136 _children_capacity *= 2;
26137 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26138 if (!_new_children) {
26139 p->error_indicator = 1;
26140 PyErr_NoMemory();
26141 D(p->level--);
26142 return NULL;
26143 }
26144 _children = _new_children;
26145 }
26146 _children[_n++] = _res;
26147 _mark = p->mark;
26148 }
26149 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026150 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26152 }
26153 if (_n == 0 || p->error_indicator) {
26154 PyMem_Free(_children);
26155 D(p->level--);
26156 return NULL;
26157 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026158 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026159 if (!_seq) {
26160 PyMem_Free(_children);
26161 p->error_indicator = 1;
26162 PyErr_NoMemory();
26163 D(p->level--);
26164 return NULL;
26165 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026166 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026167 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026168 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026169 D(p->level--);
26170 return _seq;
26171}
26172
Brandt Bucher145bf262021-02-26 14:51:55 -080026173// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026174static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026175_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026176{
26177 D(p->level++);
26178 if (p->error_indicator) {
26179 D(p->level--);
26180 return NULL;
26181 }
26182 void *_res = NULL;
26183 int _mark = p->mark;
26184 int _start_mark = p->mark;
26185 void **_children = PyMem_Malloc(sizeof(void *));
26186 if (!_children) {
26187 p->error_indicator = 1;
26188 PyErr_NoMemory();
26189 D(p->level--);
26190 return NULL;
26191 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026192 Py_ssize_t _children_capacity = 1;
26193 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026194 { // ',' star_named_expression
26195 if (p->error_indicator) {
26196 D(p->level--);
26197 return NULL;
26198 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026199 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 +010026200 Token * _literal;
26201 expr_ty elem;
26202 while (
26203 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26204 &&
26205 (elem = star_named_expression_rule(p)) // star_named_expression
26206 )
26207 {
26208 _res = elem;
26209 if (_res == NULL && PyErr_Occurred()) {
26210 p->error_indicator = 1;
26211 PyMem_Free(_children);
26212 D(p->level--);
26213 return NULL;
26214 }
26215 if (_n == _children_capacity) {
26216 _children_capacity *= 2;
26217 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26218 if (!_new_children) {
26219 p->error_indicator = 1;
26220 PyErr_NoMemory();
26221 D(p->level--);
26222 return NULL;
26223 }
26224 _children = _new_children;
26225 }
26226 _children[_n++] = _res;
26227 _mark = p->mark;
26228 }
26229 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026230 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26232 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026233 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026234 if (!_seq) {
26235 PyMem_Free(_children);
26236 p->error_indicator = 1;
26237 PyErr_NoMemory();
26238 D(p->level--);
26239 return NULL;
26240 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026241 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026242 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026243 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026244 D(p->level--);
26245 return _seq;
26246}
26247
Brandt Bucher145bf262021-02-26 14:51:55 -080026248// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026249static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026250_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026251{
26252 D(p->level++);
26253 if (p->error_indicator) {
26254 D(p->level--);
26255 return NULL;
26256 }
26257 asdl_seq * _res = NULL;
26258 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026259 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026260 if (p->error_indicator) {
26261 D(p->level--);
26262 return NULL;
26263 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026264 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 +010026265 expr_ty elem;
26266 asdl_seq * seq;
26267 if (
26268 (elem = star_named_expression_rule(p)) // star_named_expression
26269 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026270 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026271 )
26272 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026273 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 +010026274 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26275 goto done;
26276 }
26277 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026278 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026280 }
26281 _res = NULL;
26282 done:
26283 D(p->level--);
26284 return _res;
26285}
26286
Brandt Bucher145bf262021-02-26 14:51:55 -080026287// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026288static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026289_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026290{
26291 D(p->level++);
26292 if (p->error_indicator) {
26293 D(p->level--);
26294 return NULL;
26295 }
26296 void *_res = NULL;
26297 int _mark = p->mark;
26298 int _start_mark = p->mark;
26299 void **_children = PyMem_Malloc(sizeof(void *));
26300 if (!_children) {
26301 p->error_indicator = 1;
26302 PyErr_NoMemory();
26303 D(p->level--);
26304 return NULL;
26305 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026306 Py_ssize_t _children_capacity = 1;
26307 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026308 { // (',' expression)
26309 if (p->error_indicator) {
26310 D(p->level--);
26311 return NULL;
26312 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026313 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010026314 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026315 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010026316 (_tmp_182_var = _tmp_182_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026317 )
26318 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010026319 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026320 if (_n == _children_capacity) {
26321 _children_capacity *= 2;
26322 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26323 if (!_new_children) {
26324 p->error_indicator = 1;
26325 PyErr_NoMemory();
26326 D(p->level--);
26327 return NULL;
26328 }
26329 _children = _new_children;
26330 }
26331 _children[_n++] = _res;
26332 _mark = p->mark;
26333 }
26334 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026335 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26337 }
26338 if (_n == 0 || p->error_indicator) {
26339 PyMem_Free(_children);
26340 D(p->level--);
26341 return NULL;
26342 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026343 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026344 if (!_seq) {
26345 PyMem_Free(_children);
26346 p->error_indicator = 1;
26347 PyErr_NoMemory();
26348 D(p->level--);
26349 return NULL;
26350 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026351 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026352 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026353 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026354 D(p->level--);
26355 return _seq;
26356}
26357
Brandt Bucher145bf262021-02-26 14:51:55 -080026358// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026359static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026360_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026361{
26362 D(p->level++);
26363 if (p->error_indicator) {
26364 D(p->level--);
26365 return NULL;
26366 }
26367 void *_res = NULL;
26368 int _mark = p->mark;
26369 int _start_mark = p->mark;
26370 void **_children = PyMem_Malloc(sizeof(void *));
26371 if (!_children) {
26372 p->error_indicator = 1;
26373 PyErr_NoMemory();
26374 D(p->level--);
26375 return NULL;
26376 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026377 Py_ssize_t _children_capacity = 1;
26378 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026379 { // lambda_param_no_default
26380 if (p->error_indicator) {
26381 D(p->level--);
26382 return NULL;
26383 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026384 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 +010026385 arg_ty lambda_param_no_default_var;
26386 while (
26387 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26388 )
26389 {
26390 _res = lambda_param_no_default_var;
26391 if (_n == _children_capacity) {
26392 _children_capacity *= 2;
26393 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26394 if (!_new_children) {
26395 p->error_indicator = 1;
26396 PyErr_NoMemory();
26397 D(p->level--);
26398 return NULL;
26399 }
26400 _children = _new_children;
26401 }
26402 _children[_n++] = _res;
26403 _mark = p->mark;
26404 }
26405 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026406 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026409 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026410 if (!_seq) {
26411 PyMem_Free(_children);
26412 p->error_indicator = 1;
26413 PyErr_NoMemory();
26414 D(p->level--);
26415 return NULL;
26416 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026417 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026418 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026419 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026420 D(p->level--);
26421 return _seq;
26422}
26423
Brandt Bucher145bf262021-02-26 14:51:55 -080026424// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026425static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026426_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026427{
26428 D(p->level++);
26429 if (p->error_indicator) {
26430 D(p->level--);
26431 return NULL;
26432 }
26433 void *_res = NULL;
26434 int _mark = p->mark;
26435 int _start_mark = p->mark;
26436 void **_children = PyMem_Malloc(sizeof(void *));
26437 if (!_children) {
26438 p->error_indicator = 1;
26439 PyErr_NoMemory();
26440 D(p->level--);
26441 return NULL;
26442 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026443 Py_ssize_t _children_capacity = 1;
26444 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026445 { // lambda_param_with_default
26446 if (p->error_indicator) {
26447 D(p->level--);
26448 return NULL;
26449 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026450 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 +010026451 NameDefaultPair* lambda_param_with_default_var;
26452 while (
26453 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26454 )
26455 {
26456 _res = lambda_param_with_default_var;
26457 if (_n == _children_capacity) {
26458 _children_capacity *= 2;
26459 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26460 if (!_new_children) {
26461 p->error_indicator = 1;
26462 PyErr_NoMemory();
26463 D(p->level--);
26464 return NULL;
26465 }
26466 _children = _new_children;
26467 }
26468 _children[_n++] = _res;
26469 _mark = p->mark;
26470 }
26471 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026472 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26474 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026475 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026476 if (!_seq) {
26477 PyMem_Free(_children);
26478 p->error_indicator = 1;
26479 PyErr_NoMemory();
26480 D(p->level--);
26481 return NULL;
26482 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026483 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026484 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026485 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026486 D(p->level--);
26487 return _seq;
26488}
26489
Brandt Bucher145bf262021-02-26 14:51:55 -080026490// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026491static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026492_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026493{
26494 D(p->level++);
26495 if (p->error_indicator) {
26496 D(p->level--);
26497 return NULL;
26498 }
26499 void *_res = NULL;
26500 int _mark = p->mark;
26501 int _start_mark = p->mark;
26502 void **_children = PyMem_Malloc(sizeof(void *));
26503 if (!_children) {
26504 p->error_indicator = 1;
26505 PyErr_NoMemory();
26506 D(p->level--);
26507 return NULL;
26508 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026509 Py_ssize_t _children_capacity = 1;
26510 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026511 { // lambda_param_with_default
26512 if (p->error_indicator) {
26513 D(p->level--);
26514 return NULL;
26515 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026516 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 +000026517 NameDefaultPair* lambda_param_with_default_var;
26518 while (
26519 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26520 )
26521 {
26522 _res = lambda_param_with_default_var;
26523 if (_n == _children_capacity) {
26524 _children_capacity *= 2;
26525 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26526 if (!_new_children) {
26527 p->error_indicator = 1;
26528 PyErr_NoMemory();
26529 D(p->level--);
26530 return NULL;
26531 }
26532 _children = _new_children;
26533 }
26534 _children[_n++] = _res;
26535 _mark = p->mark;
26536 }
26537 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026538 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26540 }
26541 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26542 if (!_seq) {
26543 PyMem_Free(_children);
26544 p->error_indicator = 1;
26545 PyErr_NoMemory();
26546 D(p->level--);
26547 return NULL;
26548 }
26549 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26550 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026551 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026552 D(p->level--);
26553 return _seq;
26554}
26555
Brandt Bucher145bf262021-02-26 14:51:55 -080026556// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026557static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026558_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026559{
26560 D(p->level++);
26561 if (p->error_indicator) {
26562 D(p->level--);
26563 return NULL;
26564 }
26565 void *_res = NULL;
26566 int _mark = p->mark;
26567 int _start_mark = p->mark;
26568 void **_children = PyMem_Malloc(sizeof(void *));
26569 if (!_children) {
26570 p->error_indicator = 1;
26571 PyErr_NoMemory();
26572 D(p->level--);
26573 return NULL;
26574 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026575 Py_ssize_t _children_capacity = 1;
26576 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026577 { // lambda_param_no_default
26578 if (p->error_indicator) {
26579 D(p->level--);
26580 return NULL;
26581 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026582 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 +000026583 arg_ty lambda_param_no_default_var;
26584 while (
26585 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26586 )
26587 {
26588 _res = lambda_param_no_default_var;
26589 if (_n == _children_capacity) {
26590 _children_capacity *= 2;
26591 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26592 if (!_new_children) {
26593 p->error_indicator = 1;
26594 PyErr_NoMemory();
26595 D(p->level--);
26596 return NULL;
26597 }
26598 _children = _new_children;
26599 }
26600 _children[_n++] = _res;
26601 _mark = p->mark;
26602 }
26603 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026604 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26606 }
26607 if (_n == 0 || p->error_indicator) {
26608 PyMem_Free(_children);
26609 D(p->level--);
26610 return NULL;
26611 }
26612 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26613 if (!_seq) {
26614 PyMem_Free(_children);
26615 p->error_indicator = 1;
26616 PyErr_NoMemory();
26617 D(p->level--);
26618 return NULL;
26619 }
26620 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26621 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026622 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026623 D(p->level--);
26624 return _seq;
26625}
26626
Brandt Bucher145bf262021-02-26 14:51:55 -080026627// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026628static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026629_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026630{
26631 D(p->level++);
26632 if (p->error_indicator) {
26633 D(p->level--);
26634 return NULL;
26635 }
26636 void *_res = NULL;
26637 int _mark = p->mark;
26638 int _start_mark = p->mark;
26639 void **_children = PyMem_Malloc(sizeof(void *));
26640 if (!_children) {
26641 p->error_indicator = 1;
26642 PyErr_NoMemory();
26643 D(p->level--);
26644 return NULL;
26645 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026646 Py_ssize_t _children_capacity = 1;
26647 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026648 { // lambda_param_with_default
26649 if (p->error_indicator) {
26650 D(p->level--);
26651 return NULL;
26652 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026653 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 +030026654 NameDefaultPair* lambda_param_with_default_var;
26655 while (
26656 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26657 )
26658 {
26659 _res = lambda_param_with_default_var;
26660 if (_n == _children_capacity) {
26661 _children_capacity *= 2;
26662 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26663 if (!_new_children) {
26664 p->error_indicator = 1;
26665 PyErr_NoMemory();
26666 D(p->level--);
26667 return NULL;
26668 }
26669 _children = _new_children;
26670 }
26671 _children[_n++] = _res;
26672 _mark = p->mark;
26673 }
26674 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026675 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26677 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026678 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026679 if (!_seq) {
26680 PyMem_Free(_children);
26681 p->error_indicator = 1;
26682 PyErr_NoMemory();
26683 D(p->level--);
26684 return NULL;
26685 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026686 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026687 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026688 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026689 D(p->level--);
26690 return _seq;
26691}
26692
Brandt Bucher145bf262021-02-26 14:51:55 -080026693// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026694static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026695_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026696{
26697 D(p->level++);
26698 if (p->error_indicator) {
26699 D(p->level--);
26700 return NULL;
26701 }
26702 void *_res = NULL;
26703 int _mark = p->mark;
26704 int _start_mark = p->mark;
26705 void **_children = PyMem_Malloc(sizeof(void *));
26706 if (!_children) {
26707 p->error_indicator = 1;
26708 PyErr_NoMemory();
26709 D(p->level--);
26710 return NULL;
26711 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026712 Py_ssize_t _children_capacity = 1;
26713 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026714 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026715 if (p->error_indicator) {
26716 D(p->level--);
26717 return NULL;
26718 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026719 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 +000026720 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026721 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026722 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026723 )
26724 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026725 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026726 if (_n == _children_capacity) {
26727 _children_capacity *= 2;
26728 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26729 if (!_new_children) {
26730 p->error_indicator = 1;
26731 PyErr_NoMemory();
26732 D(p->level--);
26733 return NULL;
26734 }
26735 _children = _new_children;
26736 }
26737 _children[_n++] = _res;
26738 _mark = p->mark;
26739 }
26740 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026741 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026743 }
26744 if (_n == 0 || p->error_indicator) {
26745 PyMem_Free(_children);
26746 D(p->level--);
26747 return NULL;
26748 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026749 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026750 if (!_seq) {
26751 PyMem_Free(_children);
26752 p->error_indicator = 1;
26753 PyErr_NoMemory();
26754 D(p->level--);
26755 return NULL;
26756 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026757 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026758 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026759 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026760 D(p->level--);
26761 return _seq;
26762}
26763
Brandt Bucher145bf262021-02-26 14:51:55 -080026764// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026765static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026766_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026767{
26768 D(p->level++);
26769 if (p->error_indicator) {
26770 D(p->level--);
26771 return NULL;
26772 }
26773 void *_res = NULL;
26774 int _mark = p->mark;
26775 int _start_mark = p->mark;
26776 void **_children = PyMem_Malloc(sizeof(void *));
26777 if (!_children) {
26778 p->error_indicator = 1;
26779 PyErr_NoMemory();
26780 D(p->level--);
26781 return NULL;
26782 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026783 Py_ssize_t _children_capacity = 1;
26784 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026785 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026786 if (p->error_indicator) {
26787 D(p->level--);
26788 return NULL;
26789 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026790 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 +000026791 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026792 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026793 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026794 )
26795 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026796 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026797 if (_n == _children_capacity) {
26798 _children_capacity *= 2;
26799 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26800 if (!_new_children) {
26801 p->error_indicator = 1;
26802 PyErr_NoMemory();
26803 D(p->level--);
26804 return NULL;
26805 }
26806 _children = _new_children;
26807 }
26808 _children[_n++] = _res;
26809 _mark = p->mark;
26810 }
26811 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026812 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26814 }
26815 if (_n == 0 || p->error_indicator) {
26816 PyMem_Free(_children);
26817 D(p->level--);
26818 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026819 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026820 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026821 if (!_seq) {
26822 PyMem_Free(_children);
26823 p->error_indicator = 1;
26824 PyErr_NoMemory();
26825 D(p->level--);
26826 return NULL;
26827 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026828 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026829 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026830 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026831 D(p->level--);
26832 return _seq;
26833}
26834
Brandt Bucher145bf262021-02-26 14:51:55 -080026835// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026836static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026837_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026838{
26839 D(p->level++);
26840 if (p->error_indicator) {
26841 D(p->level--);
26842 return NULL;
26843 }
26844 void *_res = NULL;
26845 int _mark = p->mark;
26846 int _start_mark = p->mark;
26847 void **_children = PyMem_Malloc(sizeof(void *));
26848 if (!_children) {
26849 p->error_indicator = 1;
26850 PyErr_NoMemory();
26851 D(p->level--);
26852 return NULL;
26853 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026854 Py_ssize_t _children_capacity = 1;
26855 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026856 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026857 if (p->error_indicator) {
26858 D(p->level--);
26859 return NULL;
26860 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026861 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 +000026862 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026863 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026864 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026865 )
26866 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026867 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026868 if (_n == _children_capacity) {
26869 _children_capacity *= 2;
26870 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26871 if (!_new_children) {
26872 p->error_indicator = 1;
26873 PyErr_NoMemory();
26874 D(p->level--);
26875 return NULL;
26876 }
26877 _children = _new_children;
26878 }
26879 _children[_n++] = _res;
26880 _mark = p->mark;
26881 }
26882 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026883 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026885 }
26886 if (_n == 0 || p->error_indicator) {
26887 PyMem_Free(_children);
26888 D(p->level--);
26889 return NULL;
26890 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026891 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026892 if (!_seq) {
26893 PyMem_Free(_children);
26894 p->error_indicator = 1;
26895 PyErr_NoMemory();
26896 D(p->level--);
26897 return NULL;
26898 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026899 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026900 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026901 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026902 D(p->level--);
26903 return _seq;
26904}
26905
Brandt Bucher145bf262021-02-26 14:51:55 -080026906// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026907static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026908_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026909{
26910 D(p->level++);
26911 if (p->error_indicator) {
26912 D(p->level--);
26913 return NULL;
26914 }
26915 void *_res = NULL;
26916 int _mark = p->mark;
26917 int _start_mark = p->mark;
26918 void **_children = PyMem_Malloc(sizeof(void *));
26919 if (!_children) {
26920 p->error_indicator = 1;
26921 PyErr_NoMemory();
26922 D(p->level--);
26923 return NULL;
26924 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026925 Py_ssize_t _children_capacity = 1;
26926 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026927 { // lambda_param_no_default
26928 if (p->error_indicator) {
26929 D(p->level--);
26930 return NULL;
26931 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026932 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 +010026933 arg_ty lambda_param_no_default_var;
26934 while (
26935 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26936 )
26937 {
26938 _res = lambda_param_no_default_var;
26939 if (_n == _children_capacity) {
26940 _children_capacity *= 2;
26941 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26942 if (!_new_children) {
26943 p->error_indicator = 1;
26944 PyErr_NoMemory();
26945 D(p->level--);
26946 return NULL;
26947 }
26948 _children = _new_children;
26949 }
26950 _children[_n++] = _res;
26951 _mark = p->mark;
26952 }
26953 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026954 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26956 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026957 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026958 if (!_seq) {
26959 PyMem_Free(_children);
26960 p->error_indicator = 1;
26961 PyErr_NoMemory();
26962 D(p->level--);
26963 return NULL;
26964 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026965 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026966 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026967 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026968 D(p->level--);
26969 return _seq;
26970}
26971
Brandt Bucher145bf262021-02-26 14:51:55 -080026972// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026973static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026974_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026975{
26976 D(p->level++);
26977 if (p->error_indicator) {
26978 D(p->level--);
26979 return NULL;
26980 }
26981 void *_res = NULL;
26982 int _mark = p->mark;
26983 int _start_mark = p->mark;
26984 void **_children = PyMem_Malloc(sizeof(void *));
26985 if (!_children) {
26986 p->error_indicator = 1;
26987 PyErr_NoMemory();
26988 D(p->level--);
26989 return NULL;
26990 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026991 Py_ssize_t _children_capacity = 1;
26992 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026993 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026994 if (p->error_indicator) {
26995 D(p->level--);
26996 return NULL;
26997 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026998 D(fprintf(stderr, "%*c> _loop1_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026999 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027000 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027001 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027002 )
27003 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027004 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027005 if (_n == _children_capacity) {
27006 _children_capacity *= 2;
27007 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27008 if (!_new_children) {
27009 p->error_indicator = 1;
27010 PyErr_NoMemory();
27011 D(p->level--);
27012 return NULL;
27013 }
27014 _children = _new_children;
27015 }
27016 _children[_n++] = _res;
27017 _mark = p->mark;
27018 }
27019 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027020 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027022 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027023 if (_n == 0 || p->error_indicator) {
27024 PyMem_Free(_children);
27025 D(p->level--);
27026 return NULL;
27027 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027028 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027029 if (!_seq) {
27030 PyMem_Free(_children);
27031 p->error_indicator = 1;
27032 PyErr_NoMemory();
27033 D(p->level--);
27034 return NULL;
27035 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027036 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027037 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027038 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027039 D(p->level--);
27040 return _seq;
27041}
27042
Brandt Bucher145bf262021-02-26 14:51:55 -080027043// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027044static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027045_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027046{
27047 D(p->level++);
27048 if (p->error_indicator) {
27049 D(p->level--);
27050 return NULL;
27051 }
27052 void *_res = NULL;
27053 int _mark = p->mark;
27054 int _start_mark = p->mark;
27055 void **_children = PyMem_Malloc(sizeof(void *));
27056 if (!_children) {
27057 p->error_indicator = 1;
27058 PyErr_NoMemory();
27059 D(p->level--);
27060 return NULL;
27061 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027062 Py_ssize_t _children_capacity = 1;
27063 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027064 { // lambda_param_no_default
27065 if (p->error_indicator) {
27066 D(p->level--);
27067 return NULL;
27068 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027069 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 +010027070 arg_ty lambda_param_no_default_var;
27071 while (
27072 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27073 )
27074 {
27075 _res = lambda_param_no_default_var;
27076 if (_n == _children_capacity) {
27077 _children_capacity *= 2;
27078 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27079 if (!_new_children) {
27080 p->error_indicator = 1;
27081 PyErr_NoMemory();
27082 D(p->level--);
27083 return NULL;
27084 }
27085 _children = _new_children;
27086 }
27087 _children[_n++] = _res;
27088 _mark = p->mark;
27089 }
27090 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027091 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27093 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027094 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027095 if (!_seq) {
27096 PyMem_Free(_children);
27097 p->error_indicator = 1;
27098 PyErr_NoMemory();
27099 D(p->level--);
27100 return NULL;
27101 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027102 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027103 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027104 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027105 D(p->level--);
27106 return _seq;
27107}
27108
Brandt Bucher145bf262021-02-26 14:51:55 -080027109// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027110static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027111_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027112{
27113 D(p->level++);
27114 if (p->error_indicator) {
27115 D(p->level--);
27116 return NULL;
27117 }
27118 void *_res = NULL;
27119 int _mark = p->mark;
27120 int _start_mark = p->mark;
27121 void **_children = PyMem_Malloc(sizeof(void *));
27122 if (!_children) {
27123 p->error_indicator = 1;
27124 PyErr_NoMemory();
27125 D(p->level--);
27126 return NULL;
27127 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027128 Py_ssize_t _children_capacity = 1;
27129 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027130 { // lambda_param_with_default
27131 if (p->error_indicator) {
27132 D(p->level--);
27133 return NULL;
27134 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027135 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 +010027136 NameDefaultPair* lambda_param_with_default_var;
27137 while (
27138 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27139 )
27140 {
27141 _res = lambda_param_with_default_var;
27142 if (_n == _children_capacity) {
27143 _children_capacity *= 2;
27144 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27145 if (!_new_children) {
27146 p->error_indicator = 1;
27147 PyErr_NoMemory();
27148 D(p->level--);
27149 return NULL;
27150 }
27151 _children = _new_children;
27152 }
27153 _children[_n++] = _res;
27154 _mark = p->mark;
27155 }
27156 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027157 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27159 }
27160 if (_n == 0 || p->error_indicator) {
27161 PyMem_Free(_children);
27162 D(p->level--);
27163 return NULL;
27164 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027165 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027166 if (!_seq) {
27167 PyMem_Free(_children);
27168 p->error_indicator = 1;
27169 PyErr_NoMemory();
27170 D(p->level--);
27171 return NULL;
27172 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027173 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027174 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027175 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027176 D(p->level--);
27177 return _seq;
27178}
27179
Brandt Bucher145bf262021-02-26 14:51:55 -080027180// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027181static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027182_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027183{
27184 D(p->level++);
27185 if (p->error_indicator) {
27186 D(p->level--);
27187 return NULL;
27188 }
27189 void *_res = NULL;
27190 int _mark = p->mark;
27191 int _start_mark = p->mark;
27192 void **_children = PyMem_Malloc(sizeof(void *));
27193 if (!_children) {
27194 p->error_indicator = 1;
27195 PyErr_NoMemory();
27196 D(p->level--);
27197 return NULL;
27198 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027199 Py_ssize_t _children_capacity = 1;
27200 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027201 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027202 if (p->error_indicator) {
27203 D(p->level--);
27204 return NULL;
27205 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027206 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 +000027207 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027208 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027209 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027210 )
27211 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027212 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027213 if (_n == _children_capacity) {
27214 _children_capacity *= 2;
27215 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27216 if (!_new_children) {
27217 p->error_indicator = 1;
27218 PyErr_NoMemory();
27219 D(p->level--);
27220 return NULL;
27221 }
27222 _children = _new_children;
27223 }
27224 _children[_n++] = _res;
27225 _mark = p->mark;
27226 }
27227 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027228 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027230 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027231 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027232 if (!_seq) {
27233 PyMem_Free(_children);
27234 p->error_indicator = 1;
27235 PyErr_NoMemory();
27236 D(p->level--);
27237 return NULL;
27238 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027239 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027240 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027241 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027242 D(p->level--);
27243 return _seq;
27244}
27245
Brandt Bucher145bf262021-02-26 14:51:55 -080027246// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027247static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027248_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027249{
27250 D(p->level++);
27251 if (p->error_indicator) {
27252 D(p->level--);
27253 return NULL;
27254 }
27255 void *_res = NULL;
27256 int _mark = p->mark;
27257 int _start_mark = p->mark;
27258 void **_children = PyMem_Malloc(sizeof(void *));
27259 if (!_children) {
27260 p->error_indicator = 1;
27261 PyErr_NoMemory();
27262 D(p->level--);
27263 return NULL;
27264 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027265 Py_ssize_t _children_capacity = 1;
27266 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027267 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027268 if (p->error_indicator) {
27269 D(p->level--);
27270 return NULL;
27271 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027272 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 +000027273 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027274 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027275 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027276 )
27277 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027278 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027279 if (_n == _children_capacity) {
27280 _children_capacity *= 2;
27281 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27282 if (!_new_children) {
27283 p->error_indicator = 1;
27284 PyErr_NoMemory();
27285 D(p->level--);
27286 return NULL;
27287 }
27288 _children = _new_children;
27289 }
27290 _children[_n++] = _res;
27291 _mark = p->mark;
27292 }
27293 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027294 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027296 }
27297 if (_n == 0 || p->error_indicator) {
27298 PyMem_Free(_children);
27299 D(p->level--);
27300 return NULL;
27301 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027302 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027303 if (!_seq) {
27304 PyMem_Free(_children);
27305 p->error_indicator = 1;
27306 PyErr_NoMemory();
27307 D(p->level--);
27308 return NULL;
27309 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027310 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027311 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027312 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027313 D(p->level--);
27314 return _seq;
27315}
27316
Brandt Bucher145bf262021-02-26 14:51:55 -080027317// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027318static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027319_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027320{
27321 D(p->level++);
27322 if (p->error_indicator) {
27323 D(p->level--);
27324 return NULL;
27325 }
27326 void *_res = NULL;
27327 int _mark = p->mark;
27328 int _start_mark = p->mark;
27329 void **_children = PyMem_Malloc(sizeof(void *));
27330 if (!_children) {
27331 p->error_indicator = 1;
27332 PyErr_NoMemory();
27333 D(p->level--);
27334 return NULL;
27335 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027336 Py_ssize_t _children_capacity = 1;
27337 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027338 { // ('or' conjunction)
27339 if (p->error_indicator) {
27340 D(p->level--);
27341 return NULL;
27342 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027343 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010027344 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027345 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010027346 (_tmp_183_var = _tmp_183_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027347 )
27348 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010027349 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027350 if (_n == _children_capacity) {
27351 _children_capacity *= 2;
27352 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27353 if (!_new_children) {
27354 p->error_indicator = 1;
27355 PyErr_NoMemory();
27356 D(p->level--);
27357 return NULL;
27358 }
27359 _children = _new_children;
27360 }
27361 _children[_n++] = _res;
27362 _mark = p->mark;
27363 }
27364 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027365 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27367 }
27368 if (_n == 0 || p->error_indicator) {
27369 PyMem_Free(_children);
27370 D(p->level--);
27371 return NULL;
27372 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027373 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027374 if (!_seq) {
27375 PyMem_Free(_children);
27376 p->error_indicator = 1;
27377 PyErr_NoMemory();
27378 D(p->level--);
27379 return NULL;
27380 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027381 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027382 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027383 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027384 D(p->level--);
27385 return _seq;
27386}
27387
Brandt Bucher145bf262021-02-26 14:51:55 -080027388// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027389static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027390_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027391{
27392 D(p->level++);
27393 if (p->error_indicator) {
27394 D(p->level--);
27395 return NULL;
27396 }
27397 void *_res = NULL;
27398 int _mark = p->mark;
27399 int _start_mark = p->mark;
27400 void **_children = PyMem_Malloc(sizeof(void *));
27401 if (!_children) {
27402 p->error_indicator = 1;
27403 PyErr_NoMemory();
27404 D(p->level--);
27405 return NULL;
27406 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027407 Py_ssize_t _children_capacity = 1;
27408 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027409 { // ('and' inversion)
27410 if (p->error_indicator) {
27411 D(p->level--);
27412 return NULL;
27413 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027414 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010027415 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027416 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010027417 (_tmp_184_var = _tmp_184_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027418 )
27419 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010027420 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027421 if (_n == _children_capacity) {
27422 _children_capacity *= 2;
27423 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27424 if (!_new_children) {
27425 p->error_indicator = 1;
27426 PyErr_NoMemory();
27427 D(p->level--);
27428 return NULL;
27429 }
27430 _children = _new_children;
27431 }
27432 _children[_n++] = _res;
27433 _mark = p->mark;
27434 }
27435 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027436 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27438 }
27439 if (_n == 0 || p->error_indicator) {
27440 PyMem_Free(_children);
27441 D(p->level--);
27442 return NULL;
27443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027444 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027445 if (!_seq) {
27446 PyMem_Free(_children);
27447 p->error_indicator = 1;
27448 PyErr_NoMemory();
27449 D(p->level--);
27450 return NULL;
27451 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027452 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027453 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027454 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027455 D(p->level--);
27456 return _seq;
27457}
27458
Brandt Bucher145bf262021-02-26 14:51:55 -080027459// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027460static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027461_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027462{
27463 D(p->level++);
27464 if (p->error_indicator) {
27465 D(p->level--);
27466 return NULL;
27467 }
27468 void *_res = NULL;
27469 int _mark = p->mark;
27470 int _start_mark = p->mark;
27471 void **_children = PyMem_Malloc(sizeof(void *));
27472 if (!_children) {
27473 p->error_indicator = 1;
27474 PyErr_NoMemory();
27475 D(p->level--);
27476 return NULL;
27477 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027478 Py_ssize_t _children_capacity = 1;
27479 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027480 { // compare_op_bitwise_or_pair
27481 if (p->error_indicator) {
27482 D(p->level--);
27483 return NULL;
27484 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027485 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 +010027486 CmpopExprPair* compare_op_bitwise_or_pair_var;
27487 while (
27488 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27489 )
27490 {
27491 _res = compare_op_bitwise_or_pair_var;
27492 if (_n == _children_capacity) {
27493 _children_capacity *= 2;
27494 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27495 if (!_new_children) {
27496 p->error_indicator = 1;
27497 PyErr_NoMemory();
27498 D(p->level--);
27499 return NULL;
27500 }
27501 _children = _new_children;
27502 }
27503 _children[_n++] = _res;
27504 _mark = p->mark;
27505 }
27506 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027507 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27509 }
27510 if (_n == 0 || p->error_indicator) {
27511 PyMem_Free(_children);
27512 D(p->level--);
27513 return NULL;
27514 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027515 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027516 if (!_seq) {
27517 PyMem_Free(_children);
27518 p->error_indicator = 1;
27519 PyErr_NoMemory();
27520 D(p->level--);
27521 return NULL;
27522 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027523 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027524 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027525 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027526 D(p->level--);
27527 return _seq;
27528}
27529
Brandt Bucher145bf262021-02-26 14:51:55 -080027530// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027531static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027532_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027533{
27534 D(p->level++);
27535 if (p->error_indicator) {
27536 D(p->level--);
27537 return NULL;
27538 }
27539 void * _res = NULL;
27540 int _mark = p->mark;
27541 { // '!='
27542 if (p->error_indicator) {
27543 D(p->level--);
27544 return NULL;
27545 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027546 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027547 Token * tok;
27548 if (
27549 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27550 )
27551 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027552 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027553 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027554 if (_res == NULL && PyErr_Occurred()) {
27555 p->error_indicator = 1;
27556 D(p->level--);
27557 return NULL;
27558 }
27559 goto done;
27560 }
27561 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027562 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27564 }
27565 _res = NULL;
27566 done:
27567 D(p->level--);
27568 return _res;
27569}
27570
Brandt Bucher145bf262021-02-26 14:51:55 -080027571// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027572static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027573_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027574{
27575 D(p->level++);
27576 if (p->error_indicator) {
27577 D(p->level--);
27578 return NULL;
27579 }
27580 void *_res = NULL;
27581 int _mark = p->mark;
27582 int _start_mark = p->mark;
27583 void **_children = PyMem_Malloc(sizeof(void *));
27584 if (!_children) {
27585 p->error_indicator = 1;
27586 PyErr_NoMemory();
27587 D(p->level--);
27588 return NULL;
27589 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027590 Py_ssize_t _children_capacity = 1;
27591 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027592 { // ',' slice
27593 if (p->error_indicator) {
27594 D(p->level--);
27595 return NULL;
27596 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027597 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027598 Token * _literal;
27599 expr_ty elem;
27600 while (
27601 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27602 &&
27603 (elem = slice_rule(p)) // slice
27604 )
27605 {
27606 _res = elem;
27607 if (_res == NULL && PyErr_Occurred()) {
27608 p->error_indicator = 1;
27609 PyMem_Free(_children);
27610 D(p->level--);
27611 return NULL;
27612 }
27613 if (_n == _children_capacity) {
27614 _children_capacity *= 2;
27615 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27616 if (!_new_children) {
27617 p->error_indicator = 1;
27618 PyErr_NoMemory();
27619 D(p->level--);
27620 return NULL;
27621 }
27622 _children = _new_children;
27623 }
27624 _children[_n++] = _res;
27625 _mark = p->mark;
27626 }
27627 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027628 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27630 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027631 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027632 if (!_seq) {
27633 PyMem_Free(_children);
27634 p->error_indicator = 1;
27635 PyErr_NoMemory();
27636 D(p->level--);
27637 return NULL;
27638 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027639 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027640 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027641 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027642 D(p->level--);
27643 return _seq;
27644}
27645
Brandt Bucher145bf262021-02-26 14:51:55 -080027646// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027647static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027648_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027649{
27650 D(p->level++);
27651 if (p->error_indicator) {
27652 D(p->level--);
27653 return NULL;
27654 }
27655 asdl_seq * _res = NULL;
27656 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027657 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027658 if (p->error_indicator) {
27659 D(p->level--);
27660 return NULL;
27661 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027662 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 +010027663 expr_ty elem;
27664 asdl_seq * seq;
27665 if (
27666 (elem = slice_rule(p)) // slice
27667 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027668 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027669 )
27670 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027671 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 +010027672 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27673 goto done;
27674 }
27675 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027676 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027678 }
27679 _res = NULL;
27680 done:
27681 D(p->level--);
27682 return _res;
27683}
27684
Brandt Bucher145bf262021-02-26 14:51:55 -080027685// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027686static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027687_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027688{
27689 D(p->level++);
27690 if (p->error_indicator) {
27691 D(p->level--);
27692 return NULL;
27693 }
27694 void * _res = NULL;
27695 int _mark = p->mark;
27696 { // ':' expression?
27697 if (p->error_indicator) {
27698 D(p->level--);
27699 return NULL;
27700 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027701 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027702 Token * _literal;
27703 void *d;
27704 if (
27705 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27706 &&
27707 (d = expression_rule(p), 1) // expression?
27708 )
27709 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027710 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027711 _res = d;
27712 if (_res == NULL && PyErr_Occurred()) {
27713 p->error_indicator = 1;
27714 D(p->level--);
27715 return NULL;
27716 }
27717 goto done;
27718 }
27719 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027720 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27722 }
27723 _res = NULL;
27724 done:
27725 D(p->level--);
27726 return _res;
27727}
27728
Brandt Bucher145bf262021-02-26 14:51:55 -080027729// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027730static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027731_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027732{
27733 D(p->level++);
27734 if (p->error_indicator) {
27735 D(p->level--);
27736 return NULL;
27737 }
27738 void * _res = NULL;
27739 int _mark = p->mark;
27740 { // tuple
27741 if (p->error_indicator) {
27742 D(p->level--);
27743 return NULL;
27744 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027745 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027746 expr_ty tuple_var;
27747 if (
27748 (tuple_var = tuple_rule(p)) // tuple
27749 )
27750 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027751 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027752 _res = tuple_var;
27753 goto done;
27754 }
27755 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027756 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27758 }
27759 { // group
27760 if (p->error_indicator) {
27761 D(p->level--);
27762 return NULL;
27763 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027764 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027765 expr_ty group_var;
27766 if (
27767 (group_var = group_rule(p)) // group
27768 )
27769 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027770 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027771 _res = group_var;
27772 goto done;
27773 }
27774 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027775 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27777 }
27778 { // genexp
27779 if (p->error_indicator) {
27780 D(p->level--);
27781 return NULL;
27782 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027783 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027784 expr_ty genexp_var;
27785 if (
27786 (genexp_var = genexp_rule(p)) // genexp
27787 )
27788 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027789 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027790 _res = genexp_var;
27791 goto done;
27792 }
27793 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027794 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27796 }
27797 _res = NULL;
27798 done:
27799 D(p->level--);
27800 return _res;
27801}
27802
Brandt Bucher145bf262021-02-26 14:51:55 -080027803// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027804static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027805_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027806{
27807 D(p->level++);
27808 if (p->error_indicator) {
27809 D(p->level--);
27810 return NULL;
27811 }
27812 void * _res = NULL;
27813 int _mark = p->mark;
27814 { // list
27815 if (p->error_indicator) {
27816 D(p->level--);
27817 return NULL;
27818 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027819 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027820 expr_ty list_var;
27821 if (
27822 (list_var = list_rule(p)) // list
27823 )
27824 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027825 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027826 _res = list_var;
27827 goto done;
27828 }
27829 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027830 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27832 }
27833 { // listcomp
27834 if (p->error_indicator) {
27835 D(p->level--);
27836 return NULL;
27837 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027838 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027839 expr_ty listcomp_var;
27840 if (
27841 (listcomp_var = listcomp_rule(p)) // listcomp
27842 )
27843 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027844 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027845 _res = listcomp_var;
27846 goto done;
27847 }
27848 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027849 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
27851 }
27852 _res = NULL;
27853 done:
27854 D(p->level--);
27855 return _res;
27856}
27857
Brandt Bucher145bf262021-02-26 14:51:55 -080027858// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027859static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027860_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027861{
27862 D(p->level++);
27863 if (p->error_indicator) {
27864 D(p->level--);
27865 return NULL;
27866 }
27867 void * _res = NULL;
27868 int _mark = p->mark;
27869 { // dict
27870 if (p->error_indicator) {
27871 D(p->level--);
27872 return NULL;
27873 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027874 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027875 expr_ty dict_var;
27876 if (
27877 (dict_var = dict_rule(p)) // dict
27878 )
27879 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027880 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027881 _res = dict_var;
27882 goto done;
27883 }
27884 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027885 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
27887 }
27888 { // set
27889 if (p->error_indicator) {
27890 D(p->level--);
27891 return NULL;
27892 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027893 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027894 expr_ty set_var;
27895 if (
27896 (set_var = set_rule(p)) // set
27897 )
27898 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027899 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027900 _res = set_var;
27901 goto done;
27902 }
27903 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027904 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
27906 }
27907 { // dictcomp
27908 if (p->error_indicator) {
27909 D(p->level--);
27910 return NULL;
27911 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027912 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027913 expr_ty dictcomp_var;
27914 if (
27915 (dictcomp_var = dictcomp_rule(p)) // dictcomp
27916 )
27917 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027918 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027919 _res = dictcomp_var;
27920 goto done;
27921 }
27922 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027923 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
27925 }
27926 { // setcomp
27927 if (p->error_indicator) {
27928 D(p->level--);
27929 return NULL;
27930 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027931 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027932 expr_ty setcomp_var;
27933 if (
27934 (setcomp_var = setcomp_rule(p)) // setcomp
27935 )
27936 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027937 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027938 _res = setcomp_var;
27939 goto done;
27940 }
27941 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027942 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
27944 }
27945 _res = NULL;
27946 done:
27947 D(p->level--);
27948 return _res;
27949}
27950
Brandt Bucher145bf262021-02-26 14:51:55 -080027951// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027952static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027953_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027954{
27955 D(p->level++);
27956 if (p->error_indicator) {
27957 D(p->level--);
27958 return NULL;
27959 }
27960 void *_res = NULL;
27961 int _mark = p->mark;
27962 int _start_mark = p->mark;
27963 void **_children = PyMem_Malloc(sizeof(void *));
27964 if (!_children) {
27965 p->error_indicator = 1;
27966 PyErr_NoMemory();
27967 D(p->level--);
27968 return NULL;
27969 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027970 Py_ssize_t _children_capacity = 1;
27971 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027972 { // STRING
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> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027978 expr_ty string_var;
27979 while (
27980 (string_var = _PyPegen_string_token(p)) // STRING
27981 )
27982 {
27983 _res = string_var;
27984 if (_n == _children_capacity) {
27985 _children_capacity *= 2;
27986 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27987 if (!_new_children) {
27988 p->error_indicator = 1;
27989 PyErr_NoMemory();
27990 D(p->level--);
27991 return NULL;
27992 }
27993 _children = _new_children;
27994 }
27995 _children[_n++] = _res;
27996 _mark = p->mark;
27997 }
27998 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027999 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
28001 }
28002 if (_n == 0 || p->error_indicator) {
28003 PyMem_Free(_children);
28004 D(p->level--);
28005 return NULL;
28006 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028007 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028008 if (!_seq) {
28009 PyMem_Free(_children);
28010 p->error_indicator = 1;
28011 PyErr_NoMemory();
28012 D(p->level--);
28013 return NULL;
28014 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028015 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028016 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028017 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028018 D(p->level--);
28019 return _seq;
28020}
28021
Brandt Bucher145bf262021-02-26 14:51:55 -080028022// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028023static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028024_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028025{
28026 D(p->level++);
28027 if (p->error_indicator) {
28028 D(p->level--);
28029 return NULL;
28030 }
28031 void * _res = NULL;
28032 int _mark = p->mark;
28033 { // star_named_expression ',' star_named_expressions?
28034 if (p->error_indicator) {
28035 D(p->level--);
28036 return NULL;
28037 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028038 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 +010028039 Token * _literal;
28040 expr_ty y;
28041 void *z;
28042 if (
28043 (y = star_named_expression_rule(p)) // star_named_expression
28044 &&
28045 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28046 &&
28047 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
28048 )
28049 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028050 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 +010028051 _res = _PyPegen_seq_insert_in_front ( p , y , z );
28052 if (_res == NULL && PyErr_Occurred()) {
28053 p->error_indicator = 1;
28054 D(p->level--);
28055 return NULL;
28056 }
28057 goto done;
28058 }
28059 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028060 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28062 }
28063 _res = NULL;
28064 done:
28065 D(p->level--);
28066 return _res;
28067}
28068
Brandt Bucher145bf262021-02-26 14:51:55 -080028069// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028070static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028071_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028072{
28073 D(p->level++);
28074 if (p->error_indicator) {
28075 D(p->level--);
28076 return NULL;
28077 }
28078 void * _res = NULL;
28079 int _mark = p->mark;
28080 { // yield_expr
28081 if (p->error_indicator) {
28082 D(p->level--);
28083 return NULL;
28084 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028085 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028086 expr_ty yield_expr_var;
28087 if (
28088 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28089 )
28090 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028091 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 +010028092 _res = yield_expr_var;
28093 goto done;
28094 }
28095 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028096 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28098 }
28099 { // named_expression
28100 if (p->error_indicator) {
28101 D(p->level--);
28102 return NULL;
28103 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028104 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028105 expr_ty named_expression_var;
28106 if (
28107 (named_expression_var = named_expression_rule(p)) // named_expression
28108 )
28109 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028110 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 +010028111 _res = named_expression_var;
28112 goto done;
28113 }
28114 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028115 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28117 }
28118 _res = NULL;
28119 done:
28120 D(p->level--);
28121 return _res;
28122}
28123
Brandt Bucher145bf262021-02-26 14:51:55 -080028124// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028125static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028126_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028127{
28128 D(p->level++);
28129 if (p->error_indicator) {
28130 D(p->level--);
28131 return NULL;
28132 }
28133 void *_res = NULL;
28134 int _mark = p->mark;
28135 int _start_mark = p->mark;
28136 void **_children = PyMem_Malloc(sizeof(void *));
28137 if (!_children) {
28138 p->error_indicator = 1;
28139 PyErr_NoMemory();
28140 D(p->level--);
28141 return NULL;
28142 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028143 Py_ssize_t _children_capacity = 1;
28144 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028145 { // ',' double_starred_kvpair
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> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028151 Token * _literal;
28152 KeyValuePair* elem;
28153 while (
28154 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28155 &&
28156 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28157 )
28158 {
28159 _res = elem;
28160 if (_res == NULL && PyErr_Occurred()) {
28161 p->error_indicator = 1;
28162 PyMem_Free(_children);
28163 D(p->level--);
28164 return NULL;
28165 }
28166 if (_n == _children_capacity) {
28167 _children_capacity *= 2;
28168 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28169 if (!_new_children) {
28170 p->error_indicator = 1;
28171 PyErr_NoMemory();
28172 D(p->level--);
28173 return NULL;
28174 }
28175 _children = _new_children;
28176 }
28177 _children[_n++] = _res;
28178 _mark = p->mark;
28179 }
28180 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028181 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28183 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028184 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028185 if (!_seq) {
28186 PyMem_Free(_children);
28187 p->error_indicator = 1;
28188 PyErr_NoMemory();
28189 D(p->level--);
28190 return NULL;
28191 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028192 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028193 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028194 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028195 D(p->level--);
28196 return _seq;
28197}
28198
Brandt Bucher145bf262021-02-26 14:51:55 -080028199// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028200static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028201_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028202{
28203 D(p->level++);
28204 if (p->error_indicator) {
28205 D(p->level--);
28206 return NULL;
28207 }
28208 asdl_seq * _res = NULL;
28209 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028210 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028211 if (p->error_indicator) {
28212 D(p->level--);
28213 return NULL;
28214 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028215 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028216 KeyValuePair* elem;
28217 asdl_seq * seq;
28218 if (
28219 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28220 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028221 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028222 )
28223 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028224 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028225 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28226 goto done;
28227 }
28228 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028229 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
28230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028231 }
28232 _res = NULL;
28233 done:
28234 D(p->level--);
28235 return _res;
28236}
28237
Brandt Bucher145bf262021-02-26 14:51:55 -080028238// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028239static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028240_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028241{
28242 D(p->level++);
28243 if (p->error_indicator) {
28244 D(p->level--);
28245 return NULL;
28246 }
28247 void *_res = NULL;
28248 int _mark = p->mark;
28249 int _start_mark = p->mark;
28250 void **_children = PyMem_Malloc(sizeof(void *));
28251 if (!_children) {
28252 p->error_indicator = 1;
28253 PyErr_NoMemory();
28254 D(p->level--);
28255 return NULL;
28256 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028257 Py_ssize_t _children_capacity = 1;
28258 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028259 { // for_if_clause
28260 if (p->error_indicator) {
28261 D(p->level--);
28262 return NULL;
28263 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028264 D(fprintf(stderr, "%*c> _loop1_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028265 comprehension_ty for_if_clause_var;
28266 while (
28267 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28268 )
28269 {
28270 _res = for_if_clause_var;
28271 if (_n == _children_capacity) {
28272 _children_capacity *= 2;
28273 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28274 if (!_new_children) {
28275 p->error_indicator = 1;
28276 PyErr_NoMemory();
28277 D(p->level--);
28278 return NULL;
28279 }
28280 _children = _new_children;
28281 }
28282 _children[_n++] = _res;
28283 _mark = p->mark;
28284 }
28285 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028286 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28288 }
28289 if (_n == 0 || p->error_indicator) {
28290 PyMem_Free(_children);
28291 D(p->level--);
28292 return NULL;
28293 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028294 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028295 if (!_seq) {
28296 PyMem_Free(_children);
28297 p->error_indicator = 1;
28298 PyErr_NoMemory();
28299 D(p->level--);
28300 return NULL;
28301 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028302 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028303 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028304 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028305 D(p->level--);
28306 return _seq;
28307}
28308
Brandt Bucher145bf262021-02-26 14:51:55 -080028309// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028310static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028311_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028312{
28313 D(p->level++);
28314 if (p->error_indicator) {
28315 D(p->level--);
28316 return NULL;
28317 }
28318 void *_res = NULL;
28319 int _mark = p->mark;
28320 int _start_mark = p->mark;
28321 void **_children = PyMem_Malloc(sizeof(void *));
28322 if (!_children) {
28323 p->error_indicator = 1;
28324 PyErr_NoMemory();
28325 D(p->level--);
28326 return NULL;
28327 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028328 Py_ssize_t _children_capacity = 1;
28329 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028330 { // ('if' disjunction)
28331 if (p->error_indicator) {
28332 D(p->level--);
28333 return NULL;
28334 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028335 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010028336 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028337 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010028338 (_tmp_185_var = _tmp_185_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028339 )
28340 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010028341 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028342 if (_n == _children_capacity) {
28343 _children_capacity *= 2;
28344 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28345 if (!_new_children) {
28346 p->error_indicator = 1;
28347 PyErr_NoMemory();
28348 D(p->level--);
28349 return NULL;
28350 }
28351 _children = _new_children;
28352 }
28353 _children[_n++] = _res;
28354 _mark = p->mark;
28355 }
28356 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028357 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28359 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028360 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028361 if (!_seq) {
28362 PyMem_Free(_children);
28363 p->error_indicator = 1;
28364 PyErr_NoMemory();
28365 D(p->level--);
28366 return NULL;
28367 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028368 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028369 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028370 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028371 D(p->level--);
28372 return _seq;
28373}
28374
Brandt Bucher145bf262021-02-26 14:51:55 -080028375// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028376static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028377_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028378{
28379 D(p->level++);
28380 if (p->error_indicator) {
28381 D(p->level--);
28382 return NULL;
28383 }
28384 void *_res = NULL;
28385 int _mark = p->mark;
28386 int _start_mark = p->mark;
28387 void **_children = PyMem_Malloc(sizeof(void *));
28388 if (!_children) {
28389 p->error_indicator = 1;
28390 PyErr_NoMemory();
28391 D(p->level--);
28392 return NULL;
28393 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028394 Py_ssize_t _children_capacity = 1;
28395 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028396 { // ('if' disjunction)
28397 if (p->error_indicator) {
28398 D(p->level--);
28399 return NULL;
28400 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028401 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010028402 void *_tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028403 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010028404 (_tmp_186_var = _tmp_186_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028405 )
28406 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010028407 _res = _tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028408 if (_n == _children_capacity) {
28409 _children_capacity *= 2;
28410 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28411 if (!_new_children) {
28412 p->error_indicator = 1;
28413 PyErr_NoMemory();
28414 D(p->level--);
28415 return NULL;
28416 }
28417 _children = _new_children;
28418 }
28419 _children[_n++] = _res;
28420 _mark = p->mark;
28421 }
28422 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028423 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28425 }
28426 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28427 if (!_seq) {
28428 PyMem_Free(_children);
28429 p->error_indicator = 1;
28430 PyErr_NoMemory();
28431 D(p->level--);
28432 return NULL;
28433 }
28434 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28435 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028436 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028437 D(p->level--);
28438 return _seq;
28439}
28440
Pablo Galindod9151cb2021-04-13 02:32:33 +010028441// _loop0_123: ',' (starred_expression | direct_named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028442static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028443_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028444{
28445 D(p->level++);
28446 if (p->error_indicator) {
28447 D(p->level--);
28448 return NULL;
28449 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028450 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028451 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028452 int _start_mark = p->mark;
28453 void **_children = PyMem_Malloc(sizeof(void *));
28454 if (!_children) {
28455 p->error_indicator = 1;
28456 PyErr_NoMemory();
28457 D(p->level--);
28458 return NULL;
28459 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028460 Py_ssize_t _children_capacity = 1;
28461 Py_ssize_t _n = 0;
Pablo Galindod9151cb2021-04-13 02:32:33 +010028462 { // ',' (starred_expression | direct_named_expression !'=')
Pablo Galindo4a97b152020-09-02 17:44:19 +010028463 if (p->error_indicator) {
28464 D(p->level--);
28465 return NULL;
28466 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010028467 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028468 Token * _literal;
28469 void *elem;
28470 while (
28471 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28472 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010028473 (elem = _tmp_187_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028474 )
28475 {
28476 _res = elem;
28477 if (_res == NULL && PyErr_Occurred()) {
28478 p->error_indicator = 1;
28479 PyMem_Free(_children);
28480 D(p->level--);
28481 return NULL;
28482 }
28483 if (_n == _children_capacity) {
28484 _children_capacity *= 2;
28485 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28486 if (!_new_children) {
28487 p->error_indicator = 1;
28488 PyErr_NoMemory();
28489 D(p->level--);
28490 return NULL;
28491 }
28492 _children = _new_children;
28493 }
28494 _children[_n++] = _res;
28495 _mark = p->mark;
28496 }
28497 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028498 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010028499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028500 }
28501 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28502 if (!_seq) {
28503 PyMem_Free(_children);
28504 p->error_indicator = 1;
28505 PyErr_NoMemory();
28506 D(p->level--);
28507 return NULL;
28508 }
28509 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28510 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028511 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028512 D(p->level--);
28513 return _seq;
28514}
28515
Pablo Galindod9151cb2021-04-13 02:32:33 +010028516// _gather_122: (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028517static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028518_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028519{
28520 D(p->level++);
28521 if (p->error_indicator) {
28522 D(p->level--);
28523 return NULL;
28524 }
28525 asdl_seq * _res = NULL;
28526 int _mark = p->mark;
Pablo Galindod9151cb2021-04-13 02:32:33 +010028527 { // (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028528 if (p->error_indicator) {
28529 D(p->level--);
28530 return NULL;
28531 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010028532 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028533 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028534 asdl_seq * seq;
28535 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010028536 (elem = _tmp_187_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028537 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028538 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028539 )
28540 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010028541 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028542 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28543 goto done;
28544 }
28545 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028546 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010028547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028548 }
28549 _res = NULL;
28550 done:
28551 D(p->level--);
28552 return _res;
28553}
28554
Brandt Bucher145bf262021-02-26 14:51:55 -080028555// _tmp_124: ',' kwargs
28556static void *
28557_tmp_124_rule(Parser *p)
28558{
28559 D(p->level++);
28560 if (p->error_indicator) {
28561 D(p->level--);
28562 return NULL;
28563 }
28564 void * _res = NULL;
28565 int _mark = p->mark;
28566 { // ',' kwargs
28567 if (p->error_indicator) {
28568 D(p->level--);
28569 return NULL;
28570 }
28571 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
28572 Token * _literal;
28573 asdl_seq* k;
28574 if (
28575 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28576 &&
28577 (k = kwargs_rule(p)) // kwargs
28578 )
28579 {
28580 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
28581 _res = k;
28582 if (_res == NULL && PyErr_Occurred()) {
28583 p->error_indicator = 1;
28584 D(p->level--);
28585 return NULL;
28586 }
28587 goto done;
28588 }
28589 p->mark = _mark;
28590 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
28591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28592 }
28593 _res = NULL;
28594 done:
28595 D(p->level--);
28596 return _res;
28597}
28598
28599// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028600static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028601_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028602{
28603 D(p->level++);
28604 if (p->error_indicator) {
28605 D(p->level--);
28606 return NULL;
28607 }
28608 void *_res = NULL;
28609 int _mark = p->mark;
28610 int _start_mark = p->mark;
28611 void **_children = PyMem_Malloc(sizeof(void *));
28612 if (!_children) {
28613 p->error_indicator = 1;
28614 PyErr_NoMemory();
28615 D(p->level--);
28616 return NULL;
28617 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028618 Py_ssize_t _children_capacity = 1;
28619 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028620 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028621 if (p->error_indicator) {
28622 D(p->level--);
28623 return NULL;
28624 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028625 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028626 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028627 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028628 while (
28629 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28630 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028631 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028632 )
28633 {
28634 _res = elem;
28635 if (_res == NULL && PyErr_Occurred()) {
28636 p->error_indicator = 1;
28637 PyMem_Free(_children);
28638 D(p->level--);
28639 return NULL;
28640 }
28641 if (_n == _children_capacity) {
28642 _children_capacity *= 2;
28643 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28644 if (!_new_children) {
28645 p->error_indicator = 1;
28646 PyErr_NoMemory();
28647 D(p->level--);
28648 return NULL;
28649 }
28650 _children = _new_children;
28651 }
28652 _children[_n++] = _res;
28653 _mark = p->mark;
28654 }
28655 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028656 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
28657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028658 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028659 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028660 if (!_seq) {
28661 PyMem_Free(_children);
28662 p->error_indicator = 1;
28663 PyErr_NoMemory();
28664 D(p->level--);
28665 return NULL;
28666 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028667 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028668 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028669 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028670 D(p->level--);
28671 return _seq;
28672}
28673
Brandt Bucher145bf262021-02-26 14:51:55 -080028674// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028675static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028676_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028677{
28678 D(p->level++);
28679 if (p->error_indicator) {
28680 D(p->level--);
28681 return NULL;
28682 }
28683 asdl_seq * _res = NULL;
28684 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028685 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028686 if (p->error_indicator) {
28687 D(p->level--);
28688 return NULL;
28689 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028690 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
28691 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028692 asdl_seq * seq;
28693 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028694 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028695 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028696 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028697 )
28698 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028699 D(fprintf(stderr, "%*c+ _gather_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028700 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28701 goto done;
28702 }
28703 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028704 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
28705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028706 }
28707 _res = NULL;
28708 done:
28709 D(p->level--);
28710 return _res;
28711}
28712
Brandt Bucher145bf262021-02-26 14:51:55 -080028713// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028714static asdl_seq *
28715_loop0_128_rule(Parser *p)
28716{
28717 D(p->level++);
28718 if (p->error_indicator) {
28719 D(p->level--);
28720 return NULL;
28721 }
28722 void *_res = NULL;
28723 int _mark = p->mark;
28724 int _start_mark = p->mark;
28725 void **_children = PyMem_Malloc(sizeof(void *));
28726 if (!_children) {
28727 p->error_indicator = 1;
28728 PyErr_NoMemory();
28729 D(p->level--);
28730 return NULL;
28731 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028732 Py_ssize_t _children_capacity = 1;
28733 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028734 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028735 if (p->error_indicator) {
28736 D(p->level--);
28737 return NULL;
28738 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028739 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
28740 Token * _literal;
28741 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028742 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028743 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28744 &&
28745 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028746 )
28747 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028748 _res = elem;
28749 if (_res == NULL && PyErr_Occurred()) {
28750 p->error_indicator = 1;
28751 PyMem_Free(_children);
28752 D(p->level--);
28753 return NULL;
28754 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028755 if (_n == _children_capacity) {
28756 _children_capacity *= 2;
28757 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28758 if (!_new_children) {
28759 p->error_indicator = 1;
28760 PyErr_NoMemory();
28761 D(p->level--);
28762 return NULL;
28763 }
28764 _children = _new_children;
28765 }
28766 _children[_n++] = _res;
28767 _mark = p->mark;
28768 }
28769 p->mark = _mark;
28770 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028772 }
28773 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28774 if (!_seq) {
28775 PyMem_Free(_children);
28776 p->error_indicator = 1;
28777 PyErr_NoMemory();
28778 D(p->level--);
28779 return NULL;
28780 }
28781 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28782 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028783 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028784 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028785 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028786}
28787
Brandt Bucher145bf262021-02-26 14:51:55 -080028788// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028789static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028790_gather_127_rule(Parser *p)
28791{
28792 D(p->level++);
28793 if (p->error_indicator) {
28794 D(p->level--);
28795 return NULL;
28796 }
28797 asdl_seq * _res = NULL;
28798 int _mark = p->mark;
28799 { // kwarg_or_double_starred _loop0_128
28800 if (p->error_indicator) {
28801 D(p->level--);
28802 return NULL;
28803 }
28804 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28805 KeywordOrStarred* elem;
28806 asdl_seq * seq;
28807 if (
28808 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28809 &&
28810 (seq = _loop0_128_rule(p)) // _loop0_128
28811 )
28812 {
28813 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28814 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28815 goto done;
28816 }
28817 p->mark = _mark;
28818 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
28819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28820 }
28821 _res = NULL;
28822 done:
28823 D(p->level--);
28824 return _res;
28825}
28826
28827// _loop0_130: ',' kwarg_or_starred
28828static asdl_seq *
28829_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028830{
28831 D(p->level++);
28832 if (p->error_indicator) {
28833 D(p->level--);
28834 return NULL;
28835 }
28836 void *_res = NULL;
28837 int _mark = p->mark;
28838 int _start_mark = p->mark;
28839 void **_children = PyMem_Malloc(sizeof(void *));
28840 if (!_children) {
28841 p->error_indicator = 1;
28842 PyErr_NoMemory();
28843 D(p->level--);
28844 return NULL;
28845 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028846 Py_ssize_t _children_capacity = 1;
28847 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028848 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028849 if (p->error_indicator) {
28850 D(p->level--);
28851 return NULL;
28852 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028853 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
28854 Token * _literal;
28855 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028856 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028857 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28858 &&
28859 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028860 )
28861 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028862 _res = elem;
28863 if (_res == NULL && PyErr_Occurred()) {
28864 p->error_indicator = 1;
28865 PyMem_Free(_children);
28866 D(p->level--);
28867 return NULL;
28868 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028869 if (_n == _children_capacity) {
28870 _children_capacity *= 2;
28871 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28872 if (!_new_children) {
28873 p->error_indicator = 1;
28874 PyErr_NoMemory();
28875 D(p->level--);
28876 return NULL;
28877 }
28878 _children = _new_children;
28879 }
28880 _children[_n++] = _res;
28881 _mark = p->mark;
28882 }
28883 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028884 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
28885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028886 }
28887 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28888 if (!_seq) {
28889 PyMem_Free(_children);
28890 p->error_indicator = 1;
28891 PyErr_NoMemory();
28892 D(p->level--);
28893 return NULL;
28894 }
28895 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28896 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028897 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028898 D(p->level--);
28899 return _seq;
28900}
28901
Brandt Bucher145bf262021-02-26 14:51:55 -080028902// _gather_129: kwarg_or_starred _loop0_130
28903static asdl_seq *
28904_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028905{
28906 D(p->level++);
28907 if (p->error_indicator) {
28908 D(p->level--);
28909 return NULL;
28910 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028911 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028912 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028913 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028914 if (p->error_indicator) {
28915 D(p->level--);
28916 return NULL;
28917 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028918 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28919 KeywordOrStarred* elem;
28920 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028921 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028922 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
28923 &&
28924 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028925 )
28926 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028927 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28928 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028929 goto done;
28930 }
28931 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028932 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
28933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028934 }
28935 _res = NULL;
28936 done:
28937 D(p->level--);
28938 return _res;
28939}
28940
Brandt Bucher145bf262021-02-26 14:51:55 -080028941// _loop0_132: ',' kwarg_or_double_starred
28942static asdl_seq *
28943_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028944{
28945 D(p->level++);
28946 if (p->error_indicator) {
28947 D(p->level--);
28948 return NULL;
28949 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028950 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028951 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028952 int _start_mark = p->mark;
28953 void **_children = PyMem_Malloc(sizeof(void *));
28954 if (!_children) {
28955 p->error_indicator = 1;
28956 PyErr_NoMemory();
28957 D(p->level--);
28958 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028959 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028960 Py_ssize_t _children_capacity = 1;
28961 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028962 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028963 if (p->error_indicator) {
28964 D(p->level--);
28965 return NULL;
28966 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028967 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028968 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028969 KeywordOrStarred* elem;
28970 while (
28971 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28972 &&
28973 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028974 )
28975 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028976 _res = elem;
28977 if (_res == NULL && PyErr_Occurred()) {
28978 p->error_indicator = 1;
28979 PyMem_Free(_children);
28980 D(p->level--);
28981 return NULL;
28982 }
28983 if (_n == _children_capacity) {
28984 _children_capacity *= 2;
28985 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28986 if (!_new_children) {
28987 p->error_indicator = 1;
28988 PyErr_NoMemory();
28989 D(p->level--);
28990 return NULL;
28991 }
28992 _children = _new_children;
28993 }
28994 _children[_n++] = _res;
28995 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028996 }
28997 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028998 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
28999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029000 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029001 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29002 if (!_seq) {
29003 PyMem_Free(_children);
29004 p->error_indicator = 1;
29005 PyErr_NoMemory();
29006 D(p->level--);
29007 return NULL;
29008 }
29009 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29010 PyMem_Free(_children);
29011 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
29012 D(p->level--);
29013 return _seq;
29014}
29015
29016// _gather_131: kwarg_or_double_starred _loop0_132
29017static asdl_seq *
29018_gather_131_rule(Parser *p)
29019{
29020 D(p->level++);
29021 if (p->error_indicator) {
29022 D(p->level--);
29023 return NULL;
29024 }
29025 asdl_seq * _res = NULL;
29026 int _mark = p->mark;
29027 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029028 if (p->error_indicator) {
29029 D(p->level--);
29030 return NULL;
29031 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029032 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
29033 KeywordOrStarred* elem;
29034 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029035 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029036 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29037 &&
29038 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029039 )
29040 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029041 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
29042 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029043 goto done;
29044 }
29045 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029046 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
29047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029048 }
29049 _res = NULL;
29050 done:
29051 D(p->level--);
29052 return _res;
29053}
29054
Brandt Bucher145bf262021-02-26 14:51:55 -080029055// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029056static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029057_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029058{
29059 D(p->level++);
29060 if (p->error_indicator) {
29061 D(p->level--);
29062 return NULL;
29063 }
29064 void *_res = NULL;
29065 int _mark = p->mark;
29066 int _start_mark = p->mark;
29067 void **_children = PyMem_Malloc(sizeof(void *));
29068 if (!_children) {
29069 p->error_indicator = 1;
29070 PyErr_NoMemory();
29071 D(p->level--);
29072 return NULL;
29073 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029074 Py_ssize_t _children_capacity = 1;
29075 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029076 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029077 if (p->error_indicator) {
29078 D(p->level--);
29079 return NULL;
29080 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029081 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010029082 void *_tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029083 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010029084 (_tmp_188_var = _tmp_188_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029085 )
29086 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010029087 _res = _tmp_188_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029088 if (_n == _children_capacity) {
29089 _children_capacity *= 2;
29090 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29091 if (!_new_children) {
29092 p->error_indicator = 1;
29093 PyErr_NoMemory();
29094 D(p->level--);
29095 return NULL;
29096 }
29097 _children = _new_children;
29098 }
29099 _children[_n++] = _res;
29100 _mark = p->mark;
29101 }
29102 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029103 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029105 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029106 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029107 if (!_seq) {
29108 PyMem_Free(_children);
29109 p->error_indicator = 1;
29110 PyErr_NoMemory();
29111 D(p->level--);
29112 return NULL;
29113 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029114 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029115 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000029116 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029117 D(p->level--);
29118 return _seq;
29119}
29120
Brandt Bucher145bf262021-02-26 14:51:55 -080029121// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029122static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029123_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029124{
29125 D(p->level++);
29126 if (p->error_indicator) {
29127 D(p->level--);
29128 return NULL;
29129 }
29130 void *_res = NULL;
29131 int _mark = p->mark;
29132 int _start_mark = p->mark;
29133 void **_children = PyMem_Malloc(sizeof(void *));
29134 if (!_children) {
29135 p->error_indicator = 1;
29136 PyErr_NoMemory();
29137 D(p->level--);
29138 return NULL;
29139 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029140 Py_ssize_t _children_capacity = 1;
29141 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029142 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029143 if (p->error_indicator) {
29144 D(p->level--);
29145 return NULL;
29146 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029147 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
29148 Token * _literal;
29149 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029150 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029151 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29152 &&
29153 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029154 )
29155 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029156 _res = elem;
29157 if (_res == NULL && PyErr_Occurred()) {
29158 p->error_indicator = 1;
29159 PyMem_Free(_children);
29160 D(p->level--);
29161 return NULL;
29162 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029163 if (_n == _children_capacity) {
29164 _children_capacity *= 2;
29165 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29166 if (!_new_children) {
29167 p->error_indicator = 1;
29168 PyErr_NoMemory();
29169 D(p->level--);
29170 return NULL;
29171 }
29172 _children = _new_children;
29173 }
29174 _children[_n++] = _res;
29175 _mark = p->mark;
29176 }
29177 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029178 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029180 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029181 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029182 if (!_seq) {
29183 PyMem_Free(_children);
29184 p->error_indicator = 1;
29185 PyErr_NoMemory();
29186 D(p->level--);
29187 return NULL;
29188 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029189 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029190 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000029191 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029192 D(p->level--);
29193 return _seq;
29194}
29195
Brandt Bucher145bf262021-02-26 14:51:55 -080029196// _gather_134: star_target _loop0_135
29197static asdl_seq *
29198_gather_134_rule(Parser *p)
29199{
29200 D(p->level++);
29201 if (p->error_indicator) {
29202 D(p->level--);
29203 return NULL;
29204 }
29205 asdl_seq * _res = NULL;
29206 int _mark = p->mark;
29207 { // star_target _loop0_135
29208 if (p->error_indicator) {
29209 D(p->level--);
29210 return NULL;
29211 }
29212 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
29213 expr_ty elem;
29214 asdl_seq * seq;
29215 if (
29216 (elem = star_target_rule(p)) // star_target
29217 &&
29218 (seq = _loop0_135_rule(p)) // _loop0_135
29219 )
29220 {
29221 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
29222 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29223 goto done;
29224 }
29225 p->mark = _mark;
29226 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
29227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
29228 }
29229 _res = NULL;
29230 done:
29231 D(p->level--);
29232 return _res;
29233}
29234
29235// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029236static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029237_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029238{
29239 D(p->level++);
29240 if (p->error_indicator) {
29241 D(p->level--);
29242 return NULL;
29243 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029244 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029245 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029246 int _start_mark = p->mark;
29247 void **_children = PyMem_Malloc(sizeof(void *));
29248 if (!_children) {
29249 p->error_indicator = 1;
29250 PyErr_NoMemory();
29251 D(p->level--);
29252 return NULL;
29253 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029254 Py_ssize_t _children_capacity = 1;
29255 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029256 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029257 if (p->error_indicator) {
29258 D(p->level--);
29259 return NULL;
29260 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029261 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010029262 void *_tmp_189_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029263 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010029264 (_tmp_189_var = _tmp_189_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029265 )
29266 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010029267 _res = _tmp_189_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029268 if (_n == _children_capacity) {
29269 _children_capacity *= 2;
29270 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29271 if (!_new_children) {
29272 p->error_indicator = 1;
29273 PyErr_NoMemory();
29274 D(p->level--);
29275 return NULL;
29276 }
29277 _children = _new_children;
29278 }
29279 _children[_n++] = _res;
29280 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029281 }
29282 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029283 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029285 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029286 if (_n == 0 || p->error_indicator) {
29287 PyMem_Free(_children);
29288 D(p->level--);
29289 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029290 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029291 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29292 if (!_seq) {
29293 PyMem_Free(_children);
29294 p->error_indicator = 1;
29295 PyErr_NoMemory();
29296 D(p->level--);
29297 return NULL;
29298 }
29299 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29300 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000029301 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029302 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029303 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029304}
29305
Brandt Bucher145bf262021-02-26 14:51:55 -080029306// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029307static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029308_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029309{
29310 D(p->level++);
29311 if (p->error_indicator) {
29312 D(p->level--);
29313 return NULL;
29314 }
29315 void * _res = NULL;
29316 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029317 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029318 if (p->error_indicator) {
29319 D(p->level--);
29320 return NULL;
29321 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029322 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
29323 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029324 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029325 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029326 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029327 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029328 )
29329 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029330 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
29331 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029332 goto done;
29333 }
29334 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029335 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029337 }
29338 _res = NULL;
29339 done:
29340 D(p->level--);
29341 return _res;
29342}
29343
Brandt Bucher145bf262021-02-26 14:51:55 -080029344// _loop0_139: ',' del_target
29345static asdl_seq *
29346_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029347{
29348 D(p->level++);
29349 if (p->error_indicator) {
29350 D(p->level--);
29351 return NULL;
29352 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029353 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029354 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029355 int _start_mark = p->mark;
29356 void **_children = PyMem_Malloc(sizeof(void *));
29357 if (!_children) {
29358 p->error_indicator = 1;
29359 PyErr_NoMemory();
29360 D(p->level--);
29361 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029362 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029363 Py_ssize_t _children_capacity = 1;
29364 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029365 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029366 if (p->error_indicator) {
29367 D(p->level--);
29368 return NULL;
29369 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029370 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029371 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029372 expr_ty elem;
29373 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029374 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29375 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029376 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029377 )
29378 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029379 _res = elem;
29380 if (_res == NULL && PyErr_Occurred()) {
29381 p->error_indicator = 1;
29382 PyMem_Free(_children);
29383 D(p->level--);
29384 return NULL;
29385 }
29386 if (_n == _children_capacity) {
29387 _children_capacity *= 2;
29388 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29389 if (!_new_children) {
29390 p->error_indicator = 1;
29391 PyErr_NoMemory();
29392 D(p->level--);
29393 return NULL;
29394 }
29395 _children = _new_children;
29396 }
29397 _children[_n++] = _res;
29398 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029399 }
29400 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029401 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
29402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029403 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029404 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29405 if (!_seq) {
29406 PyMem_Free(_children);
29407 p->error_indicator = 1;
29408 PyErr_NoMemory();
29409 D(p->level--);
29410 return NULL;
29411 }
29412 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29413 PyMem_Free(_children);
29414 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029415 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029416 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029417}
29418
Brandt Bucher145bf262021-02-26 14:51:55 -080029419// _gather_138: del_target _loop0_139
29420static asdl_seq *
29421_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029422{
29423 D(p->level++);
29424 if (p->error_indicator) {
29425 D(p->level--);
29426 return NULL;
29427 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029428 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029429 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029430 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000029431 if (p->error_indicator) {
29432 D(p->level--);
29433 return NULL;
29434 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029435 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
29436 expr_ty elem;
29437 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029438 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029439 (elem = del_target_rule(p)) // del_target
29440 &&
29441 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000029442 )
29443 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029444 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
29445 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029446 goto done;
29447 }
29448 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029449 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
29450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029451 }
29452 _res = NULL;
29453 done:
29454 D(p->level--);
29455 return _res;
29456}
29457
Brandt Bucher145bf262021-02-26 14:51:55 -080029458// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029459static asdl_seq *
29460_loop0_141_rule(Parser *p)
29461{
29462 D(p->level++);
29463 if (p->error_indicator) {
29464 D(p->level--);
29465 return NULL;
29466 }
29467 void *_res = NULL;
29468 int _mark = p->mark;
29469 int _start_mark = p->mark;
29470 void **_children = PyMem_Malloc(sizeof(void *));
29471 if (!_children) {
29472 p->error_indicator = 1;
29473 PyErr_NoMemory();
29474 D(p->level--);
29475 return NULL;
29476 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029477 Py_ssize_t _children_capacity = 1;
29478 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029479 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029480 if (p->error_indicator) {
29481 D(p->level--);
29482 return NULL;
29483 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029484 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029485 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029486 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029487 while (
29488 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29489 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029490 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029491 )
29492 {
29493 _res = elem;
29494 if (_res == NULL && PyErr_Occurred()) {
29495 p->error_indicator = 1;
29496 PyMem_Free(_children);
29497 D(p->level--);
29498 return NULL;
29499 }
29500 if (_n == _children_capacity) {
29501 _children_capacity *= 2;
29502 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29503 if (!_new_children) {
29504 p->error_indicator = 1;
29505 PyErr_NoMemory();
29506 D(p->level--);
29507 return NULL;
29508 }
29509 _children = _new_children;
29510 }
29511 _children[_n++] = _res;
29512 _mark = p->mark;
29513 }
29514 p->mark = _mark;
29515 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029517 }
29518 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29519 if (!_seq) {
29520 PyMem_Free(_children);
29521 p->error_indicator = 1;
29522 PyErr_NoMemory();
29523 D(p->level--);
29524 return NULL;
29525 }
29526 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29527 PyMem_Free(_children);
29528 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
29529 D(p->level--);
29530 return _seq;
29531}
29532
Brandt Bucher145bf262021-02-26 14:51:55 -080029533// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000029534static asdl_seq *
29535_gather_140_rule(Parser *p)
29536{
29537 D(p->level++);
29538 if (p->error_indicator) {
29539 D(p->level--);
29540 return NULL;
29541 }
29542 asdl_seq * _res = NULL;
29543 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029544 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000029545 if (p->error_indicator) {
29546 D(p->level--);
29547 return NULL;
29548 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029549 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
29550 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029551 asdl_seq * seq;
29552 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029553 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029554 &&
29555 (seq = _loop0_141_rule(p)) // _loop0_141
29556 )
29557 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029558 D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029559 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29560 goto done;
29561 }
29562 p->mark = _mark;
29563 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029565 }
29566 _res = NULL;
29567 done:
29568 D(p->level--);
29569 return _res;
29570}
29571
Brandt Bucher145bf262021-02-26 14:51:55 -080029572// _tmp_142: args | expression for_if_clauses
29573static void *
29574_tmp_142_rule(Parser *p)
29575{
29576 D(p->level++);
29577 if (p->error_indicator) {
29578 D(p->level--);
29579 return NULL;
29580 }
29581 void * _res = NULL;
29582 int _mark = p->mark;
29583 { // args
29584 if (p->error_indicator) {
29585 D(p->level--);
29586 return NULL;
29587 }
29588 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
29589 expr_ty args_var;
29590 if (
29591 (args_var = args_rule(p)) // args
29592 )
29593 {
29594 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
29595 _res = args_var;
29596 goto done;
29597 }
29598 p->mark = _mark;
29599 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29601 }
29602 { // expression for_if_clauses
29603 if (p->error_indicator) {
29604 D(p->level--);
29605 return NULL;
29606 }
29607 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
29608 expr_ty expression_var;
29609 asdl_comprehension_seq* for_if_clauses_var;
29610 if (
29611 (expression_var = expression_rule(p)) // expression
29612 &&
29613 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29614 )
29615 {
29616 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
29617 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29618 goto done;
29619 }
29620 p->mark = _mark;
29621 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29623 }
29624 _res = NULL;
29625 done:
29626 D(p->level--);
29627 return _res;
29628}
29629
Pablo Galindob2802482021-04-15 21:38:45 +010029630// _tmp_143: NAME STRING | SOFT_KEYWORD
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029631static void *
29632_tmp_143_rule(Parser *p)
29633{
29634 D(p->level++);
29635 if (p->error_indicator) {
29636 D(p->level--);
29637 return NULL;
29638 }
29639 void * _res = NULL;
29640 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029641 { // NAME STRING
29642 if (p->error_indicator) {
29643 D(p->level--);
29644 return NULL;
29645 }
29646 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
29647 expr_ty name_var;
29648 expr_ty string_var;
29649 if (
29650 (name_var = _PyPegen_name_token(p)) // NAME
29651 &&
29652 (string_var = _PyPegen_string_token(p)) // STRING
29653 )
29654 {
29655 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
29656 _res = _PyPegen_dummy_name(p, name_var, string_var);
29657 goto done;
29658 }
29659 p->mark = _mark;
29660 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
29661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29662 }
29663 { // SOFT_KEYWORD
29664 if (p->error_indicator) {
29665 D(p->level--);
29666 return NULL;
29667 }
29668 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
29669 expr_ty soft_keyword_var;
29670 if (
29671 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29672 )
29673 {
29674 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
29675 _res = soft_keyword_var;
29676 goto done;
29677 }
29678 p->mark = _mark;
29679 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
29680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29681 }
29682 _res = NULL;
29683 done:
29684 D(p->level--);
29685 return _res;
29686}
29687
29688// _tmp_144: '=' | ':=' | ','
29689static void *
29690_tmp_144_rule(Parser *p)
29691{
29692 D(p->level++);
29693 if (p->error_indicator) {
29694 D(p->level--);
29695 return NULL;
29696 }
29697 void * _res = NULL;
29698 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029699 { // '='
29700 if (p->error_indicator) {
29701 D(p->level--);
29702 return NULL;
29703 }
Pablo Galindob2802482021-04-15 21:38:45 +010029704 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029705 Token * _literal;
29706 if (
29707 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29708 )
29709 {
Pablo Galindob2802482021-04-15 21:38:45 +010029710 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029711 _res = _literal;
29712 goto done;
29713 }
29714 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029715 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29717 }
29718 { // ':='
29719 if (p->error_indicator) {
29720 D(p->level--);
29721 return NULL;
29722 }
Pablo Galindob2802482021-04-15 21:38:45 +010029723 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029724 Token * _literal;
29725 if (
29726 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29727 )
29728 {
Pablo Galindob2802482021-04-15 21:38:45 +010029729 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029730 _res = _literal;
29731 goto done;
29732 }
29733 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029734 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29736 }
29737 { // ','
29738 if (p->error_indicator) {
29739 D(p->level--);
29740 return NULL;
29741 }
Pablo Galindob2802482021-04-15 21:38:45 +010029742 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029743 Token * _literal;
29744 if (
29745 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29746 )
29747 {
Pablo Galindob2802482021-04-15 21:38:45 +010029748 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029749 _res = _literal;
29750 goto done;
29751 }
29752 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029753 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29755 }
29756 _res = NULL;
29757 done:
29758 D(p->level--);
29759 return _res;
29760}
29761
Pablo Galindob2802482021-04-15 21:38:45 +010029762// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029763static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029764_tmp_145_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029765{
29766 D(p->level++);
29767 if (p->error_indicator) {
29768 D(p->level--);
29769 return NULL;
29770 }
29771 void * _res = NULL;
29772 int _mark = p->mark;
29773 { // list
29774 if (p->error_indicator) {
29775 D(p->level--);
29776 return NULL;
29777 }
Pablo Galindob2802482021-04-15 21:38:45 +010029778 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029779 expr_ty list_var;
29780 if (
29781 (list_var = list_rule(p)) // list
29782 )
29783 {
Pablo Galindob2802482021-04-15 21:38:45 +010029784 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029785 _res = list_var;
29786 goto done;
29787 }
29788 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029789 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29791 }
29792 { // tuple
29793 if (p->error_indicator) {
29794 D(p->level--);
29795 return NULL;
29796 }
Pablo Galindob2802482021-04-15 21:38:45 +010029797 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029798 expr_ty tuple_var;
29799 if (
29800 (tuple_var = tuple_rule(p)) // tuple
29801 )
29802 {
Pablo Galindob2802482021-04-15 21:38:45 +010029803 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029804 _res = tuple_var;
29805 goto done;
29806 }
29807 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029808 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29810 }
29811 { // genexp
29812 if (p->error_indicator) {
29813 D(p->level--);
29814 return NULL;
29815 }
Pablo Galindob2802482021-04-15 21:38:45 +010029816 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029817 expr_ty genexp_var;
29818 if (
29819 (genexp_var = genexp_rule(p)) // genexp
29820 )
29821 {
Pablo Galindob2802482021-04-15 21:38:45 +010029822 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029823 _res = genexp_var;
29824 goto done;
29825 }
29826 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029827 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029828 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29829 }
29830 { // 'True'
29831 if (p->error_indicator) {
29832 D(p->level--);
29833 return NULL;
29834 }
Pablo Galindob2802482021-04-15 21:38:45 +010029835 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029836 Token * _keyword;
29837 if (
29838 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29839 )
29840 {
Pablo Galindob2802482021-04-15 21:38:45 +010029841 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029842 _res = _keyword;
29843 goto done;
29844 }
29845 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029846 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29848 }
29849 { // 'None'
29850 if (p->error_indicator) {
29851 D(p->level--);
29852 return NULL;
29853 }
Pablo Galindob2802482021-04-15 21:38:45 +010029854 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029855 Token * _keyword;
29856 if (
29857 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29858 )
29859 {
Pablo Galindob2802482021-04-15 21:38:45 +010029860 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029861 _res = _keyword;
29862 goto done;
29863 }
29864 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029865 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29867 }
29868 { // 'False'
29869 if (p->error_indicator) {
29870 D(p->level--);
29871 return NULL;
29872 }
Pablo Galindob2802482021-04-15 21:38:45 +010029873 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029874 Token * _keyword;
29875 if (
29876 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29877 )
29878 {
Pablo Galindob2802482021-04-15 21:38:45 +010029879 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029880 _res = _keyword;
29881 goto done;
29882 }
29883 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029884 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29886 }
29887 _res = NULL;
29888 done:
29889 D(p->level--);
29890 return _res;
29891}
29892
Pablo Galindob2802482021-04-15 21:38:45 +010029893// _tmp_146: '=' | ':=' | ','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029894static void *
Pablo Galindob2802482021-04-15 21:38:45 +010029895_tmp_146_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029896{
29897 D(p->level++);
29898 if (p->error_indicator) {
29899 D(p->level--);
29900 return NULL;
29901 }
29902 void * _res = NULL;
29903 int _mark = p->mark;
29904 { // '='
29905 if (p->error_indicator) {
29906 D(p->level--);
29907 return NULL;
29908 }
Pablo Galindob2802482021-04-15 21:38:45 +010029909 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029910 Token * _literal;
29911 if (
29912 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29913 )
29914 {
Pablo Galindob2802482021-04-15 21:38:45 +010029915 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029916 _res = _literal;
29917 goto done;
29918 }
29919 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029920 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29922 }
29923 { // ':='
29924 if (p->error_indicator) {
29925 D(p->level--);
29926 return NULL;
29927 }
Pablo Galindob2802482021-04-15 21:38:45 +010029928 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029929 Token * _literal;
29930 if (
29931 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29932 )
29933 {
Pablo Galindob2802482021-04-15 21:38:45 +010029934 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029935 _res = _literal;
29936 goto done;
29937 }
29938 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029939 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29941 }
29942 { // ','
29943 if (p->error_indicator) {
29944 D(p->level--);
29945 return NULL;
29946 }
Pablo Galindob2802482021-04-15 21:38:45 +010029947 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029948 Token * _literal;
29949 if (
29950 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29951 )
29952 {
Pablo Galindob2802482021-04-15 21:38:45 +010029953 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029954 _res = _literal;
29955 goto done;
29956 }
29957 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029958 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29960 }
29961 _res = NULL;
29962 done:
29963 D(p->level--);
29964 return _res;
29965}
29966
Pablo Galindob2802482021-04-15 21:38:45 +010029967// _loop0_147: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029968static asdl_seq *
Pablo Galindob2802482021-04-15 21:38:45 +010029969_loop0_147_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029970{
29971 D(p->level++);
29972 if (p->error_indicator) {
29973 D(p->level--);
29974 return NULL;
29975 }
29976 void *_res = NULL;
29977 int _mark = p->mark;
29978 int _start_mark = p->mark;
29979 void **_children = PyMem_Malloc(sizeof(void *));
29980 if (!_children) {
29981 p->error_indicator = 1;
29982 PyErr_NoMemory();
29983 D(p->level--);
29984 return NULL;
29985 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029986 Py_ssize_t _children_capacity = 1;
29987 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029988 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029989 if (p->error_indicator) {
29990 D(p->level--);
29991 return NULL;
29992 }
Pablo Galindob2802482021-04-15 21:38:45 +010029993 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 -080029994 asdl_expr_seq* star_named_expressions_var;
29995 while (
29996 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
29997 )
29998 {
29999 _res = star_named_expressions_var;
30000 if (_n == _children_capacity) {
30001 _children_capacity *= 2;
30002 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30003 if (!_new_children) {
30004 p->error_indicator = 1;
30005 PyErr_NoMemory();
30006 D(p->level--);
30007 return NULL;
30008 }
30009 _children = _new_children;
30010 }
30011 _children[_n++] = _res;
30012 _mark = p->mark;
30013 }
30014 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030015 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010030016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030017 }
30018 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30019 if (!_seq) {
30020 PyMem_Free(_children);
30021 p->error_indicator = 1;
30022 PyErr_NoMemory();
30023 D(p->level--);
30024 return NULL;
30025 }
30026 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30027 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030028 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030029 D(p->level--);
30030 return _seq;
30031}
30032
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030033// _loop0_148: (star_targets '=')
Brandt Bucher145bf262021-02-26 14:51:55 -080030034static asdl_seq *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030035_loop0_148_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030036{
30037 D(p->level++);
30038 if (p->error_indicator) {
30039 D(p->level--);
30040 return NULL;
30041 }
30042 void *_res = NULL;
30043 int _mark = p->mark;
30044 int _start_mark = p->mark;
30045 void **_children = PyMem_Malloc(sizeof(void *));
30046 if (!_children) {
30047 p->error_indicator = 1;
30048 PyErr_NoMemory();
30049 D(p->level--);
30050 return NULL;
30051 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030052 Py_ssize_t _children_capacity = 1;
30053 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030054 { // (star_targets '=')
30055 if (p->error_indicator) {
30056 D(p->level--);
30057 return NULL;
30058 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030059 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030060 void *_tmp_190_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080030061 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030062 (_tmp_190_var = _tmp_190_rule(p)) // star_targets '='
Brandt Bucher145bf262021-02-26 14:51:55 -080030063 )
30064 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030065 _res = _tmp_190_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080030066 if (_n == _children_capacity) {
30067 _children_capacity *= 2;
30068 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30069 if (!_new_children) {
30070 p->error_indicator = 1;
30071 PyErr_NoMemory();
30072 D(p->level--);
30073 return NULL;
30074 }
30075 _children = _new_children;
30076 }
30077 _children[_n++] = _res;
30078 _mark = p->mark;
30079 }
30080 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030081 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30083 }
30084 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30085 if (!_seq) {
30086 PyMem_Free(_children);
30087 p->error_indicator = 1;
30088 PyErr_NoMemory();
30089 D(p->level--);
30090 return NULL;
30091 }
30092 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30093 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030094 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030095 D(p->level--);
30096 return _seq;
30097}
30098
Pablo Galindob2802482021-04-15 21:38:45 +010030099// _loop0_149: (star_targets '=')
30100static asdl_seq *
30101_loop0_149_rule(Parser *p)
30102{
30103 D(p->level++);
30104 if (p->error_indicator) {
30105 D(p->level--);
30106 return NULL;
30107 }
30108 void *_res = NULL;
30109 int _mark = p->mark;
30110 int _start_mark = p->mark;
30111 void **_children = PyMem_Malloc(sizeof(void *));
30112 if (!_children) {
30113 p->error_indicator = 1;
30114 PyErr_NoMemory();
30115 D(p->level--);
30116 return NULL;
30117 }
30118 Py_ssize_t _children_capacity = 1;
30119 Py_ssize_t _n = 0;
30120 { // (star_targets '=')
30121 if (p->error_indicator) {
30122 D(p->level--);
30123 return NULL;
30124 }
30125 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030126 void *_tmp_191_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030127 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030128 (_tmp_191_var = _tmp_191_rule(p)) // star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010030129 )
30130 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030131 _res = _tmp_191_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030132 if (_n == _children_capacity) {
30133 _children_capacity *= 2;
30134 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30135 if (!_new_children) {
30136 p->error_indicator = 1;
30137 PyErr_NoMemory();
30138 D(p->level--);
30139 return NULL;
30140 }
30141 _children = _new_children;
30142 }
30143 _children[_n++] = _res;
30144 _mark = p->mark;
30145 }
30146 p->mark = _mark;
30147 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
30148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30149 }
30150 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30151 if (!_seq) {
30152 PyMem_Free(_children);
30153 p->error_indicator = 1;
30154 PyErr_NoMemory();
30155 D(p->level--);
30156 return NULL;
30157 }
30158 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30159 PyMem_Free(_children);
30160 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30161 D(p->level--);
30162 return _seq;
30163}
30164
30165// _tmp_150: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030166static void *
Pablo Galindob2802482021-04-15 21:38:45 +010030167_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030168{
30169 D(p->level++);
30170 if (p->error_indicator) {
30171 D(p->level--);
30172 return NULL;
30173 }
30174 void * _res = NULL;
30175 int _mark = p->mark;
30176 { // yield_expr
30177 if (p->error_indicator) {
30178 D(p->level--);
30179 return NULL;
30180 }
Pablo Galindob2802482021-04-15 21:38:45 +010030181 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030182 expr_ty yield_expr_var;
30183 if (
30184 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30185 )
30186 {
Pablo Galindob2802482021-04-15 21:38:45 +010030187 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 -080030188 _res = yield_expr_var;
30189 goto done;
30190 }
30191 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030192 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30194 }
30195 { // star_expressions
30196 if (p->error_indicator) {
30197 D(p->level--);
30198 return NULL;
30199 }
Pablo Galindob2802482021-04-15 21:38:45 +010030200 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030201 expr_ty star_expressions_var;
30202 if (
30203 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30204 )
30205 {
Pablo Galindob2802482021-04-15 21:38:45 +010030206 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 -080030207 _res = star_expressions_var;
30208 goto done;
30209 }
30210 p->mark = _mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030211 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30213 }
30214 _res = NULL;
30215 done:
30216 D(p->level--);
30217 return _res;
30218}
30219
Pablo Galindob2802482021-04-15 21:38:45 +010030220// _tmp_151: '[' | '(' | '{'
Brandt Bucher145bf262021-02-26 14:51:55 -080030221static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030222_tmp_151_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030223{
30224 D(p->level++);
30225 if (p->error_indicator) {
30226 D(p->level--);
30227 return NULL;
30228 }
30229 void * _res = NULL;
30230 int _mark = p->mark;
30231 { // '['
30232 if (p->error_indicator) {
30233 D(p->level--);
30234 return NULL;
30235 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030236 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030237 Token * _literal;
30238 if (
30239 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30240 )
30241 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030242 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030243 _res = _literal;
30244 goto done;
30245 }
30246 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030247 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30249 }
Pablo Galindob2802482021-04-15 21:38:45 +010030250 { // '('
30251 if (p->error_indicator) {
30252 D(p->level--);
30253 return NULL;
30254 }
30255 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30256 Token * _literal;
30257 if (
30258 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30259 )
30260 {
30261 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30262 _res = _literal;
30263 goto done;
30264 }
30265 p->mark = _mark;
30266 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30268 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030269 { // '{'
30270 if (p->error_indicator) {
30271 D(p->level--);
30272 return NULL;
30273 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030274 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030275 Token * _literal;
30276 if (
30277 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30278 )
30279 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030280 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030281 _res = _literal;
30282 goto done;
30283 }
30284 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030285 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30287 }
30288 _res = NULL;
30289 done:
30290 D(p->level--);
30291 return _res;
30292}
30293
Pablo Galindob2802482021-04-15 21:38:45 +010030294// _tmp_152: '[' | '{'
30295static void *
30296_tmp_152_rule(Parser *p)
30297{
30298 D(p->level++);
30299 if (p->error_indicator) {
30300 D(p->level--);
30301 return NULL;
30302 }
30303 void * _res = NULL;
30304 int _mark = p->mark;
30305 { // '['
30306 if (p->error_indicator) {
30307 D(p->level--);
30308 return NULL;
30309 }
30310 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30311 Token * _literal;
30312 if (
30313 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30314 )
30315 {
30316 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30317 _res = _literal;
30318 goto done;
30319 }
30320 p->mark = _mark;
30321 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30323 }
30324 { // '{'
30325 if (p->error_indicator) {
30326 D(p->level--);
30327 return NULL;
30328 }
30329 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30330 Token * _literal;
30331 if (
30332 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30333 )
30334 {
30335 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30336 _res = _literal;
30337 goto done;
30338 }
30339 p->mark = _mark;
30340 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30342 }
30343 _res = NULL;
30344 done:
30345 D(p->level--);
30346 return _res;
30347}
30348
Pablo Galindoa77aac42021-04-23 14:27:05 +010030349// _tmp_153: '[' | '{'
30350static void *
30351_tmp_153_rule(Parser *p)
30352{
30353 D(p->level++);
30354 if (p->error_indicator) {
30355 D(p->level--);
30356 return NULL;
30357 }
30358 void * _res = NULL;
30359 int _mark = p->mark;
30360 { // '['
30361 if (p->error_indicator) {
30362 D(p->level--);
30363 return NULL;
30364 }
30365 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30366 Token * _literal;
30367 if (
30368 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30369 )
30370 {
30371 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30372 _res = _literal;
30373 goto done;
30374 }
30375 p->mark = _mark;
30376 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30378 }
30379 { // '{'
30380 if (p->error_indicator) {
30381 D(p->level--);
30382 return NULL;
30383 }
30384 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30385 Token * _literal;
30386 if (
30387 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30388 )
30389 {
30390 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30391 _res = _literal;
30392 goto done;
30393 }
30394 p->mark = _mark;
30395 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30397 }
30398 _res = NULL;
30399 done:
30400 D(p->level--);
30401 return _res;
30402}
30403
30404// _loop0_154: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030405static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030406_loop0_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030407{
30408 D(p->level++);
30409 if (p->error_indicator) {
30410 D(p->level--);
30411 return NULL;
30412 }
30413 void *_res = NULL;
30414 int _mark = p->mark;
30415 int _start_mark = p->mark;
30416 void **_children = PyMem_Malloc(sizeof(void *));
30417 if (!_children) {
30418 p->error_indicator = 1;
30419 PyErr_NoMemory();
30420 D(p->level--);
30421 return NULL;
30422 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030423 Py_ssize_t _children_capacity = 1;
30424 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030425 { // param_no_default
30426 if (p->error_indicator) {
30427 D(p->level--);
30428 return NULL;
30429 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030430 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 -080030431 arg_ty param_no_default_var;
30432 while (
30433 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30434 )
30435 {
30436 _res = param_no_default_var;
30437 if (_n == _children_capacity) {
30438 _children_capacity *= 2;
30439 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30440 if (!_new_children) {
30441 p->error_indicator = 1;
30442 PyErr_NoMemory();
30443 D(p->level--);
30444 return NULL;
30445 }
30446 _children = _new_children;
30447 }
30448 _children[_n++] = _res;
30449 _mark = p->mark;
30450 }
30451 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030452 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30454 }
30455 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30456 if (!_seq) {
30457 PyMem_Free(_children);
30458 p->error_indicator = 1;
30459 PyErr_NoMemory();
30460 D(p->level--);
30461 return NULL;
30462 }
30463 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30464 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030465 _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030466 D(p->level--);
30467 return _seq;
30468}
30469
Pablo Galindoa77aac42021-04-23 14:27:05 +010030470// _loop1_155: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030471static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030472_loop1_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030473{
30474 D(p->level++);
30475 if (p->error_indicator) {
30476 D(p->level--);
30477 return NULL;
30478 }
30479 void *_res = NULL;
30480 int _mark = p->mark;
30481 int _start_mark = p->mark;
30482 void **_children = PyMem_Malloc(sizeof(void *));
30483 if (!_children) {
30484 p->error_indicator = 1;
30485 PyErr_NoMemory();
30486 D(p->level--);
30487 return NULL;
30488 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030489 Py_ssize_t _children_capacity = 1;
30490 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030491 { // param_with_default
30492 if (p->error_indicator) {
30493 D(p->level--);
30494 return NULL;
30495 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030496 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 -080030497 NameDefaultPair* param_with_default_var;
30498 while (
30499 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30500 )
30501 {
30502 _res = param_with_default_var;
30503 if (_n == _children_capacity) {
30504 _children_capacity *= 2;
30505 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30506 if (!_new_children) {
30507 p->error_indicator = 1;
30508 PyErr_NoMemory();
30509 D(p->level--);
30510 return NULL;
30511 }
30512 _children = _new_children;
30513 }
30514 _children[_n++] = _res;
30515 _mark = p->mark;
30516 }
30517 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030518 D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30520 }
30521 if (_n == 0 || p->error_indicator) {
30522 PyMem_Free(_children);
30523 D(p->level--);
30524 return NULL;
30525 }
30526 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30527 if (!_seq) {
30528 PyMem_Free(_children);
30529 p->error_indicator = 1;
30530 PyErr_NoMemory();
30531 D(p->level--);
30532 return NULL;
30533 }
30534 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30535 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030536 _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030537 D(p->level--);
30538 return _seq;
30539}
30540
Pablo Galindoa77aac42021-04-23 14:27:05 +010030541// _loop0_156: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030542static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030543_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030544{
30545 D(p->level++);
30546 if (p->error_indicator) {
30547 D(p->level--);
30548 return NULL;
30549 }
30550 void *_res = NULL;
30551 int _mark = p->mark;
30552 int _start_mark = p->mark;
30553 void **_children = PyMem_Malloc(sizeof(void *));
30554 if (!_children) {
30555 p->error_indicator = 1;
30556 PyErr_NoMemory();
30557 D(p->level--);
30558 return NULL;
30559 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030560 Py_ssize_t _children_capacity = 1;
30561 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030562 { // lambda_param_no_default
30563 if (p->error_indicator) {
30564 D(p->level--);
30565 return NULL;
30566 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030567 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 -080030568 arg_ty lambda_param_no_default_var;
30569 while (
30570 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30571 )
30572 {
30573 _res = lambda_param_no_default_var;
30574 if (_n == _children_capacity) {
30575 _children_capacity *= 2;
30576 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30577 if (!_new_children) {
30578 p->error_indicator = 1;
30579 PyErr_NoMemory();
30580 D(p->level--);
30581 return NULL;
30582 }
30583 _children = _new_children;
30584 }
30585 _children[_n++] = _res;
30586 _mark = p->mark;
30587 }
30588 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030589 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030590 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30591 }
30592 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30593 if (!_seq) {
30594 PyMem_Free(_children);
30595 p->error_indicator = 1;
30596 PyErr_NoMemory();
30597 D(p->level--);
30598 return NULL;
30599 }
30600 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30601 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030602 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030603 D(p->level--);
30604 return _seq;
30605}
30606
Pablo Galindoa77aac42021-04-23 14:27:05 +010030607// _loop1_157: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030608static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030609_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030610{
30611 D(p->level++);
30612 if (p->error_indicator) {
30613 D(p->level--);
30614 return NULL;
30615 }
30616 void *_res = NULL;
30617 int _mark = p->mark;
30618 int _start_mark = p->mark;
30619 void **_children = PyMem_Malloc(sizeof(void *));
30620 if (!_children) {
30621 p->error_indicator = 1;
30622 PyErr_NoMemory();
30623 D(p->level--);
30624 return NULL;
30625 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030626 Py_ssize_t _children_capacity = 1;
30627 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030628 { // lambda_param_with_default
30629 if (p->error_indicator) {
30630 D(p->level--);
30631 return NULL;
30632 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030633 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 -080030634 NameDefaultPair* lambda_param_with_default_var;
30635 while (
30636 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30637 )
30638 {
30639 _res = lambda_param_with_default_var;
30640 if (_n == _children_capacity) {
30641 _children_capacity *= 2;
30642 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30643 if (!_new_children) {
30644 p->error_indicator = 1;
30645 PyErr_NoMemory();
30646 D(p->level--);
30647 return NULL;
30648 }
30649 _children = _new_children;
30650 }
30651 _children[_n++] = _res;
30652 _mark = p->mark;
30653 }
30654 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030655 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30657 }
30658 if (_n == 0 || p->error_indicator) {
30659 PyMem_Free(_children);
30660 D(p->level--);
30661 return NULL;
30662 }
30663 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30664 if (!_seq) {
30665 PyMem_Free(_children);
30666 p->error_indicator = 1;
30667 PyErr_NoMemory();
30668 D(p->level--);
30669 return NULL;
30670 }
30671 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30672 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030673 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030674 D(p->level--);
30675 return _seq;
30676}
30677
Pablo Galindoa77aac42021-04-23 14:27:05 +010030678// _tmp_158: ')' | ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080030679static void *
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030680_tmp_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030681{
30682 D(p->level++);
30683 if (p->error_indicator) {
30684 D(p->level--);
30685 return NULL;
30686 }
30687 void * _res = NULL;
30688 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030689 { // ')'
Brandt Bucher145bf262021-02-26 14:51:55 -080030690 if (p->error_indicator) {
30691 D(p->level--);
30692 return NULL;
30693 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030694 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030695 Token * _literal;
30696 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030697 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Brandt Bucher145bf262021-02-26 14:51:55 -080030698 )
30699 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030700 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030701 _res = _literal;
30702 goto done;
30703 }
30704 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030705 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010030706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030707 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030708 { // ',' (')' | '**')
Pablo Galindob2802482021-04-15 21:38:45 +010030709 if (p->error_indicator) {
30710 D(p->level--);
30711 return NULL;
30712 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030713 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindob2802482021-04-15 21:38:45 +010030714 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030715 void *_tmp_192_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030716 if (
30717 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30718 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010030719 (_tmp_192_var = _tmp_192_rule(p)) // ')' | '**'
Pablo Galindob2802482021-04-15 21:38:45 +010030720 )
30721 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030722 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010030723 _res = _PyPegen_dummy_name(p, _literal, _tmp_192_var);
Pablo Galindob2802482021-04-15 21:38:45 +010030724 goto done;
30725 }
30726 p->mark = _mark;
30727 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010030728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Pablo Galindob2802482021-04-15 21:38:45 +010030729 }
Brandt Bucher145bf262021-02-26 14:51:55 -080030730 _res = NULL;
30731 done:
30732 D(p->level--);
30733 return _res;
30734}
30735
Pablo Galindoa77aac42021-04-23 14:27:05 +010030736// _tmp_159: ':' | ',' (':' | '**')
Pablo Galindob2802482021-04-15 21:38:45 +010030737static void *
30738_tmp_159_rule(Parser *p)
30739{
30740 D(p->level++);
30741 if (p->error_indicator) {
30742 D(p->level--);
30743 return NULL;
30744 }
30745 void * _res = NULL;
30746 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010030747 { // ':'
30748 if (p->error_indicator) {
30749 D(p->level--);
30750 return NULL;
30751 }
30752 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30753 Token * _literal;
30754 if (
30755 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30756 )
30757 {
30758 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30759 _res = _literal;
30760 goto done;
30761 }
30762 p->mark = _mark;
30763 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30765 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030766 { // ',' (':' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080030767 if (p->error_indicator) {
30768 D(p->level--);
30769 return NULL;
30770 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030771 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030772 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030773 void *_tmp_193_var;
30774 if (
Pablo Galindo58fb1562021-02-02 19:54:22 +000030775 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30776 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010030777 (_tmp_193_var = _tmp_193_rule(p)) // ':' | '**'
Pablo Galindo58fb1562021-02-02 19:54:22 +000030778 )
30779 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030780 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30781 _res = _PyPegen_dummy_name(p, _literal, _tmp_193_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080030782 goto done;
30783 }
30784 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030785 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030787 }
30788 _res = NULL;
30789 done:
30790 D(p->level--);
30791 return _res;
30792}
30793
Pablo Galindoa77aac42021-04-23 14:27:05 +010030794// _tmp_160: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030795static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030796_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030797{
30798 D(p->level++);
30799 if (p->error_indicator) {
30800 D(p->level--);
30801 return NULL;
30802 }
30803 void * _res = NULL;
30804 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030805 { // ','
Pablo Galindo56c95df2021-04-21 15:28:21 +010030806 if (p->error_indicator) {
30807 D(p->level--);
30808 return NULL;
30809 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010030810 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30811 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030812 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030813 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo56c95df2021-04-21 15:28:21 +010030814 )
30815 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030816 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30817 _res = _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030818 goto done;
30819 }
30820 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030821 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30823 }
30824 { // ')'
30825 if (p->error_indicator) {
30826 D(p->level--);
30827 return NULL;
30828 }
30829 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
30830 Token * _literal;
30831 if (
30832 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30833 )
30834 {
30835 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
30836 _res = _literal;
30837 goto done;
30838 }
30839 p->mark = _mark;
30840 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
30842 }
30843 { // ':'
30844 if (p->error_indicator) {
30845 D(p->level--);
30846 return NULL;
30847 }
30848 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30849 Token * _literal;
30850 if (
30851 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30852 )
30853 {
30854 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30855 _res = _literal;
30856 goto done;
30857 }
30858 p->mark = _mark;
30859 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30861 }
30862 _res = NULL;
30863 done:
30864 D(p->level--);
30865 return _res;
30866}
30867
30868// _loop0_162: ',' (expression ['as' star_target])
30869static asdl_seq *
30870_loop0_162_rule(Parser *p)
30871{
30872 D(p->level++);
30873 if (p->error_indicator) {
30874 D(p->level--);
30875 return NULL;
30876 }
30877 void *_res = NULL;
30878 int _mark = p->mark;
30879 int _start_mark = p->mark;
30880 void **_children = PyMem_Malloc(sizeof(void *));
30881 if (!_children) {
30882 p->error_indicator = 1;
30883 PyErr_NoMemory();
30884 D(p->level--);
30885 return NULL;
30886 }
30887 Py_ssize_t _children_capacity = 1;
30888 Py_ssize_t _n = 0;
30889 { // ',' (expression ['as' star_target])
30890 if (p->error_indicator) {
30891 D(p->level--);
30892 return NULL;
30893 }
30894 D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
30895 Token * _literal;
30896 void *elem;
30897 while (
30898 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30899 &&
30900 (elem = _tmp_194_rule(p)) // expression ['as' star_target]
30901 )
30902 {
30903 _res = elem;
30904 if (_res == NULL && PyErr_Occurred()) {
30905 p->error_indicator = 1;
30906 PyMem_Free(_children);
30907 D(p->level--);
30908 return NULL;
30909 }
30910 if (_n == _children_capacity) {
30911 _children_capacity *= 2;
30912 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30913 if (!_new_children) {
30914 p->error_indicator = 1;
30915 PyErr_NoMemory();
30916 D(p->level--);
30917 return NULL;
30918 }
30919 _children = _new_children;
30920 }
30921 _children[_n++] = _res;
30922 _mark = p->mark;
30923 }
30924 p->mark = _mark;
30925 D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
30926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30927 }
30928 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30929 if (!_seq) {
30930 PyMem_Free(_children);
30931 p->error_indicator = 1;
30932 PyErr_NoMemory();
30933 D(p->level--);
30934 return NULL;
30935 }
30936 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30937 PyMem_Free(_children);
30938 _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
30939 D(p->level--);
30940 return _seq;
30941}
30942
30943// _gather_161: (expression ['as' star_target]) _loop0_162
30944static asdl_seq *
30945_gather_161_rule(Parser *p)
30946{
30947 D(p->level++);
30948 if (p->error_indicator) {
30949 D(p->level--);
30950 return NULL;
30951 }
30952 asdl_seq * _res = NULL;
30953 int _mark = p->mark;
30954 { // (expression ['as' star_target]) _loop0_162
30955 if (p->error_indicator) {
30956 D(p->level--);
30957 return NULL;
30958 }
30959 D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30960 void *elem;
30961 asdl_seq * seq;
30962 if (
30963 (elem = _tmp_194_rule(p)) // expression ['as' star_target]
30964 &&
30965 (seq = _loop0_162_rule(p)) // _loop0_162
30966 )
30967 {
30968 D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30969 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30970 goto done;
30971 }
30972 p->mark = _mark;
30973 D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ',
30974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30975 }
30976 _res = NULL;
30977 done:
30978 D(p->level--);
30979 return _res;
30980}
30981
30982// _loop0_164: ',' (expressions ['as' star_target])
30983static asdl_seq *
30984_loop0_164_rule(Parser *p)
30985{
30986 D(p->level++);
30987 if (p->error_indicator) {
30988 D(p->level--);
30989 return NULL;
30990 }
30991 void *_res = NULL;
30992 int _mark = p->mark;
30993 int _start_mark = p->mark;
30994 void **_children = PyMem_Malloc(sizeof(void *));
30995 if (!_children) {
30996 p->error_indicator = 1;
30997 PyErr_NoMemory();
30998 D(p->level--);
30999 return NULL;
31000 }
31001 Py_ssize_t _children_capacity = 1;
31002 Py_ssize_t _n = 0;
31003 { // ',' (expressions ['as' star_target])
31004 if (p->error_indicator) {
31005 D(p->level--);
31006 return NULL;
31007 }
31008 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31009 Token * _literal;
31010 void *elem;
31011 while (
31012 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31013 &&
31014 (elem = _tmp_195_rule(p)) // expressions ['as' star_target]
31015 )
31016 {
31017 _res = elem;
31018 if (_res == NULL && PyErr_Occurred()) {
31019 p->error_indicator = 1;
31020 PyMem_Free(_children);
31021 D(p->level--);
31022 return NULL;
31023 }
31024 if (_n == _children_capacity) {
31025 _children_capacity *= 2;
31026 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31027 if (!_new_children) {
31028 p->error_indicator = 1;
31029 PyErr_NoMemory();
31030 D(p->level--);
31031 return NULL;
31032 }
31033 _children = _new_children;
31034 }
31035 _children[_n++] = _res;
31036 _mark = p->mark;
31037 }
31038 p->mark = _mark;
31039 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
31040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31041 }
31042 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31043 if (!_seq) {
31044 PyMem_Free(_children);
31045 p->error_indicator = 1;
31046 PyErr_NoMemory();
31047 D(p->level--);
31048 return NULL;
31049 }
31050 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31051 PyMem_Free(_children);
31052 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
31053 D(p->level--);
31054 return _seq;
31055}
31056
31057// _gather_163: (expressions ['as' star_target]) _loop0_164
31058static asdl_seq *
31059_gather_163_rule(Parser *p)
31060{
31061 D(p->level++);
31062 if (p->error_indicator) {
31063 D(p->level--);
31064 return NULL;
31065 }
31066 asdl_seq * _res = NULL;
31067 int _mark = p->mark;
31068 { // (expressions ['as' star_target]) _loop0_164
31069 if (p->error_indicator) {
31070 D(p->level--);
31071 return NULL;
31072 }
31073 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
31074 void *elem;
31075 asdl_seq * seq;
31076 if (
31077 (elem = _tmp_195_rule(p)) // expressions ['as' star_target]
31078 &&
31079 (seq = _loop0_164_rule(p)) // _loop0_164
31080 )
31081 {
31082 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
31083 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31084 goto done;
31085 }
31086 p->mark = _mark;
31087 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
31088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
31089 }
31090 _res = NULL;
31091 done:
31092 D(p->level--);
31093 return _res;
31094}
31095
31096// _loop0_166: ',' (expression ['as' star_target])
31097static asdl_seq *
31098_loop0_166_rule(Parser *p)
31099{
31100 D(p->level++);
31101 if (p->error_indicator) {
31102 D(p->level--);
31103 return NULL;
31104 }
31105 void *_res = NULL;
31106 int _mark = p->mark;
31107 int _start_mark = p->mark;
31108 void **_children = PyMem_Malloc(sizeof(void *));
31109 if (!_children) {
31110 p->error_indicator = 1;
31111 PyErr_NoMemory();
31112 D(p->level--);
31113 return NULL;
31114 }
31115 Py_ssize_t _children_capacity = 1;
31116 Py_ssize_t _n = 0;
31117 { // ',' (expression ['as' star_target])
31118 if (p->error_indicator) {
31119 D(p->level--);
31120 return NULL;
31121 }
31122 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31123 Token * _literal;
31124 void *elem;
31125 while (
31126 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31127 &&
31128 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
31129 )
31130 {
31131 _res = elem;
31132 if (_res == NULL && PyErr_Occurred()) {
31133 p->error_indicator = 1;
31134 PyMem_Free(_children);
31135 D(p->level--);
31136 return NULL;
31137 }
31138 if (_n == _children_capacity) {
31139 _children_capacity *= 2;
31140 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31141 if (!_new_children) {
31142 p->error_indicator = 1;
31143 PyErr_NoMemory();
31144 D(p->level--);
31145 return NULL;
31146 }
31147 _children = _new_children;
31148 }
31149 _children[_n++] = _res;
31150 _mark = p->mark;
31151 }
31152 p->mark = _mark;
31153 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
31154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31155 }
31156 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31157 if (!_seq) {
31158 PyMem_Free(_children);
31159 p->error_indicator = 1;
31160 PyErr_NoMemory();
31161 D(p->level--);
31162 return NULL;
31163 }
31164 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31165 PyMem_Free(_children);
31166 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
31167 D(p->level--);
31168 return _seq;
31169}
31170
31171// _gather_165: (expression ['as' star_target]) _loop0_166
31172static asdl_seq *
31173_gather_165_rule(Parser *p)
31174{
31175 D(p->level++);
31176 if (p->error_indicator) {
31177 D(p->level--);
31178 return NULL;
31179 }
31180 asdl_seq * _res = NULL;
31181 int _mark = p->mark;
31182 { // (expression ['as' star_target]) _loop0_166
31183 if (p->error_indicator) {
31184 D(p->level--);
31185 return NULL;
31186 }
31187 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
31188 void *elem;
31189 asdl_seq * seq;
31190 if (
31191 (elem = _tmp_196_rule(p)) // expression ['as' star_target]
31192 &&
31193 (seq = _loop0_166_rule(p)) // _loop0_166
31194 )
31195 {
31196 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
31197 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31198 goto done;
31199 }
31200 p->mark = _mark;
31201 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
31202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
31203 }
31204 _res = NULL;
31205 done:
31206 D(p->level--);
31207 return _res;
31208}
31209
31210// _loop0_168: ',' (expressions ['as' star_target])
31211static asdl_seq *
31212_loop0_168_rule(Parser *p)
31213{
31214 D(p->level++);
31215 if (p->error_indicator) {
31216 D(p->level--);
31217 return NULL;
31218 }
31219 void *_res = NULL;
31220 int _mark = p->mark;
31221 int _start_mark = p->mark;
31222 void **_children = PyMem_Malloc(sizeof(void *));
31223 if (!_children) {
31224 p->error_indicator = 1;
31225 PyErr_NoMemory();
31226 D(p->level--);
31227 return NULL;
31228 }
31229 Py_ssize_t _children_capacity = 1;
31230 Py_ssize_t _n = 0;
31231 { // ',' (expressions ['as' star_target])
31232 if (p->error_indicator) {
31233 D(p->level--);
31234 return NULL;
31235 }
31236 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31237 Token * _literal;
31238 void *elem;
31239 while (
31240 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31241 &&
31242 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
31243 )
31244 {
31245 _res = elem;
31246 if (_res == NULL && PyErr_Occurred()) {
31247 p->error_indicator = 1;
31248 PyMem_Free(_children);
31249 D(p->level--);
31250 return NULL;
31251 }
31252 if (_n == _children_capacity) {
31253 _children_capacity *= 2;
31254 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31255 if (!_new_children) {
31256 p->error_indicator = 1;
31257 PyErr_NoMemory();
31258 D(p->level--);
31259 return NULL;
31260 }
31261 _children = _new_children;
31262 }
31263 _children[_n++] = _res;
31264 _mark = p->mark;
31265 }
31266 p->mark = _mark;
31267 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
31268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31269 }
31270 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31271 if (!_seq) {
31272 PyMem_Free(_children);
31273 p->error_indicator = 1;
31274 PyErr_NoMemory();
31275 D(p->level--);
31276 return NULL;
31277 }
31278 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31279 PyMem_Free(_children);
31280 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31281 D(p->level--);
31282 return _seq;
31283}
31284
31285// _gather_167: (expressions ['as' star_target]) _loop0_168
31286static asdl_seq *
31287_gather_167_rule(Parser *p)
31288{
31289 D(p->level++);
31290 if (p->error_indicator) {
31291 D(p->level--);
31292 return NULL;
31293 }
31294 asdl_seq * _res = NULL;
31295 int _mark = p->mark;
31296 { // (expressions ['as' star_target]) _loop0_168
31297 if (p->error_indicator) {
31298 D(p->level--);
31299 return NULL;
31300 }
31301 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
31302 void *elem;
31303 asdl_seq * seq;
31304 if (
31305 (elem = _tmp_197_rule(p)) // expressions ['as' star_target]
31306 &&
31307 (seq = _loop0_168_rule(p)) // _loop0_168
31308 )
31309 {
31310 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
31311 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31312 goto done;
31313 }
31314 p->mark = _mark;
31315 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
31316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031317 }
31318 _res = NULL;
31319 done:
31320 D(p->level--);
31321 return _res;
31322}
31323
31324// _tmp_169: 'as' NAME
31325static void *
31326_tmp_169_rule(Parser *p)
31327{
31328 D(p->level++);
31329 if (p->error_indicator) {
31330 D(p->level--);
31331 return NULL;
31332 }
31333 void * _res = NULL;
31334 int _mark = p->mark;
31335 { // 'as' NAME
31336 if (p->error_indicator) {
31337 D(p->level--);
31338 return NULL;
31339 }
31340 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31341 Token * _keyword;
31342 expr_ty name_var;
31343 if (
31344 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31345 &&
31346 (name_var = _PyPegen_name_token(p)) // NAME
31347 )
31348 {
31349 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31350 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31351 goto done;
31352 }
31353 p->mark = _mark;
31354 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
31355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31356 }
31357 _res = NULL;
31358 done:
31359 D(p->level--);
31360 return _res;
31361}
31362
31363// _tmp_170: 'as' NAME
31364static void *
31365_tmp_170_rule(Parser *p)
31366{
31367 D(p->level++);
31368 if (p->error_indicator) {
31369 D(p->level--);
31370 return NULL;
31371 }
31372 void * _res = NULL;
31373 int _mark = p->mark;
31374 { // 'as' NAME
31375 if (p->error_indicator) {
31376 D(p->level--);
31377 return NULL;
31378 }
31379 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31380 Token * _keyword;
31381 expr_ty name_var;
31382 if (
31383 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31384 &&
31385 (name_var = _PyPegen_name_token(p)) // NAME
31386 )
31387 {
31388 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31389 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31390 goto done;
31391 }
31392 p->mark = _mark;
31393 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
31394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31395 }
31396 _res = NULL;
31397 done:
31398 D(p->level--);
31399 return _res;
31400}
31401
Pablo Galindoa77aac42021-04-23 14:27:05 +010031402// _tmp_171: 'as' NAME
Pablo Galindo56c95df2021-04-21 15:28:21 +010031403static void *
31404_tmp_171_rule(Parser *p)
31405{
31406 D(p->level++);
31407 if (p->error_indicator) {
31408 D(p->level--);
31409 return NULL;
31410 }
31411 void * _res = NULL;
31412 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031413 { // 'as' NAME
31414 if (p->error_indicator) {
31415 D(p->level--);
31416 return NULL;
31417 }
31418 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31419 Token * _keyword;
31420 expr_ty name_var;
31421 if (
31422 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31423 &&
31424 (name_var = _PyPegen_name_token(p)) // NAME
31425 )
31426 {
31427 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31428 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31429 goto done;
31430 }
31431 p->mark = _mark;
31432 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31434 }
31435 _res = NULL;
31436 done:
31437 D(p->level--);
31438 return _res;
31439}
31440
31441// _tmp_172: '->' expression
31442static void *
31443_tmp_172_rule(Parser *p)
31444{
31445 D(p->level++);
31446 if (p->error_indicator) {
31447 D(p->level--);
31448 return NULL;
31449 }
31450 void * _res = NULL;
31451 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031452 { // '->' expression
31453 if (p->error_indicator) {
31454 D(p->level--);
31455 return NULL;
31456 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031457 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031458 Token * _literal;
31459 expr_ty expression_var;
31460 if (
31461 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31462 &&
31463 (expression_var = expression_rule(p)) // expression
31464 )
31465 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031466 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031467 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31468 goto done;
31469 }
31470 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031471 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31473 }
31474 _res = NULL;
31475 done:
31476 D(p->level--);
31477 return _res;
31478}
31479
Pablo Galindoa77aac42021-04-23 14:27:05 +010031480// _tmp_173: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031481static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031482_tmp_173_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031483{
31484 D(p->level++);
31485 if (p->error_indicator) {
31486 D(p->level--);
31487 return NULL;
31488 }
31489 void * _res = NULL;
31490 int _mark = p->mark;
31491 { // '(' arguments? ')'
31492 if (p->error_indicator) {
31493 D(p->level--);
31494 return NULL;
31495 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031496 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031497 Token * _literal;
31498 Token * _literal_1;
31499 void *_opt_var;
31500 UNUSED(_opt_var); // Silence compiler warnings
31501 if (
31502 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31503 &&
31504 (_opt_var = arguments_rule(p), 1) // arguments?
31505 &&
31506 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31507 )
31508 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031509 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031510 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31511 goto done;
31512 }
31513 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031514 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31516 }
31517 _res = NULL;
31518 done:
31519 D(p->level--);
31520 return _res;
31521}
31522
Pablo Galindoa77aac42021-04-23 14:27:05 +010031523// _loop0_175: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031524static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031525_loop0_175_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031526{
31527 D(p->level++);
31528 if (p->error_indicator) {
31529 D(p->level--);
31530 return NULL;
31531 }
31532 void *_res = NULL;
31533 int _mark = p->mark;
31534 int _start_mark = p->mark;
31535 void **_children = PyMem_Malloc(sizeof(void *));
31536 if (!_children) {
31537 p->error_indicator = 1;
31538 PyErr_NoMemory();
31539 D(p->level--);
31540 return NULL;
31541 }
31542 Py_ssize_t _children_capacity = 1;
31543 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031544 { // ',' double_starred_kvpair
31545 if (p->error_indicator) {
31546 D(p->level--);
31547 return NULL;
31548 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031549 D(fprintf(stderr, "%*c> _loop0_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031550 Token * _literal;
31551 KeyValuePair* elem;
31552 while (
31553 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31554 &&
31555 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31556 )
31557 {
31558 _res = elem;
31559 if (_res == NULL && PyErr_Occurred()) {
31560 p->error_indicator = 1;
31561 PyMem_Free(_children);
31562 D(p->level--);
31563 return NULL;
31564 }
31565 if (_n == _children_capacity) {
31566 _children_capacity *= 2;
31567 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31568 if (!_new_children) {
31569 p->error_indicator = 1;
31570 PyErr_NoMemory();
31571 D(p->level--);
31572 return NULL;
31573 }
31574 _children = _new_children;
31575 }
31576 _children[_n++] = _res;
31577 _mark = p->mark;
31578 }
31579 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031580 D(fprintf(stderr, "%*c%s _loop0_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31582 }
31583 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31584 if (!_seq) {
31585 PyMem_Free(_children);
31586 p->error_indicator = 1;
31587 PyErr_NoMemory();
31588 D(p->level--);
31589 return NULL;
31590 }
31591 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31592 PyMem_Free(_children);
Pablo Galindoa77aac42021-04-23 14:27:05 +010031593 _PyPegen_insert_memo(p, _start_mark, _loop0_175_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031594 D(p->level--);
31595 return _seq;
31596}
31597
Pablo Galindoa77aac42021-04-23 14:27:05 +010031598// _gather_174: double_starred_kvpair _loop0_175
Pablo Galindoda743502021-04-15 14:06:39 +010031599static asdl_seq *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031600_gather_174_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031601{
31602 D(p->level++);
31603 if (p->error_indicator) {
31604 D(p->level--);
31605 return NULL;
31606 }
31607 asdl_seq * _res = NULL;
31608 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031609 { // double_starred_kvpair _loop0_175
Pablo Galindoda743502021-04-15 14:06:39 +010031610 if (p->error_indicator) {
31611 D(p->level--);
31612 return NULL;
31613 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031614 D(fprintf(stderr, "%*c> _gather_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_175"));
Pablo Galindoda743502021-04-15 14:06:39 +010031615 KeyValuePair* elem;
31616 asdl_seq * seq;
31617 if (
31618 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31619 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010031620 (seq = _loop0_175_rule(p)) // _loop0_175
Pablo Galindoda743502021-04-15 14:06:39 +010031621 )
31622 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031623 D(fprintf(stderr, "%*c+ _gather_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_175"));
Pablo Galindoda743502021-04-15 14:06:39 +010031624 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31625 goto done;
31626 }
31627 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031628 D(fprintf(stderr, "%*c%s _gather_174[%d-%d]: %s failed!\n", p->level, ' ',
31629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_175"));
Pablo Galindoda743502021-04-15 14:06:39 +010031630 }
31631 _res = NULL;
31632 done:
31633 D(p->level--);
31634 return _res;
31635}
31636
Pablo Galindoa77aac42021-04-23 14:27:05 +010031637// _tmp_176: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031638static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031639_tmp_176_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031640{
31641 D(p->level++);
31642 if (p->error_indicator) {
31643 D(p->level--);
31644 return NULL;
31645 }
31646 void * _res = NULL;
31647 int _mark = p->mark;
31648 { // '}'
31649 if (p->error_indicator) {
31650 D(p->level--);
31651 return NULL;
31652 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031653 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031654 Token * _literal;
31655 if (
31656 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31657 )
31658 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031659 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031660 _res = _literal;
31661 goto done;
31662 }
31663 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031664 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31666 }
31667 { // ','
31668 if (p->error_indicator) {
31669 D(p->level--);
31670 return NULL;
31671 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031672 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031673 Token * _literal;
31674 if (
31675 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31676 )
31677 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031678 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031679 _res = _literal;
31680 goto done;
31681 }
31682 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031683 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31685 }
31686 _res = NULL;
31687 done:
31688 D(p->level--);
31689 return _res;
31690}
31691
Pablo Galindoa77aac42021-04-23 14:27:05 +010031692// _tmp_177: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031693static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031694_tmp_177_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031695{
31696 D(p->level++);
31697 if (p->error_indicator) {
31698 D(p->level--);
31699 return NULL;
31700 }
31701 void * _res = NULL;
31702 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031703 { // star_targets '='
31704 if (p->error_indicator) {
31705 D(p->level--);
31706 return NULL;
31707 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031708 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031709 Token * _literal;
31710 expr_ty z;
31711 if (
31712 (z = star_targets_rule(p)) // star_targets
31713 &&
31714 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31715 )
31716 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031717 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031718 _res = z;
31719 if (_res == NULL && PyErr_Occurred()) {
31720 p->error_indicator = 1;
31721 D(p->level--);
31722 return NULL;
31723 }
31724 goto done;
31725 }
31726 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031727 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31729 }
31730 _res = NULL;
31731 done:
31732 D(p->level--);
31733 return _res;
31734}
31735
Pablo Galindo56c95df2021-04-21 15:28:21 +010031736// _tmp_178: '.' | '...'
Pablo Galindo206cbda2021-02-07 18:42:21 +000031737static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031738_tmp_178_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031739{
31740 D(p->level++);
31741 if (p->error_indicator) {
31742 D(p->level--);
31743 return NULL;
31744 }
31745 void * _res = NULL;
31746 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010031747 { // '.'
31748 if (p->error_indicator) {
31749 D(p->level--);
31750 return NULL;
31751 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031752 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031753 Token * _literal;
31754 if (
31755 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31756 )
31757 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031758 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031759 _res = _literal;
31760 goto done;
31761 }
31762 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031763 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31765 }
31766 { // '...'
31767 if (p->error_indicator) {
31768 D(p->level--);
31769 return NULL;
31770 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010031771 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031772 Token * _literal;
31773 if (
31774 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31775 )
31776 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010031777 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindob2802482021-04-15 21:38:45 +010031778 _res = _literal;
31779 goto done;
31780 }
31781 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031782 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010031783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31784 }
31785 _res = NULL;
31786 done:
31787 D(p->level--);
31788 return _res;
31789}
31790
Pablo Galindoa77aac42021-04-23 14:27:05 +010031791// _tmp_179: '.' | '...'
Pablo Galindob2802482021-04-15 21:38:45 +010031792static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031793_tmp_179_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031794{
31795 D(p->level++);
31796 if (p->error_indicator) {
31797 D(p->level--);
31798 return NULL;
31799 }
31800 void * _res = NULL;
31801 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031802 { // '.'
31803 if (p->error_indicator) {
31804 D(p->level--);
31805 return NULL;
31806 }
31807 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31808 Token * _literal;
31809 if (
31810 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31811 )
31812 {
31813 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31814 _res = _literal;
31815 goto done;
31816 }
31817 p->mark = _mark;
31818 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31820 }
31821 { // '...'
31822 if (p->error_indicator) {
31823 D(p->level--);
31824 return NULL;
31825 }
31826 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31827 Token * _literal;
31828 if (
31829 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31830 )
31831 {
31832 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31833 _res = _literal;
31834 goto done;
31835 }
31836 p->mark = _mark;
31837 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31839 }
31840 _res = NULL;
31841 done:
31842 D(p->level--);
31843 return _res;
31844}
31845
31846// _tmp_180: '@' named_expression NEWLINE
31847static void *
31848_tmp_180_rule(Parser *p)
31849{
31850 D(p->level++);
31851 if (p->error_indicator) {
31852 D(p->level--);
31853 return NULL;
31854 }
31855 void * _res = NULL;
31856 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031857 { // '@' named_expression NEWLINE
31858 if (p->error_indicator) {
31859 D(p->level--);
31860 return NULL;
31861 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031862 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031863 Token * _literal;
31864 expr_ty f;
31865 Token * newline_var;
31866 if (
31867 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
31868 &&
31869 (f = named_expression_rule(p)) // named_expression
31870 &&
31871 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
31872 )
31873 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031874 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031875 _res = f;
31876 if (_res == NULL && PyErr_Occurred()) {
31877 p->error_indicator = 1;
31878 D(p->level--);
31879 return NULL;
31880 }
31881 goto done;
31882 }
31883 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031884 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
31886 }
31887 _res = NULL;
31888 done:
31889 D(p->level--);
31890 return _res;
31891}
31892
Pablo Galindoa77aac42021-04-23 14:27:05 +010031893// _tmp_181: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031894static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031895_tmp_181_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031896{
31897 D(p->level++);
31898 if (p->error_indicator) {
31899 D(p->level--);
31900 return NULL;
31901 }
31902 void * _res = NULL;
31903 int _mark = p->mark;
31904 { // ',' star_expression
31905 if (p->error_indicator) {
31906 D(p->level--);
31907 return NULL;
31908 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031909 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031910 Token * _literal;
31911 expr_ty c;
31912 if (
31913 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31914 &&
31915 (c = star_expression_rule(p)) // star_expression
31916 )
31917 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031918 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031919 _res = c;
31920 if (_res == NULL && PyErr_Occurred()) {
31921 p->error_indicator = 1;
31922 D(p->level--);
31923 return NULL;
31924 }
31925 goto done;
31926 }
31927 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031928 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
31930 }
31931 _res = NULL;
31932 done:
31933 D(p->level--);
31934 return _res;
31935}
31936
Pablo Galindoa77aac42021-04-23 14:27:05 +010031937// _tmp_182: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031938static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031939_tmp_182_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031940{
31941 D(p->level++);
31942 if (p->error_indicator) {
31943 D(p->level--);
31944 return NULL;
31945 }
31946 void * _res = NULL;
31947 int _mark = p->mark;
31948 { // ',' expression
31949 if (p->error_indicator) {
31950 D(p->level--);
31951 return NULL;
31952 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031953 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031954 Token * _literal;
31955 expr_ty c;
31956 if (
31957 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31958 &&
31959 (c = expression_rule(p)) // expression
31960 )
31961 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010031962 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031963 _res = c;
31964 if (_res == NULL && PyErr_Occurred()) {
31965 p->error_indicator = 1;
31966 D(p->level--);
31967 return NULL;
31968 }
31969 goto done;
31970 }
31971 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031972 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
31974 }
31975 _res = NULL;
31976 done:
31977 D(p->level--);
31978 return _res;
31979}
31980
Pablo Galindoa77aac42021-04-23 14:27:05 +010031981// _tmp_183: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031982static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010031983_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031984{
31985 D(p->level++);
31986 if (p->error_indicator) {
31987 D(p->level--);
31988 return NULL;
31989 }
31990 void * _res = NULL;
31991 int _mark = p->mark;
31992 { // 'or' conjunction
31993 if (p->error_indicator) {
31994 D(p->level--);
31995 return NULL;
31996 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010031997 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031998 Token * _keyword;
31999 expr_ty c;
32000 if (
32001 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
32002 &&
32003 (c = conjunction_rule(p)) // conjunction
32004 )
32005 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032006 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032007 _res = c;
32008 if (_res == NULL && PyErr_Occurred()) {
32009 p->error_indicator = 1;
32010 D(p->level--);
32011 return NULL;
32012 }
32013 goto done;
32014 }
32015 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032016 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
32018 }
32019 _res = NULL;
32020 done:
32021 D(p->level--);
32022 return _res;
32023}
32024
Pablo Galindoa77aac42021-04-23 14:27:05 +010032025// _tmp_184: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032026static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010032027_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032028{
32029 D(p->level++);
32030 if (p->error_indicator) {
32031 D(p->level--);
32032 return NULL;
32033 }
32034 void * _res = NULL;
32035 int _mark = p->mark;
32036 { // 'and' inversion
32037 if (p->error_indicator) {
32038 D(p->level--);
32039 return NULL;
32040 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032041 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032042 Token * _keyword;
32043 expr_ty c;
32044 if (
32045 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
32046 &&
32047 (c = inversion_rule(p)) // inversion
32048 )
32049 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032050 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032051 _res = c;
32052 if (_res == NULL && PyErr_Occurred()) {
32053 p->error_indicator = 1;
32054 D(p->level--);
32055 return NULL;
32056 }
32057 goto done;
32058 }
32059 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032060 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000032062 }
32063 _res = NULL;
32064 done:
32065 D(p->level--);
32066 return _res;
32067}
32068
Pablo Galindo56c95df2021-04-21 15:28:21 +010032069// _tmp_185: 'if' disjunction
Pablo Galindo206cbda2021-02-07 18:42:21 +000032070static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032071_tmp_185_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000032072{
32073 D(p->level++);
32074 if (p->error_indicator) {
32075 D(p->level--);
32076 return NULL;
32077 }
32078 void * _res = NULL;
32079 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010032080 { // 'if' disjunction
32081 if (p->error_indicator) {
32082 D(p->level--);
32083 return NULL;
32084 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032085 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindob2802482021-04-15 21:38:45 +010032086 Token * _keyword;
32087 expr_ty z;
32088 if (
32089 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32090 &&
32091 (z = disjunction_rule(p)) // disjunction
32092 )
32093 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032094 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindob2802482021-04-15 21:38:45 +010032095 _res = z;
32096 if (_res == NULL && PyErr_Occurred()) {
32097 p->error_indicator = 1;
32098 D(p->level--);
32099 return NULL;
32100 }
32101 goto done;
32102 }
32103 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032104 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32106 }
32107 _res = NULL;
32108 done:
32109 D(p->level--);
32110 return _res;
32111}
32112
Pablo Galindoa77aac42021-04-23 14:27:05 +010032113// _tmp_186: 'if' disjunction
Pablo Galindob2802482021-04-15 21:38:45 +010032114static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032115_tmp_186_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032116{
32117 D(p->level++);
32118 if (p->error_indicator) {
32119 D(p->level--);
32120 return NULL;
32121 }
32122 void * _res = NULL;
32123 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032124 { // 'if' disjunction
32125 if (p->error_indicator) {
32126 D(p->level--);
32127 return NULL;
32128 }
32129 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32130 Token * _keyword;
32131 expr_ty z;
32132 if (
32133 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32134 &&
32135 (z = disjunction_rule(p)) // disjunction
32136 )
32137 {
32138 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32139 _res = z;
32140 if (_res == NULL && PyErr_Occurred()) {
32141 p->error_indicator = 1;
32142 D(p->level--);
32143 return NULL;
32144 }
32145 goto done;
32146 }
32147 p->mark = _mark;
32148 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
32149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32150 }
32151 _res = NULL;
32152 done:
32153 D(p->level--);
32154 return _res;
32155}
32156
32157// _tmp_187: starred_expression | direct_named_expression !'='
32158static void *
32159_tmp_187_rule(Parser *p)
32160{
32161 D(p->level++);
32162 if (p->error_indicator) {
32163 D(p->level--);
32164 return NULL;
32165 }
32166 void * _res = NULL;
32167 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032168 { // starred_expression
32169 if (p->error_indicator) {
32170 D(p->level--);
32171 return NULL;
32172 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032173 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032174 expr_ty starred_expression_var;
32175 if (
32176 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32177 )
32178 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032179 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032180 _res = starred_expression_var;
32181 goto done;
32182 }
32183 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032184 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32186 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010032187 { // direct_named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032188 if (p->error_indicator) {
32189 D(p->level--);
32190 return NULL;
32191 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032192 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010032193 expr_ty direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032194 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010032195 (direct_named_expression_var = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo4a97b152020-09-02 17:44:19 +010032196 &&
32197 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32198 )
32199 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032200 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010032201 _res = direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032202 goto done;
32203 }
32204 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032205 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindoda743502021-04-15 14:06:39 +010032207 }
32208 _res = NULL;
32209 done:
32210 D(p->level--);
32211 return _res;
32212}
32213
Pablo Galindo56c95df2021-04-21 15:28:21 +010032214// _tmp_188: ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032215static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032216_tmp_188_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010032217{
32218 D(p->level++);
32219 if (p->error_indicator) {
32220 D(p->level--);
32221 return NULL;
32222 }
32223 void * _res = NULL;
32224 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010032225 { // ',' star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032226 if (p->error_indicator) {
32227 D(p->level--);
32228 return NULL;
32229 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032230 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032231 Token * _literal;
Pablo Galindob2802482021-04-15 21:38:45 +010032232 expr_ty c;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032233 if (
Pablo Galindob2802482021-04-15 21:38:45 +010032234 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032235 &&
Pablo Galindob2802482021-04-15 21:38:45 +010032236 (c = star_target_rule(p)) // star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032237 )
32238 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032239 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032240 _res = c;
32241 if (_res == NULL && PyErr_Occurred()) {
32242 p->error_indicator = 1;
32243 D(p->level--);
32244 return NULL;
32245 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032246 goto done;
32247 }
32248 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032249 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032251 }
32252 _res = NULL;
32253 done:
32254 D(p->level--);
32255 return _res;
32256}
32257
Pablo Galindoa77aac42021-04-23 14:27:05 +010032258// _tmp_189: ',' star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032259static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032260_tmp_189_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010032261{
32262 D(p->level++);
32263 if (p->error_indicator) {
32264 D(p->level--);
32265 return NULL;
32266 }
32267 void * _res = NULL;
32268 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032269 { // ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032270 if (p->error_indicator) {
32271 D(p->level--);
32272 return NULL;
32273 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032274 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010032275 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032276 expr_ty c;
Pablo Galindoda743502021-04-15 14:06:39 +010032277 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010032278 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoda743502021-04-15 14:06:39 +010032279 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010032280 (c = star_target_rule(p)) // star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032281 )
32282 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032283 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32284 _res = c;
32285 if (_res == NULL && PyErr_Occurred()) {
32286 p->error_indicator = 1;
32287 D(p->level--);
32288 return NULL;
32289 }
Pablo Galindoda743502021-04-15 14:06:39 +010032290 goto done;
32291 }
32292 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032293 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010032295 }
32296 _res = NULL;
32297 done:
32298 D(p->level--);
32299 return _res;
32300}
32301
Pablo Galindo56c95df2021-04-21 15:28:21 +010032302// _tmp_190: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010032303static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032304_tmp_190_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000032305{
32306 D(p->level++);
32307 if (p->error_indicator) {
32308 D(p->level--);
32309 return NULL;
32310 }
32311 void * _res = NULL;
32312 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010032313 { // star_targets '='
32314 if (p->error_indicator) {
32315 D(p->level--);
32316 return NULL;
32317 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032318 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob2802482021-04-15 21:38:45 +010032319 Token * _literal;
32320 expr_ty star_targets_var;
32321 if (
32322 (star_targets_var = star_targets_rule(p)) // star_targets
32323 &&
32324 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32325 )
32326 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032327 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindob2802482021-04-15 21:38:45 +010032328 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32329 goto done;
32330 }
32331 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032332 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32334 }
32335 _res = NULL;
32336 done:
32337 D(p->level--);
32338 return _res;
32339}
32340
Pablo Galindoa77aac42021-04-23 14:27:05 +010032341// _tmp_191: star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010032342static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032343_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032344{
32345 D(p->level++);
32346 if (p->error_indicator) {
32347 D(p->level--);
32348 return NULL;
32349 }
32350 void * _res = NULL;
32351 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032352 { // star_targets '='
32353 if (p->error_indicator) {
32354 D(p->level--);
32355 return NULL;
32356 }
32357 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32358 Token * _literal;
32359 expr_ty star_targets_var;
32360 if (
32361 (star_targets_var = star_targets_rule(p)) // star_targets
32362 &&
32363 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32364 )
32365 {
32366 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32367 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32368 goto done;
32369 }
32370 p->mark = _mark;
32371 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
32372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32373 }
32374 _res = NULL;
32375 done:
32376 D(p->level--);
32377 return _res;
32378}
32379
32380// _tmp_192: ')' | '**'
32381static void *
32382_tmp_192_rule(Parser *p)
32383{
32384 D(p->level++);
32385 if (p->error_indicator) {
32386 D(p->level--);
32387 return NULL;
32388 }
32389 void * _res = NULL;
32390 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032391 { // ')'
32392 if (p->error_indicator) {
32393 D(p->level--);
32394 return NULL;
32395 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032396 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032397 Token * _literal;
32398 if (
32399 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32400 )
32401 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032402 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindob2802482021-04-15 21:38:45 +010032403 _res = _literal;
32404 goto done;
32405 }
32406 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032407 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindob2802482021-04-15 21:38:45 +010032409 }
32410 { // '**'
32411 if (p->error_indicator) {
32412 D(p->level--);
32413 return NULL;
32414 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032415 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindob2802482021-04-15 21:38:45 +010032416 Token * _literal;
32417 if (
32418 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32419 )
32420 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032421 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindob2802482021-04-15 21:38:45 +010032422 _res = _literal;
32423 goto done;
32424 }
32425 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032426 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
32428 }
32429 _res = NULL;
32430 done:
32431 D(p->level--);
32432 return _res;
32433}
32434
Pablo Galindoa77aac42021-04-23 14:27:05 +010032435// _tmp_193: ':' | '**'
Pablo Galindob2802482021-04-15 21:38:45 +010032436static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032437_tmp_193_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032438{
32439 D(p->level++);
32440 if (p->error_indicator) {
32441 D(p->level--);
32442 return NULL;
32443 }
32444 void * _res = NULL;
32445 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032446 { // ':'
Pablo Galindo58fb1562021-02-02 19:54:22 +000032447 if (p->error_indicator) {
32448 D(p->level--);
32449 return NULL;
32450 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032451 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32452 Token * _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032453 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010032454 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo58fb1562021-02-02 19:54:22 +000032455 )
32456 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032457 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32458 _res = _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032459 goto done;
32460 }
32461 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032462 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32464 }
32465 { // '**'
32466 if (p->error_indicator) {
32467 D(p->level--);
32468 return NULL;
32469 }
32470 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32471 Token * _literal;
32472 if (
32473 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32474 )
32475 {
32476 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32477 _res = _literal;
32478 goto done;
32479 }
32480 p->mark = _mark;
32481 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
32482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032483 }
32484 _res = NULL;
32485 done:
32486 D(p->level--);
32487 return _res;
32488}
32489
Pablo Galindoa77aac42021-04-23 14:27:05 +010032490// _tmp_194: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032491static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032492_tmp_194_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000032493{
32494 D(p->level++);
32495 if (p->error_indicator) {
32496 D(p->level--);
32497 return NULL;
32498 }
32499 void * _res = NULL;
32500 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032501 { // expression ['as' star_target]
32502 if (p->error_indicator) {
32503 D(p->level--);
32504 return NULL;
32505 }
32506 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32507 void *_opt_var;
32508 UNUSED(_opt_var); // Silence compiler warnings
32509 expr_ty expression_var;
32510 if (
32511 (expression_var = expression_rule(p)) // expression
32512 &&
32513 (_opt_var = _tmp_198_rule(p), 1) // ['as' star_target]
32514 )
32515 {
32516 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32517 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32518 goto done;
32519 }
32520 p->mark = _mark;
32521 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
32522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32523 }
32524 _res = NULL;
32525 done:
32526 D(p->level--);
32527 return _res;
32528}
32529
32530// _tmp_195: expressions ['as' star_target]
32531static void *
32532_tmp_195_rule(Parser *p)
32533{
32534 D(p->level++);
32535 if (p->error_indicator) {
32536 D(p->level--);
32537 return NULL;
32538 }
32539 void * _res = NULL;
32540 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032541 { // expressions ['as' star_target]
32542 if (p->error_indicator) {
32543 D(p->level--);
32544 return NULL;
32545 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032546 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032547 void *_opt_var;
32548 UNUSED(_opt_var); // Silence compiler warnings
32549 expr_ty expressions_var;
32550 if (
32551 (expressions_var = expressions_rule(p)) // expressions
32552 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010032553 (_opt_var = _tmp_199_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032554 )
32555 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032556 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032557 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32558 goto done;
32559 }
32560 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032561 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032563 }
32564 _res = NULL;
32565 done:
32566 D(p->level--);
32567 return _res;
32568}
32569
Pablo Galindoa77aac42021-04-23 14:27:05 +010032570// _tmp_196: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032571static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010032572_tmp_196_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032573{
32574 D(p->level++);
32575 if (p->error_indicator) {
32576 D(p->level--);
32577 return NULL;
32578 }
32579 void * _res = NULL;
32580 int _mark = p->mark;
32581 { // expression ['as' star_target]
32582 if (p->error_indicator) {
32583 D(p->level--);
32584 return NULL;
32585 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032586 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032587 void *_opt_var;
32588 UNUSED(_opt_var); // Silence compiler warnings
32589 expr_ty expression_var;
32590 if (
32591 (expression_var = expression_rule(p)) // expression
32592 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010032593 (_opt_var = _tmp_200_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032594 )
32595 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032596 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032597 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32598 goto done;
32599 }
32600 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032601 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010032602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32603 }
32604 _res = NULL;
32605 done:
32606 D(p->level--);
32607 return _res;
32608}
32609
Pablo Galindoa77aac42021-04-23 14:27:05 +010032610// _tmp_197: expressions ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032611static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010032612_tmp_197_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032613{
32614 D(p->level++);
32615 if (p->error_indicator) {
32616 D(p->level--);
32617 return NULL;
32618 }
32619 void * _res = NULL;
32620 int _mark = p->mark;
32621 { // expressions ['as' star_target]
32622 if (p->error_indicator) {
32623 D(p->level--);
32624 return NULL;
32625 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032626 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032627 void *_opt_var;
32628 UNUSED(_opt_var); // Silence compiler warnings
32629 expr_ty expressions_var;
32630 if (
32631 (expressions_var = expressions_rule(p)) // expressions
32632 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010032633 (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032634 )
32635 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032636 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032637 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32638 goto done;
32639 }
32640 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032641 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032643 }
32644 _res = NULL;
32645 done:
32646 D(p->level--);
32647 return _res;
32648}
32649
Pablo Galindo56c95df2021-04-21 15:28:21 +010032650// _tmp_198: 'as' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032651static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032652_tmp_198_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032653{
32654 D(p->level++);
32655 if (p->error_indicator) {
32656 D(p->level--);
32657 return NULL;
32658 }
32659 void * _res = NULL;
32660 int _mark = p->mark;
32661 { // 'as' star_target
32662 if (p->error_indicator) {
32663 D(p->level--);
32664 return NULL;
32665 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010032666 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032667 Token * _keyword;
32668 expr_ty star_target_var;
32669 if (
32670 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32671 &&
32672 (star_target_var = star_target_rule(p)) // star_target
32673 )
32674 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010032675 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032676 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32677 goto done;
32678 }
32679 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032680 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
32681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32682 }
32683 _res = NULL;
32684 done:
32685 D(p->level--);
32686 return _res;
32687}
32688
32689// _tmp_199: 'as' star_target
32690static void *
32691_tmp_199_rule(Parser *p)
32692{
32693 D(p->level++);
32694 if (p->error_indicator) {
32695 D(p->level--);
32696 return NULL;
32697 }
32698 void * _res = NULL;
32699 int _mark = p->mark;
32700 { // 'as' star_target
32701 if (p->error_indicator) {
32702 D(p->level--);
32703 return NULL;
32704 }
32705 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32706 Token * _keyword;
32707 expr_ty star_target_var;
32708 if (
32709 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32710 &&
32711 (star_target_var = star_target_rule(p)) // star_target
32712 )
32713 {
32714 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32715 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32716 goto done;
32717 }
32718 p->mark = _mark;
32719 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
32720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32721 }
32722 _res = NULL;
32723 done:
32724 D(p->level--);
32725 return _res;
32726}
32727
32728// _tmp_200: 'as' star_target
32729static void *
32730_tmp_200_rule(Parser *p)
32731{
32732 D(p->level++);
32733 if (p->error_indicator) {
32734 D(p->level--);
32735 return NULL;
32736 }
32737 void * _res = NULL;
32738 int _mark = p->mark;
32739 { // 'as' star_target
32740 if (p->error_indicator) {
32741 D(p->level--);
32742 return NULL;
32743 }
32744 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32745 Token * _keyword;
32746 expr_ty star_target_var;
32747 if (
32748 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32749 &&
32750 (star_target_var = star_target_rule(p)) // star_target
32751 )
32752 {
32753 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32754 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32755 goto done;
32756 }
32757 p->mark = _mark;
32758 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32760 }
32761 _res = NULL;
32762 done:
32763 D(p->level--);
32764 return _res;
32765}
32766
Pablo Galindoa77aac42021-04-23 14:27:05 +010032767// _tmp_201: 'as' star_target
32768static void *
32769_tmp_201_rule(Parser *p)
32770{
32771 D(p->level++);
32772 if (p->error_indicator) {
32773 D(p->level--);
32774 return NULL;
32775 }
32776 void * _res = NULL;
32777 int _mark = p->mark;
32778 { // 'as' star_target
32779 if (p->error_indicator) {
32780 D(p->level--);
32781 return NULL;
32782 }
32783 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32784 Token * _keyword;
32785 expr_ty star_target_var;
32786 if (
32787 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32788 &&
32789 (star_target_var = star_target_rule(p)) // star_target
32790 )
32791 {
32792 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32793 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32794 goto done;
32795 }
32796 p->mark = _mark;
32797 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
32798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32799 }
32800 _res = NULL;
32801 done:
32802 D(p->level--);
32803 return _res;
32804}
32805
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032806void *
32807_PyPegen_parse(Parser *p)
32808{
32809 // Initialize keywords
32810 p->keywords = reserved_keywords;
32811 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010032812 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032813
32814 // Run parser
32815 void *result = NULL;
32816 if (p->start_rule == Py_file_input) {
32817 result = file_rule(p);
32818 } else if (p->start_rule == Py_single_input) {
32819 result = interactive_rule(p);
32820 } else if (p->start_rule == Py_eval_input) {
32821 result = eval_rule(p);
32822 } else if (p->start_rule == Py_func_type_input) {
32823 result = func_type_rule(p);
32824 } else if (p->start_rule == Py_fstring_input) {
32825 result = fstring_rule(p);
32826 }
32827
32828 return result;
32829}
32830
32831// The end