blob: e57c603e5ab7605e01dd66d6e065a2f475571d13 [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Victor Stinner6af528b2021-03-18 09:54:13 +01005# define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00006#else
Victor Stinner6af528b2021-03-18 09:54:13 +01007# define D(x)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00008#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009static const int n_keyword_lists = 9;
10static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010011 (KeywordToken[]) {{NULL, -1}},
12 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013 (KeywordToken[]) {
14 {"if", 510},
15 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080017 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018 {"or", 531},
19 {NULL, -1},
20 },
21 (KeywordToken[]) {
22 {"del", 503},
23 {"try", 511},
24 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080025 {"def", 526},
26 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027 {"and", 532},
28 {NULL, -1},
29 },
30 (KeywordToken[]) {
31 {"pass", 502},
32 {"from", 514},
33 {"elif", 515},
34 {"else", 516},
35 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080036 {"None", 523},
37 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010038 {NULL, -1},
39 },
40 (KeywordToken[]) {
41 {"raise", 501},
42 {"yield", 504},
43 {"break", 506},
44 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080045 {"False", 525},
46 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010047 {NULL, -1},
48 },
49 (KeywordToken[]) {
50 {"return", 500},
51 {"assert", 505},
52 {"global", 508},
53 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030054 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080055 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010056 {NULL, -1},
57 },
58 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030059 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010060 {NULL, -1},
61 },
62 (KeywordToken[]) {
63 {"continue", 507},
64 {"nonlocal", 509},
65 {NULL, -1},
66 },
67};
Pablo Galindob2802482021-04-15 21:38:45 +010068static char *soft_keywords[] = {
69 "_",
70 "case",
71 "match",
72 NULL,
73};
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010074#define file_type 1000
75#define interactive_type 1001
76#define eval_type 1002
77#define func_type_type 1003
78#define fstring_type 1004
79#define type_expressions_type 1005
80#define statements_type 1006
81#define statement_type 1007
82#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000083#define simple_stmts_type 1009
84#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010085#define compound_stmt_type 1011
86#define assignment_type 1012
87#define augassign_type 1013
88#define global_stmt_type 1014
89#define nonlocal_stmt_type 1015
90#define yield_stmt_type 1016
91#define assert_stmt_type 1017
92#define del_stmt_type 1018
93#define import_stmt_type 1019
94#define import_name_type 1020
95#define import_from_type 1021
96#define import_from_targets_type 1022
97#define import_from_as_names_type 1023
98#define import_from_as_name_type 1024
99#define dotted_as_names_type 1025
100#define dotted_as_name_type 1026
101#define dotted_name_type 1027 // Left-recursive
102#define if_stmt_type 1028
103#define elif_stmt_type 1029
104#define else_block_type 1030
105#define while_stmt_type 1031
106#define for_stmt_type 1032
107#define with_stmt_type 1033
108#define with_item_type 1034
109#define try_stmt_type 1035
110#define except_block_type 1036
111#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800112#define match_stmt_type 1038
113#define subject_expr_type 1039
114#define case_block_type 1040
115#define guard_type 1041
116#define patterns_type 1042
117#define pattern_type 1043
118#define as_pattern_type 1044
119#define or_pattern_type 1045
120#define closed_pattern_type 1046
121#define literal_pattern_type 1047
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000122#define literal_expr_type 1048
123#define complex_number_type 1049
124#define signed_number_type 1050
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700125#define signed_real_number_type 1051
126#define real_number_type 1052
127#define imaginary_number_type 1053
128#define capture_pattern_type 1054
129#define pattern_capture_target_type 1055
130#define wildcard_pattern_type 1056
131#define value_pattern_type 1057
132#define attr_type 1058 // Left-recursive
133#define name_or_attr_type 1059 // Left-recursive
134#define group_pattern_type 1060
135#define sequence_pattern_type 1061
136#define open_sequence_pattern_type 1062
137#define maybe_sequence_pattern_type 1063
138#define maybe_star_pattern_type 1064
139#define star_pattern_type 1065
140#define mapping_pattern_type 1066
141#define items_pattern_type 1067
142#define key_value_pattern_type 1068
143#define double_star_pattern_type 1069
144#define class_pattern_type 1070
145#define positional_patterns_type 1071
146#define keyword_patterns_type 1072
147#define keyword_pattern_type 1073
148#define return_stmt_type 1074
149#define raise_stmt_type 1075
150#define function_def_type 1076
151#define function_def_raw_type 1077
152#define func_type_comment_type 1078
153#define params_type 1079
154#define parameters_type 1080
155#define slash_no_default_type 1081
156#define slash_with_default_type 1082
157#define star_etc_type 1083
158#define kwds_type 1084
159#define param_no_default_type 1085
160#define param_with_default_type 1086
161#define param_maybe_default_type 1087
162#define param_type 1088
163#define annotation_type 1089
164#define default_type 1090
165#define decorators_type 1091
166#define class_def_type 1092
167#define class_def_raw_type 1093
168#define block_type 1094
169#define star_expressions_type 1095
170#define star_expression_type 1096
171#define star_named_expressions_type 1097
172#define star_named_expression_type 1098
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700173#define assigment_expression_type 1099
174#define named_expression_type 1100
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700175#define annotated_rhs_type 1101
176#define expressions_type 1102
177#define expression_type 1103
178#define lambdef_type 1104
179#define lambda_params_type 1105
180#define lambda_parameters_type 1106
181#define lambda_slash_no_default_type 1107
182#define lambda_slash_with_default_type 1108
183#define lambda_star_etc_type 1109
184#define lambda_kwds_type 1110
185#define lambda_param_no_default_type 1111
186#define lambda_param_with_default_type 1112
187#define lambda_param_maybe_default_type 1113
188#define lambda_param_type 1114
189#define disjunction_type 1115
190#define conjunction_type 1116
191#define inversion_type 1117
192#define comparison_type 1118
193#define compare_op_bitwise_or_pair_type 1119
194#define eq_bitwise_or_type 1120
195#define noteq_bitwise_or_type 1121
196#define lte_bitwise_or_type 1122
197#define lt_bitwise_or_type 1123
198#define gte_bitwise_or_type 1124
199#define gt_bitwise_or_type 1125
200#define notin_bitwise_or_type 1126
201#define in_bitwise_or_type 1127
202#define isnot_bitwise_or_type 1128
203#define is_bitwise_or_type 1129
204#define bitwise_or_type 1130 // Left-recursive
205#define bitwise_xor_type 1131 // Left-recursive
206#define bitwise_and_type 1132 // Left-recursive
207#define shift_expr_type 1133 // Left-recursive
208#define sum_type 1134 // Left-recursive
209#define term_type 1135 // Left-recursive
210#define factor_type 1136
211#define power_type 1137
212#define await_primary_type 1138
213#define primary_type 1139 // Left-recursive
214#define slices_type 1140
215#define slice_type 1141
216#define atom_type 1142
217#define strings_type 1143
218#define list_type 1144
219#define listcomp_type 1145
220#define tuple_type 1146
221#define group_type 1147
222#define genexp_type 1148
223#define set_type 1149
224#define setcomp_type 1150
225#define dict_type 1151
226#define dictcomp_type 1152
227#define double_starred_kvpairs_type 1153
228#define double_starred_kvpair_type 1154
229#define kvpair_type 1155
230#define for_if_clauses_type 1156
231#define for_if_clause_type 1157
232#define yield_expr_type 1158
233#define arguments_type 1159
234#define args_type 1160
235#define kwargs_type 1161
236#define starred_expression_type 1162
237#define kwarg_or_starred_type 1163
238#define kwarg_or_double_starred_type 1164
239#define star_targets_type 1165
240#define star_targets_list_seq_type 1166
241#define star_targets_tuple_seq_type 1167
242#define star_target_type 1168
243#define target_with_star_atom_type 1169
244#define star_atom_type 1170
245#define single_target_type 1171
246#define single_subscript_attribute_target_type 1172
247#define del_targets_type 1173
248#define del_target_type 1174
249#define del_t_atom_type 1175
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700250#define t_primary_type 1176 // Left-recursive
251#define t_lookahead_type 1177
252#define invalid_arguments_type 1178
253#define invalid_kwarg_type 1179
254#define expression_without_invalid_type 1180
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100255#define invalid_legacy_expression_type 1181
256#define invalid_expression_type 1182
257#define invalid_named_expression_type 1183
258#define invalid_assignment_type 1184
259#define invalid_ann_assign_target_type 1185
260#define invalid_del_stmt_type 1186
261#define invalid_block_type 1187
262#define invalid_primary_type 1188 // Left-recursive
263#define invalid_comprehension_type 1189
264#define invalid_dict_comprehension_type 1190
265#define invalid_parameters_type 1191
266#define invalid_parameters_helper_type 1192
267#define invalid_lambda_parameters_type 1193
268#define invalid_lambda_parameters_helper_type 1194
269#define invalid_star_etc_type 1195
270#define invalid_lambda_star_etc_type 1196
271#define invalid_double_type_comments_type 1197
272#define invalid_with_item_type 1198
273#define invalid_for_target_type 1199
274#define invalid_group_type 1200
275#define invalid_import_from_targets_type 1201
276#define invalid_with_stmt_type 1202
277#define invalid_with_stmt_indent_type 1203
278#define invalid_try_stmt_type 1204
279#define invalid_except_stmt_type 1205
280#define invalid_finally_stmt_type 1206
281#define invalid_except_stmt_indent_type 1207
282#define invalid_match_stmt_type 1208
283#define invalid_case_block_type 1209
284#define invalid_as_pattern_type 1210
285#define invalid_class_pattern_type 1211
286#define invalid_class_argument_pattern_type 1212
287#define invalid_if_stmt_type 1213
288#define invalid_elif_stmt_type 1214
289#define invalid_else_stmt_type 1215
290#define invalid_while_stmt_type 1216
291#define invalid_for_stmt_type 1217
292#define invalid_def_raw_type 1218
293#define invalid_class_def_raw_type 1219
294#define invalid_double_starred_kvpairs_type 1220
295#define invalid_kvpair_type 1221
296#define _loop0_1_type 1222
297#define _loop0_2_type 1223
298#define _loop0_4_type 1224
299#define _gather_3_type 1225
300#define _loop0_6_type 1226
301#define _gather_5_type 1227
302#define _loop0_8_type 1228
303#define _gather_7_type 1229
304#define _loop0_10_type 1230
305#define _gather_9_type 1231
306#define _loop1_11_type 1232
307#define _loop0_13_type 1233
308#define _gather_12_type 1234
309#define _tmp_14_type 1235
310#define _tmp_15_type 1236
311#define _tmp_16_type 1237
312#define _tmp_17_type 1238
313#define _tmp_18_type 1239
314#define _tmp_19_type 1240
315#define _tmp_20_type 1241
316#define _tmp_21_type 1242
317#define _loop1_22_type 1243
318#define _tmp_23_type 1244
319#define _tmp_24_type 1245
320#define _loop0_26_type 1246
321#define _gather_25_type 1247
322#define _loop0_28_type 1248
323#define _gather_27_type 1249
324#define _tmp_29_type 1250
325#define _tmp_30_type 1251
326#define _loop0_31_type 1252
327#define _loop1_32_type 1253
328#define _loop0_34_type 1254
329#define _gather_33_type 1255
330#define _tmp_35_type 1256
331#define _loop0_37_type 1257
332#define _gather_36_type 1258
333#define _tmp_38_type 1259
334#define _loop0_40_type 1260
335#define _gather_39_type 1261
336#define _loop0_42_type 1262
337#define _gather_41_type 1263
338#define _loop0_44_type 1264
339#define _gather_43_type 1265
340#define _loop0_46_type 1266
341#define _gather_45_type 1267
342#define _tmp_47_type 1268
343#define _loop1_48_type 1269
344#define _tmp_49_type 1270
345#define _loop1_50_type 1271
346#define _loop0_52_type 1272
347#define _gather_51_type 1273
348#define _tmp_53_type 1274
349#define _tmp_54_type 1275
350#define _tmp_55_type 1276
351#define _tmp_56_type 1277
352#define _loop0_58_type 1278
353#define _gather_57_type 1279
354#define _loop0_60_type 1280
355#define _gather_59_type 1281
356#define _tmp_61_type 1282
357#define _loop0_63_type 1283
358#define _gather_62_type 1284
359#define _loop0_65_type 1285
360#define _gather_64_type 1286
361#define _tmp_66_type 1287
362#define _tmp_67_type 1288
363#define _tmp_68_type 1289
364#define _tmp_69_type 1290
365#define _loop0_70_type 1291
366#define _loop0_71_type 1292
367#define _loop0_72_type 1293
368#define _loop1_73_type 1294
369#define _loop0_74_type 1295
370#define _loop1_75_type 1296
371#define _loop1_76_type 1297
372#define _loop1_77_type 1298
373#define _loop0_78_type 1299
374#define _loop1_79_type 1300
375#define _loop0_80_type 1301
376#define _loop1_81_type 1302
377#define _loop0_82_type 1303
378#define _loop1_83_type 1304
379#define _loop1_84_type 1305
380#define _tmp_85_type 1306
381#define _loop1_86_type 1307
382#define _loop0_88_type 1308
383#define _gather_87_type 1309
384#define _loop1_89_type 1310
385#define _loop0_90_type 1311
386#define _loop0_91_type 1312
387#define _loop0_92_type 1313
388#define _loop1_93_type 1314
389#define _loop0_94_type 1315
390#define _loop1_95_type 1316
391#define _loop1_96_type 1317
392#define _loop1_97_type 1318
393#define _loop0_98_type 1319
394#define _loop1_99_type 1320
395#define _loop0_100_type 1321
396#define _loop1_101_type 1322
397#define _loop0_102_type 1323
398#define _loop1_103_type 1324
399#define _loop1_104_type 1325
400#define _loop1_105_type 1326
401#define _loop1_106_type 1327
402#define _tmp_107_type 1328
403#define _loop0_109_type 1329
404#define _gather_108_type 1330
405#define _tmp_110_type 1331
406#define _tmp_111_type 1332
407#define _tmp_112_type 1333
408#define _tmp_113_type 1334
409#define _loop1_114_type 1335
410#define _tmp_115_type 1336
411#define _tmp_116_type 1337
412#define _tmp_117_type 1338
413#define _loop0_119_type 1339
414#define _gather_118_type 1340
415#define _loop1_120_type 1341
416#define _loop0_121_type 1342
417#define _loop0_122_type 1343
418#define _loop0_124_type 1344
419#define _gather_123_type 1345
420#define _tmp_125_type 1346
421#define _loop0_127_type 1347
422#define _gather_126_type 1348
423#define _loop0_129_type 1349
424#define _gather_128_type 1350
425#define _loop0_131_type 1351
426#define _gather_130_type 1352
427#define _loop0_133_type 1353
428#define _gather_132_type 1354
429#define _loop0_134_type 1355
430#define _loop0_136_type 1356
431#define _gather_135_type 1357
432#define _loop1_137_type 1358
433#define _tmp_138_type 1359
434#define _loop0_140_type 1360
435#define _gather_139_type 1361
436#define _tmp_141_type 1362
437#define _tmp_142_type 1363
438#define _tmp_143_type 1364
439#define _tmp_144_type 1365
440#define _tmp_145_type 1366
441#define _tmp_146_type 1367
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100442#define _tmp_147_type 1368
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100443#define _loop0_148_type 1369
444#define _loop0_149_type 1370
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100445#define _loop0_150_type 1371
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100446#define _tmp_151_type 1372
447#define _tmp_152_type 1373
448#define _tmp_153_type 1374
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100449#define _tmp_154_type 1375
450#define _loop0_155_type 1376
451#define _loop1_156_type 1377
452#define _loop0_157_type 1378
453#define _loop1_158_type 1379
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100454#define _tmp_159_type 1380
455#define _tmp_160_type 1381
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100456#define _tmp_161_type 1382
457#define _loop0_163_type 1383
458#define _gather_162_type 1384
459#define _loop0_165_type 1385
460#define _gather_164_type 1386
461#define _loop0_167_type 1387
462#define _gather_166_type 1388
463#define _loop0_169_type 1389
464#define _gather_168_type 1390
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100465#define _tmp_170_type 1391
466#define _tmp_171_type 1392
467#define _tmp_172_type 1393
468#define _tmp_173_type 1394
469#define _tmp_174_type 1395
470#define _tmp_175_type 1396
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100471#define _tmp_176_type 1397
472#define _loop0_178_type 1398
473#define _gather_177_type 1399
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100474#define _tmp_179_type 1400
475#define _tmp_180_type 1401
476#define _tmp_181_type 1402
477#define _tmp_182_type 1403
478#define _tmp_183_type 1404
479#define _tmp_184_type 1405
480#define _tmp_185_type 1406
481#define _tmp_186_type 1407
482#define _tmp_187_type 1408
483#define _tmp_188_type 1409
484#define _tmp_189_type 1410
485#define _tmp_190_type 1411
486#define _tmp_191_type 1412
487#define _tmp_192_type 1413
488#define _tmp_193_type 1414
489#define _tmp_194_type 1415
490#define _tmp_195_type 1416
491#define _tmp_196_type 1417
492#define _tmp_197_type 1418
493#define _tmp_198_type 1419
494#define _tmp_199_type 1420
495#define _tmp_200_type 1421
496#define _tmp_201_type 1422
497#define _tmp_202_type 1423
498#define _tmp_203_type 1424
499#define _tmp_204_type 1425
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100500#define _tmp_205_type 1426
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100501
502static mod_ty file_rule(Parser *p);
503static mod_ty interactive_rule(Parser *p);
504static mod_ty eval_rule(Parser *p);
505static mod_ty func_type_rule(Parser *p);
506static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100507static asdl_expr_seq* type_expressions_rule(Parser *p);
508static asdl_stmt_seq* statements_rule(Parser *p);
509static asdl_stmt_seq* statement_rule(Parser *p);
510static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000511static asdl_stmt_seq* simple_stmts_rule(Parser *p);
512static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100513static stmt_ty compound_stmt_rule(Parser *p);
514static stmt_ty assignment_rule(Parser *p);
515static AugOperator* augassign_rule(Parser *p);
516static stmt_ty global_stmt_rule(Parser *p);
517static stmt_ty nonlocal_stmt_rule(Parser *p);
518static stmt_ty yield_stmt_rule(Parser *p);
519static stmt_ty assert_stmt_rule(Parser *p);
520static stmt_ty del_stmt_rule(Parser *p);
521static stmt_ty import_stmt_rule(Parser *p);
522static stmt_ty import_name_rule(Parser *p);
523static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100524static asdl_alias_seq* import_from_targets_rule(Parser *p);
525static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100526static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100527static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100528static alias_ty dotted_as_name_rule(Parser *p);
529static expr_ty dotted_name_rule(Parser *p);
530static stmt_ty if_stmt_rule(Parser *p);
531static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100532static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100533static stmt_ty while_stmt_rule(Parser *p);
534static stmt_ty for_stmt_rule(Parser *p);
535static stmt_ty with_stmt_rule(Parser *p);
536static withitem_ty with_item_rule(Parser *p);
537static stmt_ty try_stmt_rule(Parser *p);
538static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100539static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800540static stmt_ty match_stmt_rule(Parser *p);
541static expr_ty subject_expr_rule(Parser *p);
542static match_case_ty case_block_rule(Parser *p);
543static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000544static pattern_ty patterns_rule(Parser *p);
545static pattern_ty pattern_rule(Parser *p);
546static pattern_ty as_pattern_rule(Parser *p);
547static pattern_ty or_pattern_rule(Parser *p);
548static pattern_ty closed_pattern_rule(Parser *p);
549static pattern_ty literal_pattern_rule(Parser *p);
550static expr_ty literal_expr_rule(Parser *p);
551static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800552static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700553static expr_ty signed_real_number_rule(Parser *p);
554static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000555static expr_ty imaginary_number_rule(Parser *p);
556static pattern_ty capture_pattern_rule(Parser *p);
557static expr_ty pattern_capture_target_rule(Parser *p);
558static pattern_ty wildcard_pattern_rule(Parser *p);
559static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800560static expr_ty attr_rule(Parser *p);
561static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000562static pattern_ty group_pattern_rule(Parser *p);
563static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800564static asdl_seq* open_sequence_pattern_rule(Parser *p);
565static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000566static pattern_ty maybe_star_pattern_rule(Parser *p);
567static pattern_ty star_pattern_rule(Parser *p);
568static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800569static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000570static KeyPatternPair* key_value_pattern_rule(Parser *p);
571static expr_ty double_star_pattern_rule(Parser *p);
572static pattern_ty class_pattern_rule(Parser *p);
573static asdl_pattern_seq* positional_patterns_rule(Parser *p);
574static asdl_seq* keyword_patterns_rule(Parser *p);
575static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100576static stmt_ty return_stmt_rule(Parser *p);
577static stmt_ty raise_stmt_rule(Parser *p);
578static stmt_ty function_def_rule(Parser *p);
579static stmt_ty function_def_raw_rule(Parser *p);
580static Token* func_type_comment_rule(Parser *p);
581static arguments_ty params_rule(Parser *p);
582static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100583static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100584static SlashWithDefault* slash_with_default_rule(Parser *p);
585static StarEtc* star_etc_rule(Parser *p);
586static arg_ty kwds_rule(Parser *p);
587static arg_ty param_no_default_rule(Parser *p);
588static NameDefaultPair* param_with_default_rule(Parser *p);
589static NameDefaultPair* param_maybe_default_rule(Parser *p);
590static arg_ty param_rule(Parser *p);
591static expr_ty annotation_rule(Parser *p);
592static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100593static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100594static stmt_ty class_def_rule(Parser *p);
595static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100596static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100597static expr_ty star_expressions_rule(Parser *p);
598static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100599static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100600static expr_ty star_named_expression_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700601static expr_ty assigment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100602static expr_ty named_expression_rule(Parser *p);
603static expr_ty annotated_rhs_rule(Parser *p);
604static expr_ty expressions_rule(Parser *p);
605static expr_ty expression_rule(Parser *p);
606static expr_ty lambdef_rule(Parser *p);
607static arguments_ty lambda_params_rule(Parser *p);
608static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100609static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100610static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
611static StarEtc* lambda_star_etc_rule(Parser *p);
612static arg_ty lambda_kwds_rule(Parser *p);
613static arg_ty lambda_param_no_default_rule(Parser *p);
614static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
615static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
616static arg_ty lambda_param_rule(Parser *p);
617static expr_ty disjunction_rule(Parser *p);
618static expr_ty conjunction_rule(Parser *p);
619static expr_ty inversion_rule(Parser *p);
620static expr_ty comparison_rule(Parser *p);
621static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
622static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
623static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
624static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
625static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
626static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
627static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
628static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
629static CmpopExprPair* in_bitwise_or_rule(Parser *p);
630static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
631static CmpopExprPair* is_bitwise_or_rule(Parser *p);
632static expr_ty bitwise_or_rule(Parser *p);
633static expr_ty bitwise_xor_rule(Parser *p);
634static expr_ty bitwise_and_rule(Parser *p);
635static expr_ty shift_expr_rule(Parser *p);
636static expr_ty sum_rule(Parser *p);
637static expr_ty term_rule(Parser *p);
638static expr_ty factor_rule(Parser *p);
639static expr_ty power_rule(Parser *p);
640static expr_ty await_primary_rule(Parser *p);
641static expr_ty primary_rule(Parser *p);
642static expr_ty slices_rule(Parser *p);
643static expr_ty slice_rule(Parser *p);
644static expr_ty atom_rule(Parser *p);
645static expr_ty strings_rule(Parser *p);
646static expr_ty list_rule(Parser *p);
647static expr_ty listcomp_rule(Parser *p);
648static expr_ty tuple_rule(Parser *p);
649static expr_ty group_rule(Parser *p);
650static expr_ty genexp_rule(Parser *p);
651static expr_ty set_rule(Parser *p);
652static expr_ty setcomp_rule(Parser *p);
653static expr_ty dict_rule(Parser *p);
654static expr_ty dictcomp_rule(Parser *p);
655static asdl_seq* double_starred_kvpairs_rule(Parser *p);
656static KeyValuePair* double_starred_kvpair_rule(Parser *p);
657static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100658static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100659static comprehension_ty for_if_clause_rule(Parser *p);
660static expr_ty yield_expr_rule(Parser *p);
661static expr_ty arguments_rule(Parser *p);
662static expr_ty args_rule(Parser *p);
663static asdl_seq* kwargs_rule(Parser *p);
664static expr_ty starred_expression_rule(Parser *p);
665static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
666static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
667static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200668static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
669static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100670static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200671static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100672static expr_ty star_atom_rule(Parser *p);
673static expr_ty single_target_rule(Parser *p);
674static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100675static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100676static expr_ty del_target_rule(Parser *p);
677static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100678static expr_ty t_primary_rule(Parser *p);
679static void *t_lookahead_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200680static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100681static void *invalid_kwarg_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700682static expr_ty expression_without_invalid_rule(Parser *p);
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +0100683static void *invalid_legacy_expression_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100684static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100685static void *invalid_named_expression_rule(Parser *p);
686static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300687static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300688static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100689static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200690static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100691static void *invalid_comprehension_rule(Parser *p);
692static void *invalid_dict_comprehension_rule(Parser *p);
693static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200694static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100695static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200696static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100697static void *invalid_star_etc_rule(Parser *p);
698static void *invalid_lambda_star_etc_rule(Parser *p);
699static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300700static void *invalid_with_item_rule(Parser *p);
701static void *invalid_for_target_rule(Parser *p);
702static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100703static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000704static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100705static void *invalid_with_stmt_indent_rule(Parser *p);
706static void *invalid_try_stmt_rule(Parser *p);
707static void *invalid_except_stmt_rule(Parser *p);
708static void *invalid_finally_stmt_rule(Parser *p);
709static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000710static void *invalid_match_stmt_rule(Parser *p);
711static void *invalid_case_block_rule(Parser *p);
Pablo Galindoa8c418d2021-06-18 22:15:57 +0100712static void *invalid_as_pattern_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700713static void *invalid_class_pattern_rule(Parser *p);
714static asdl_pattern_seq* invalid_class_argument_pattern_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100715static void *invalid_if_stmt_rule(Parser *p);
716static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100717static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100718static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100719static void *invalid_for_stmt_rule(Parser *p);
720static void *invalid_def_raw_rule(Parser *p);
721static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100722static void *invalid_double_starred_kvpairs_rule(Parser *p);
723static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100724static asdl_seq *_loop0_1_rule(Parser *p);
725static asdl_seq *_loop0_2_rule(Parser *p);
726static asdl_seq *_loop0_4_rule(Parser *p);
727static asdl_seq *_gather_3_rule(Parser *p);
728static asdl_seq *_loop0_6_rule(Parser *p);
729static asdl_seq *_gather_5_rule(Parser *p);
730static asdl_seq *_loop0_8_rule(Parser *p);
731static asdl_seq *_gather_7_rule(Parser *p);
732static asdl_seq *_loop0_10_rule(Parser *p);
733static asdl_seq *_gather_9_rule(Parser *p);
734static asdl_seq *_loop1_11_rule(Parser *p);
735static asdl_seq *_loop0_13_rule(Parser *p);
736static asdl_seq *_gather_12_rule(Parser *p);
737static void *_tmp_14_rule(Parser *p);
738static void *_tmp_15_rule(Parser *p);
739static void *_tmp_16_rule(Parser *p);
740static void *_tmp_17_rule(Parser *p);
741static void *_tmp_18_rule(Parser *p);
742static void *_tmp_19_rule(Parser *p);
743static void *_tmp_20_rule(Parser *p);
744static void *_tmp_21_rule(Parser *p);
745static asdl_seq *_loop1_22_rule(Parser *p);
746static void *_tmp_23_rule(Parser *p);
747static void *_tmp_24_rule(Parser *p);
748static asdl_seq *_loop0_26_rule(Parser *p);
749static asdl_seq *_gather_25_rule(Parser *p);
750static asdl_seq *_loop0_28_rule(Parser *p);
751static asdl_seq *_gather_27_rule(Parser *p);
752static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300753static void *_tmp_30_rule(Parser *p);
754static asdl_seq *_loop0_31_rule(Parser *p);
755static asdl_seq *_loop1_32_rule(Parser *p);
756static asdl_seq *_loop0_34_rule(Parser *p);
757static asdl_seq *_gather_33_rule(Parser *p);
758static void *_tmp_35_rule(Parser *p);
759static asdl_seq *_loop0_37_rule(Parser *p);
760static asdl_seq *_gather_36_rule(Parser *p);
761static void *_tmp_38_rule(Parser *p);
762static asdl_seq *_loop0_40_rule(Parser *p);
763static asdl_seq *_gather_39_rule(Parser *p);
764static asdl_seq *_loop0_42_rule(Parser *p);
765static asdl_seq *_gather_41_rule(Parser *p);
766static asdl_seq *_loop0_44_rule(Parser *p);
767static asdl_seq *_gather_43_rule(Parser *p);
768static asdl_seq *_loop0_46_rule(Parser *p);
769static asdl_seq *_gather_45_rule(Parser *p);
770static void *_tmp_47_rule(Parser *p);
771static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100772static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800773static asdl_seq *_loop1_50_rule(Parser *p);
774static asdl_seq *_loop0_52_rule(Parser *p);
775static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300776static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800777static void *_tmp_54_rule(Parser *p);
778static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000779static void *_tmp_56_rule(Parser *p);
780static asdl_seq *_loop0_58_rule(Parser *p);
781static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800782static asdl_seq *_loop0_60_rule(Parser *p);
783static asdl_seq *_gather_59_rule(Parser *p);
784static void *_tmp_61_rule(Parser *p);
785static asdl_seq *_loop0_63_rule(Parser *p);
786static asdl_seq *_gather_62_rule(Parser *p);
787static asdl_seq *_loop0_65_rule(Parser *p);
788static asdl_seq *_gather_64_rule(Parser *p);
789static void *_tmp_66_rule(Parser *p);
790static void *_tmp_67_rule(Parser *p);
791static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300792static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800793static asdl_seq *_loop0_70_rule(Parser *p);
794static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000795static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000796static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300797static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800798static asdl_seq *_loop1_75_rule(Parser *p);
799static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000800static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300801static asdl_seq *_loop0_78_rule(Parser *p);
802static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800803static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100804static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000805static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300806static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800807static asdl_seq *_loop1_84_rule(Parser *p);
808static void *_tmp_85_rule(Parser *p);
809static asdl_seq *_loop1_86_rule(Parser *p);
810static asdl_seq *_loop0_88_rule(Parser *p);
811static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100812static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800813static asdl_seq *_loop0_90_rule(Parser *p);
814static asdl_seq *_loop0_91_rule(Parser *p);
815static asdl_seq *_loop0_92_rule(Parser *p);
816static asdl_seq *_loop1_93_rule(Parser *p);
817static asdl_seq *_loop0_94_rule(Parser *p);
818static asdl_seq *_loop1_95_rule(Parser *p);
819static asdl_seq *_loop1_96_rule(Parser *p);
820static asdl_seq *_loop1_97_rule(Parser *p);
821static asdl_seq *_loop0_98_rule(Parser *p);
822static asdl_seq *_loop1_99_rule(Parser *p);
823static asdl_seq *_loop0_100_rule(Parser *p);
824static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000825static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000826static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800827static asdl_seq *_loop1_104_rule(Parser *p);
828static asdl_seq *_loop1_105_rule(Parser *p);
829static asdl_seq *_loop1_106_rule(Parser *p);
830static void *_tmp_107_rule(Parser *p);
831static asdl_seq *_loop0_109_rule(Parser *p);
832static asdl_seq *_gather_108_rule(Parser *p);
833static void *_tmp_110_rule(Parser *p);
834static void *_tmp_111_rule(Parser *p);
835static void *_tmp_112_rule(Parser *p);
836static void *_tmp_113_rule(Parser *p);
837static asdl_seq *_loop1_114_rule(Parser *p);
838static void *_tmp_115_rule(Parser *p);
839static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700840static void *_tmp_117_rule(Parser *p);
841static asdl_seq *_loop0_119_rule(Parser *p);
842static asdl_seq *_gather_118_rule(Parser *p);
843static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800844static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700845static asdl_seq *_loop0_122_rule(Parser *p);
846static asdl_seq *_loop0_124_rule(Parser *p);
847static asdl_seq *_gather_123_rule(Parser *p);
848static void *_tmp_125_rule(Parser *p);
849static asdl_seq *_loop0_127_rule(Parser *p);
850static asdl_seq *_gather_126_rule(Parser *p);
851static asdl_seq *_loop0_129_rule(Parser *p);
852static asdl_seq *_gather_128_rule(Parser *p);
853static asdl_seq *_loop0_131_rule(Parser *p);
854static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000855static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700856static asdl_seq *_gather_132_rule(Parser *p);
857static asdl_seq *_loop0_134_rule(Parser *p);
858static asdl_seq *_loop0_136_rule(Parser *p);
859static asdl_seq *_gather_135_rule(Parser *p);
860static asdl_seq *_loop1_137_rule(Parser *p);
861static void *_tmp_138_rule(Parser *p);
862static asdl_seq *_loop0_140_rule(Parser *p);
863static asdl_seq *_gather_139_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700864static void *_tmp_141_rule(Parser *p);
865static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100866static void *_tmp_143_rule(Parser *p);
867static void *_tmp_144_rule(Parser *p);
868static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100869static void *_tmp_146_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100870static void *_tmp_147_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700871static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100872static asdl_seq *_loop0_149_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100873static asdl_seq *_loop0_150_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700874static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100875static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100876static void *_tmp_153_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100877static void *_tmp_154_rule(Parser *p);
878static asdl_seq *_loop0_155_rule(Parser *p);
879static asdl_seq *_loop1_156_rule(Parser *p);
880static asdl_seq *_loop0_157_rule(Parser *p);
881static asdl_seq *_loop1_158_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700882static void *_tmp_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100883static void *_tmp_160_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100884static void *_tmp_161_rule(Parser *p);
885static asdl_seq *_loop0_163_rule(Parser *p);
886static asdl_seq *_gather_162_rule(Parser *p);
887static asdl_seq *_loop0_165_rule(Parser *p);
888static asdl_seq *_gather_164_rule(Parser *p);
889static asdl_seq *_loop0_167_rule(Parser *p);
890static asdl_seq *_gather_166_rule(Parser *p);
891static asdl_seq *_loop0_169_rule(Parser *p);
892static asdl_seq *_gather_168_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700893static void *_tmp_170_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800894static void *_tmp_171_rule(Parser *p);
895static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100896static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700897static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700898static void *_tmp_175_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100899static void *_tmp_176_rule(Parser *p);
900static asdl_seq *_loop0_178_rule(Parser *p);
901static asdl_seq *_gather_177_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800902static void *_tmp_179_rule(Parser *p);
903static void *_tmp_180_rule(Parser *p);
904static void *_tmp_181_rule(Parser *p);
905static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100906static void *_tmp_183_rule(Parser *p);
907static void *_tmp_184_rule(Parser *p);
908static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100909static void *_tmp_186_rule(Parser *p);
910static void *_tmp_187_rule(Parser *p);
911static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100912static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100913static void *_tmp_190_rule(Parser *p);
914static void *_tmp_191_rule(Parser *p);
915static void *_tmp_192_rule(Parser *p);
916static void *_tmp_193_rule(Parser *p);
917static void *_tmp_194_rule(Parser *p);
918static void *_tmp_195_rule(Parser *p);
919static void *_tmp_196_rule(Parser *p);
920static void *_tmp_197_rule(Parser *p);
921static void *_tmp_198_rule(Parser *p);
922static void *_tmp_199_rule(Parser *p);
923static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100924static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700925static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700926static void *_tmp_203_rule(Parser *p);
Miss Islington (bot)11f1a302021-06-24 08:34:28 -0700927static void *_tmp_204_rule(Parser *p);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +0100928static void *_tmp_205_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000929
930
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100931// file: statements? $
932static mod_ty
933file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000934{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100935 D(p->level++);
936 if (p->error_indicator) {
937 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000938 return NULL;
939 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100940 mod_ty _res = NULL;
941 int _mark = p->mark;
942 { // statements? $
943 if (p->error_indicator) {
944 D(p->level--);
945 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000946 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100947 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
948 void *a;
949 Token * endmarker_var;
950 if (
951 (a = statements_rule(p), 1) // statements?
952 &&
953 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
954 )
955 {
956 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
957 _res = _PyPegen_make_module ( p , a );
958 if (_res == NULL && PyErr_Occurred()) {
959 p->error_indicator = 1;
960 D(p->level--);
961 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000962 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100963 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000964 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100965 p->mark = _mark;
966 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000968 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100969 _res = NULL;
970 done:
971 D(p->level--);
972 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000973}
974
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100975// interactive: statement_newline
976static mod_ty
977interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000978{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100979 D(p->level++);
980 if (p->error_indicator) {
981 D(p->level--);
982 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000983 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100984 mod_ty _res = NULL;
985 int _mark = p->mark;
986 { // statement_newline
987 if (p->error_indicator) {
988 D(p->level--);
989 return NULL;
990 }
991 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100992 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100993 if (
994 (a = statement_newline_rule(p)) // statement_newline
995 )
996 {
997 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200998 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100999 if (_res == NULL && PyErr_Occurred()) {
1000 p->error_indicator = 1;
1001 D(p->level--);
1002 return NULL;
1003 }
1004 goto done;
1005 }
1006 p->mark = _mark;
1007 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
1008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
1009 }
1010 _res = NULL;
1011 done:
1012 D(p->level--);
1013 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001014}
1015
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001016// eval: expressions NEWLINE* $
1017static mod_ty
1018eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001019{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001020 D(p->level++);
1021 if (p->error_indicator) {
1022 D(p->level--);
1023 return NULL;
1024 }
1025 mod_ty _res = NULL;
1026 int _mark = p->mark;
1027 { // expressions NEWLINE* $
1028 if (p->error_indicator) {
1029 D(p->level--);
1030 return NULL;
1031 }
1032 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1033 asdl_seq * _loop0_1_var;
1034 expr_ty a;
1035 Token * endmarker_var;
1036 if (
1037 (a = expressions_rule(p)) // expressions
1038 &&
1039 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1040 &&
1041 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1042 )
1043 {
1044 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001045 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001046 if (_res == NULL && PyErr_Occurred()) {
1047 p->error_indicator = 1;
1048 D(p->level--);
1049 return NULL;
1050 }
1051 goto done;
1052 }
1053 p->mark = _mark;
1054 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1056 }
1057 _res = NULL;
1058 done:
1059 D(p->level--);
1060 return _res;
1061}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001062
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001063// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1064static mod_ty
1065func_type_rule(Parser *p)
1066{
1067 D(p->level++);
1068 if (p->error_indicator) {
1069 D(p->level--);
1070 return NULL;
1071 }
1072 mod_ty _res = NULL;
1073 int _mark = p->mark;
1074 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1075 if (p->error_indicator) {
1076 D(p->level--);
1077 return NULL;
1078 }
1079 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1080 Token * _literal;
1081 Token * _literal_1;
1082 Token * _literal_2;
1083 asdl_seq * _loop0_2_var;
1084 void *a;
1085 expr_ty b;
1086 Token * endmarker_var;
1087 if (
1088 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1089 &&
1090 (a = type_expressions_rule(p), 1) // type_expressions?
1091 &&
1092 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1093 &&
1094 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1095 &&
1096 (b = expression_rule(p)) // expression
1097 &&
1098 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1099 &&
1100 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1101 )
1102 {
1103 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 +02001104 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001105 if (_res == NULL && PyErr_Occurred()) {
1106 p->error_indicator = 1;
1107 D(p->level--);
1108 return NULL;
1109 }
1110 goto done;
1111 }
1112 p->mark = _mark;
1113 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1115 }
1116 _res = NULL;
1117 done:
1118 D(p->level--);
1119 return _res;
1120}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001121
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001122// fstring: star_expressions
1123static expr_ty
1124fstring_rule(Parser *p)
1125{
1126 D(p->level++);
1127 if (p->error_indicator) {
1128 D(p->level--);
1129 return NULL;
1130 }
1131 expr_ty _res = NULL;
1132 int _mark = p->mark;
1133 { // star_expressions
1134 if (p->error_indicator) {
1135 D(p->level--);
1136 return NULL;
1137 }
1138 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1139 expr_ty star_expressions_var;
1140 if (
1141 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1142 )
1143 {
1144 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1145 _res = star_expressions_var;
1146 goto done;
1147 }
1148 p->mark = _mark;
1149 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1151 }
1152 _res = NULL;
1153 done:
1154 D(p->level--);
1155 return _res;
1156}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001157
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001158// type_expressions:
1159// | ','.expression+ ',' '*' expression ',' '**' expression
1160// | ','.expression+ ',' '*' expression
1161// | ','.expression+ ',' '**' expression
1162// | '*' expression ',' '**' expression
1163// | '*' expression
1164// | '**' expression
1165// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001166static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001167type_expressions_rule(Parser *p)
1168{
1169 D(p->level++);
1170 if (p->error_indicator) {
1171 D(p->level--);
1172 return NULL;
1173 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001174 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001175 int _mark = p->mark;
1176 { // ','.expression+ ',' '*' expression ',' '**' expression
1177 if (p->error_indicator) {
1178 D(p->level--);
1179 return NULL;
1180 }
1181 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1182 Token * _literal;
1183 Token * _literal_1;
1184 Token * _literal_2;
1185 Token * _literal_3;
1186 asdl_seq * a;
1187 expr_ty b;
1188 expr_ty c;
1189 if (
1190 (a = _gather_3_rule(p)) // ','.expression+
1191 &&
1192 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1193 &&
1194 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1195 &&
1196 (b = expression_rule(p)) // expression
1197 &&
1198 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1199 &&
1200 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1201 &&
1202 (c = expression_rule(p)) // expression
1203 )
1204 {
1205 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 +03001206 _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 +01001207 if (_res == NULL && PyErr_Occurred()) {
1208 p->error_indicator = 1;
1209 D(p->level--);
1210 return NULL;
1211 }
1212 goto done;
1213 }
1214 p->mark = _mark;
1215 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1217 }
1218 { // ','.expression+ ',' '*' expression
1219 if (p->error_indicator) {
1220 D(p->level--);
1221 return NULL;
1222 }
1223 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1224 Token * _literal;
1225 Token * _literal_1;
1226 asdl_seq * a;
1227 expr_ty b;
1228 if (
1229 (a = _gather_5_rule(p)) // ','.expression+
1230 &&
1231 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1232 &&
1233 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1234 &&
1235 (b = expression_rule(p)) // expression
1236 )
1237 {
1238 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 +01001239 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001240 if (_res == NULL && PyErr_Occurred()) {
1241 p->error_indicator = 1;
1242 D(p->level--);
1243 return NULL;
1244 }
1245 goto done;
1246 }
1247 p->mark = _mark;
1248 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1250 }
1251 { // ','.expression+ ',' '**' expression
1252 if (p->error_indicator) {
1253 D(p->level--);
1254 return NULL;
1255 }
1256 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1257 Token * _literal;
1258 Token * _literal_1;
1259 asdl_seq * a;
1260 expr_ty b;
1261 if (
1262 (a = _gather_7_rule(p)) // ','.expression+
1263 &&
1264 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1265 &&
1266 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1267 &&
1268 (b = expression_rule(p)) // expression
1269 )
1270 {
1271 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 +01001272 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001273 if (_res == NULL && PyErr_Occurred()) {
1274 p->error_indicator = 1;
1275 D(p->level--);
1276 return NULL;
1277 }
1278 goto done;
1279 }
1280 p->mark = _mark;
1281 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1283 }
1284 { // '*' expression ',' '**' expression
1285 if (p->error_indicator) {
1286 D(p->level--);
1287 return NULL;
1288 }
1289 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1290 Token * _literal;
1291 Token * _literal_1;
1292 Token * _literal_2;
1293 expr_ty a;
1294 expr_ty b;
1295 if (
1296 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1297 &&
1298 (a = expression_rule(p)) // expression
1299 &&
1300 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1301 &&
1302 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1303 &&
1304 (b = expression_rule(p)) // expression
1305 )
1306 {
1307 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 +03001308 _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 +01001309 if (_res == NULL && PyErr_Occurred()) {
1310 p->error_indicator = 1;
1311 D(p->level--);
1312 return NULL;
1313 }
1314 goto done;
1315 }
1316 p->mark = _mark;
1317 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1319 }
1320 { // '*' expression
1321 if (p->error_indicator) {
1322 D(p->level--);
1323 return NULL;
1324 }
1325 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1326 Token * _literal;
1327 expr_ty a;
1328 if (
1329 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1330 &&
1331 (a = expression_rule(p)) // expression
1332 )
1333 {
1334 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001335 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001336 if (_res == NULL && PyErr_Occurred()) {
1337 p->error_indicator = 1;
1338 D(p->level--);
1339 return NULL;
1340 }
1341 goto done;
1342 }
1343 p->mark = _mark;
1344 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1346 }
1347 { // '**' expression
1348 if (p->error_indicator) {
1349 D(p->level--);
1350 return NULL;
1351 }
1352 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1353 Token * _literal;
1354 expr_ty a;
1355 if (
1356 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1357 &&
1358 (a = expression_rule(p)) // expression
1359 )
1360 {
1361 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001362 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001363 if (_res == NULL && PyErr_Occurred()) {
1364 p->error_indicator = 1;
1365 D(p->level--);
1366 return NULL;
1367 }
1368 goto done;
1369 }
1370 p->mark = _mark;
1371 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1373 }
1374 { // ','.expression+
1375 if (p->error_indicator) {
1376 D(p->level--);
1377 return NULL;
1378 }
1379 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001380 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001381 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001382 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001383 )
1384 {
1385 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001386 _res = a;
1387 if (_res == NULL && PyErr_Occurred()) {
1388 p->error_indicator = 1;
1389 D(p->level--);
1390 return NULL;
1391 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001392 goto done;
1393 }
1394 p->mark = _mark;
1395 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1397 }
1398 _res = NULL;
1399 done:
1400 D(p->level--);
1401 return _res;
1402}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001403
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001404// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001405static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001406statements_rule(Parser *p)
1407{
1408 D(p->level++);
1409 if (p->error_indicator) {
1410 D(p->level--);
1411 return NULL;
1412 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001413 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001414 int _mark = p->mark;
1415 { // statement+
1416 if (p->error_indicator) {
1417 D(p->level--);
1418 return NULL;
1419 }
1420 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1421 asdl_seq * a;
1422 if (
1423 (a = _loop1_11_rule(p)) // statement+
1424 )
1425 {
1426 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001427 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001428 if (_res == NULL && PyErr_Occurred()) {
1429 p->error_indicator = 1;
1430 D(p->level--);
1431 return NULL;
1432 }
1433 goto done;
1434 }
1435 p->mark = _mark;
1436 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1438 }
1439 _res = NULL;
1440 done:
1441 D(p->level--);
1442 return _res;
1443}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001444
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001445// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001446static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001447statement_rule(Parser *p)
1448{
1449 D(p->level++);
1450 if (p->error_indicator) {
1451 D(p->level--);
1452 return NULL;
1453 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001454 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001455 int _mark = p->mark;
1456 { // compound_stmt
1457 if (p->error_indicator) {
1458 D(p->level--);
1459 return NULL;
1460 }
1461 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1462 stmt_ty a;
1463 if (
1464 (a = compound_stmt_rule(p)) // compound_stmt
1465 )
1466 {
1467 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001468 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001469 if (_res == NULL && PyErr_Occurred()) {
1470 p->error_indicator = 1;
1471 D(p->level--);
1472 return NULL;
1473 }
1474 goto done;
1475 }
1476 p->mark = _mark;
1477 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1479 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001480 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001481 if (p->error_indicator) {
1482 D(p->level--);
1483 return NULL;
1484 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001485 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001486 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001487 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001488 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001489 )
1490 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001491 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001492 _res = a;
1493 if (_res == NULL && PyErr_Occurred()) {
1494 p->error_indicator = 1;
1495 D(p->level--);
1496 return NULL;
1497 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001498 goto done;
1499 }
1500 p->mark = _mark;
1501 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001503 }
1504 _res = NULL;
1505 done:
1506 D(p->level--);
1507 return _res;
1508}
1509
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001510// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001511static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001512statement_newline_rule(Parser *p)
1513{
1514 D(p->level++);
1515 if (p->error_indicator) {
1516 D(p->level--);
1517 return NULL;
1518 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001519 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001520 int _mark = p->mark;
1521 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1522 p->error_indicator = 1;
1523 D(p->level--);
1524 return NULL;
1525 }
1526 int _start_lineno = p->tokens[_mark]->lineno;
1527 UNUSED(_start_lineno); // Only used by EXTRA macro
1528 int _start_col_offset = p->tokens[_mark]->col_offset;
1529 UNUSED(_start_col_offset); // Only used by EXTRA macro
1530 { // compound_stmt NEWLINE
1531 if (p->error_indicator) {
1532 D(p->level--);
1533 return NULL;
1534 }
1535 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1536 stmt_ty a;
1537 Token * newline_var;
1538 if (
1539 (a = compound_stmt_rule(p)) // compound_stmt
1540 &&
1541 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1542 )
1543 {
1544 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 +01001545 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001546 if (_res == NULL && PyErr_Occurred()) {
1547 p->error_indicator = 1;
1548 D(p->level--);
1549 return NULL;
1550 }
1551 goto done;
1552 }
1553 p->mark = _mark;
1554 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1556 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001557 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001558 if (p->error_indicator) {
1559 D(p->level--);
1560 return NULL;
1561 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001562 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1563 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001564 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001565 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001566 )
1567 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001568 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1569 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001570 goto done;
1571 }
1572 p->mark = _mark;
1573 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001575 }
1576 { // NEWLINE
1577 if (p->error_indicator) {
1578 D(p->level--);
1579 return NULL;
1580 }
1581 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1582 Token * newline_var;
1583 if (
1584 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1585 )
1586 {
1587 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1588 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1589 if (_token == NULL) {
1590 D(p->level--);
1591 return NULL;
1592 }
1593 int _end_lineno = _token->end_lineno;
1594 UNUSED(_end_lineno); // Only used by EXTRA macro
1595 int _end_col_offset = _token->end_col_offset;
1596 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001597 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001598 if (_res == NULL && PyErr_Occurred()) {
1599 p->error_indicator = 1;
1600 D(p->level--);
1601 return NULL;
1602 }
1603 goto done;
1604 }
1605 p->mark = _mark;
1606 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1608 }
1609 { // $
1610 if (p->error_indicator) {
1611 D(p->level--);
1612 return NULL;
1613 }
1614 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1615 Token * endmarker_var;
1616 if (
1617 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1618 )
1619 {
1620 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1621 _res = _PyPegen_interactive_exit ( p );
1622 if (_res == NULL && PyErr_Occurred()) {
1623 p->error_indicator = 1;
1624 D(p->level--);
1625 return NULL;
1626 }
1627 goto done;
1628 }
1629 p->mark = _mark;
1630 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1632 }
1633 _res = NULL;
1634 done:
1635 D(p->level--);
1636 return _res;
1637}
1638
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001639// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001640static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001641simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001642{
1643 D(p->level++);
1644 if (p->error_indicator) {
1645 D(p->level--);
1646 return NULL;
1647 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001648 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001649 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001650 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001651 if (p->error_indicator) {
1652 D(p->level--);
1653 return NULL;
1654 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001655 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 +01001656 stmt_ty a;
1657 Token * newline_var;
1658 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001659 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001660 &&
1661 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1662 &&
1663 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1664 )
1665 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001666 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 +01001667 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001668 if (_res == NULL && PyErr_Occurred()) {
1669 p->error_indicator = 1;
1670 D(p->level--);
1671 return NULL;
1672 }
1673 goto done;
1674 }
1675 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001676 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001678 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001679 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001680 if (p->error_indicator) {
1681 D(p->level--);
1682 return NULL;
1683 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001684 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001685 void *_opt_var;
1686 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001687 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001688 Token * newline_var;
1689 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001690 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001691 &&
1692 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1693 &&
1694 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1695 )
1696 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001697 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 +01001698 _res = a;
1699 if (_res == NULL && PyErr_Occurred()) {
1700 p->error_indicator = 1;
1701 D(p->level--);
1702 return NULL;
1703 }
1704 goto done;
1705 }
1706 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001707 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001709 }
1710 _res = NULL;
1711 done:
1712 D(p->level--);
1713 return _res;
1714}
1715
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001716// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001717// | assignment
1718// | star_expressions
1719// | &'return' return_stmt
1720// | &('import' | 'from') import_stmt
1721// | &'raise' raise_stmt
1722// | 'pass'
1723// | &'del' del_stmt
1724// | &'yield' yield_stmt
1725// | &'assert' assert_stmt
1726// | 'break'
1727// | 'continue'
1728// | &'global' global_stmt
1729// | &'nonlocal' nonlocal_stmt
1730static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001731simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001732{
1733 D(p->level++);
1734 if (p->error_indicator) {
1735 D(p->level--);
1736 return NULL;
1737 }
1738 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001739 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001740 D(p->level--);
1741 return _res;
1742 }
1743 int _mark = p->mark;
1744 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1745 p->error_indicator = 1;
1746 D(p->level--);
1747 return NULL;
1748 }
1749 int _start_lineno = p->tokens[_mark]->lineno;
1750 UNUSED(_start_lineno); // Only used by EXTRA macro
1751 int _start_col_offset = p->tokens[_mark]->col_offset;
1752 UNUSED(_start_col_offset); // Only used by EXTRA macro
1753 { // assignment
1754 if (p->error_indicator) {
1755 D(p->level--);
1756 return NULL;
1757 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001758 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001759 stmt_ty assignment_var;
1760 if (
1761 (assignment_var = assignment_rule(p)) // assignment
1762 )
1763 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001764 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001765 _res = assignment_var;
1766 goto done;
1767 }
1768 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001769 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1771 }
1772 { // star_expressions
1773 if (p->error_indicator) {
1774 D(p->level--);
1775 return NULL;
1776 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001777 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001778 expr_ty e;
1779 if (
1780 (e = star_expressions_rule(p)) // star_expressions
1781 )
1782 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001783 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 +01001784 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1785 if (_token == NULL) {
1786 D(p->level--);
1787 return NULL;
1788 }
1789 int _end_lineno = _token->end_lineno;
1790 UNUSED(_end_lineno); // Only used by EXTRA macro
1791 int _end_col_offset = _token->end_col_offset;
1792 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001793 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001794 if (_res == NULL && PyErr_Occurred()) {
1795 p->error_indicator = 1;
1796 D(p->level--);
1797 return NULL;
1798 }
1799 goto done;
1800 }
1801 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001802 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1804 }
1805 { // &'return' return_stmt
1806 if (p->error_indicator) {
1807 D(p->level--);
1808 return NULL;
1809 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001810 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 +01001811 stmt_ty return_stmt_var;
1812 if (
1813 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1814 &&
1815 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1816 )
1817 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001818 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 +01001819 _res = return_stmt_var;
1820 goto done;
1821 }
1822 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001823 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1825 }
1826 { // &('import' | 'from') import_stmt
1827 if (p->error_indicator) {
1828 D(p->level--);
1829 return NULL;
1830 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001831 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 +01001832 stmt_ty import_stmt_var;
1833 if (
1834 _PyPegen_lookahead(1, _tmp_14_rule, p)
1835 &&
1836 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1837 )
1838 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001839 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 +01001840 _res = import_stmt_var;
1841 goto done;
1842 }
1843 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001844 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1846 }
1847 { // &'raise' raise_stmt
1848 if (p->error_indicator) {
1849 D(p->level--);
1850 return NULL;
1851 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001852 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 +01001853 stmt_ty raise_stmt_var;
1854 if (
1855 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1856 &&
1857 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1858 )
1859 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001860 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 +01001861 _res = raise_stmt_var;
1862 goto done;
1863 }
1864 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001865 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1867 }
1868 { // 'pass'
1869 if (p->error_indicator) {
1870 D(p->level--);
1871 return NULL;
1872 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001873 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001874 Token * _keyword;
1875 if (
1876 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1877 )
1878 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001879 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001880 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1881 if (_token == NULL) {
1882 D(p->level--);
1883 return NULL;
1884 }
1885 int _end_lineno = _token->end_lineno;
1886 UNUSED(_end_lineno); // Only used by EXTRA macro
1887 int _end_col_offset = _token->end_col_offset;
1888 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001889 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001890 if (_res == NULL && PyErr_Occurred()) {
1891 p->error_indicator = 1;
1892 D(p->level--);
1893 return NULL;
1894 }
1895 goto done;
1896 }
1897 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001898 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1900 }
1901 { // &'del' del_stmt
1902 if (p->error_indicator) {
1903 D(p->level--);
1904 return NULL;
1905 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001906 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 +01001907 stmt_ty del_stmt_var;
1908 if (
1909 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1910 &&
1911 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1912 )
1913 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001914 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 +01001915 _res = del_stmt_var;
1916 goto done;
1917 }
1918 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001919 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1921 }
1922 { // &'yield' yield_stmt
1923 if (p->error_indicator) {
1924 D(p->level--);
1925 return NULL;
1926 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001927 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 +01001928 stmt_ty yield_stmt_var;
1929 if (
1930 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1931 &&
1932 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1933 )
1934 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001935 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 +01001936 _res = yield_stmt_var;
1937 goto done;
1938 }
1939 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001940 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1942 }
1943 { // &'assert' assert_stmt
1944 if (p->error_indicator) {
1945 D(p->level--);
1946 return NULL;
1947 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001948 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 +01001949 stmt_ty assert_stmt_var;
1950 if (
1951 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1952 &&
1953 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1954 )
1955 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001956 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 +01001957 _res = assert_stmt_var;
1958 goto done;
1959 }
1960 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001961 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1963 }
1964 { // 'break'
1965 if (p->error_indicator) {
1966 D(p->level--);
1967 return NULL;
1968 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001969 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001970 Token * _keyword;
1971 if (
1972 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1973 )
1974 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001975 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001976 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1977 if (_token == NULL) {
1978 D(p->level--);
1979 return NULL;
1980 }
1981 int _end_lineno = _token->end_lineno;
1982 UNUSED(_end_lineno); // Only used by EXTRA macro
1983 int _end_col_offset = _token->end_col_offset;
1984 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001985 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001986 if (_res == NULL && PyErr_Occurred()) {
1987 p->error_indicator = 1;
1988 D(p->level--);
1989 return NULL;
1990 }
1991 goto done;
1992 }
1993 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001994 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1996 }
1997 { // 'continue'
1998 if (p->error_indicator) {
1999 D(p->level--);
2000 return NULL;
2001 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002002 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002003 Token * _keyword;
2004 if (
2005 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
2006 )
2007 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002008 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002009 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2010 if (_token == NULL) {
2011 D(p->level--);
2012 return NULL;
2013 }
2014 int _end_lineno = _token->end_lineno;
2015 UNUSED(_end_lineno); // Only used by EXTRA macro
2016 int _end_col_offset = _token->end_col_offset;
2017 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002018 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002019 if (_res == NULL && PyErr_Occurred()) {
2020 p->error_indicator = 1;
2021 D(p->level--);
2022 return NULL;
2023 }
2024 goto done;
2025 }
2026 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002027 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2029 }
2030 { // &'global' global_stmt
2031 if (p->error_indicator) {
2032 D(p->level--);
2033 return NULL;
2034 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002035 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 +01002036 stmt_ty global_stmt_var;
2037 if (
2038 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2039 &&
2040 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2041 )
2042 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002043 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 +01002044 _res = global_stmt_var;
2045 goto done;
2046 }
2047 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002048 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2050 }
2051 { // &'nonlocal' nonlocal_stmt
2052 if (p->error_indicator) {
2053 D(p->level--);
2054 return NULL;
2055 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002056 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 +01002057 stmt_ty nonlocal_stmt_var;
2058 if (
2059 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2060 &&
2061 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2062 )
2063 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002064 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 +01002065 _res = nonlocal_stmt_var;
2066 goto done;
2067 }
2068 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002069 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2071 }
2072 _res = NULL;
2073 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002074 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002075 D(p->level--);
2076 return _res;
2077}
2078
2079// compound_stmt:
2080// | &('def' | '@' | ASYNC) function_def
2081// | &'if' if_stmt
2082// | &('class' | '@') class_def
2083// | &('with' | ASYNC) with_stmt
2084// | &('for' | ASYNC) for_stmt
2085// | &'try' try_stmt
2086// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002087// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002088static stmt_ty
2089compound_stmt_rule(Parser *p)
2090{
2091 D(p->level++);
2092 if (p->error_indicator) {
2093 D(p->level--);
2094 return NULL;
2095 }
2096 stmt_ty _res = NULL;
2097 int _mark = p->mark;
2098 { // &('def' | '@' | ASYNC) function_def
2099 if (p->error_indicator) {
2100 D(p->level--);
2101 return NULL;
2102 }
2103 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2104 stmt_ty function_def_var;
2105 if (
2106 _PyPegen_lookahead(1, _tmp_15_rule, p)
2107 &&
2108 (function_def_var = function_def_rule(p)) // function_def
2109 )
2110 {
2111 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2112 _res = function_def_var;
2113 goto done;
2114 }
2115 p->mark = _mark;
2116 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2118 }
2119 { // &'if' if_stmt
2120 if (p->error_indicator) {
2121 D(p->level--);
2122 return NULL;
2123 }
2124 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2125 stmt_ty if_stmt_var;
2126 if (
2127 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2128 &&
2129 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2130 )
2131 {
2132 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2133 _res = if_stmt_var;
2134 goto done;
2135 }
2136 p->mark = _mark;
2137 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2139 }
2140 { // &('class' | '@') class_def
2141 if (p->error_indicator) {
2142 D(p->level--);
2143 return NULL;
2144 }
2145 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2146 stmt_ty class_def_var;
2147 if (
2148 _PyPegen_lookahead(1, _tmp_16_rule, p)
2149 &&
2150 (class_def_var = class_def_rule(p)) // class_def
2151 )
2152 {
2153 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2154 _res = class_def_var;
2155 goto done;
2156 }
2157 p->mark = _mark;
2158 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2160 }
2161 { // &('with' | ASYNC) with_stmt
2162 if (p->error_indicator) {
2163 D(p->level--);
2164 return NULL;
2165 }
2166 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2167 stmt_ty with_stmt_var;
2168 if (
2169 _PyPegen_lookahead(1, _tmp_17_rule, p)
2170 &&
2171 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2172 )
2173 {
2174 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2175 _res = with_stmt_var;
2176 goto done;
2177 }
2178 p->mark = _mark;
2179 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2181 }
2182 { // &('for' | ASYNC) for_stmt
2183 if (p->error_indicator) {
2184 D(p->level--);
2185 return NULL;
2186 }
2187 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2188 stmt_ty for_stmt_var;
2189 if (
2190 _PyPegen_lookahead(1, _tmp_18_rule, p)
2191 &&
2192 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2193 )
2194 {
2195 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2196 _res = for_stmt_var;
2197 goto done;
2198 }
2199 p->mark = _mark;
2200 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2202 }
2203 { // &'try' try_stmt
2204 if (p->error_indicator) {
2205 D(p->level--);
2206 return NULL;
2207 }
2208 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2209 stmt_ty try_stmt_var;
2210 if (
2211 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2212 &&
2213 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2214 )
2215 {
2216 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2217 _res = try_stmt_var;
2218 goto done;
2219 }
2220 p->mark = _mark;
2221 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2223 }
2224 { // &'while' while_stmt
2225 if (p->error_indicator) {
2226 D(p->level--);
2227 return NULL;
2228 }
2229 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2230 stmt_ty while_stmt_var;
2231 if (
2232 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2233 &&
2234 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2235 )
2236 {
2237 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2238 _res = while_stmt_var;
2239 goto done;
2240 }
2241 p->mark = _mark;
2242 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2244 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002245 { // match_stmt
2246 if (p->error_indicator) {
2247 D(p->level--);
2248 return NULL;
2249 }
2250 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2251 stmt_ty match_stmt_var;
2252 if (
2253 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2254 )
2255 {
2256 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2257 _res = match_stmt_var;
2258 goto done;
2259 }
2260 p->mark = _mark;
2261 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2263 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002264 _res = NULL;
2265 done:
2266 D(p->level--);
2267 return _res;
2268}
2269
2270// assignment:
2271// | NAME ':' expression ['=' annotated_rhs]
2272// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2273// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002274// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002275// | invalid_assignment
2276static stmt_ty
2277assignment_rule(Parser *p)
2278{
2279 D(p->level++);
2280 if (p->error_indicator) {
2281 D(p->level--);
2282 return NULL;
2283 }
2284 stmt_ty _res = NULL;
2285 int _mark = p->mark;
2286 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2287 p->error_indicator = 1;
2288 D(p->level--);
2289 return NULL;
2290 }
2291 int _start_lineno = p->tokens[_mark]->lineno;
2292 UNUSED(_start_lineno); // Only used by EXTRA macro
2293 int _start_col_offset = p->tokens[_mark]->col_offset;
2294 UNUSED(_start_col_offset); // Only used by EXTRA macro
2295 { // NAME ':' expression ['=' annotated_rhs]
2296 if (p->error_indicator) {
2297 D(p->level--);
2298 return NULL;
2299 }
2300 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2301 Token * _literal;
2302 expr_ty a;
2303 expr_ty b;
2304 void *c;
2305 if (
2306 (a = _PyPegen_name_token(p)) // NAME
2307 &&
2308 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2309 &&
2310 (b = expression_rule(p)) // expression
2311 &&
2312 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2313 )
2314 {
2315 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2316 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2317 if (_token == NULL) {
2318 D(p->level--);
2319 return NULL;
2320 }
2321 int _end_lineno = _token->end_lineno;
2322 UNUSED(_end_lineno); // Only used by EXTRA macro
2323 int _end_col_offset = _token->end_col_offset;
2324 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002325 _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 +01002326 if (_res == NULL && PyErr_Occurred()) {
2327 p->error_indicator = 1;
2328 D(p->level--);
2329 return NULL;
2330 }
2331 goto done;
2332 }
2333 p->mark = _mark;
2334 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2336 }
2337 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2338 if (p->error_indicator) {
2339 D(p->level--);
2340 return NULL;
2341 }
2342 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2343 Token * _literal;
2344 void *a;
2345 expr_ty b;
2346 void *c;
2347 if (
2348 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2349 &&
2350 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2351 &&
2352 (b = expression_rule(p)) // expression
2353 &&
2354 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2355 )
2356 {
2357 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2358 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2359 if (_token == NULL) {
2360 D(p->level--);
2361 return NULL;
2362 }
2363 int _end_lineno = _token->end_lineno;
2364 UNUSED(_end_lineno); // Only used by EXTRA macro
2365 int _end_col_offset = _token->end_col_offset;
2366 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002367 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002368 if (_res == NULL && PyErr_Occurred()) {
2369 p->error_indicator = 1;
2370 D(p->level--);
2371 return NULL;
2372 }
2373 goto done;
2374 }
2375 p->mark = _mark;
2376 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2378 }
2379 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2380 if (p->error_indicator) {
2381 D(p->level--);
2382 return NULL;
2383 }
2384 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 +01002385 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002386 void *b;
2387 void *tc;
2388 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002389 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002390 &&
2391 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2392 &&
2393 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2394 &&
2395 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2396 )
2397 {
2398 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2399 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2400 if (_token == NULL) {
2401 D(p->level--);
2402 return NULL;
2403 }
2404 int _end_lineno = _token->end_lineno;
2405 UNUSED(_end_lineno); // Only used by EXTRA macro
2406 int _end_col_offset = _token->end_col_offset;
2407 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002408 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002409 if (_res == NULL && PyErr_Occurred()) {
2410 p->error_indicator = 1;
2411 D(p->level--);
2412 return NULL;
2413 }
2414 goto done;
2415 }
2416 p->mark = _mark;
2417 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2419 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002420 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002421 if (p->error_indicator) {
2422 D(p->level--);
2423 return NULL;
2424 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002425 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2426 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002427 expr_ty a;
2428 AugOperator* b;
2429 void *c;
2430 if (
2431 (a = single_target_rule(p)) // single_target
2432 &&
2433 (b = augassign_rule(p)) // augassign
2434 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002435 (_cut_var = 1)
2436 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002437 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2438 )
2439 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002440 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 +01002441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2442 if (_token == NULL) {
2443 D(p->level--);
2444 return NULL;
2445 }
2446 int _end_lineno = _token->end_lineno;
2447 UNUSED(_end_lineno); // Only used by EXTRA macro
2448 int _end_col_offset = _token->end_col_offset;
2449 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002450 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002451 if (_res == NULL && PyErr_Occurred()) {
2452 p->error_indicator = 1;
2453 D(p->level--);
2454 return NULL;
2455 }
2456 goto done;
2457 }
2458 p->mark = _mark;
2459 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2461 if (_cut_var) {
2462 D(p->level--);
2463 return NULL;
2464 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002465 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002466 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002467 if (p->error_indicator) {
2468 D(p->level--);
2469 return NULL;
2470 }
2471 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2472 void *invalid_assignment_var;
2473 if (
2474 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2475 )
2476 {
2477 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2478 _res = invalid_assignment_var;
2479 goto done;
2480 }
2481 p->mark = _mark;
2482 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2484 }
2485 _res = NULL;
2486 done:
2487 D(p->level--);
2488 return _res;
2489}
2490
2491// augassign:
2492// | '+='
2493// | '-='
2494// | '*='
2495// | '@='
2496// | '/='
2497// | '%='
2498// | '&='
2499// | '|='
2500// | '^='
2501// | '<<='
2502// | '>>='
2503// | '**='
2504// | '//='
2505static AugOperator*
2506augassign_rule(Parser *p)
2507{
2508 D(p->level++);
2509 if (p->error_indicator) {
2510 D(p->level--);
2511 return NULL;
2512 }
2513 AugOperator* _res = NULL;
2514 int _mark = p->mark;
2515 { // '+='
2516 if (p->error_indicator) {
2517 D(p->level--);
2518 return NULL;
2519 }
2520 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2521 Token * _literal;
2522 if (
2523 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2524 )
2525 {
2526 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2527 _res = _PyPegen_augoperator ( p , Add );
2528 if (_res == NULL && PyErr_Occurred()) {
2529 p->error_indicator = 1;
2530 D(p->level--);
2531 return NULL;
2532 }
2533 goto done;
2534 }
2535 p->mark = _mark;
2536 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2538 }
2539 { // '-='
2540 if (p->error_indicator) {
2541 D(p->level--);
2542 return NULL;
2543 }
2544 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2545 Token * _literal;
2546 if (
2547 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2548 )
2549 {
2550 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2551 _res = _PyPegen_augoperator ( p , Sub );
2552 if (_res == NULL && PyErr_Occurred()) {
2553 p->error_indicator = 1;
2554 D(p->level--);
2555 return NULL;
2556 }
2557 goto done;
2558 }
2559 p->mark = _mark;
2560 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2562 }
2563 { // '*='
2564 if (p->error_indicator) {
2565 D(p->level--);
2566 return NULL;
2567 }
2568 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2569 Token * _literal;
2570 if (
2571 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2572 )
2573 {
2574 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2575 _res = _PyPegen_augoperator ( p , Mult );
2576 if (_res == NULL && PyErr_Occurred()) {
2577 p->error_indicator = 1;
2578 D(p->level--);
2579 return NULL;
2580 }
2581 goto done;
2582 }
2583 p->mark = _mark;
2584 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2586 }
2587 { // '@='
2588 if (p->error_indicator) {
2589 D(p->level--);
2590 return NULL;
2591 }
2592 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2593 Token * _literal;
2594 if (
2595 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2596 )
2597 {
2598 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002599 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002600 if (_res == NULL && PyErr_Occurred()) {
2601 p->error_indicator = 1;
2602 D(p->level--);
2603 return NULL;
2604 }
2605 goto done;
2606 }
2607 p->mark = _mark;
2608 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2610 }
2611 { // '/='
2612 if (p->error_indicator) {
2613 D(p->level--);
2614 return NULL;
2615 }
2616 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2617 Token * _literal;
2618 if (
2619 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2620 )
2621 {
2622 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2623 _res = _PyPegen_augoperator ( p , Div );
2624 if (_res == NULL && PyErr_Occurred()) {
2625 p->error_indicator = 1;
2626 D(p->level--);
2627 return NULL;
2628 }
2629 goto done;
2630 }
2631 p->mark = _mark;
2632 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2634 }
2635 { // '%='
2636 if (p->error_indicator) {
2637 D(p->level--);
2638 return NULL;
2639 }
2640 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2641 Token * _literal;
2642 if (
2643 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2644 )
2645 {
2646 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2647 _res = _PyPegen_augoperator ( p , Mod );
2648 if (_res == NULL && PyErr_Occurred()) {
2649 p->error_indicator = 1;
2650 D(p->level--);
2651 return NULL;
2652 }
2653 goto done;
2654 }
2655 p->mark = _mark;
2656 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2658 }
2659 { // '&='
2660 if (p->error_indicator) {
2661 D(p->level--);
2662 return NULL;
2663 }
2664 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2665 Token * _literal;
2666 if (
2667 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2668 )
2669 {
2670 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2671 _res = _PyPegen_augoperator ( p , BitAnd );
2672 if (_res == NULL && PyErr_Occurred()) {
2673 p->error_indicator = 1;
2674 D(p->level--);
2675 return NULL;
2676 }
2677 goto done;
2678 }
2679 p->mark = _mark;
2680 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2682 }
2683 { // '|='
2684 if (p->error_indicator) {
2685 D(p->level--);
2686 return NULL;
2687 }
2688 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2689 Token * _literal;
2690 if (
2691 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2692 )
2693 {
2694 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2695 _res = _PyPegen_augoperator ( p , BitOr );
2696 if (_res == NULL && PyErr_Occurred()) {
2697 p->error_indicator = 1;
2698 D(p->level--);
2699 return NULL;
2700 }
2701 goto done;
2702 }
2703 p->mark = _mark;
2704 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2706 }
2707 { // '^='
2708 if (p->error_indicator) {
2709 D(p->level--);
2710 return NULL;
2711 }
2712 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2713 Token * _literal;
2714 if (
2715 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2716 )
2717 {
2718 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2719 _res = _PyPegen_augoperator ( p , BitXor );
2720 if (_res == NULL && PyErr_Occurred()) {
2721 p->error_indicator = 1;
2722 D(p->level--);
2723 return NULL;
2724 }
2725 goto done;
2726 }
2727 p->mark = _mark;
2728 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2730 }
2731 { // '<<='
2732 if (p->error_indicator) {
2733 D(p->level--);
2734 return NULL;
2735 }
2736 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2737 Token * _literal;
2738 if (
2739 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2740 )
2741 {
2742 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2743 _res = _PyPegen_augoperator ( p , LShift );
2744 if (_res == NULL && PyErr_Occurred()) {
2745 p->error_indicator = 1;
2746 D(p->level--);
2747 return NULL;
2748 }
2749 goto done;
2750 }
2751 p->mark = _mark;
2752 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2754 }
2755 { // '>>='
2756 if (p->error_indicator) {
2757 D(p->level--);
2758 return NULL;
2759 }
2760 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2761 Token * _literal;
2762 if (
2763 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2764 )
2765 {
2766 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2767 _res = _PyPegen_augoperator ( p , RShift );
2768 if (_res == NULL && PyErr_Occurred()) {
2769 p->error_indicator = 1;
2770 D(p->level--);
2771 return NULL;
2772 }
2773 goto done;
2774 }
2775 p->mark = _mark;
2776 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2778 }
2779 { // '**='
2780 if (p->error_indicator) {
2781 D(p->level--);
2782 return NULL;
2783 }
2784 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2785 Token * _literal;
2786 if (
2787 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2788 )
2789 {
2790 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2791 _res = _PyPegen_augoperator ( p , Pow );
2792 if (_res == NULL && PyErr_Occurred()) {
2793 p->error_indicator = 1;
2794 D(p->level--);
2795 return NULL;
2796 }
2797 goto done;
2798 }
2799 p->mark = _mark;
2800 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2802 }
2803 { // '//='
2804 if (p->error_indicator) {
2805 D(p->level--);
2806 return NULL;
2807 }
2808 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2809 Token * _literal;
2810 if (
2811 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2812 )
2813 {
2814 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2815 _res = _PyPegen_augoperator ( p , FloorDiv );
2816 if (_res == NULL && PyErr_Occurred()) {
2817 p->error_indicator = 1;
2818 D(p->level--);
2819 return NULL;
2820 }
2821 goto done;
2822 }
2823 p->mark = _mark;
2824 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2826 }
2827 _res = NULL;
2828 done:
2829 D(p->level--);
2830 return _res;
2831}
2832
2833// global_stmt: 'global' ','.NAME+
2834static stmt_ty
2835global_stmt_rule(Parser *p)
2836{
2837 D(p->level++);
2838 if (p->error_indicator) {
2839 D(p->level--);
2840 return NULL;
2841 }
2842 stmt_ty _res = NULL;
2843 int _mark = p->mark;
2844 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2845 p->error_indicator = 1;
2846 D(p->level--);
2847 return NULL;
2848 }
2849 int _start_lineno = p->tokens[_mark]->lineno;
2850 UNUSED(_start_lineno); // Only used by EXTRA macro
2851 int _start_col_offset = p->tokens[_mark]->col_offset;
2852 UNUSED(_start_col_offset); // Only used by EXTRA macro
2853 { // 'global' ','.NAME+
2854 if (p->error_indicator) {
2855 D(p->level--);
2856 return NULL;
2857 }
2858 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2859 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002860 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002861 if (
2862 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2863 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002864 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002865 )
2866 {
2867 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2869 if (_token == NULL) {
2870 D(p->level--);
2871 return NULL;
2872 }
2873 int _end_lineno = _token->end_lineno;
2874 UNUSED(_end_lineno); // Only used by EXTRA macro
2875 int _end_col_offset = _token->end_col_offset;
2876 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002877 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002878 if (_res == NULL && PyErr_Occurred()) {
2879 p->error_indicator = 1;
2880 D(p->level--);
2881 return NULL;
2882 }
2883 goto done;
2884 }
2885 p->mark = _mark;
2886 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2888 }
2889 _res = NULL;
2890 done:
2891 D(p->level--);
2892 return _res;
2893}
2894
2895// nonlocal_stmt: 'nonlocal' ','.NAME+
2896static stmt_ty
2897nonlocal_stmt_rule(Parser *p)
2898{
2899 D(p->level++);
2900 if (p->error_indicator) {
2901 D(p->level--);
2902 return NULL;
2903 }
2904 stmt_ty _res = NULL;
2905 int _mark = p->mark;
2906 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2907 p->error_indicator = 1;
2908 D(p->level--);
2909 return NULL;
2910 }
2911 int _start_lineno = p->tokens[_mark]->lineno;
2912 UNUSED(_start_lineno); // Only used by EXTRA macro
2913 int _start_col_offset = p->tokens[_mark]->col_offset;
2914 UNUSED(_start_col_offset); // Only used by EXTRA macro
2915 { // 'nonlocal' ','.NAME+
2916 if (p->error_indicator) {
2917 D(p->level--);
2918 return NULL;
2919 }
2920 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2921 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002922 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002923 if (
2924 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2925 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002926 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002927 )
2928 {
2929 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2930 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2931 if (_token == NULL) {
2932 D(p->level--);
2933 return NULL;
2934 }
2935 int _end_lineno = _token->end_lineno;
2936 UNUSED(_end_lineno); // Only used by EXTRA macro
2937 int _end_col_offset = _token->end_col_offset;
2938 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002939 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002940 if (_res == NULL && PyErr_Occurred()) {
2941 p->error_indicator = 1;
2942 D(p->level--);
2943 return NULL;
2944 }
2945 goto done;
2946 }
2947 p->mark = _mark;
2948 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2950 }
2951 _res = NULL;
2952 done:
2953 D(p->level--);
2954 return _res;
2955}
2956
2957// yield_stmt: yield_expr
2958static stmt_ty
2959yield_stmt_rule(Parser *p)
2960{
2961 D(p->level++);
2962 if (p->error_indicator) {
2963 D(p->level--);
2964 return NULL;
2965 }
2966 stmt_ty _res = NULL;
2967 int _mark = p->mark;
2968 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2969 p->error_indicator = 1;
2970 D(p->level--);
2971 return NULL;
2972 }
2973 int _start_lineno = p->tokens[_mark]->lineno;
2974 UNUSED(_start_lineno); // Only used by EXTRA macro
2975 int _start_col_offset = p->tokens[_mark]->col_offset;
2976 UNUSED(_start_col_offset); // Only used by EXTRA macro
2977 { // yield_expr
2978 if (p->error_indicator) {
2979 D(p->level--);
2980 return NULL;
2981 }
2982 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2983 expr_ty y;
2984 if (
2985 (y = yield_expr_rule(p)) // yield_expr
2986 )
2987 {
2988 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2989 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2990 if (_token == NULL) {
2991 D(p->level--);
2992 return NULL;
2993 }
2994 int _end_lineno = _token->end_lineno;
2995 UNUSED(_end_lineno); // Only used by EXTRA macro
2996 int _end_col_offset = _token->end_col_offset;
2997 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002998 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002999 if (_res == NULL && PyErr_Occurred()) {
3000 p->error_indicator = 1;
3001 D(p->level--);
3002 return NULL;
3003 }
3004 goto done;
3005 }
3006 p->mark = _mark;
3007 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
3009 }
3010 _res = NULL;
3011 done:
3012 D(p->level--);
3013 return _res;
3014}
3015
3016// assert_stmt: 'assert' expression [',' expression]
3017static stmt_ty
3018assert_stmt_rule(Parser *p)
3019{
3020 D(p->level++);
3021 if (p->error_indicator) {
3022 D(p->level--);
3023 return NULL;
3024 }
3025 stmt_ty _res = NULL;
3026 int _mark = p->mark;
3027 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3028 p->error_indicator = 1;
3029 D(p->level--);
3030 return NULL;
3031 }
3032 int _start_lineno = p->tokens[_mark]->lineno;
3033 UNUSED(_start_lineno); // Only used by EXTRA macro
3034 int _start_col_offset = p->tokens[_mark]->col_offset;
3035 UNUSED(_start_col_offset); // Only used by EXTRA macro
3036 { // 'assert' expression [',' expression]
3037 if (p->error_indicator) {
3038 D(p->level--);
3039 return NULL;
3040 }
3041 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3042 Token * _keyword;
3043 expr_ty a;
3044 void *b;
3045 if (
3046 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3047 &&
3048 (a = expression_rule(p)) // expression
3049 &&
3050 (b = _tmp_29_rule(p), 1) // [',' expression]
3051 )
3052 {
3053 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3054 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3055 if (_token == NULL) {
3056 D(p->level--);
3057 return NULL;
3058 }
3059 int _end_lineno = _token->end_lineno;
3060 UNUSED(_end_lineno); // Only used by EXTRA macro
3061 int _end_col_offset = _token->end_col_offset;
3062 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003063 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003064 if (_res == NULL && PyErr_Occurred()) {
3065 p->error_indicator = 1;
3066 D(p->level--);
3067 return NULL;
3068 }
3069 goto done;
3070 }
3071 p->mark = _mark;
3072 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3074 }
3075 _res = NULL;
3076 done:
3077 D(p->level--);
3078 return _res;
3079}
3080
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003081// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003082static stmt_ty
3083del_stmt_rule(Parser *p)
3084{
3085 D(p->level++);
3086 if (p->error_indicator) {
3087 D(p->level--);
3088 return NULL;
3089 }
3090 stmt_ty _res = NULL;
3091 int _mark = p->mark;
3092 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3093 p->error_indicator = 1;
3094 D(p->level--);
3095 return NULL;
3096 }
3097 int _start_lineno = p->tokens[_mark]->lineno;
3098 UNUSED(_start_lineno); // Only used by EXTRA macro
3099 int _start_col_offset = p->tokens[_mark]->col_offset;
3100 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003101 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003102 if (p->error_indicator) {
3103 D(p->level--);
3104 return NULL;
3105 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003106 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 +01003107 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003108 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003109 if (
3110 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3111 &&
3112 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003113 &&
3114 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003115 )
3116 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003117 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 +01003118 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3119 if (_token == NULL) {
3120 D(p->level--);
3121 return NULL;
3122 }
3123 int _end_lineno = _token->end_lineno;
3124 UNUSED(_end_lineno); // Only used by EXTRA macro
3125 int _end_col_offset = _token->end_col_offset;
3126 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003127 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003128 if (_res == NULL && PyErr_Occurred()) {
3129 p->error_indicator = 1;
3130 D(p->level--);
3131 return NULL;
3132 }
3133 goto done;
3134 }
3135 p->mark = _mark;
3136 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3138 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003139 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003140 if (p->error_indicator) {
3141 D(p->level--);
3142 return NULL;
3143 }
3144 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3145 void *invalid_del_stmt_var;
3146 if (
3147 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3148 )
3149 {
3150 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3151 _res = invalid_del_stmt_var;
3152 goto done;
3153 }
3154 p->mark = _mark;
3155 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003157 }
3158 _res = NULL;
3159 done:
3160 D(p->level--);
3161 return _res;
3162}
3163
3164// import_stmt: import_name | import_from
3165static stmt_ty
3166import_stmt_rule(Parser *p)
3167{
3168 D(p->level++);
3169 if (p->error_indicator) {
3170 D(p->level--);
3171 return NULL;
3172 }
3173 stmt_ty _res = NULL;
3174 int _mark = p->mark;
3175 { // import_name
3176 if (p->error_indicator) {
3177 D(p->level--);
3178 return NULL;
3179 }
3180 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3181 stmt_ty import_name_var;
3182 if (
3183 (import_name_var = import_name_rule(p)) // import_name
3184 )
3185 {
3186 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3187 _res = import_name_var;
3188 goto done;
3189 }
3190 p->mark = _mark;
3191 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3193 }
3194 { // import_from
3195 if (p->error_indicator) {
3196 D(p->level--);
3197 return NULL;
3198 }
3199 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3200 stmt_ty import_from_var;
3201 if (
3202 (import_from_var = import_from_rule(p)) // import_from
3203 )
3204 {
3205 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3206 _res = import_from_var;
3207 goto done;
3208 }
3209 p->mark = _mark;
3210 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3212 }
3213 _res = NULL;
3214 done:
3215 D(p->level--);
3216 return _res;
3217}
3218
3219// import_name: 'import' dotted_as_names
3220static stmt_ty
3221import_name_rule(Parser *p)
3222{
3223 D(p->level++);
3224 if (p->error_indicator) {
3225 D(p->level--);
3226 return NULL;
3227 }
3228 stmt_ty _res = NULL;
3229 int _mark = p->mark;
3230 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3231 p->error_indicator = 1;
3232 D(p->level--);
3233 return NULL;
3234 }
3235 int _start_lineno = p->tokens[_mark]->lineno;
3236 UNUSED(_start_lineno); // Only used by EXTRA macro
3237 int _start_col_offset = p->tokens[_mark]->col_offset;
3238 UNUSED(_start_col_offset); // Only used by EXTRA macro
3239 { // 'import' dotted_as_names
3240 if (p->error_indicator) {
3241 D(p->level--);
3242 return NULL;
3243 }
3244 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3245 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003246 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003247 if (
3248 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3249 &&
3250 (a = dotted_as_names_rule(p)) // dotted_as_names
3251 )
3252 {
3253 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3254 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3255 if (_token == NULL) {
3256 D(p->level--);
3257 return NULL;
3258 }
3259 int _end_lineno = _token->end_lineno;
3260 UNUSED(_end_lineno); // Only used by EXTRA macro
3261 int _end_col_offset = _token->end_col_offset;
3262 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003263 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003264 if (_res == NULL && PyErr_Occurred()) {
3265 p->error_indicator = 1;
3266 D(p->level--);
3267 return NULL;
3268 }
3269 goto done;
3270 }
3271 p->mark = _mark;
3272 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3274 }
3275 _res = NULL;
3276 done:
3277 D(p->level--);
3278 return _res;
3279}
3280
3281// import_from:
3282// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3283// | 'from' (('.' | '...'))+ 'import' import_from_targets
3284static stmt_ty
3285import_from_rule(Parser *p)
3286{
3287 D(p->level++);
3288 if (p->error_indicator) {
3289 D(p->level--);
3290 return NULL;
3291 }
3292 stmt_ty _res = NULL;
3293 int _mark = p->mark;
3294 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3295 p->error_indicator = 1;
3296 D(p->level--);
3297 return NULL;
3298 }
3299 int _start_lineno = p->tokens[_mark]->lineno;
3300 UNUSED(_start_lineno); // Only used by EXTRA macro
3301 int _start_col_offset = p->tokens[_mark]->col_offset;
3302 UNUSED(_start_col_offset); // Only used by EXTRA macro
3303 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3304 if (p->error_indicator) {
3305 D(p->level--);
3306 return NULL;
3307 }
3308 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3309 Token * _keyword;
3310 Token * _keyword_1;
3311 asdl_seq * a;
3312 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003313 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003314 if (
3315 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3316 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003317 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003318 &&
3319 (b = dotted_name_rule(p)) // dotted_name
3320 &&
3321 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3322 &&
3323 (c = import_from_targets_rule(p)) // import_from_targets
3324 )
3325 {
3326 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3327 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3328 if (_token == NULL) {
3329 D(p->level--);
3330 return NULL;
3331 }
3332 int _end_lineno = _token->end_lineno;
3333 UNUSED(_end_lineno); // Only used by EXTRA macro
3334 int _end_col_offset = _token->end_col_offset;
3335 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003336 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003337 if (_res == NULL && PyErr_Occurred()) {
3338 p->error_indicator = 1;
3339 D(p->level--);
3340 return NULL;
3341 }
3342 goto done;
3343 }
3344 p->mark = _mark;
3345 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3347 }
3348 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3349 if (p->error_indicator) {
3350 D(p->level--);
3351 return NULL;
3352 }
3353 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3354 Token * _keyword;
3355 Token * _keyword_1;
3356 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003357 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003358 if (
3359 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3360 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003361 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003362 &&
3363 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3364 &&
3365 (b = import_from_targets_rule(p)) // import_from_targets
3366 )
3367 {
3368 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3369 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3370 if (_token == NULL) {
3371 D(p->level--);
3372 return NULL;
3373 }
3374 int _end_lineno = _token->end_lineno;
3375 UNUSED(_end_lineno); // Only used by EXTRA macro
3376 int _end_col_offset = _token->end_col_offset;
3377 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003378 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003379 if (_res == NULL && PyErr_Occurred()) {
3380 p->error_indicator = 1;
3381 D(p->level--);
3382 return NULL;
3383 }
3384 goto done;
3385 }
3386 p->mark = _mark;
3387 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3389 }
3390 _res = NULL;
3391 done:
3392 D(p->level--);
3393 return _res;
3394}
3395
3396// import_from_targets:
3397// | '(' import_from_as_names ','? ')'
3398// | import_from_as_names !','
3399// | '*'
3400// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003401static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003402import_from_targets_rule(Parser *p)
3403{
3404 D(p->level++);
3405 if (p->error_indicator) {
3406 D(p->level--);
3407 return NULL;
3408 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003409 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003410 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003411 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3412 p->error_indicator = 1;
3413 D(p->level--);
3414 return NULL;
3415 }
3416 int _start_lineno = p->tokens[_mark]->lineno;
3417 UNUSED(_start_lineno); // Only used by EXTRA macro
3418 int _start_col_offset = p->tokens[_mark]->col_offset;
3419 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003420 { // '(' import_from_as_names ','? ')'
3421 if (p->error_indicator) {
3422 D(p->level--);
3423 return NULL;
3424 }
3425 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3426 Token * _literal;
3427 Token * _literal_1;
3428 void *_opt_var;
3429 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003430 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003431 if (
3432 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3433 &&
3434 (a = import_from_as_names_rule(p)) // import_from_as_names
3435 &&
3436 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3437 &&
3438 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3439 )
3440 {
3441 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3442 _res = a;
3443 if (_res == NULL && PyErr_Occurred()) {
3444 p->error_indicator = 1;
3445 D(p->level--);
3446 return NULL;
3447 }
3448 goto done;
3449 }
3450 p->mark = _mark;
3451 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3453 }
3454 { // import_from_as_names !','
3455 if (p->error_indicator) {
3456 D(p->level--);
3457 return NULL;
3458 }
3459 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 +01003460 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003461 if (
3462 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3463 &&
3464 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3465 )
3466 {
3467 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3468 _res = import_from_as_names_var;
3469 goto done;
3470 }
3471 p->mark = _mark;
3472 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3474 }
3475 { // '*'
3476 if (p->error_indicator) {
3477 D(p->level--);
3478 return NULL;
3479 }
3480 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3481 Token * _literal;
3482 if (
3483 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3484 )
3485 {
3486 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3488 if (_token == NULL) {
3489 D(p->level--);
3490 return NULL;
3491 }
3492 int _end_lineno = _token->end_lineno;
3493 UNUSED(_end_lineno); // Only used by EXTRA macro
3494 int _end_col_offset = _token->end_col_offset;
3495 UNUSED(_end_col_offset); // Only used by EXTRA macro
3496 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003497 if (_res == NULL && PyErr_Occurred()) {
3498 p->error_indicator = 1;
3499 D(p->level--);
3500 return NULL;
3501 }
3502 goto done;
3503 }
3504 p->mark = _mark;
3505 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3507 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003508 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003509 if (p->error_indicator) {
3510 D(p->level--);
3511 return NULL;
3512 }
3513 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3514 void *invalid_import_from_targets_var;
3515 if (
3516 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3517 )
3518 {
3519 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3520 _res = invalid_import_from_targets_var;
3521 goto done;
3522 }
3523 p->mark = _mark;
3524 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3526 }
3527 _res = NULL;
3528 done:
3529 D(p->level--);
3530 return _res;
3531}
3532
3533// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003534static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003535import_from_as_names_rule(Parser *p)
3536{
3537 D(p->level++);
3538 if (p->error_indicator) {
3539 D(p->level--);
3540 return NULL;
3541 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003542 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003543 int _mark = p->mark;
3544 { // ','.import_from_as_name+
3545 if (p->error_indicator) {
3546 D(p->level--);
3547 return NULL;
3548 }
3549 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 +01003550 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003551 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003552 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003553 )
3554 {
3555 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3556 _res = a;
3557 if (_res == NULL && PyErr_Occurred()) {
3558 p->error_indicator = 1;
3559 D(p->level--);
3560 return NULL;
3561 }
3562 goto done;
3563 }
3564 p->mark = _mark;
3565 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3567 }
3568 _res = NULL;
3569 done:
3570 D(p->level--);
3571 return _res;
3572}
3573
3574// import_from_as_name: NAME ['as' NAME]
3575static alias_ty
3576import_from_as_name_rule(Parser *p)
3577{
3578 D(p->level++);
3579 if (p->error_indicator) {
3580 D(p->level--);
3581 return NULL;
3582 }
3583 alias_ty _res = NULL;
3584 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003585 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3586 p->error_indicator = 1;
3587 D(p->level--);
3588 return NULL;
3589 }
3590 int _start_lineno = p->tokens[_mark]->lineno;
3591 UNUSED(_start_lineno); // Only used by EXTRA macro
3592 int _start_col_offset = p->tokens[_mark]->col_offset;
3593 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003594 { // NAME ['as' NAME]
3595 if (p->error_indicator) {
3596 D(p->level--);
3597 return NULL;
3598 }
3599 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3600 expr_ty a;
3601 void *b;
3602 if (
3603 (a = _PyPegen_name_token(p)) // NAME
3604 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003605 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003606 )
3607 {
3608 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 -04003609 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3610 if (_token == NULL) {
3611 D(p->level--);
3612 return NULL;
3613 }
3614 int _end_lineno = _token->end_lineno;
3615 UNUSED(_end_lineno); // Only used by EXTRA macro
3616 int _end_col_offset = _token->end_col_offset;
3617 UNUSED(_end_col_offset); // Only used by EXTRA macro
3618 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003619 if (_res == NULL && PyErr_Occurred()) {
3620 p->error_indicator = 1;
3621 D(p->level--);
3622 return NULL;
3623 }
3624 goto done;
3625 }
3626 p->mark = _mark;
3627 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3629 }
3630 _res = NULL;
3631 done:
3632 D(p->level--);
3633 return _res;
3634}
3635
3636// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003637static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003638dotted_as_names_rule(Parser *p)
3639{
3640 D(p->level++);
3641 if (p->error_indicator) {
3642 D(p->level--);
3643 return NULL;
3644 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003645 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003646 int _mark = p->mark;
3647 { // ','.dotted_as_name+
3648 if (p->error_indicator) {
3649 D(p->level--);
3650 return NULL;
3651 }
3652 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 +01003653 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003654 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003655 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003656 )
3657 {
3658 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3659 _res = a;
3660 if (_res == NULL && PyErr_Occurred()) {
3661 p->error_indicator = 1;
3662 D(p->level--);
3663 return NULL;
3664 }
3665 goto done;
3666 }
3667 p->mark = _mark;
3668 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3670 }
3671 _res = NULL;
3672 done:
3673 D(p->level--);
3674 return _res;
3675}
3676
3677// dotted_as_name: dotted_name ['as' NAME]
3678static alias_ty
3679dotted_as_name_rule(Parser *p)
3680{
3681 D(p->level++);
3682 if (p->error_indicator) {
3683 D(p->level--);
3684 return NULL;
3685 }
3686 alias_ty _res = NULL;
3687 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003688 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3689 p->error_indicator = 1;
3690 D(p->level--);
3691 return NULL;
3692 }
3693 int _start_lineno = p->tokens[_mark]->lineno;
3694 UNUSED(_start_lineno); // Only used by EXTRA macro
3695 int _start_col_offset = p->tokens[_mark]->col_offset;
3696 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003697 { // dotted_name ['as' NAME]
3698 if (p->error_indicator) {
3699 D(p->level--);
3700 return NULL;
3701 }
3702 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3703 expr_ty a;
3704 void *b;
3705 if (
3706 (a = dotted_name_rule(p)) // dotted_name
3707 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003708 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003709 )
3710 {
3711 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 -04003712 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3713 if (_token == NULL) {
3714 D(p->level--);
3715 return NULL;
3716 }
3717 int _end_lineno = _token->end_lineno;
3718 UNUSED(_end_lineno); // Only used by EXTRA macro
3719 int _end_col_offset = _token->end_col_offset;
3720 UNUSED(_end_col_offset); // Only used by EXTRA macro
3721 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003722 if (_res == NULL && PyErr_Occurred()) {
3723 p->error_indicator = 1;
3724 D(p->level--);
3725 return NULL;
3726 }
3727 goto done;
3728 }
3729 p->mark = _mark;
3730 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3732 }
3733 _res = NULL;
3734 done:
3735 D(p->level--);
3736 return _res;
3737}
3738
3739// Left-recursive
3740// dotted_name: dotted_name '.' NAME | NAME
3741static expr_ty dotted_name_raw(Parser *);
3742static expr_ty
3743dotted_name_rule(Parser *p)
3744{
3745 D(p->level++);
3746 expr_ty _res = NULL;
3747 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3748 D(p->level--);
3749 return _res;
3750 }
3751 int _mark = p->mark;
3752 int _resmark = p->mark;
3753 while (1) {
3754 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3755 if (tmpvar_0) {
3756 D(p->level--);
3757 return _res;
3758 }
3759 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003760 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003761 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003762 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003763 if (p->error_indicator)
3764 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003765 if (_raw == NULL || p->mark <= _resmark)
3766 break;
3767 _resmark = p->mark;
3768 _res = _raw;
3769 }
3770 p->mark = _resmark;
3771 D(p->level--);
3772 return _res;
3773}
3774static expr_ty
3775dotted_name_raw(Parser *p)
3776{
3777 D(p->level++);
3778 if (p->error_indicator) {
3779 D(p->level--);
3780 return NULL;
3781 }
3782 expr_ty _res = NULL;
3783 int _mark = p->mark;
3784 { // dotted_name '.' NAME
3785 if (p->error_indicator) {
3786 D(p->level--);
3787 return NULL;
3788 }
3789 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3790 Token * _literal;
3791 expr_ty a;
3792 expr_ty b;
3793 if (
3794 (a = dotted_name_rule(p)) // dotted_name
3795 &&
3796 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3797 &&
3798 (b = _PyPegen_name_token(p)) // NAME
3799 )
3800 {
3801 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3802 _res = _PyPegen_join_names_with_dot ( p , a , b );
3803 if (_res == NULL && PyErr_Occurred()) {
3804 p->error_indicator = 1;
3805 D(p->level--);
3806 return NULL;
3807 }
3808 goto done;
3809 }
3810 p->mark = _mark;
3811 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3813 }
3814 { // NAME
3815 if (p->error_indicator) {
3816 D(p->level--);
3817 return NULL;
3818 }
3819 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3820 expr_ty name_var;
3821 if (
3822 (name_var = _PyPegen_name_token(p)) // NAME
3823 )
3824 {
3825 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3826 _res = name_var;
3827 goto done;
3828 }
3829 p->mark = _mark;
3830 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3832 }
3833 _res = NULL;
3834 done:
3835 D(p->level--);
3836 return _res;
3837}
3838
3839// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003840// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003841// | 'if' named_expression ':' block elif_stmt
3842// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003843static stmt_ty
3844if_stmt_rule(Parser *p)
3845{
3846 D(p->level++);
3847 if (p->error_indicator) {
3848 D(p->level--);
3849 return NULL;
3850 }
3851 stmt_ty _res = NULL;
3852 int _mark = p->mark;
3853 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3854 p->error_indicator = 1;
3855 D(p->level--);
3856 return NULL;
3857 }
3858 int _start_lineno = p->tokens[_mark]->lineno;
3859 UNUSED(_start_lineno); // Only used by EXTRA macro
3860 int _start_col_offset = p->tokens[_mark]->col_offset;
3861 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003862 if (p->call_invalid_rules) { // invalid_if_stmt
3863 if (p->error_indicator) {
3864 D(p->level--);
3865 return NULL;
3866 }
3867 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3868 void *invalid_if_stmt_var;
3869 if (
3870 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3871 )
3872 {
3873 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3874 _res = invalid_if_stmt_var;
3875 goto done;
3876 }
3877 p->mark = _mark;
3878 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3880 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003881 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003882 if (p->error_indicator) {
3883 D(p->level--);
3884 return NULL;
3885 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003886 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 +01003887 Token * _keyword;
3888 Token * _literal;
3889 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003890 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003891 stmt_ty c;
3892 if (
3893 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3894 &&
3895 (a = named_expression_rule(p)) // named_expression
3896 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003897 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003898 &&
3899 (b = block_rule(p)) // block
3900 &&
3901 (c = elif_stmt_rule(p)) // elif_stmt
3902 )
3903 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003904 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 +01003905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3906 if (_token == NULL) {
3907 D(p->level--);
3908 return NULL;
3909 }
3910 int _end_lineno = _token->end_lineno;
3911 UNUSED(_end_lineno); // Only used by EXTRA macro
3912 int _end_col_offset = _token->end_col_offset;
3913 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003914 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003915 if (_res == NULL && PyErr_Occurred()) {
3916 p->error_indicator = 1;
3917 D(p->level--);
3918 return NULL;
3919 }
3920 goto done;
3921 }
3922 p->mark = _mark;
3923 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003925 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003926 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003927 if (p->error_indicator) {
3928 D(p->level--);
3929 return NULL;
3930 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003931 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 +01003932 Token * _keyword;
3933 Token * _literal;
3934 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003935 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003936 void *c;
3937 if (
3938 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3939 &&
3940 (a = named_expression_rule(p)) // named_expression
3941 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003942 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003943 &&
3944 (b = block_rule(p)) // block
3945 &&
3946 (c = else_block_rule(p), 1) // else_block?
3947 )
3948 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003949 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 +01003950 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3951 if (_token == NULL) {
3952 D(p->level--);
3953 return NULL;
3954 }
3955 int _end_lineno = _token->end_lineno;
3956 UNUSED(_end_lineno); // Only used by EXTRA macro
3957 int _end_col_offset = _token->end_col_offset;
3958 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003959 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003960 if (_res == NULL && PyErr_Occurred()) {
3961 p->error_indicator = 1;
3962 D(p->level--);
3963 return NULL;
3964 }
3965 goto done;
3966 }
3967 p->mark = _mark;
3968 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3970 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003971 _res = NULL;
3972 done:
3973 D(p->level--);
3974 return _res;
3975}
3976
3977// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003978// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003979// | 'elif' named_expression ':' block elif_stmt
3980// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003981static stmt_ty
3982elif_stmt_rule(Parser *p)
3983{
3984 D(p->level++);
3985 if (p->error_indicator) {
3986 D(p->level--);
3987 return NULL;
3988 }
3989 stmt_ty _res = NULL;
3990 int _mark = p->mark;
3991 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3992 p->error_indicator = 1;
3993 D(p->level--);
3994 return NULL;
3995 }
3996 int _start_lineno = p->tokens[_mark]->lineno;
3997 UNUSED(_start_lineno); // Only used by EXTRA macro
3998 int _start_col_offset = p->tokens[_mark]->col_offset;
3999 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004000 if (p->call_invalid_rules) { // invalid_elif_stmt
4001 if (p->error_indicator) {
4002 D(p->level--);
4003 return NULL;
4004 }
4005 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4006 void *invalid_elif_stmt_var;
4007 if (
4008 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
4009 )
4010 {
4011 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4012 _res = invalid_elif_stmt_var;
4013 goto done;
4014 }
4015 p->mark = _mark;
4016 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4018 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004019 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004020 if (p->error_indicator) {
4021 D(p->level--);
4022 return NULL;
4023 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004024 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 +01004025 Token * _keyword;
4026 Token * _literal;
4027 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004028 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004029 stmt_ty c;
4030 if (
4031 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4032 &&
4033 (a = named_expression_rule(p)) // named_expression
4034 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004035 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004036 &&
4037 (b = block_rule(p)) // block
4038 &&
4039 (c = elif_stmt_rule(p)) // elif_stmt
4040 )
4041 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004042 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 +01004043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4044 if (_token == NULL) {
4045 D(p->level--);
4046 return NULL;
4047 }
4048 int _end_lineno = _token->end_lineno;
4049 UNUSED(_end_lineno); // Only used by EXTRA macro
4050 int _end_col_offset = _token->end_col_offset;
4051 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004052 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004053 if (_res == NULL && PyErr_Occurred()) {
4054 p->error_indicator = 1;
4055 D(p->level--);
4056 return NULL;
4057 }
4058 goto done;
4059 }
4060 p->mark = _mark;
4061 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004063 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004064 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004065 if (p->error_indicator) {
4066 D(p->level--);
4067 return NULL;
4068 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004069 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 +01004070 Token * _keyword;
4071 Token * _literal;
4072 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004073 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004074 void *c;
4075 if (
4076 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4077 &&
4078 (a = named_expression_rule(p)) // named_expression
4079 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004080 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004081 &&
4082 (b = block_rule(p)) // block
4083 &&
4084 (c = else_block_rule(p), 1) // else_block?
4085 )
4086 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004087 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 +01004088 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4089 if (_token == NULL) {
4090 D(p->level--);
4091 return NULL;
4092 }
4093 int _end_lineno = _token->end_lineno;
4094 UNUSED(_end_lineno); // Only used by EXTRA macro
4095 int _end_col_offset = _token->end_col_offset;
4096 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004097 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004098 if (_res == NULL && PyErr_Occurred()) {
4099 p->error_indicator = 1;
4100 D(p->level--);
4101 return NULL;
4102 }
4103 goto done;
4104 }
4105 p->mark = _mark;
4106 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4108 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004109 _res = NULL;
4110 done:
4111 D(p->level--);
4112 return _res;
4113}
4114
Pablo Galindo56c95df2021-04-21 15:28:21 +01004115// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004116static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004117else_block_rule(Parser *p)
4118{
4119 D(p->level++);
4120 if (p->error_indicator) {
4121 D(p->level--);
4122 return NULL;
4123 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004124 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004125 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004126 if (p->call_invalid_rules) { // invalid_else_stmt
4127 if (p->error_indicator) {
4128 D(p->level--);
4129 return NULL;
4130 }
4131 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4132 void *invalid_else_stmt_var;
4133 if (
4134 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4135 )
4136 {
4137 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4138 _res = invalid_else_stmt_var;
4139 goto done;
4140 }
4141 p->mark = _mark;
4142 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4144 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004145 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004146 if (p->error_indicator) {
4147 D(p->level--);
4148 return NULL;
4149 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004150 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004151 Token * _keyword;
4152 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004153 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004154 if (
4155 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4156 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004157 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004158 &&
4159 (b = block_rule(p)) // block
4160 )
4161 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004162 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 +01004163 _res = b;
4164 if (_res == NULL && PyErr_Occurred()) {
4165 p->error_indicator = 1;
4166 D(p->level--);
4167 return NULL;
4168 }
4169 goto done;
4170 }
4171 p->mark = _mark;
4172 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004174 }
4175 _res = NULL;
4176 done:
4177 D(p->level--);
4178 return _res;
4179}
4180
Pablo Galindo56c95df2021-04-21 15:28:21 +01004181// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004182static stmt_ty
4183while_stmt_rule(Parser *p)
4184{
4185 D(p->level++);
4186 if (p->error_indicator) {
4187 D(p->level--);
4188 return NULL;
4189 }
4190 stmt_ty _res = NULL;
4191 int _mark = p->mark;
4192 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4193 p->error_indicator = 1;
4194 D(p->level--);
4195 return NULL;
4196 }
4197 int _start_lineno = p->tokens[_mark]->lineno;
4198 UNUSED(_start_lineno); // Only used by EXTRA macro
4199 int _start_col_offset = p->tokens[_mark]->col_offset;
4200 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004201 if (p->call_invalid_rules) { // invalid_while_stmt
4202 if (p->error_indicator) {
4203 D(p->level--);
4204 return NULL;
4205 }
4206 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4207 void *invalid_while_stmt_var;
4208 if (
4209 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4210 )
4211 {
4212 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4213 _res = invalid_while_stmt_var;
4214 goto done;
4215 }
4216 p->mark = _mark;
4217 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4218 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4219 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004220 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004221 if (p->error_indicator) {
4222 D(p->level--);
4223 return NULL;
4224 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004225 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 +01004226 Token * _keyword;
4227 Token * _literal;
4228 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004229 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004230 void *c;
4231 if (
4232 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4233 &&
4234 (a = named_expression_rule(p)) // named_expression
4235 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004236 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004237 &&
4238 (b = block_rule(p)) // block
4239 &&
4240 (c = else_block_rule(p), 1) // else_block?
4241 )
4242 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004243 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 +01004244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4245 if (_token == NULL) {
4246 D(p->level--);
4247 return NULL;
4248 }
4249 int _end_lineno = _token->end_lineno;
4250 UNUSED(_end_lineno); // Only used by EXTRA macro
4251 int _end_col_offset = _token->end_col_offset;
4252 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004253 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004254 if (_res == NULL && PyErr_Occurred()) {
4255 p->error_indicator = 1;
4256 D(p->level--);
4257 return NULL;
4258 }
4259 goto done;
4260 }
4261 p->mark = _mark;
4262 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4264 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004265 _res = NULL;
4266 done:
4267 D(p->level--);
4268 return _res;
4269}
4270
4271// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004272// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004273// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4274// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004275// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004276static stmt_ty
4277for_stmt_rule(Parser *p)
4278{
4279 D(p->level++);
4280 if (p->error_indicator) {
4281 D(p->level--);
4282 return NULL;
4283 }
4284 stmt_ty _res = NULL;
4285 int _mark = p->mark;
4286 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4287 p->error_indicator = 1;
4288 D(p->level--);
4289 return NULL;
4290 }
4291 int _start_lineno = p->tokens[_mark]->lineno;
4292 UNUSED(_start_lineno); // Only used by EXTRA macro
4293 int _start_col_offset = p->tokens[_mark]->col_offset;
4294 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004295 if (p->call_invalid_rules) { // invalid_for_stmt
4296 if (p->error_indicator) {
4297 D(p->level--);
4298 return NULL;
4299 }
4300 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4301 void *invalid_for_stmt_var;
4302 if (
4303 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4304 )
4305 {
4306 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4307 _res = invalid_for_stmt_var;
4308 goto done;
4309 }
4310 p->mark = _mark;
4311 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4313 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004314 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004315 if (p->error_indicator) {
4316 D(p->level--);
4317 return NULL;
4318 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004319 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 +03004320 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004321 Token * _keyword;
4322 Token * _keyword_1;
4323 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004324 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004325 void *el;
4326 expr_ty ex;
4327 expr_ty t;
4328 void *tc;
4329 if (
4330 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4331 &&
4332 (t = star_targets_rule(p)) // star_targets
4333 &&
4334 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4335 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004336 (_cut_var = 1)
4337 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004338 (ex = star_expressions_rule(p)) // star_expressions
4339 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004340 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004341 &&
4342 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4343 &&
4344 (b = block_rule(p)) // block
4345 &&
4346 (el = else_block_rule(p), 1) // else_block?
4347 )
4348 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004349 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 +01004350 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4351 if (_token == NULL) {
4352 D(p->level--);
4353 return NULL;
4354 }
4355 int _end_lineno = _token->end_lineno;
4356 UNUSED(_end_lineno); // Only used by EXTRA macro
4357 int _end_col_offset = _token->end_col_offset;
4358 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004359 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004360 if (_res == NULL && PyErr_Occurred()) {
4361 p->error_indicator = 1;
4362 D(p->level--);
4363 return NULL;
4364 }
4365 goto done;
4366 }
4367 p->mark = _mark;
4368 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004369 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 +03004370 if (_cut_var) {
4371 D(p->level--);
4372 return NULL;
4373 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004374 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004375 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004376 if (p->error_indicator) {
4377 D(p->level--);
4378 return NULL;
4379 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004380 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 +03004381 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004382 Token * _keyword;
4383 Token * _keyword_1;
4384 Token * _literal;
4385 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004386 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004387 void *el;
4388 expr_ty ex;
4389 expr_ty t;
4390 void *tc;
4391 if (
4392 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4393 &&
4394 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4395 &&
4396 (t = star_targets_rule(p)) // star_targets
4397 &&
4398 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4399 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004400 (_cut_var = 1)
4401 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004402 (ex = star_expressions_rule(p)) // star_expressions
4403 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004404 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004405 &&
4406 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4407 &&
4408 (b = block_rule(p)) // block
4409 &&
4410 (el = else_block_rule(p), 1) // else_block?
4411 )
4412 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004413 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 +01004414 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4415 if (_token == NULL) {
4416 D(p->level--);
4417 return NULL;
4418 }
4419 int _end_lineno = _token->end_lineno;
4420 UNUSED(_end_lineno); // Only used by EXTRA macro
4421 int _end_col_offset = _token->end_col_offset;
4422 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004423 _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 +01004424 if (_res == NULL && PyErr_Occurred()) {
4425 p->error_indicator = 1;
4426 D(p->level--);
4427 return NULL;
4428 }
4429 goto done;
4430 }
4431 p->mark = _mark;
4432 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004433 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 +03004434 if (_cut_var) {
4435 D(p->level--);
4436 return NULL;
4437 }
4438 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004439 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004440 if (p->error_indicator) {
4441 D(p->level--);
4442 return NULL;
4443 }
4444 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4445 void *invalid_for_target_var;
4446 if (
4447 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4448 )
4449 {
4450 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4451 _res = invalid_for_target_var;
4452 goto done;
4453 }
4454 p->mark = _mark;
4455 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004457 }
4458 _res = NULL;
4459 done:
4460 D(p->level--);
4461 return _res;
4462}
4463
4464// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004465// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004466// | 'with' '(' ','.with_item+ ','? ')' ':' block
4467// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4468// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4469// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004470// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004471static stmt_ty
4472with_stmt_rule(Parser *p)
4473{
4474 D(p->level++);
4475 if (p->error_indicator) {
4476 D(p->level--);
4477 return NULL;
4478 }
4479 stmt_ty _res = NULL;
4480 int _mark = p->mark;
4481 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4482 p->error_indicator = 1;
4483 D(p->level--);
4484 return NULL;
4485 }
4486 int _start_lineno = p->tokens[_mark]->lineno;
4487 UNUSED(_start_lineno); // Only used by EXTRA macro
4488 int _start_col_offset = p->tokens[_mark]->col_offset;
4489 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004490 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4491 if (p->error_indicator) {
4492 D(p->level--);
4493 return NULL;
4494 }
4495 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4496 void *invalid_with_stmt_indent_var;
4497 if (
4498 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4499 )
4500 {
4501 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4502 _res = invalid_with_stmt_indent_var;
4503 goto done;
4504 }
4505 p->mark = _mark;
4506 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4508 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004509 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4510 if (p->error_indicator) {
4511 D(p->level--);
4512 return NULL;
4513 }
4514 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4515 Token * _keyword;
4516 Token * _literal;
4517 Token * _literal_1;
4518 Token * _literal_2;
4519 void *_opt_var;
4520 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004521 asdl_withitem_seq* a;
4522 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004523 if (
4524 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4525 &&
4526 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4527 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004528 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004529 &&
4530 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4531 &&
4532 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4533 &&
4534 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4535 &&
4536 (b = block_rule(p)) // block
4537 )
4538 {
4539 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4540 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4541 if (_token == NULL) {
4542 D(p->level--);
4543 return NULL;
4544 }
4545 int _end_lineno = _token->end_lineno;
4546 UNUSED(_end_lineno); // Only used by EXTRA macro
4547 int _end_col_offset = _token->end_col_offset;
4548 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004549 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004550 if (_res == NULL && PyErr_Occurred()) {
4551 p->error_indicator = 1;
4552 D(p->level--);
4553 return NULL;
4554 }
4555 goto done;
4556 }
4557 p->mark = _mark;
4558 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4560 }
4561 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4562 if (p->error_indicator) {
4563 D(p->level--);
4564 return NULL;
4565 }
4566 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4567 Token * _keyword;
4568 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004569 asdl_withitem_seq* a;
4570 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004571 void *tc;
4572 if (
4573 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4574 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004575 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004576 &&
4577 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4578 &&
4579 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4580 &&
4581 (b = block_rule(p)) // block
4582 )
4583 {
4584 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4585 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4586 if (_token == NULL) {
4587 D(p->level--);
4588 return NULL;
4589 }
4590 int _end_lineno = _token->end_lineno;
4591 UNUSED(_end_lineno); // Only used by EXTRA macro
4592 int _end_col_offset = _token->end_col_offset;
4593 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004594 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004595 if (_res == NULL && PyErr_Occurred()) {
4596 p->error_indicator = 1;
4597 D(p->level--);
4598 return NULL;
4599 }
4600 goto done;
4601 }
4602 p->mark = _mark;
4603 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4605 }
4606 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4607 if (p->error_indicator) {
4608 D(p->level--);
4609 return NULL;
4610 }
4611 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4612 Token * _keyword;
4613 Token * _literal;
4614 Token * _literal_1;
4615 Token * _literal_2;
4616 void *_opt_var;
4617 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004618 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004619 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004620 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004621 if (
4622 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4623 &&
4624 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4625 &&
4626 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4627 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004628 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004629 &&
4630 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4631 &&
4632 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4633 &&
4634 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4635 &&
4636 (b = block_rule(p)) // block
4637 )
4638 {
4639 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4640 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4641 if (_token == NULL) {
4642 D(p->level--);
4643 return NULL;
4644 }
4645 int _end_lineno = _token->end_lineno;
4646 UNUSED(_end_lineno); // Only used by EXTRA macro
4647 int _end_col_offset = _token->end_col_offset;
4648 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004649 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004650 if (_res == NULL && PyErr_Occurred()) {
4651 p->error_indicator = 1;
4652 D(p->level--);
4653 return NULL;
4654 }
4655 goto done;
4656 }
4657 p->mark = _mark;
4658 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4660 }
4661 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4662 if (p->error_indicator) {
4663 D(p->level--);
4664 return NULL;
4665 }
4666 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4667 Token * _keyword;
4668 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004669 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004670 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004671 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004672 void *tc;
4673 if (
4674 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4675 &&
4676 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4677 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004678 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004679 &&
4680 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4681 &&
4682 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4683 &&
4684 (b = block_rule(p)) // block
4685 )
4686 {
4687 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4688 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4689 if (_token == NULL) {
4690 D(p->level--);
4691 return NULL;
4692 }
4693 int _end_lineno = _token->end_lineno;
4694 UNUSED(_end_lineno); // Only used by EXTRA macro
4695 int _end_col_offset = _token->end_col_offset;
4696 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004697 _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 +01004698 if (_res == NULL && PyErr_Occurred()) {
4699 p->error_indicator = 1;
4700 D(p->level--);
4701 return NULL;
4702 }
4703 goto done;
4704 }
4705 p->mark = _mark;
4706 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4708 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004709 if (p->call_invalid_rules) { // invalid_with_stmt
4710 if (p->error_indicator) {
4711 D(p->level--);
4712 return NULL;
4713 }
4714 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4715 void *invalid_with_stmt_var;
4716 if (
4717 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4718 )
4719 {
4720 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4721 _res = invalid_with_stmt_var;
4722 goto done;
4723 }
4724 p->mark = _mark;
4725 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4727 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004728 _res = NULL;
4729 done:
4730 D(p->level--);
4731 return _res;
4732}
4733
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004734// with_item:
4735// | expression 'as' star_target &(',' | ')' | ':')
4736// | invalid_with_item
4737// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004738static withitem_ty
4739with_item_rule(Parser *p)
4740{
4741 D(p->level++);
4742 if (p->error_indicator) {
4743 D(p->level--);
4744 return NULL;
4745 }
4746 withitem_ty _res = NULL;
4747 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004748 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004749 if (p->error_indicator) {
4750 D(p->level--);
4751 return NULL;
4752 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004753 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 +03004754 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004755 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004756 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004757 if (
4758 (e = expression_rule(p)) // expression
4759 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004760 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4761 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004762 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004763 &&
4764 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004765 )
4766 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004767 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 +02004768 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004769 if (_res == NULL && PyErr_Occurred()) {
4770 p->error_indicator = 1;
4771 D(p->level--);
4772 return NULL;
4773 }
4774 goto done;
4775 }
4776 p->mark = _mark;
4777 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004779 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004780 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004781 if (p->error_indicator) {
4782 D(p->level--);
4783 return NULL;
4784 }
4785 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4786 void *invalid_with_item_var;
4787 if (
4788 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4789 )
4790 {
4791 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4792 _res = invalid_with_item_var;
4793 goto done;
4794 }
4795 p->mark = _mark;
4796 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4798 }
4799 { // expression
4800 if (p->error_indicator) {
4801 D(p->level--);
4802 return NULL;
4803 }
4804 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4805 expr_ty e;
4806 if (
4807 (e = expression_rule(p)) // expression
4808 )
4809 {
4810 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004811 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004812 if (_res == NULL && PyErr_Occurred()) {
4813 p->error_indicator = 1;
4814 D(p->level--);
4815 return NULL;
4816 }
4817 goto done;
4818 }
4819 p->mark = _mark;
4820 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004822 }
4823 _res = NULL;
4824 done:
4825 D(p->level--);
4826 return _res;
4827}
4828
4829// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004830// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004831// | 'try' &&':' block finally_block
4832// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004833static stmt_ty
4834try_stmt_rule(Parser *p)
4835{
4836 D(p->level++);
4837 if (p->error_indicator) {
4838 D(p->level--);
4839 return NULL;
4840 }
4841 stmt_ty _res = NULL;
4842 int _mark = p->mark;
4843 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4844 p->error_indicator = 1;
4845 D(p->level--);
4846 return NULL;
4847 }
4848 int _start_lineno = p->tokens[_mark]->lineno;
4849 UNUSED(_start_lineno); // Only used by EXTRA macro
4850 int _start_col_offset = p->tokens[_mark]->col_offset;
4851 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004852 if (p->call_invalid_rules) { // invalid_try_stmt
4853 if (p->error_indicator) {
4854 D(p->level--);
4855 return NULL;
4856 }
4857 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4858 void *invalid_try_stmt_var;
4859 if (
4860 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4861 )
4862 {
4863 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4864 _res = invalid_try_stmt_var;
4865 goto done;
4866 }
4867 p->mark = _mark;
4868 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4870 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004871 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004872 if (p->error_indicator) {
4873 D(p->level--);
4874 return NULL;
4875 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004876 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 +01004877 Token * _keyword;
4878 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004879 asdl_stmt_seq* b;
4880 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004881 if (
4882 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4883 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004884 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004885 &&
4886 (b = block_rule(p)) // block
4887 &&
4888 (f = finally_block_rule(p)) // finally_block
4889 )
4890 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004891 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 +01004892 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4893 if (_token == NULL) {
4894 D(p->level--);
4895 return NULL;
4896 }
4897 int _end_lineno = _token->end_lineno;
4898 UNUSED(_end_lineno); // Only used by EXTRA macro
4899 int _end_col_offset = _token->end_col_offset;
4900 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004901 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004902 if (_res == NULL && PyErr_Occurred()) {
4903 p->error_indicator = 1;
4904 D(p->level--);
4905 return NULL;
4906 }
4907 goto done;
4908 }
4909 p->mark = _mark;
4910 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004912 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004913 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004914 if (p->error_indicator) {
4915 D(p->level--);
4916 return NULL;
4917 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004918 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 +01004919 Token * _keyword;
4920 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004921 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004922 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004923 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004924 void *f;
4925 if (
4926 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4927 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004928 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004929 &&
4930 (b = block_rule(p)) // block
4931 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004932 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004933 &&
4934 (el = else_block_rule(p), 1) // else_block?
4935 &&
4936 (f = finally_block_rule(p), 1) // finally_block?
4937 )
4938 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004939 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 +01004940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4941 if (_token == NULL) {
4942 D(p->level--);
4943 return NULL;
4944 }
4945 int _end_lineno = _token->end_lineno;
4946 UNUSED(_end_lineno); // Only used by EXTRA macro
4947 int _end_col_offset = _token->end_col_offset;
4948 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004949 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004950 if (_res == NULL && PyErr_Occurred()) {
4951 p->error_indicator = 1;
4952 D(p->level--);
4953 return NULL;
4954 }
4955 goto done;
4956 }
4957 p->mark = _mark;
4958 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004960 }
4961 _res = NULL;
4962 done:
4963 D(p->level--);
4964 return _res;
4965}
4966
Pablo Galindo206cbda2021-02-07 18:42:21 +00004967// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004968// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004969// | 'except' expression ['as' NAME] ':' block
4970// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004971// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004972static excepthandler_ty
4973except_block_rule(Parser *p)
4974{
4975 D(p->level++);
4976 if (p->error_indicator) {
4977 D(p->level--);
4978 return NULL;
4979 }
4980 excepthandler_ty _res = NULL;
4981 int _mark = p->mark;
4982 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4983 p->error_indicator = 1;
4984 D(p->level--);
4985 return NULL;
4986 }
4987 int _start_lineno = p->tokens[_mark]->lineno;
4988 UNUSED(_start_lineno); // Only used by EXTRA macro
4989 int _start_col_offset = p->tokens[_mark]->col_offset;
4990 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004991 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4992 if (p->error_indicator) {
4993 D(p->level--);
4994 return NULL;
4995 }
4996 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4997 void *invalid_except_stmt_indent_var;
4998 if (
4999 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
5000 )
5001 {
5002 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
5003 _res = invalid_except_stmt_indent_var;
5004 goto done;
5005 }
5006 p->mark = _mark;
5007 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
5008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
5009 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005010 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005011 if (p->error_indicator) {
5012 D(p->level--);
5013 return NULL;
5014 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005015 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 +01005016 Token * _keyword;
5017 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005018 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005019 expr_ty e;
5020 void *t;
5021 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005022 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005023 &&
5024 (e = expression_rule(p)) // expression
5025 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005026 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005027 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005028 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005029 &&
5030 (b = block_rule(p)) // block
5031 )
5032 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005033 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 +01005034 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5035 if (_token == NULL) {
5036 D(p->level--);
5037 return NULL;
5038 }
5039 int _end_lineno = _token->end_lineno;
5040 UNUSED(_end_lineno); // Only used by EXTRA macro
5041 int _end_col_offset = _token->end_col_offset;
5042 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005043 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005044 if (_res == NULL && PyErr_Occurred()) {
5045 p->error_indicator = 1;
5046 D(p->level--);
5047 return NULL;
5048 }
5049 goto done;
5050 }
5051 p->mark = _mark;
5052 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005054 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005055 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005056 if (p->error_indicator) {
5057 D(p->level--);
5058 return NULL;
5059 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005060 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005061 Token * _keyword;
5062 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005063 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005064 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005065 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005066 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005067 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005068 &&
5069 (b = block_rule(p)) // block
5070 )
5071 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005072 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 +01005073 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5074 if (_token == NULL) {
5075 D(p->level--);
5076 return NULL;
5077 }
5078 int _end_lineno = _token->end_lineno;
5079 UNUSED(_end_lineno); // Only used by EXTRA macro
5080 int _end_col_offset = _token->end_col_offset;
5081 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005082 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005083 if (_res == NULL && PyErr_Occurred()) {
5084 p->error_indicator = 1;
5085 D(p->level--);
5086 return NULL;
5087 }
5088 goto done;
5089 }
5090 p->mark = _mark;
5091 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5093 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005094 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005095 if (p->error_indicator) {
5096 D(p->level--);
5097 return NULL;
5098 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005099 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5100 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005101 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005102 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005103 )
5104 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005105 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5106 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005107 goto done;
5108 }
5109 p->mark = _mark;
5110 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005112 }
5113 _res = NULL;
5114 done:
5115 D(p->level--);
5116 return _res;
5117}
5118
Pablo Galindo56c95df2021-04-21 15:28:21 +01005119// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005120static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005121finally_block_rule(Parser *p)
5122{
5123 D(p->level++);
5124 if (p->error_indicator) {
5125 D(p->level--);
5126 return NULL;
5127 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005128 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005129 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005130 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005131 if (p->error_indicator) {
5132 D(p->level--);
5133 return NULL;
5134 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005135 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5136 void *invalid_finally_stmt_var;
5137 if (
5138 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5139 )
5140 {
5141 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5142 _res = invalid_finally_stmt_var;
5143 goto done;
5144 }
5145 p->mark = _mark;
5146 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5148 }
5149 { // 'finally' &&':' block
5150 if (p->error_indicator) {
5151 D(p->level--);
5152 return NULL;
5153 }
5154 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005155 Token * _keyword;
5156 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005157 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005158 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005159 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005160 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005161 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005162 &&
5163 (a = block_rule(p)) // block
5164 )
5165 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005166 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 +01005167 _res = a;
5168 if (_res == NULL && PyErr_Occurred()) {
5169 p->error_indicator = 1;
5170 D(p->level--);
5171 return NULL;
5172 }
5173 goto done;
5174 }
5175 p->mark = _mark;
5176 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005178 }
5179 _res = NULL;
5180 done:
5181 D(p->level--);
5182 return _res;
5183}
5184
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005185// match_stmt:
5186// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5187// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005188static stmt_ty
5189match_stmt_rule(Parser *p)
5190{
5191 D(p->level++);
5192 if (p->error_indicator) {
5193 D(p->level--);
5194 return NULL;
5195 }
5196 stmt_ty _res = NULL;
5197 int _mark = p->mark;
5198 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5199 p->error_indicator = 1;
5200 D(p->level--);
5201 return NULL;
5202 }
5203 int _start_lineno = p->tokens[_mark]->lineno;
5204 UNUSED(_start_lineno); // Only used by EXTRA macro
5205 int _start_col_offset = p->tokens[_mark]->col_offset;
5206 UNUSED(_start_col_offset); // Only used by EXTRA macro
5207 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5208 if (p->error_indicator) {
5209 D(p->level--);
5210 return NULL;
5211 }
5212 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5213 expr_ty _keyword;
5214 Token * _literal;
5215 asdl_match_case_seq* cases;
5216 Token * dedent_var;
5217 Token * indent_var;
5218 Token * newline_var;
5219 expr_ty subject;
5220 if (
5221 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5222 &&
5223 (subject = subject_expr_rule(p)) // subject_expr
5224 &&
5225 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5226 &&
5227 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5228 &&
5229 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5230 &&
5231 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5232 &&
5233 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5234 )
5235 {
5236 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5237 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5238 if (_token == NULL) {
5239 D(p->level--);
5240 return NULL;
5241 }
5242 int _end_lineno = _token->end_lineno;
5243 UNUSED(_end_lineno); // Only used by EXTRA macro
5244 int _end_col_offset = _token->end_col_offset;
5245 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005246 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005247 if (_res == NULL && PyErr_Occurred()) {
5248 p->error_indicator = 1;
5249 D(p->level--);
5250 return NULL;
5251 }
5252 goto done;
5253 }
5254 p->mark = _mark;
5255 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5257 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005258 if (p->call_invalid_rules) { // invalid_match_stmt
5259 if (p->error_indicator) {
5260 D(p->level--);
5261 return NULL;
5262 }
5263 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5264 void *invalid_match_stmt_var;
5265 if (
5266 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5267 )
5268 {
5269 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5270 _res = invalid_match_stmt_var;
5271 goto done;
5272 }
5273 p->mark = _mark;
5274 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5276 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005277 _res = NULL;
5278 done:
5279 D(p->level--);
5280 return _res;
5281}
5282
5283// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5284static expr_ty
5285subject_expr_rule(Parser *p)
5286{
5287 D(p->level++);
5288 if (p->error_indicator) {
5289 D(p->level--);
5290 return NULL;
5291 }
5292 expr_ty _res = NULL;
5293 int _mark = p->mark;
5294 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5295 p->error_indicator = 1;
5296 D(p->level--);
5297 return NULL;
5298 }
5299 int _start_lineno = p->tokens[_mark]->lineno;
5300 UNUSED(_start_lineno); // Only used by EXTRA macro
5301 int _start_col_offset = p->tokens[_mark]->col_offset;
5302 UNUSED(_start_col_offset); // Only used by EXTRA macro
5303 { // star_named_expression ',' star_named_expressions?
5304 if (p->error_indicator) {
5305 D(p->level--);
5306 return NULL;
5307 }
5308 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5309 Token * _literal;
5310 expr_ty value;
5311 void *values;
5312 if (
5313 (value = star_named_expression_rule(p)) // star_named_expression
5314 &&
5315 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5316 &&
5317 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5318 )
5319 {
5320 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5321 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5322 if (_token == NULL) {
5323 D(p->level--);
5324 return NULL;
5325 }
5326 int _end_lineno = _token->end_lineno;
5327 UNUSED(_end_lineno); // Only used by EXTRA macro
5328 int _end_col_offset = _token->end_col_offset;
5329 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005330 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005331 if (_res == NULL && PyErr_Occurred()) {
5332 p->error_indicator = 1;
5333 D(p->level--);
5334 return NULL;
5335 }
5336 goto done;
5337 }
5338 p->mark = _mark;
5339 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5341 }
5342 { // named_expression
5343 if (p->error_indicator) {
5344 D(p->level--);
5345 return NULL;
5346 }
5347 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5348 expr_ty named_expression_var;
5349 if (
5350 (named_expression_var = named_expression_rule(p)) // named_expression
5351 )
5352 {
5353 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5354 _res = named_expression_var;
5355 goto done;
5356 }
5357 p->mark = _mark;
5358 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5360 }
5361 _res = NULL;
5362 done:
5363 D(p->level--);
5364 return _res;
5365}
5366
Pablo Galindo56c95df2021-04-21 15:28:21 +01005367// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005368static match_case_ty
5369case_block_rule(Parser *p)
5370{
5371 D(p->level++);
5372 if (p->error_indicator) {
5373 D(p->level--);
5374 return NULL;
5375 }
5376 match_case_ty _res = NULL;
5377 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005378 if (p->call_invalid_rules) { // invalid_case_block
5379 if (p->error_indicator) {
5380 D(p->level--);
5381 return NULL;
5382 }
5383 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5384 void *invalid_case_block_var;
5385 if (
5386 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5387 )
5388 {
5389 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5390 _res = invalid_case_block_var;
5391 goto done;
5392 }
5393 p->mark = _mark;
5394 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5396 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005397 { // "case" patterns guard? ':' block
5398 if (p->error_indicator) {
5399 D(p->level--);
5400 return NULL;
5401 }
5402 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5403 expr_ty _keyword;
5404 Token * _literal;
5405 asdl_stmt_seq* body;
5406 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005407 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005408 if (
5409 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5410 &&
5411 (pattern = patterns_rule(p)) // patterns
5412 &&
5413 (guard = guard_rule(p), 1) // guard?
5414 &&
5415 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5416 &&
5417 (body = block_rule(p)) // block
5418 )
5419 {
5420 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 +02005421 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005422 if (_res == NULL && PyErr_Occurred()) {
5423 p->error_indicator = 1;
5424 D(p->level--);
5425 return NULL;
5426 }
5427 goto done;
5428 }
5429 p->mark = _mark;
5430 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5432 }
5433 _res = NULL;
5434 done:
5435 D(p->level--);
5436 return _res;
5437}
5438
5439// guard: 'if' named_expression
5440static expr_ty
5441guard_rule(Parser *p)
5442{
5443 D(p->level++);
5444 if (p->error_indicator) {
5445 D(p->level--);
5446 return NULL;
5447 }
5448 expr_ty _res = NULL;
5449 int _mark = p->mark;
5450 { // 'if' named_expression
5451 if (p->error_indicator) {
5452 D(p->level--);
5453 return NULL;
5454 }
5455 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5456 Token * _keyword;
5457 expr_ty guard;
5458 if (
5459 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5460 &&
5461 (guard = named_expression_rule(p)) // named_expression
5462 )
5463 {
5464 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5465 _res = guard;
5466 if (_res == NULL && PyErr_Occurred()) {
5467 p->error_indicator = 1;
5468 D(p->level--);
5469 return NULL;
5470 }
5471 goto done;
5472 }
5473 p->mark = _mark;
5474 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5476 }
5477 _res = NULL;
5478 done:
5479 D(p->level--);
5480 return _res;
5481}
5482
5483// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005484static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005485patterns_rule(Parser *p)
5486{
5487 D(p->level++);
5488 if (p->error_indicator) {
5489 D(p->level--);
5490 return NULL;
5491 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005492 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005493 int _mark = p->mark;
5494 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5495 p->error_indicator = 1;
5496 D(p->level--);
5497 return NULL;
5498 }
5499 int _start_lineno = p->tokens[_mark]->lineno;
5500 UNUSED(_start_lineno); // Only used by EXTRA macro
5501 int _start_col_offset = p->tokens[_mark]->col_offset;
5502 UNUSED(_start_col_offset); // Only used by EXTRA macro
5503 { // open_sequence_pattern
5504 if (p->error_indicator) {
5505 D(p->level--);
5506 return NULL;
5507 }
5508 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005509 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005510 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005511 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005512 )
5513 {
5514 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5515 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5516 if (_token == NULL) {
5517 D(p->level--);
5518 return NULL;
5519 }
5520 int _end_lineno = _token->end_lineno;
5521 UNUSED(_end_lineno); // Only used by EXTRA macro
5522 int _end_col_offset = _token->end_col_offset;
5523 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005524 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005525 if (_res == NULL && PyErr_Occurred()) {
5526 p->error_indicator = 1;
5527 D(p->level--);
5528 return NULL;
5529 }
5530 goto done;
5531 }
5532 p->mark = _mark;
5533 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5535 }
5536 { // pattern
5537 if (p->error_indicator) {
5538 D(p->level--);
5539 return NULL;
5540 }
5541 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005542 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005543 if (
5544 (pattern_var = pattern_rule(p)) // pattern
5545 )
5546 {
5547 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5548 _res = pattern_var;
5549 goto done;
5550 }
5551 p->mark = _mark;
5552 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5554 }
5555 _res = NULL;
5556 done:
5557 D(p->level--);
5558 return _res;
5559}
5560
5561// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005562static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005563pattern_rule(Parser *p)
5564{
5565 D(p->level++);
5566 if (p->error_indicator) {
5567 D(p->level--);
5568 return NULL;
5569 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005570 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005571 int _mark = p->mark;
5572 { // as_pattern
5573 if (p->error_indicator) {
5574 D(p->level--);
5575 return NULL;
5576 }
5577 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005578 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005579 if (
5580 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5581 )
5582 {
5583 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5584 _res = as_pattern_var;
5585 goto done;
5586 }
5587 p->mark = _mark;
5588 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5590 }
5591 { // or_pattern
5592 if (p->error_indicator) {
5593 D(p->level--);
5594 return NULL;
5595 }
5596 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005597 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005598 if (
5599 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5600 )
5601 {
5602 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5603 _res = or_pattern_var;
5604 goto done;
5605 }
5606 p->mark = _mark;
5607 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5609 }
5610 _res = NULL;
5611 done:
5612 D(p->level--);
5613 return _res;
5614}
5615
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005616// as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005617static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005618as_pattern_rule(Parser *p)
5619{
5620 D(p->level++);
5621 if (p->error_indicator) {
5622 D(p->level--);
5623 return NULL;
5624 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005625 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005626 int _mark = p->mark;
5627 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5628 p->error_indicator = 1;
5629 D(p->level--);
5630 return NULL;
5631 }
5632 int _start_lineno = p->tokens[_mark]->lineno;
5633 UNUSED(_start_lineno); // Only used by EXTRA macro
5634 int _start_col_offset = p->tokens[_mark]->col_offset;
5635 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005636 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005637 if (p->error_indicator) {
5638 D(p->level--);
5639 return NULL;
5640 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005641 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 -08005642 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005643 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005644 expr_ty target;
5645 if (
5646 (pattern = or_pattern_rule(p)) // or_pattern
5647 &&
5648 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5649 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005650 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005651 )
5652 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005653 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 -08005654 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5655 if (_token == NULL) {
5656 D(p->level--);
5657 return NULL;
5658 }
5659 int _end_lineno = _token->end_lineno;
5660 UNUSED(_end_lineno); // Only used by EXTRA macro
5661 int _end_col_offset = _token->end_col_offset;
5662 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005663 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005664 if (_res == NULL && PyErr_Occurred()) {
5665 p->error_indicator = 1;
5666 D(p->level--);
5667 return NULL;
5668 }
5669 goto done;
5670 }
5671 p->mark = _mark;
5672 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005674 }
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005675 if (p->call_invalid_rules) { // invalid_as_pattern
5676 if (p->error_indicator) {
5677 D(p->level--);
5678 return NULL;
5679 }
5680 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5681 void *invalid_as_pattern_var;
5682 if (
5683 (invalid_as_pattern_var = invalid_as_pattern_rule(p)) // invalid_as_pattern
5684 )
5685 {
5686 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5687 _res = invalid_as_pattern_var;
5688 goto done;
5689 }
5690 p->mark = _mark;
5691 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern"));
5693 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005694 _res = NULL;
5695 done:
5696 D(p->level--);
5697 return _res;
5698}
5699
5700// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005701static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005702or_pattern_rule(Parser *p)
5703{
5704 D(p->level++);
5705 if (p->error_indicator) {
5706 D(p->level--);
5707 return NULL;
5708 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005709 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005710 int _mark = p->mark;
5711 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5712 p->error_indicator = 1;
5713 D(p->level--);
5714 return NULL;
5715 }
5716 int _start_lineno = p->tokens[_mark]->lineno;
5717 UNUSED(_start_lineno); // Only used by EXTRA macro
5718 int _start_col_offset = p->tokens[_mark]->col_offset;
5719 UNUSED(_start_col_offset); // Only used by EXTRA macro
5720 { // '|'.closed_pattern+
5721 if (p->error_indicator) {
5722 D(p->level--);
5723 return NULL;
5724 }
5725 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005726 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005727 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005728 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005729 )
5730 {
5731 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5732 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5733 if (_token == NULL) {
5734 D(p->level--);
5735 return NULL;
5736 }
5737 int _end_lineno = _token->end_lineno;
5738 UNUSED(_end_lineno); // Only used by EXTRA macro
5739 int _end_col_offset = _token->end_col_offset;
5740 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005741 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005742 if (_res == NULL && PyErr_Occurred()) {
5743 p->error_indicator = 1;
5744 D(p->level--);
5745 return NULL;
5746 }
5747 goto done;
5748 }
5749 p->mark = _mark;
5750 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5752 }
5753 _res = NULL;
5754 done:
5755 D(p->level--);
5756 return _res;
5757}
5758
5759// closed_pattern:
5760// | literal_pattern
5761// | capture_pattern
5762// | wildcard_pattern
5763// | value_pattern
5764// | group_pattern
5765// | sequence_pattern
5766// | mapping_pattern
5767// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005768static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005769closed_pattern_rule(Parser *p)
5770{
5771 D(p->level++);
5772 if (p->error_indicator) {
5773 D(p->level--);
5774 return NULL;
5775 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005776 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005777 int _mark = p->mark;
5778 { // literal_pattern
5779 if (p->error_indicator) {
5780 D(p->level--);
5781 return NULL;
5782 }
5783 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005784 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005785 if (
5786 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5787 )
5788 {
5789 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5790 _res = literal_pattern_var;
5791 goto done;
5792 }
5793 p->mark = _mark;
5794 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5796 }
5797 { // capture_pattern
5798 if (p->error_indicator) {
5799 D(p->level--);
5800 return NULL;
5801 }
5802 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005803 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005804 if (
5805 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5806 )
5807 {
5808 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5809 _res = capture_pattern_var;
5810 goto done;
5811 }
5812 p->mark = _mark;
5813 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5815 }
5816 { // wildcard_pattern
5817 if (p->error_indicator) {
5818 D(p->level--);
5819 return NULL;
5820 }
5821 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005822 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005823 if (
5824 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5825 )
5826 {
5827 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5828 _res = wildcard_pattern_var;
5829 goto done;
5830 }
5831 p->mark = _mark;
5832 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5834 }
5835 { // value_pattern
5836 if (p->error_indicator) {
5837 D(p->level--);
5838 return NULL;
5839 }
5840 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005841 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005842 if (
5843 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5844 )
5845 {
5846 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5847 _res = value_pattern_var;
5848 goto done;
5849 }
5850 p->mark = _mark;
5851 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5853 }
5854 { // group_pattern
5855 if (p->error_indicator) {
5856 D(p->level--);
5857 return NULL;
5858 }
5859 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005860 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005861 if (
5862 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5863 )
5864 {
5865 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5866 _res = group_pattern_var;
5867 goto done;
5868 }
5869 p->mark = _mark;
5870 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5872 }
5873 { // sequence_pattern
5874 if (p->error_indicator) {
5875 D(p->level--);
5876 return NULL;
5877 }
5878 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005879 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005880 if (
5881 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5882 )
5883 {
5884 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5885 _res = sequence_pattern_var;
5886 goto done;
5887 }
5888 p->mark = _mark;
5889 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5891 }
5892 { // mapping_pattern
5893 if (p->error_indicator) {
5894 D(p->level--);
5895 return NULL;
5896 }
5897 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005898 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005899 if (
5900 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5901 )
5902 {
5903 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5904 _res = mapping_pattern_var;
5905 goto done;
5906 }
5907 p->mark = _mark;
5908 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5910 }
5911 { // class_pattern
5912 if (p->error_indicator) {
5913 D(p->level--);
5914 return NULL;
5915 }
5916 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005917 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005918 if (
5919 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5920 )
5921 {
5922 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5923 _res = class_pattern_var;
5924 goto done;
5925 }
5926 p->mark = _mark;
5927 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5929 }
5930 _res = NULL;
5931 done:
5932 D(p->level--);
5933 return _res;
5934}
5935
5936// literal_pattern:
5937// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005938// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005939// | strings
5940// | 'None'
5941// | 'True'
5942// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005943static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005944literal_pattern_rule(Parser *p)
5945{
5946 D(p->level++);
5947 if (p->error_indicator) {
5948 D(p->level--);
5949 return NULL;
5950 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005951 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005952 int _mark = p->mark;
5953 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5954 p->error_indicator = 1;
5955 D(p->level--);
5956 return NULL;
5957 }
5958 int _start_lineno = p->tokens[_mark]->lineno;
5959 UNUSED(_start_lineno); // Only used by EXTRA macro
5960 int _start_col_offset = p->tokens[_mark]->col_offset;
5961 UNUSED(_start_col_offset); // Only used by EXTRA macro
5962 { // signed_number !('+' | '-')
5963 if (p->error_indicator) {
5964 D(p->level--);
5965 return NULL;
5966 }
5967 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005968 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005969 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005970 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005971 &&
5972 _PyPegen_lookahead(0, _tmp_53_rule, p)
5973 )
5974 {
5975 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 +10005976 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
5985 _res = _PyAST_MatchValue ( value , EXTRA );
5986 if (_res == NULL && PyErr_Occurred()) {
5987 p->error_indicator = 1;
5988 D(p->level--);
5989 return NULL;
5990 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005991 goto done;
5992 }
5993 p->mark = _mark;
5994 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5996 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005997 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005998 if (p->error_indicator) {
5999 D(p->level--);
6000 return NULL;
6001 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006002 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6003 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006004 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006005 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08006006 )
6007 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006008 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 -08006009 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
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006018 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006019 if (_res == NULL && PyErr_Occurred()) {
6020 p->error_indicator = 1;
6021 D(p->level--);
6022 return NULL;
6023 }
6024 goto done;
6025 }
6026 p->mark = _mark;
6027 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006029 }
6030 { // strings
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, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006036 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006037 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006038 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006039 )
6040 {
6041 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006042 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
6051 _res = _PyAST_MatchValue ( value , EXTRA );
6052 if (_res == NULL && PyErr_Occurred()) {
6053 p->error_indicator = 1;
6054 D(p->level--);
6055 return NULL;
6056 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006057 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, "strings"));
6062 }
6063 { // 'None'
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, "'None'"));
6069 Token * _keyword;
6070 if (
6071 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6072 )
6073 {
6074 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
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_None , 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, "'None'"));
6095 }
6096 { // 'True'
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, "'True'"));
6102 Token * _keyword;
6103 if (
6104 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6105 )
6106 {
6107 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
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_True , 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, "'True'"));
6128 }
6129 { // 'False'
6130 if (p->error_indicator) {
6131 D(p->level--);
6132 return NULL;
6133 }
6134 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6135 Token * _keyword;
6136 if (
6137 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6138 )
6139 {
6140 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6141 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6142 if (_token == NULL) {
6143 D(p->level--);
6144 return NULL;
6145 }
6146 int _end_lineno = _token->end_lineno;
6147 UNUSED(_end_lineno); // Only used by EXTRA macro
6148 int _end_col_offset = _token->end_col_offset;
6149 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006150 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006151 if (_res == NULL && PyErr_Occurred()) {
6152 p->error_indicator = 1;
6153 D(p->level--);
6154 return NULL;
6155 }
6156 goto done;
6157 }
6158 p->mark = _mark;
6159 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6161 }
6162 _res = NULL;
6163 done:
6164 D(p->level--);
6165 return _res;
6166}
6167
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006168// literal_expr:
6169// | signed_number !('+' | '-')
6170// | complex_number
6171// | strings
6172// | 'None'
6173// | 'True'
6174// | 'False'
6175static expr_ty
6176literal_expr_rule(Parser *p)
6177{
6178 D(p->level++);
6179 if (p->error_indicator) {
6180 D(p->level--);
6181 return NULL;
6182 }
6183 expr_ty _res = NULL;
6184 int _mark = p->mark;
6185 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6186 p->error_indicator = 1;
6187 D(p->level--);
6188 return NULL;
6189 }
6190 int _start_lineno = p->tokens[_mark]->lineno;
6191 UNUSED(_start_lineno); // Only used by EXTRA macro
6192 int _start_col_offset = p->tokens[_mark]->col_offset;
6193 UNUSED(_start_col_offset); // Only used by EXTRA macro
6194 { // signed_number !('+' | '-')
6195 if (p->error_indicator) {
6196 D(p->level--);
6197 return NULL;
6198 }
6199 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6200 expr_ty signed_number_var;
6201 if (
6202 (signed_number_var = signed_number_rule(p)) // signed_number
6203 &&
6204 _PyPegen_lookahead(0, _tmp_54_rule, p)
6205 )
6206 {
6207 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6208 _res = signed_number_var;
6209 goto done;
6210 }
6211 p->mark = _mark;
6212 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6214 }
6215 { // complex_number
6216 if (p->error_indicator) {
6217 D(p->level--);
6218 return NULL;
6219 }
6220 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6221 expr_ty complex_number_var;
6222 if (
6223 (complex_number_var = complex_number_rule(p)) // complex_number
6224 )
6225 {
6226 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6227 _res = complex_number_var;
6228 goto done;
6229 }
6230 p->mark = _mark;
6231 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6233 }
6234 { // strings
6235 if (p->error_indicator) {
6236 D(p->level--);
6237 return NULL;
6238 }
6239 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6240 expr_ty strings_var;
6241 if (
6242 (strings_var = strings_rule(p)) // strings
6243 )
6244 {
6245 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6246 _res = strings_var;
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, "strings"));
6252 }
6253 { // 'None'
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, "'None'"));
6259 Token * _keyword;
6260 if (
6261 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6262 )
6263 {
6264 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
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_None , 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, "'None'"));
6285 }
6286 { // 'True'
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, "'True'"));
6292 Token * _keyword;
6293 if (
6294 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6295 )
6296 {
6297 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
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_True , 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, "'True'"));
6318 }
6319 { // 'False'
6320 if (p->error_indicator) {
6321 D(p->level--);
6322 return NULL;
6323 }
6324 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6325 Token * _keyword;
6326 if (
6327 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6328 )
6329 {
6330 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6331 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6332 if (_token == NULL) {
6333 D(p->level--);
6334 return NULL;
6335 }
6336 int _end_lineno = _token->end_lineno;
6337 UNUSED(_end_lineno); // Only used by EXTRA macro
6338 int _end_col_offset = _token->end_col_offset;
6339 UNUSED(_end_col_offset); // Only used by EXTRA macro
6340 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6341 if (_res == NULL && PyErr_Occurred()) {
6342 p->error_indicator = 1;
6343 D(p->level--);
6344 return NULL;
6345 }
6346 goto done;
6347 }
6348 p->mark = _mark;
6349 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6350 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6351 }
6352 _res = NULL;
6353 done:
6354 D(p->level--);
6355 return _res;
6356}
6357
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006358// complex_number:
6359// | signed_real_number '+' imaginary_number
6360// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006361static expr_ty
6362complex_number_rule(Parser *p)
6363{
6364 D(p->level++);
6365 if (p->error_indicator) {
6366 D(p->level--);
6367 return NULL;
6368 }
6369 expr_ty _res = NULL;
6370 int _mark = p->mark;
6371 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6372 p->error_indicator = 1;
6373 D(p->level--);
6374 return NULL;
6375 }
6376 int _start_lineno = p->tokens[_mark]->lineno;
6377 UNUSED(_start_lineno); // Only used by EXTRA macro
6378 int _start_col_offset = p->tokens[_mark]->col_offset;
6379 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006380 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006381 if (p->error_indicator) {
6382 D(p->level--);
6383 return NULL;
6384 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006385 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 +10006386 Token * _literal;
6387 expr_ty imag;
6388 expr_ty real;
6389 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006390 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006391 &&
6392 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6393 &&
6394 (imag = imaginary_number_rule(p)) // imaginary_number
6395 )
6396 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006397 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 +10006398 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6399 if (_token == NULL) {
6400 D(p->level--);
6401 return NULL;
6402 }
6403 int _end_lineno = _token->end_lineno;
6404 UNUSED(_end_lineno); // Only used by EXTRA macro
6405 int _end_col_offset = _token->end_col_offset;
6406 UNUSED(_end_col_offset); // Only used by EXTRA macro
6407 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6408 if (_res == NULL && PyErr_Occurred()) {
6409 p->error_indicator = 1;
6410 D(p->level--);
6411 return NULL;
6412 }
6413 goto done;
6414 }
6415 p->mark = _mark;
6416 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006418 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006419 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006420 if (p->error_indicator) {
6421 D(p->level--);
6422 return NULL;
6423 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006424 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 +10006425 Token * _literal;
6426 expr_ty imag;
6427 expr_ty real;
6428 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006429 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006430 &&
6431 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6432 &&
6433 (imag = imaginary_number_rule(p)) // imaginary_number
6434 )
6435 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006436 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 +10006437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6438 if (_token == NULL) {
6439 D(p->level--);
6440 return NULL;
6441 }
6442 int _end_lineno = _token->end_lineno;
6443 UNUSED(_end_lineno); // Only used by EXTRA macro
6444 int _end_col_offset = _token->end_col_offset;
6445 UNUSED(_end_col_offset); // Only used by EXTRA macro
6446 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6447 if (_res == NULL && PyErr_Occurred()) {
6448 p->error_indicator = 1;
6449 D(p->level--);
6450 return NULL;
6451 }
6452 goto done;
6453 }
6454 p->mark = _mark;
6455 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006457 }
6458 _res = NULL;
6459 done:
6460 D(p->level--);
6461 return _res;
6462}
6463
Brandt Bucher145bf262021-02-26 14:51:55 -08006464// signed_number: NUMBER | '-' NUMBER
6465static expr_ty
6466signed_number_rule(Parser *p)
6467{
6468 D(p->level++);
6469 if (p->error_indicator) {
6470 D(p->level--);
6471 return NULL;
6472 }
6473 expr_ty _res = NULL;
6474 int _mark = p->mark;
6475 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6476 p->error_indicator = 1;
6477 D(p->level--);
6478 return NULL;
6479 }
6480 int _start_lineno = p->tokens[_mark]->lineno;
6481 UNUSED(_start_lineno); // Only used by EXTRA macro
6482 int _start_col_offset = p->tokens[_mark]->col_offset;
6483 UNUSED(_start_col_offset); // Only used by EXTRA macro
6484 { // NUMBER
6485 if (p->error_indicator) {
6486 D(p->level--);
6487 return NULL;
6488 }
6489 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6490 expr_ty number_var;
6491 if (
6492 (number_var = _PyPegen_number_token(p)) // NUMBER
6493 )
6494 {
6495 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6496 _res = number_var;
6497 goto done;
6498 }
6499 p->mark = _mark;
6500 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6501 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6502 }
6503 { // '-' NUMBER
6504 if (p->error_indicator) {
6505 D(p->level--);
6506 return NULL;
6507 }
6508 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6509 Token * _literal;
6510 expr_ty number;
6511 if (
6512 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6513 &&
6514 (number = _PyPegen_number_token(p)) // NUMBER
6515 )
6516 {
6517 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6518 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6519 if (_token == NULL) {
6520 D(p->level--);
6521 return NULL;
6522 }
6523 int _end_lineno = _token->end_lineno;
6524 UNUSED(_end_lineno); // Only used by EXTRA macro
6525 int _end_col_offset = _token->end_col_offset;
6526 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006527 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006528 if (_res == NULL && PyErr_Occurred()) {
6529 p->error_indicator = 1;
6530 D(p->level--);
6531 return NULL;
6532 }
6533 goto done;
6534 }
6535 p->mark = _mark;
6536 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6538 }
6539 _res = NULL;
6540 done:
6541 D(p->level--);
6542 return _res;
6543}
6544
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006545// signed_real_number: real_number | '-' real_number
6546static expr_ty
6547signed_real_number_rule(Parser *p)
6548{
6549 D(p->level++);
6550 if (p->error_indicator) {
6551 D(p->level--);
6552 return NULL;
6553 }
6554 expr_ty _res = NULL;
6555 int _mark = p->mark;
6556 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6557 p->error_indicator = 1;
6558 D(p->level--);
6559 return NULL;
6560 }
6561 int _start_lineno = p->tokens[_mark]->lineno;
6562 UNUSED(_start_lineno); // Only used by EXTRA macro
6563 int _start_col_offset = p->tokens[_mark]->col_offset;
6564 UNUSED(_start_col_offset); // Only used by EXTRA macro
6565 { // real_number
6566 if (p->error_indicator) {
6567 D(p->level--);
6568 return NULL;
6569 }
6570 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6571 expr_ty real_number_var;
6572 if (
6573 (real_number_var = real_number_rule(p)) // real_number
6574 )
6575 {
6576 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6577 _res = real_number_var;
6578 goto done;
6579 }
6580 p->mark = _mark;
6581 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6583 }
6584 { // '-' real_number
6585 if (p->error_indicator) {
6586 D(p->level--);
6587 return NULL;
6588 }
6589 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6590 Token * _literal;
6591 expr_ty real;
6592 if (
6593 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6594 &&
6595 (real = real_number_rule(p)) // real_number
6596 )
6597 {
6598 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6599 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6600 if (_token == NULL) {
6601 D(p->level--);
6602 return NULL;
6603 }
6604 int _end_lineno = _token->end_lineno;
6605 UNUSED(_end_lineno); // Only used by EXTRA macro
6606 int _end_col_offset = _token->end_col_offset;
6607 UNUSED(_end_col_offset); // Only used by EXTRA macro
6608 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6609 if (_res == NULL && PyErr_Occurred()) {
6610 p->error_indicator = 1;
6611 D(p->level--);
6612 return NULL;
6613 }
6614 goto done;
6615 }
6616 p->mark = _mark;
6617 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6619 }
6620 _res = NULL;
6621 done:
6622 D(p->level--);
6623 return _res;
6624}
6625
6626// real_number: NUMBER
6627static expr_ty
6628real_number_rule(Parser *p)
6629{
6630 D(p->level++);
6631 if (p->error_indicator) {
6632 D(p->level--);
6633 return NULL;
6634 }
6635 expr_ty _res = NULL;
6636 int _mark = p->mark;
6637 { // NUMBER
6638 if (p->error_indicator) {
6639 D(p->level--);
6640 return NULL;
6641 }
6642 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6643 expr_ty real;
6644 if (
6645 (real = _PyPegen_number_token(p)) // NUMBER
6646 )
6647 {
6648 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6649 _res = _PyPegen_ensure_real ( p , real );
6650 if (_res == NULL && PyErr_Occurred()) {
6651 p->error_indicator = 1;
6652 D(p->level--);
6653 return NULL;
6654 }
6655 goto done;
6656 }
6657 p->mark = _mark;
6658 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6660 }
6661 _res = NULL;
6662 done:
6663 D(p->level--);
6664 return _res;
6665}
6666
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006667// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006668static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006669imaginary_number_rule(Parser *p)
6670{
6671 D(p->level++);
6672 if (p->error_indicator) {
6673 D(p->level--);
6674 return NULL;
6675 }
6676 expr_ty _res = NULL;
6677 int _mark = p->mark;
6678 { // NUMBER
6679 if (p->error_indicator) {
6680 D(p->level--);
6681 return NULL;
6682 }
6683 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6684 expr_ty imag;
6685 if (
6686 (imag = _PyPegen_number_token(p)) // NUMBER
6687 )
6688 {
6689 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6690 _res = _PyPegen_ensure_imaginary ( p , imag );
6691 if (_res == NULL && PyErr_Occurred()) {
6692 p->error_indicator = 1;
6693 D(p->level--);
6694 return NULL;
6695 }
6696 goto done;
6697 }
6698 p->mark = _mark;
6699 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6700 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6701 }
6702 _res = NULL;
6703 done:
6704 D(p->level--);
6705 return _res;
6706}
6707
6708// capture_pattern: pattern_capture_target
6709static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006710capture_pattern_rule(Parser *p)
6711{
6712 D(p->level++);
6713 if (p->error_indicator) {
6714 D(p->level--);
6715 return NULL;
6716 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006717 pattern_ty _res = NULL;
6718 int _mark = p->mark;
6719 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6720 p->error_indicator = 1;
6721 D(p->level--);
6722 return NULL;
6723 }
6724 int _start_lineno = p->tokens[_mark]->lineno;
6725 UNUSED(_start_lineno); // Only used by EXTRA macro
6726 int _start_col_offset = p->tokens[_mark]->col_offset;
6727 UNUSED(_start_col_offset); // Only used by EXTRA macro
6728 { // pattern_capture_target
6729 if (p->error_indicator) {
6730 D(p->level--);
6731 return NULL;
6732 }
6733 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6734 expr_ty target;
6735 if (
6736 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6737 )
6738 {
6739 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6741 if (_token == NULL) {
6742 D(p->level--);
6743 return NULL;
6744 }
6745 int _end_lineno = _token->end_lineno;
6746 UNUSED(_end_lineno); // Only used by EXTRA macro
6747 int _end_col_offset = _token->end_col_offset;
6748 UNUSED(_end_col_offset); // Only used by EXTRA macro
6749 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6750 if (_res == NULL && PyErr_Occurred()) {
6751 p->error_indicator = 1;
6752 D(p->level--);
6753 return NULL;
6754 }
6755 goto done;
6756 }
6757 p->mark = _mark;
6758 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6760 }
6761 _res = NULL;
6762 done:
6763 D(p->level--);
6764 return _res;
6765}
6766
6767// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6768static expr_ty
6769pattern_capture_target_rule(Parser *p)
6770{
6771 D(p->level++);
6772 if (p->error_indicator) {
6773 D(p->level--);
6774 return NULL;
6775 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006776 expr_ty _res = NULL;
6777 int _mark = p->mark;
6778 { // !"_" NAME !('.' | '(' | '=')
6779 if (p->error_indicator) {
6780 D(p->level--);
6781 return NULL;
6782 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006783 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006784 expr_ty name;
6785 if (
6786 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6787 &&
6788 (name = _PyPegen_name_token(p)) // NAME
6789 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006790 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006791 )
6792 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006793 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 -08006794 _res = _PyPegen_set_expr_context ( p , name , Store );
6795 if (_res == NULL && PyErr_Occurred()) {
6796 p->error_indicator = 1;
6797 D(p->level--);
6798 return NULL;
6799 }
6800 goto done;
6801 }
6802 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006803 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6805 }
6806 _res = NULL;
6807 done:
6808 D(p->level--);
6809 return _res;
6810}
6811
6812// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006813static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006814wildcard_pattern_rule(Parser *p)
6815{
6816 D(p->level++);
6817 if (p->error_indicator) {
6818 D(p->level--);
6819 return NULL;
6820 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006821 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006822 int _mark = p->mark;
6823 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6824 p->error_indicator = 1;
6825 D(p->level--);
6826 return NULL;
6827 }
6828 int _start_lineno = p->tokens[_mark]->lineno;
6829 UNUSED(_start_lineno); // Only used by EXTRA macro
6830 int _start_col_offset = p->tokens[_mark]->col_offset;
6831 UNUSED(_start_col_offset); // Only used by EXTRA macro
6832 { // "_"
6833 if (p->error_indicator) {
6834 D(p->level--);
6835 return NULL;
6836 }
6837 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6838 expr_ty _keyword;
6839 if (
6840 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6841 )
6842 {
6843 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6844 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6845 if (_token == NULL) {
6846 D(p->level--);
6847 return NULL;
6848 }
6849 int _end_lineno = _token->end_lineno;
6850 UNUSED(_end_lineno); // Only used by EXTRA macro
6851 int _end_col_offset = _token->end_col_offset;
6852 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006853 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006854 if (_res == NULL && PyErr_Occurred()) {
6855 p->error_indicator = 1;
6856 D(p->level--);
6857 return NULL;
6858 }
6859 goto done;
6860 }
6861 p->mark = _mark;
6862 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6864 }
6865 _res = NULL;
6866 done:
6867 D(p->level--);
6868 return _res;
6869}
6870
6871// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006872static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006873value_pattern_rule(Parser *p)
6874{
6875 D(p->level++);
6876 if (p->error_indicator) {
6877 D(p->level--);
6878 return NULL;
6879 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006880 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006881 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006882 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6883 p->error_indicator = 1;
6884 D(p->level--);
6885 return NULL;
6886 }
6887 int _start_lineno = p->tokens[_mark]->lineno;
6888 UNUSED(_start_lineno); // Only used by EXTRA macro
6889 int _start_col_offset = p->tokens[_mark]->col_offset;
6890 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006891 { // attr !('.' | '(' | '=')
6892 if (p->error_indicator) {
6893 D(p->level--);
6894 return NULL;
6895 }
6896 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6897 expr_ty attr;
6898 if (
6899 (attr = attr_rule(p)) // attr
6900 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006901 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006902 )
6903 {
6904 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6906 if (_token == NULL) {
6907 D(p->level--);
6908 return NULL;
6909 }
6910 int _end_lineno = _token->end_lineno;
6911 UNUSED(_end_lineno); // Only used by EXTRA macro
6912 int _end_col_offset = _token->end_col_offset;
6913 UNUSED(_end_col_offset); // Only used by EXTRA macro
6914 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006915 if (_res == NULL && PyErr_Occurred()) {
6916 p->error_indicator = 1;
6917 D(p->level--);
6918 return NULL;
6919 }
6920 goto done;
6921 }
6922 p->mark = _mark;
6923 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6925 }
6926 _res = NULL;
6927 done:
6928 D(p->level--);
6929 return _res;
6930}
6931
6932// Left-recursive
6933// attr: name_or_attr '.' NAME
6934static expr_ty attr_raw(Parser *);
6935static expr_ty
6936attr_rule(Parser *p)
6937{
6938 D(p->level++);
6939 expr_ty _res = NULL;
6940 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6941 D(p->level--);
6942 return _res;
6943 }
6944 int _mark = p->mark;
6945 int _resmark = p->mark;
6946 while (1) {
6947 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6948 if (tmpvar_1) {
6949 D(p->level--);
6950 return _res;
6951 }
6952 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006953 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08006954 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006955 p->in_raw_rule--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006956 if (p->error_indicator)
6957 return NULL;
6958 if (_raw == NULL || p->mark <= _resmark)
6959 break;
6960 _resmark = p->mark;
6961 _res = _raw;
6962 }
6963 p->mark = _resmark;
6964 D(p->level--);
6965 return _res;
6966}
6967static expr_ty
6968attr_raw(Parser *p)
6969{
6970 D(p->level++);
6971 if (p->error_indicator) {
6972 D(p->level--);
6973 return NULL;
6974 }
6975 expr_ty _res = NULL;
6976 int _mark = p->mark;
6977 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6978 p->error_indicator = 1;
6979 D(p->level--);
6980 return NULL;
6981 }
6982 int _start_lineno = p->tokens[_mark]->lineno;
6983 UNUSED(_start_lineno); // Only used by EXTRA macro
6984 int _start_col_offset = p->tokens[_mark]->col_offset;
6985 UNUSED(_start_col_offset); // Only used by EXTRA macro
6986 { // name_or_attr '.' NAME
6987 if (p->error_indicator) {
6988 D(p->level--);
6989 return NULL;
6990 }
6991 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6992 Token * _literal;
6993 expr_ty attr;
6994 expr_ty value;
6995 if (
6996 (value = name_or_attr_rule(p)) // name_or_attr
6997 &&
6998 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6999 &&
7000 (attr = _PyPegen_name_token(p)) // NAME
7001 )
7002 {
7003 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
7004 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7005 if (_token == NULL) {
7006 D(p->level--);
7007 return NULL;
7008 }
7009 int _end_lineno = _token->end_lineno;
7010 UNUSED(_end_lineno); // Only used by EXTRA macro
7011 int _end_col_offset = _token->end_col_offset;
7012 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007013 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007014 if (_res == NULL && PyErr_Occurred()) {
7015 p->error_indicator = 1;
7016 D(p->level--);
7017 return NULL;
7018 }
7019 goto done;
7020 }
7021 p->mark = _mark;
7022 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
7023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
7024 }
7025 _res = NULL;
7026 done:
7027 D(p->level--);
7028 return _res;
7029}
7030
7031// Left-recursive
7032// name_or_attr: attr | NAME
7033static expr_ty
7034name_or_attr_rule(Parser *p)
7035{
7036 D(p->level++);
7037 if (p->error_indicator) {
7038 D(p->level--);
7039 return NULL;
7040 }
7041 expr_ty _res = NULL;
7042 int _mark = p->mark;
7043 { // attr
7044 if (p->error_indicator) {
7045 D(p->level--);
7046 return NULL;
7047 }
7048 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7049 expr_ty attr_var;
7050 if (
7051 (attr_var = attr_rule(p)) // attr
7052 )
7053 {
7054 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7055 _res = attr_var;
7056 goto done;
7057 }
7058 p->mark = _mark;
7059 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7061 }
7062 { // NAME
7063 if (p->error_indicator) {
7064 D(p->level--);
7065 return NULL;
7066 }
7067 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7068 expr_ty name_var;
7069 if (
7070 (name_var = _PyPegen_name_token(p)) // NAME
7071 )
7072 {
7073 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7074 _res = name_var;
7075 goto done;
7076 }
7077 p->mark = _mark;
7078 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7080 }
7081 _res = NULL;
7082 done:
7083 D(p->level--);
7084 return _res;
7085}
7086
7087// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007088static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007089group_pattern_rule(Parser *p)
7090{
7091 D(p->level++);
7092 if (p->error_indicator) {
7093 D(p->level--);
7094 return NULL;
7095 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007096 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007097 int _mark = p->mark;
7098 { // '(' pattern ')'
7099 if (p->error_indicator) {
7100 D(p->level--);
7101 return NULL;
7102 }
7103 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7104 Token * _literal;
7105 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007106 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007107 if (
7108 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7109 &&
7110 (pattern = pattern_rule(p)) // pattern
7111 &&
7112 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7113 )
7114 {
7115 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7116 _res = pattern;
7117 if (_res == NULL && PyErr_Occurred()) {
7118 p->error_indicator = 1;
7119 D(p->level--);
7120 return NULL;
7121 }
7122 goto done;
7123 }
7124 p->mark = _mark;
7125 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7127 }
7128 _res = NULL;
7129 done:
7130 D(p->level--);
7131 return _res;
7132}
7133
7134// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007135static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007136sequence_pattern_rule(Parser *p)
7137{
7138 D(p->level++);
7139 if (p->error_indicator) {
7140 D(p->level--);
7141 return NULL;
7142 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007143 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007144 int _mark = p->mark;
7145 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7146 p->error_indicator = 1;
7147 D(p->level--);
7148 return NULL;
7149 }
7150 int _start_lineno = p->tokens[_mark]->lineno;
7151 UNUSED(_start_lineno); // Only used by EXTRA macro
7152 int _start_col_offset = p->tokens[_mark]->col_offset;
7153 UNUSED(_start_col_offset); // Only used by EXTRA macro
7154 { // '[' maybe_sequence_pattern? ']'
7155 if (p->error_indicator) {
7156 D(p->level--);
7157 return NULL;
7158 }
7159 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7160 Token * _literal;
7161 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007162 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007163 if (
7164 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7165 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007166 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007167 &&
7168 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7169 )
7170 {
7171 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7172 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7173 if (_token == NULL) {
7174 D(p->level--);
7175 return NULL;
7176 }
7177 int _end_lineno = _token->end_lineno;
7178 UNUSED(_end_lineno); // Only used by EXTRA macro
7179 int _end_col_offset = _token->end_col_offset;
7180 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007181 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007182 if (_res == NULL && PyErr_Occurred()) {
7183 p->error_indicator = 1;
7184 D(p->level--);
7185 return NULL;
7186 }
7187 goto done;
7188 }
7189 p->mark = _mark;
7190 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7192 }
7193 { // '(' open_sequence_pattern? ')'
7194 if (p->error_indicator) {
7195 D(p->level--);
7196 return NULL;
7197 }
7198 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7199 Token * _literal;
7200 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007201 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007202 if (
7203 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7204 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007205 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007206 &&
7207 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7208 )
7209 {
7210 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7211 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7212 if (_token == NULL) {
7213 D(p->level--);
7214 return NULL;
7215 }
7216 int _end_lineno = _token->end_lineno;
7217 UNUSED(_end_lineno); // Only used by EXTRA macro
7218 int _end_col_offset = _token->end_col_offset;
7219 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007220 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007221 if (_res == NULL && PyErr_Occurred()) {
7222 p->error_indicator = 1;
7223 D(p->level--);
7224 return NULL;
7225 }
7226 goto done;
7227 }
7228 p->mark = _mark;
7229 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7231 }
7232 _res = NULL;
7233 done:
7234 D(p->level--);
7235 return _res;
7236}
7237
7238// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7239static asdl_seq*
7240open_sequence_pattern_rule(Parser *p)
7241{
7242 D(p->level++);
7243 if (p->error_indicator) {
7244 D(p->level--);
7245 return NULL;
7246 }
7247 asdl_seq* _res = NULL;
7248 int _mark = p->mark;
7249 { // maybe_star_pattern ',' maybe_sequence_pattern?
7250 if (p->error_indicator) {
7251 D(p->level--);
7252 return NULL;
7253 }
7254 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7255 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007256 pattern_ty pattern;
7257 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007258 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007259 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007260 &&
7261 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7262 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007263 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007264 )
7265 {
7266 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 +10007267 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007268 if (_res == NULL && PyErr_Occurred()) {
7269 p->error_indicator = 1;
7270 D(p->level--);
7271 return NULL;
7272 }
7273 goto done;
7274 }
7275 p->mark = _mark;
7276 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7278 }
7279 _res = NULL;
7280 done:
7281 D(p->level--);
7282 return _res;
7283}
7284
7285// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7286static asdl_seq*
7287maybe_sequence_pattern_rule(Parser *p)
7288{
7289 D(p->level++);
7290 if (p->error_indicator) {
7291 D(p->level--);
7292 return NULL;
7293 }
7294 asdl_seq* _res = NULL;
7295 int _mark = p->mark;
7296 { // ','.maybe_star_pattern+ ','?
7297 if (p->error_indicator) {
7298 D(p->level--);
7299 return NULL;
7300 }
7301 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7302 void *_opt_var;
7303 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007304 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007305 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007306 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007307 &&
7308 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7309 )
7310 {
7311 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 +10007312 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007313 if (_res == NULL && PyErr_Occurred()) {
7314 p->error_indicator = 1;
7315 D(p->level--);
7316 return NULL;
7317 }
7318 goto done;
7319 }
7320 p->mark = _mark;
7321 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7323 }
7324 _res = NULL;
7325 done:
7326 D(p->level--);
7327 return _res;
7328}
7329
7330// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007331static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007332maybe_star_pattern_rule(Parser *p)
7333{
7334 D(p->level++);
7335 if (p->error_indicator) {
7336 D(p->level--);
7337 return NULL;
7338 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007339 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007340 int _mark = p->mark;
7341 { // star_pattern
7342 if (p->error_indicator) {
7343 D(p->level--);
7344 return NULL;
7345 }
7346 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 +10007347 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007348 if (
7349 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7350 )
7351 {
7352 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7353 _res = star_pattern_var;
7354 goto done;
7355 }
7356 p->mark = _mark;
7357 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7359 }
7360 { // pattern
7361 if (p->error_indicator) {
7362 D(p->level--);
7363 return NULL;
7364 }
7365 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007366 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007367 if (
7368 (pattern_var = pattern_rule(p)) // pattern
7369 )
7370 {
7371 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7372 _res = pattern_var;
7373 goto done;
7374 }
7375 p->mark = _mark;
7376 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7378 }
7379 _res = NULL;
7380 done:
7381 D(p->level--);
7382 return _res;
7383}
7384
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007385// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7386static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007387star_pattern_rule(Parser *p)
7388{
7389 D(p->level++);
7390 if (p->error_indicator) {
7391 D(p->level--);
7392 return NULL;
7393 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007394 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007395 int _mark = p->mark;
7396 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7397 p->error_indicator = 1;
7398 D(p->level--);
7399 return NULL;
7400 }
7401 int _start_lineno = p->tokens[_mark]->lineno;
7402 UNUSED(_start_lineno); // Only used by EXTRA macro
7403 int _start_col_offset = p->tokens[_mark]->col_offset;
7404 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007405 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007406 if (p->error_indicator) {
7407 D(p->level--);
7408 return NULL;
7409 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007410 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 -08007411 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007412 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007413 if (
7414 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7415 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007416 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007417 )
7418 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007419 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 -08007420 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7421 if (_token == NULL) {
7422 D(p->level--);
7423 return NULL;
7424 }
7425 int _end_lineno = _token->end_lineno;
7426 UNUSED(_end_lineno); // Only used by EXTRA macro
7427 int _end_col_offset = _token->end_col_offset;
7428 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007429 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007430 if (_res == NULL && PyErr_Occurred()) {
7431 p->error_indicator = 1;
7432 D(p->level--);
7433 return NULL;
7434 }
7435 goto done;
7436 }
7437 p->mark = _mark;
7438 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7440 }
7441 { // '*' wildcard_pattern
7442 if (p->error_indicator) {
7443 D(p->level--);
7444 return NULL;
7445 }
7446 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7447 Token * _literal;
7448 pattern_ty wildcard_pattern_var;
7449 if (
7450 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7451 &&
7452 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7453 )
7454 {
7455 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7456 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7457 if (_token == NULL) {
7458 D(p->level--);
7459 return NULL;
7460 }
7461 int _end_lineno = _token->end_lineno;
7462 UNUSED(_end_lineno); // Only used by EXTRA macro
7463 int _end_col_offset = _token->end_col_offset;
7464 UNUSED(_end_col_offset); // Only used by EXTRA macro
7465 _res = _PyAST_MatchStar ( NULL , EXTRA );
7466 if (_res == NULL && PyErr_Occurred()) {
7467 p->error_indicator = 1;
7468 D(p->level--);
7469 return NULL;
7470 }
7471 goto done;
7472 }
7473 p->mark = _mark;
7474 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007476 }
7477 _res = NULL;
7478 done:
7479 D(p->level--);
7480 return _res;
7481}
7482
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007483// mapping_pattern:
7484// | '{' '}'
7485// | '{' double_star_pattern ','? '}'
7486// | '{' items_pattern ',' double_star_pattern ','? '}'
7487// | '{' items_pattern ','? '}'
7488static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007489mapping_pattern_rule(Parser *p)
7490{
7491 D(p->level++);
7492 if (p->error_indicator) {
7493 D(p->level--);
7494 return NULL;
7495 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007496 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007497 int _mark = p->mark;
7498 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7499 p->error_indicator = 1;
7500 D(p->level--);
7501 return NULL;
7502 }
7503 int _start_lineno = p->tokens[_mark]->lineno;
7504 UNUSED(_start_lineno); // Only used by EXTRA macro
7505 int _start_col_offset = p->tokens[_mark]->col_offset;
7506 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007507 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007508 if (p->error_indicator) {
7509 D(p->level--);
7510 return NULL;
7511 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007512 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007513 Token * _literal;
7514 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007515 if (
7516 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7517 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007518 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7519 )
7520 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007521 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007522 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7523 if (_token == NULL) {
7524 D(p->level--);
7525 return NULL;
7526 }
7527 int _end_lineno = _token->end_lineno;
7528 UNUSED(_end_lineno); // Only used by EXTRA macro
7529 int _end_col_offset = _token->end_col_offset;
7530 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007531 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007532 if (_res == NULL && PyErr_Occurred()) {
7533 p->error_indicator = 1;
7534 D(p->level--);
7535 return NULL;
7536 }
7537 goto done;
7538 }
7539 p->mark = _mark;
7540 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7542 }
7543 { // '{' double_star_pattern ','? '}'
7544 if (p->error_indicator) {
7545 D(p->level--);
7546 return NULL;
7547 }
7548 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7549 Token * _literal;
7550 Token * _literal_1;
7551 void *_opt_var;
7552 UNUSED(_opt_var); // Silence compiler warnings
7553 expr_ty rest;
7554 if (
7555 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7556 &&
7557 (rest = double_star_pattern_rule(p)) // double_star_pattern
7558 &&
7559 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7560 &&
7561 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7562 )
7563 {
7564 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7566 if (_token == NULL) {
7567 D(p->level--);
7568 return NULL;
7569 }
7570 int _end_lineno = _token->end_lineno;
7571 UNUSED(_end_lineno); // Only used by EXTRA macro
7572 int _end_col_offset = _token->end_col_offset;
7573 UNUSED(_end_col_offset); // Only used by EXTRA macro
7574 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7575 if (_res == NULL && PyErr_Occurred()) {
7576 p->error_indicator = 1;
7577 D(p->level--);
7578 return NULL;
7579 }
7580 goto done;
7581 }
7582 p->mark = _mark;
7583 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7585 }
7586 { // '{' items_pattern ',' double_star_pattern ','? '}'
7587 if (p->error_indicator) {
7588 D(p->level--);
7589 return NULL;
7590 }
7591 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7592 Token * _literal;
7593 Token * _literal_1;
7594 Token * _literal_2;
7595 void *_opt_var;
7596 UNUSED(_opt_var); // Silence compiler warnings
7597 asdl_seq* items;
7598 expr_ty rest;
7599 if (
7600 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7601 &&
7602 (items = items_pattern_rule(p)) // items_pattern
7603 &&
7604 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7605 &&
7606 (rest = double_star_pattern_rule(p)) // double_star_pattern
7607 &&
7608 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7609 &&
7610 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7611 )
7612 {
7613 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7614 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7615 if (_token == NULL) {
7616 D(p->level--);
7617 return NULL;
7618 }
7619 int _end_lineno = _token->end_lineno;
7620 UNUSED(_end_lineno); // Only used by EXTRA macro
7621 int _end_col_offset = _token->end_col_offset;
7622 UNUSED(_end_col_offset); // Only used by EXTRA macro
7623 _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 );
7624 if (_res == NULL && PyErr_Occurred()) {
7625 p->error_indicator = 1;
7626 D(p->level--);
7627 return NULL;
7628 }
7629 goto done;
7630 }
7631 p->mark = _mark;
7632 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7634 }
7635 { // '{' items_pattern ','? '}'
7636 if (p->error_indicator) {
7637 D(p->level--);
7638 return NULL;
7639 }
7640 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7641 Token * _literal;
7642 Token * _literal_1;
7643 void *_opt_var;
7644 UNUSED(_opt_var); // Silence compiler warnings
7645 asdl_seq* items;
7646 if (
7647 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7648 &&
7649 (items = items_pattern_rule(p)) // items_pattern
7650 &&
7651 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7652 &&
7653 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7654 )
7655 {
7656 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7657 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7658 if (_token == NULL) {
7659 D(p->level--);
7660 return NULL;
7661 }
7662 int _end_lineno = _token->end_lineno;
7663 UNUSED(_end_lineno); // Only used by EXTRA macro
7664 int _end_col_offset = _token->end_col_offset;
7665 UNUSED(_end_col_offset); // Only used by EXTRA macro
7666 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7667 if (_res == NULL && PyErr_Occurred()) {
7668 p->error_indicator = 1;
7669 D(p->level--);
7670 return NULL;
7671 }
7672 goto done;
7673 }
7674 p->mark = _mark;
7675 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007677 }
7678 _res = NULL;
7679 done:
7680 D(p->level--);
7681 return _res;
7682}
7683
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007684// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007685static asdl_seq*
7686items_pattern_rule(Parser *p)
7687{
7688 D(p->level++);
7689 if (p->error_indicator) {
7690 D(p->level--);
7691 return NULL;
7692 }
7693 asdl_seq* _res = NULL;
7694 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007695 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007696 if (p->error_indicator) {
7697 D(p->level--);
7698 return NULL;
7699 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007700 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 -07007701 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007702 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007703 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007704 )
7705 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007706 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 -07007707 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007708 goto done;
7709 }
7710 p->mark = _mark;
7711 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007713 }
7714 _res = NULL;
7715 done:
7716 D(p->level--);
7717 return _res;
7718}
7719
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007720// key_value_pattern: (literal_expr | attr) ':' pattern
7721static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007722key_value_pattern_rule(Parser *p)
7723{
7724 D(p->level++);
7725 if (p->error_indicator) {
7726 D(p->level--);
7727 return NULL;
7728 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007729 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007730 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007731 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007732 if (p->error_indicator) {
7733 D(p->level--);
7734 return NULL;
7735 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007736 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 -08007737 Token * _literal;
7738 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007739 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007740 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007741 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007742 &&
7743 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7744 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007745 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007746 )
7747 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007748 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7749 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007750 if (_res == NULL && PyErr_Occurred()) {
7751 p->error_indicator = 1;
7752 D(p->level--);
7753 return NULL;
7754 }
7755 goto done;
7756 }
7757 p->mark = _mark;
7758 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007760 }
7761 _res = NULL;
7762 done:
7763 D(p->level--);
7764 return _res;
7765}
7766
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007767// double_star_pattern: '**' pattern_capture_target
7768static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007769double_star_pattern_rule(Parser *p)
7770{
7771 D(p->level++);
7772 if (p->error_indicator) {
7773 D(p->level--);
7774 return NULL;
7775 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007776 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007777 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007778 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007779 if (p->error_indicator) {
7780 D(p->level--);
7781 return NULL;
7782 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007783 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 -08007784 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007785 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007786 if (
7787 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7788 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007789 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007790 )
7791 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007792 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7793 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007794 if (_res == NULL && PyErr_Occurred()) {
7795 p->error_indicator = 1;
7796 D(p->level--);
7797 return NULL;
7798 }
7799 goto done;
7800 }
7801 p->mark = _mark;
7802 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007804 }
7805 _res = NULL;
7806 done:
7807 D(p->level--);
7808 return _res;
7809}
7810
7811// class_pattern:
7812// | name_or_attr '(' ')'
7813// | name_or_attr '(' positional_patterns ','? ')'
7814// | name_or_attr '(' keyword_patterns ','? ')'
7815// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07007816// | invalid_class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007817static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007818class_pattern_rule(Parser *p)
7819{
7820 D(p->level++);
7821 if (p->error_indicator) {
7822 D(p->level--);
7823 return NULL;
7824 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007825 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007826 int _mark = p->mark;
7827 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7828 p->error_indicator = 1;
7829 D(p->level--);
7830 return NULL;
7831 }
7832 int _start_lineno = p->tokens[_mark]->lineno;
7833 UNUSED(_start_lineno); // Only used by EXTRA macro
7834 int _start_col_offset = p->tokens[_mark]->col_offset;
7835 UNUSED(_start_col_offset); // Only used by EXTRA macro
7836 { // name_or_attr '(' ')'
7837 if (p->error_indicator) {
7838 D(p->level--);
7839 return NULL;
7840 }
7841 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7842 Token * _literal;
7843 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007844 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007845 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007846 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007847 &&
7848 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7849 &&
7850 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7851 )
7852 {
7853 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7854 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7855 if (_token == NULL) {
7856 D(p->level--);
7857 return NULL;
7858 }
7859 int _end_lineno = _token->end_lineno;
7860 UNUSED(_end_lineno); // Only used by EXTRA macro
7861 int _end_col_offset = _token->end_col_offset;
7862 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007863 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007864 if (_res == NULL && PyErr_Occurred()) {
7865 p->error_indicator = 1;
7866 D(p->level--);
7867 return NULL;
7868 }
7869 goto done;
7870 }
7871 p->mark = _mark;
7872 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7874 }
7875 { // name_or_attr '(' positional_patterns ','? ')'
7876 if (p->error_indicator) {
7877 D(p->level--);
7878 return NULL;
7879 }
7880 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7881 Token * _literal;
7882 Token * _literal_1;
7883 void *_opt_var;
7884 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007885 expr_ty cls;
7886 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007887 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007888 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007889 &&
7890 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7891 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007892 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007893 &&
7894 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7895 &&
7896 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7897 )
7898 {
7899 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7900 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7901 if (_token == NULL) {
7902 D(p->level--);
7903 return NULL;
7904 }
7905 int _end_lineno = _token->end_lineno;
7906 UNUSED(_end_lineno); // Only used by EXTRA macro
7907 int _end_col_offset = _token->end_col_offset;
7908 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007909 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007910 if (_res == NULL && PyErr_Occurred()) {
7911 p->error_indicator = 1;
7912 D(p->level--);
7913 return NULL;
7914 }
7915 goto done;
7916 }
7917 p->mark = _mark;
7918 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7919 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7920 }
7921 { // name_or_attr '(' keyword_patterns ','? ')'
7922 if (p->error_indicator) {
7923 D(p->level--);
7924 return NULL;
7925 }
7926 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7927 Token * _literal;
7928 Token * _literal_1;
7929 void *_opt_var;
7930 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007931 expr_ty cls;
7932 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007933 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007934 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007935 &&
7936 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7937 &&
7938 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7939 &&
7940 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7941 &&
7942 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7943 )
7944 {
7945 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7946 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7947 if (_token == NULL) {
7948 D(p->level--);
7949 return NULL;
7950 }
7951 int _end_lineno = _token->end_lineno;
7952 UNUSED(_end_lineno); // Only used by EXTRA macro
7953 int _end_col_offset = _token->end_col_offset;
7954 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007955 _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 -08007956 if (_res == NULL && PyErr_Occurred()) {
7957 p->error_indicator = 1;
7958 D(p->level--);
7959 return NULL;
7960 }
7961 goto done;
7962 }
7963 p->mark = _mark;
7964 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7966 }
7967 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7968 if (p->error_indicator) {
7969 D(p->level--);
7970 return NULL;
7971 }
7972 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7973 Token * _literal;
7974 Token * _literal_1;
7975 Token * _literal_2;
7976 void *_opt_var;
7977 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007978 expr_ty cls;
7979 asdl_seq* keywords;
7980 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007981 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007982 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007983 &&
7984 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7985 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007986 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007987 &&
7988 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7989 &&
7990 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7991 &&
7992 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7993 &&
7994 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7995 )
7996 {
7997 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7998 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7999 if (_token == NULL) {
8000 D(p->level--);
8001 return NULL;
8002 }
8003 int _end_lineno = _token->end_lineno;
8004 UNUSED(_end_lineno); // Only used by EXTRA macro
8005 int _end_col_offset = _token->end_col_offset;
8006 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008007 _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 -08008008 if (_res == NULL && PyErr_Occurred()) {
8009 p->error_indicator = 1;
8010 D(p->level--);
8011 return NULL;
8012 }
8013 goto done;
8014 }
8015 p->mark = _mark;
8016 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8018 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -07008019 if (p->call_invalid_rules) { // invalid_class_pattern
8020 if (p->error_indicator) {
8021 D(p->level--);
8022 return NULL;
8023 }
8024 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8025 void *invalid_class_pattern_var;
8026 if (
8027 (invalid_class_pattern_var = invalid_class_pattern_rule(p)) // invalid_class_pattern
8028 )
8029 {
8030 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_pattern"));
8031 _res = invalid_class_pattern_var;
8032 goto done;
8033 }
8034 p->mark = _mark;
8035 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_pattern"));
8037 }
Brandt Bucher145bf262021-02-26 14:51:55 -08008038 _res = NULL;
8039 done:
8040 D(p->level--);
8041 return _res;
8042}
8043
8044// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008045static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008046positional_patterns_rule(Parser *p)
8047{
8048 D(p->level++);
8049 if (p->error_indicator) {
8050 D(p->level--);
8051 return NULL;
8052 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008053 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008054 int _mark = p->mark;
8055 { // ','.pattern+
8056 if (p->error_indicator) {
8057 D(p->level--);
8058 return NULL;
8059 }
8060 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008061 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008062 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008063 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008064 )
8065 {
8066 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8067 _res = args;
8068 if (_res == NULL && PyErr_Occurred()) {
8069 p->error_indicator = 1;
8070 D(p->level--);
8071 return NULL;
8072 }
8073 goto done;
8074 }
8075 p->mark = _mark;
8076 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8078 }
8079 _res = NULL;
8080 done:
8081 D(p->level--);
8082 return _res;
8083}
8084
8085// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008086static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008087keyword_patterns_rule(Parser *p)
8088{
8089 D(p->level++);
8090 if (p->error_indicator) {
8091 D(p->level--);
8092 return NULL;
8093 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008094 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008095 int _mark = p->mark;
8096 { // ','.keyword_pattern+
8097 if (p->error_indicator) {
8098 D(p->level--);
8099 return NULL;
8100 }
8101 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008102 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008103 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008104 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008105 )
8106 {
8107 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 -07008108 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008109 goto done;
8110 }
8111 p->mark = _mark;
8112 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8114 }
8115 _res = NULL;
8116 done:
8117 D(p->level--);
8118 return _res;
8119}
8120
8121// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008122static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008123keyword_pattern_rule(Parser *p)
8124{
8125 D(p->level++);
8126 if (p->error_indicator) {
8127 D(p->level--);
8128 return NULL;
8129 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008130 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008131 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008132 { // NAME '=' pattern
8133 if (p->error_indicator) {
8134 D(p->level--);
8135 return NULL;
8136 }
8137 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8138 Token * _literal;
8139 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008140 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008141 if (
8142 (arg = _PyPegen_name_token(p)) // NAME
8143 &&
8144 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8145 &&
8146 (value = pattern_rule(p)) // pattern
8147 )
8148 {
8149 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 +10008150 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008151 if (_res == NULL && PyErr_Occurred()) {
8152 p->error_indicator = 1;
8153 D(p->level--);
8154 return NULL;
8155 }
8156 goto done;
8157 }
8158 p->mark = _mark;
8159 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8161 }
8162 _res = NULL;
8163 done:
8164 D(p->level--);
8165 return _res;
8166}
8167
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008168// return_stmt: 'return' star_expressions?
8169static stmt_ty
8170return_stmt_rule(Parser *p)
8171{
8172 D(p->level++);
8173 if (p->error_indicator) {
8174 D(p->level--);
8175 return NULL;
8176 }
8177 stmt_ty _res = NULL;
8178 int _mark = p->mark;
8179 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8180 p->error_indicator = 1;
8181 D(p->level--);
8182 return NULL;
8183 }
8184 int _start_lineno = p->tokens[_mark]->lineno;
8185 UNUSED(_start_lineno); // Only used by EXTRA macro
8186 int _start_col_offset = p->tokens[_mark]->col_offset;
8187 UNUSED(_start_col_offset); // Only used by EXTRA macro
8188 { // 'return' star_expressions?
8189 if (p->error_indicator) {
8190 D(p->level--);
8191 return NULL;
8192 }
8193 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8194 Token * _keyword;
8195 void *a;
8196 if (
8197 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8198 &&
8199 (a = star_expressions_rule(p), 1) // star_expressions?
8200 )
8201 {
8202 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8204 if (_token == NULL) {
8205 D(p->level--);
8206 return NULL;
8207 }
8208 int _end_lineno = _token->end_lineno;
8209 UNUSED(_end_lineno); // Only used by EXTRA macro
8210 int _end_col_offset = _token->end_col_offset;
8211 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008212 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008213 if (_res == NULL && PyErr_Occurred()) {
8214 p->error_indicator = 1;
8215 D(p->level--);
8216 return NULL;
8217 }
8218 goto done;
8219 }
8220 p->mark = _mark;
8221 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8223 }
8224 _res = NULL;
8225 done:
8226 D(p->level--);
8227 return _res;
8228}
8229
8230// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8231static stmt_ty
8232raise_stmt_rule(Parser *p)
8233{
8234 D(p->level++);
8235 if (p->error_indicator) {
8236 D(p->level--);
8237 return NULL;
8238 }
8239 stmt_ty _res = NULL;
8240 int _mark = p->mark;
8241 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8242 p->error_indicator = 1;
8243 D(p->level--);
8244 return NULL;
8245 }
8246 int _start_lineno = p->tokens[_mark]->lineno;
8247 UNUSED(_start_lineno); // Only used by EXTRA macro
8248 int _start_col_offset = p->tokens[_mark]->col_offset;
8249 UNUSED(_start_col_offset); // Only used by EXTRA macro
8250 { // 'raise' expression ['from' expression]
8251 if (p->error_indicator) {
8252 D(p->level--);
8253 return NULL;
8254 }
8255 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8256 Token * _keyword;
8257 expr_ty a;
8258 void *b;
8259 if (
8260 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8261 &&
8262 (a = expression_rule(p)) // expression
8263 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008264 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008265 )
8266 {
8267 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8268 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8269 if (_token == NULL) {
8270 D(p->level--);
8271 return NULL;
8272 }
8273 int _end_lineno = _token->end_lineno;
8274 UNUSED(_end_lineno); // Only used by EXTRA macro
8275 int _end_col_offset = _token->end_col_offset;
8276 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008277 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008278 if (_res == NULL && PyErr_Occurred()) {
8279 p->error_indicator = 1;
8280 D(p->level--);
8281 return NULL;
8282 }
8283 goto done;
8284 }
8285 p->mark = _mark;
8286 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8288 }
8289 { // 'raise'
8290 if (p->error_indicator) {
8291 D(p->level--);
8292 return NULL;
8293 }
8294 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8295 Token * _keyword;
8296 if (
8297 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8298 )
8299 {
8300 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8301 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8302 if (_token == NULL) {
8303 D(p->level--);
8304 return NULL;
8305 }
8306 int _end_lineno = _token->end_lineno;
8307 UNUSED(_end_lineno); // Only used by EXTRA macro
8308 int _end_col_offset = _token->end_col_offset;
8309 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008310 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008311 if (_res == NULL && PyErr_Occurred()) {
8312 p->error_indicator = 1;
8313 D(p->level--);
8314 return NULL;
8315 }
8316 goto done;
8317 }
8318 p->mark = _mark;
8319 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8321 }
8322 _res = NULL;
8323 done:
8324 D(p->level--);
8325 return _res;
8326}
8327
8328// function_def: decorators function_def_raw | function_def_raw
8329static stmt_ty
8330function_def_rule(Parser *p)
8331{
8332 D(p->level++);
8333 if (p->error_indicator) {
8334 D(p->level--);
8335 return NULL;
8336 }
8337 stmt_ty _res = NULL;
8338 int _mark = p->mark;
8339 { // decorators function_def_raw
8340 if (p->error_indicator) {
8341 D(p->level--);
8342 return NULL;
8343 }
8344 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 +01008345 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008346 stmt_ty f;
8347 if (
8348 (d = decorators_rule(p)) // decorators
8349 &&
8350 (f = function_def_raw_rule(p)) // function_def_raw
8351 )
8352 {
8353 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8354 _res = _PyPegen_function_def_decorators ( p , d , f );
8355 if (_res == NULL && PyErr_Occurred()) {
8356 p->error_indicator = 1;
8357 D(p->level--);
8358 return NULL;
8359 }
8360 goto done;
8361 }
8362 p->mark = _mark;
8363 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8365 }
8366 { // function_def_raw
8367 if (p->error_indicator) {
8368 D(p->level--);
8369 return NULL;
8370 }
8371 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8372 stmt_ty function_def_raw_var;
8373 if (
8374 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8375 )
8376 {
8377 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8378 _res = function_def_raw_var;
8379 goto done;
8380 }
8381 p->mark = _mark;
8382 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8384 }
8385 _res = NULL;
8386 done:
8387 D(p->level--);
8388 return _res;
8389}
8390
8391// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008392// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008393// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8394// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008395static stmt_ty
8396function_def_raw_rule(Parser *p)
8397{
8398 D(p->level++);
8399 if (p->error_indicator) {
8400 D(p->level--);
8401 return NULL;
8402 }
8403 stmt_ty _res = NULL;
8404 int _mark = p->mark;
8405 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8406 p->error_indicator = 1;
8407 D(p->level--);
8408 return NULL;
8409 }
8410 int _start_lineno = p->tokens[_mark]->lineno;
8411 UNUSED(_start_lineno); // Only used by EXTRA macro
8412 int _start_col_offset = p->tokens[_mark]->col_offset;
8413 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008414 if (p->call_invalid_rules) { // invalid_def_raw
8415 if (p->error_indicator) {
8416 D(p->level--);
8417 return NULL;
8418 }
8419 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8420 void *invalid_def_raw_var;
8421 if (
8422 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8423 )
8424 {
8425 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8426 _res = invalid_def_raw_var;
8427 goto done;
8428 }
8429 p->mark = _mark;
8430 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8432 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008433 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008434 if (p->error_indicator) {
8435 D(p->level--);
8436 return NULL;
8437 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008438 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 +01008439 Token * _keyword;
8440 Token * _literal;
8441 Token * _literal_1;
8442 Token * _literal_2;
8443 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008444 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008445 expr_ty n;
8446 void *params;
8447 void *tc;
8448 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008449 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008450 &&
8451 (n = _PyPegen_name_token(p)) // NAME
8452 &&
8453 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8454 &&
8455 (params = params_rule(p), 1) // params?
8456 &&
8457 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8458 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008459 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008460 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008461 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008462 &&
8463 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8464 &&
8465 (b = block_rule(p)) // block
8466 )
8467 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008468 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 +01008469 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8470 if (_token == NULL) {
8471 D(p->level--);
8472 return NULL;
8473 }
8474 int _end_lineno = _token->end_lineno;
8475 UNUSED(_end_lineno); // Only used by EXTRA macro
8476 int _end_col_offset = _token->end_col_offset;
8477 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008478 _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 +01008479 if (_res == NULL && PyErr_Occurred()) {
8480 p->error_indicator = 1;
8481 D(p->level--);
8482 return NULL;
8483 }
8484 goto done;
8485 }
8486 p->mark = _mark;
8487 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008489 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008490 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008491 if (p->error_indicator) {
8492 D(p->level--);
8493 return NULL;
8494 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008495 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 +01008496 Token * _keyword;
8497 Token * _literal;
8498 Token * _literal_1;
8499 Token * _literal_2;
8500 void *a;
8501 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008502 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008503 expr_ty n;
8504 void *params;
8505 void *tc;
8506 if (
8507 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8508 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008509 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008510 &&
8511 (n = _PyPegen_name_token(p)) // NAME
8512 &&
8513 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8514 &&
8515 (params = params_rule(p), 1) // params?
8516 &&
8517 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8518 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008519 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008520 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008521 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008522 &&
8523 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8524 &&
8525 (b = block_rule(p)) // block
8526 )
8527 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008528 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 +01008529 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8530 if (_token == NULL) {
8531 D(p->level--);
8532 return NULL;
8533 }
8534 int _end_lineno = _token->end_lineno;
8535 UNUSED(_end_lineno); // Only used by EXTRA macro
8536 int _end_col_offset = _token->end_col_offset;
8537 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008538 _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 +01008539 if (_res == NULL && PyErr_Occurred()) {
8540 p->error_indicator = 1;
8541 D(p->level--);
8542 return NULL;
8543 }
8544 goto done;
8545 }
8546 p->mark = _mark;
8547 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008549 }
8550 _res = NULL;
8551 done:
8552 D(p->level--);
8553 return _res;
8554}
8555
8556// func_type_comment:
8557// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8558// | invalid_double_type_comments
8559// | TYPE_COMMENT
8560static Token*
8561func_type_comment_rule(Parser *p)
8562{
8563 D(p->level++);
8564 if (p->error_indicator) {
8565 D(p->level--);
8566 return NULL;
8567 }
8568 Token* _res = NULL;
8569 int _mark = p->mark;
8570 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8571 if (p->error_indicator) {
8572 D(p->level--);
8573 return NULL;
8574 }
8575 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8576 Token * newline_var;
8577 Token * t;
8578 if (
8579 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8580 &&
8581 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8582 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008583 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008584 )
8585 {
8586 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8587 _res = t;
8588 if (_res == NULL && PyErr_Occurred()) {
8589 p->error_indicator = 1;
8590 D(p->level--);
8591 return NULL;
8592 }
8593 goto done;
8594 }
8595 p->mark = _mark;
8596 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8598 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008599 if (p->call_invalid_rules) { // invalid_double_type_comments
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> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8605 void *invalid_double_type_comments_var;
8606 if (
8607 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8608 )
8609 {
8610 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8611 _res = invalid_double_type_comments_var;
8612 goto done;
8613 }
8614 p->mark = _mark;
8615 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8617 }
8618 { // TYPE_COMMENT
8619 if (p->error_indicator) {
8620 D(p->level--);
8621 return NULL;
8622 }
8623 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8624 Token * type_comment_var;
8625 if (
8626 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8627 )
8628 {
8629 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8630 _res = type_comment_var;
8631 goto done;
8632 }
8633 p->mark = _mark;
8634 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8636 }
8637 _res = NULL;
8638 done:
8639 D(p->level--);
8640 return _res;
8641}
8642
8643// params: invalid_parameters | parameters
8644static arguments_ty
8645params_rule(Parser *p)
8646{
8647 D(p->level++);
8648 if (p->error_indicator) {
8649 D(p->level--);
8650 return NULL;
8651 }
8652 arguments_ty _res = NULL;
8653 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008654 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008655 if (p->error_indicator) {
8656 D(p->level--);
8657 return NULL;
8658 }
8659 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8660 void *invalid_parameters_var;
8661 if (
8662 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8663 )
8664 {
8665 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8666 _res = invalid_parameters_var;
8667 goto done;
8668 }
8669 p->mark = _mark;
8670 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8672 }
8673 { // parameters
8674 if (p->error_indicator) {
8675 D(p->level--);
8676 return NULL;
8677 }
8678 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8679 arguments_ty parameters_var;
8680 if (
8681 (parameters_var = parameters_rule(p)) // parameters
8682 )
8683 {
8684 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8685 _res = parameters_var;
8686 goto done;
8687 }
8688 p->mark = _mark;
8689 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8691 }
8692 _res = NULL;
8693 done:
8694 D(p->level--);
8695 return _res;
8696}
8697
8698// parameters:
8699// | slash_no_default param_no_default* param_with_default* star_etc?
8700// | slash_with_default param_with_default* star_etc?
8701// | param_no_default+ param_with_default* star_etc?
8702// | param_with_default+ star_etc?
8703// | star_etc
8704static arguments_ty
8705parameters_rule(Parser *p)
8706{
8707 D(p->level++);
8708 if (p->error_indicator) {
8709 D(p->level--);
8710 return NULL;
8711 }
8712 arguments_ty _res = NULL;
8713 int _mark = p->mark;
8714 { // slash_no_default param_no_default* param_with_default* star_etc?
8715 if (p->error_indicator) {
8716 D(p->level--);
8717 return NULL;
8718 }
8719 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 +01008720 asdl_arg_seq* a;
8721 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008722 asdl_seq * c;
8723 void *d;
8724 if (
8725 (a = slash_no_default_rule(p)) // slash_no_default
8726 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008727 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008728 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008729 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008730 &&
8731 (d = star_etc_rule(p), 1) // star_etc?
8732 )
8733 {
8734 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?"));
8735 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8736 if (_res == NULL && PyErr_Occurred()) {
8737 p->error_indicator = 1;
8738 D(p->level--);
8739 return NULL;
8740 }
8741 goto done;
8742 }
8743 p->mark = _mark;
8744 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8746 }
8747 { // slash_with_default param_with_default* star_etc?
8748 if (p->error_indicator) {
8749 D(p->level--);
8750 return NULL;
8751 }
8752 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8753 SlashWithDefault* a;
8754 asdl_seq * b;
8755 void *c;
8756 if (
8757 (a = slash_with_default_rule(p)) // slash_with_default
8758 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008759 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008760 &&
8761 (c = star_etc_rule(p), 1) // star_etc?
8762 )
8763 {
8764 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8765 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8766 if (_res == NULL && PyErr_Occurred()) {
8767 p->error_indicator = 1;
8768 D(p->level--);
8769 return NULL;
8770 }
8771 goto done;
8772 }
8773 p->mark = _mark;
8774 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8776 }
8777 { // param_no_default+ param_with_default* star_etc?
8778 if (p->error_indicator) {
8779 D(p->level--);
8780 return NULL;
8781 }
8782 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 +01008783 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008784 asdl_seq * b;
8785 void *c;
8786 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008787 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008788 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008789 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008790 &&
8791 (c = star_etc_rule(p), 1) // star_etc?
8792 )
8793 {
8794 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8795 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8796 if (_res == NULL && PyErr_Occurred()) {
8797 p->error_indicator = 1;
8798 D(p->level--);
8799 return NULL;
8800 }
8801 goto done;
8802 }
8803 p->mark = _mark;
8804 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8806 }
8807 { // param_with_default+ star_etc?
8808 if (p->error_indicator) {
8809 D(p->level--);
8810 return NULL;
8811 }
8812 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8813 asdl_seq * a;
8814 void *b;
8815 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008816 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008817 &&
8818 (b = star_etc_rule(p), 1) // star_etc?
8819 )
8820 {
8821 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8822 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8823 if (_res == NULL && PyErr_Occurred()) {
8824 p->error_indicator = 1;
8825 D(p->level--);
8826 return NULL;
8827 }
8828 goto done;
8829 }
8830 p->mark = _mark;
8831 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8833 }
8834 { // star_etc
8835 if (p->error_indicator) {
8836 D(p->level--);
8837 return NULL;
8838 }
8839 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8840 StarEtc* a;
8841 if (
8842 (a = star_etc_rule(p)) // star_etc
8843 )
8844 {
8845 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8846 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8847 if (_res == NULL && PyErr_Occurred()) {
8848 p->error_indicator = 1;
8849 D(p->level--);
8850 return NULL;
8851 }
8852 goto done;
8853 }
8854 p->mark = _mark;
8855 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8857 }
8858 _res = NULL;
8859 done:
8860 D(p->level--);
8861 return _res;
8862}
8863
8864// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008865static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008866slash_no_default_rule(Parser *p)
8867{
8868 D(p->level++);
8869 if (p->error_indicator) {
8870 D(p->level--);
8871 return NULL;
8872 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008873 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008874 int _mark = p->mark;
8875 { // param_no_default+ '/' ','
8876 if (p->error_indicator) {
8877 D(p->level--);
8878 return NULL;
8879 }
8880 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8881 Token * _literal;
8882 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008883 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008884 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008885 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008886 &&
8887 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8888 &&
8889 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8890 )
8891 {
8892 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8893 _res = a;
8894 if (_res == NULL && PyErr_Occurred()) {
8895 p->error_indicator = 1;
8896 D(p->level--);
8897 return NULL;
8898 }
8899 goto done;
8900 }
8901 p->mark = _mark;
8902 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8904 }
8905 { // param_no_default+ '/' &')'
8906 if (p->error_indicator) {
8907 D(p->level--);
8908 return NULL;
8909 }
8910 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8911 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008912 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008913 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008914 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008915 &&
8916 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8917 &&
8918 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8919 )
8920 {
8921 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8922 _res = a;
8923 if (_res == NULL && PyErr_Occurred()) {
8924 p->error_indicator = 1;
8925 D(p->level--);
8926 return NULL;
8927 }
8928 goto done;
8929 }
8930 p->mark = _mark;
8931 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8933 }
8934 _res = NULL;
8935 done:
8936 D(p->level--);
8937 return _res;
8938}
8939
8940// slash_with_default:
8941// | param_no_default* param_with_default+ '/' ','
8942// | param_no_default* param_with_default+ '/' &')'
8943static SlashWithDefault*
8944slash_with_default_rule(Parser *p)
8945{
8946 D(p->level++);
8947 if (p->error_indicator) {
8948 D(p->level--);
8949 return NULL;
8950 }
8951 SlashWithDefault* _res = NULL;
8952 int _mark = p->mark;
8953 { // param_no_default* param_with_default+ '/' ','
8954 if (p->error_indicator) {
8955 D(p->level--);
8956 return NULL;
8957 }
8958 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8959 Token * _literal;
8960 Token * _literal_1;
8961 asdl_seq * a;
8962 asdl_seq * b;
8963 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008964 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008965 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008966 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008967 &&
8968 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8969 &&
8970 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8971 )
8972 {
8973 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 +01008974 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008975 if (_res == NULL && PyErr_Occurred()) {
8976 p->error_indicator = 1;
8977 D(p->level--);
8978 return NULL;
8979 }
8980 goto done;
8981 }
8982 p->mark = _mark;
8983 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8985 }
8986 { // param_no_default* param_with_default+ '/' &')'
8987 if (p->error_indicator) {
8988 D(p->level--);
8989 return NULL;
8990 }
8991 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8992 Token * _literal;
8993 asdl_seq * a;
8994 asdl_seq * b;
8995 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008996 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008997 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008998 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008999 &&
9000 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
9001 &&
9002 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9003 )
9004 {
9005 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 +01009006 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009007 if (_res == NULL && PyErr_Occurred()) {
9008 p->error_indicator = 1;
9009 D(p->level--);
9010 return NULL;
9011 }
9012 goto done;
9013 }
9014 p->mark = _mark;
9015 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
9017 }
9018 _res = NULL;
9019 done:
9020 D(p->level--);
9021 return _res;
9022}
9023
9024// star_etc:
9025// | '*' param_no_default param_maybe_default* kwds?
9026// | '*' ',' param_maybe_default+ kwds?
9027// | kwds
9028// | invalid_star_etc
9029static StarEtc*
9030star_etc_rule(Parser *p)
9031{
9032 D(p->level++);
9033 if (p->error_indicator) {
9034 D(p->level--);
9035 return NULL;
9036 }
9037 StarEtc* _res = NULL;
9038 int _mark = p->mark;
9039 { // '*' param_no_default param_maybe_default* kwds?
9040 if (p->error_indicator) {
9041 D(p->level--);
9042 return NULL;
9043 }
9044 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9045 Token * _literal;
9046 arg_ty a;
9047 asdl_seq * b;
9048 void *c;
9049 if (
9050 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9051 &&
9052 (a = param_no_default_rule(p)) // param_no_default
9053 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009054 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009055 &&
9056 (c = kwds_rule(p), 1) // kwds?
9057 )
9058 {
9059 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9060 _res = _PyPegen_star_etc ( p , a , b , c );
9061 if (_res == NULL && PyErr_Occurred()) {
9062 p->error_indicator = 1;
9063 D(p->level--);
9064 return NULL;
9065 }
9066 goto done;
9067 }
9068 p->mark = _mark;
9069 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9071 }
9072 { // '*' ',' param_maybe_default+ kwds?
9073 if (p->error_indicator) {
9074 D(p->level--);
9075 return NULL;
9076 }
9077 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9078 Token * _literal;
9079 Token * _literal_1;
9080 asdl_seq * b;
9081 void *c;
9082 if (
9083 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9084 &&
9085 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9086 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009087 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009088 &&
9089 (c = kwds_rule(p), 1) // kwds?
9090 )
9091 {
9092 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9093 _res = _PyPegen_star_etc ( p , NULL , b , c );
9094 if (_res == NULL && PyErr_Occurred()) {
9095 p->error_indicator = 1;
9096 D(p->level--);
9097 return NULL;
9098 }
9099 goto done;
9100 }
9101 p->mark = _mark;
9102 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9104 }
9105 { // kwds
9106 if (p->error_indicator) {
9107 D(p->level--);
9108 return NULL;
9109 }
9110 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9111 arg_ty a;
9112 if (
9113 (a = kwds_rule(p)) // kwds
9114 )
9115 {
9116 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9117 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9118 if (_res == NULL && PyErr_Occurred()) {
9119 p->error_indicator = 1;
9120 D(p->level--);
9121 return NULL;
9122 }
9123 goto done;
9124 }
9125 p->mark = _mark;
9126 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9128 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009129 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009130 if (p->error_indicator) {
9131 D(p->level--);
9132 return NULL;
9133 }
9134 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9135 void *invalid_star_etc_var;
9136 if (
9137 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9138 )
9139 {
9140 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9141 _res = invalid_star_etc_var;
9142 goto done;
9143 }
9144 p->mark = _mark;
9145 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9147 }
9148 _res = NULL;
9149 done:
9150 D(p->level--);
9151 return _res;
9152}
9153
9154// kwds: '**' param_no_default
9155static arg_ty
9156kwds_rule(Parser *p)
9157{
9158 D(p->level++);
9159 if (p->error_indicator) {
9160 D(p->level--);
9161 return NULL;
9162 }
9163 arg_ty _res = NULL;
9164 int _mark = p->mark;
9165 { // '**' param_no_default
9166 if (p->error_indicator) {
9167 D(p->level--);
9168 return NULL;
9169 }
9170 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9171 Token * _literal;
9172 arg_ty a;
9173 if (
9174 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9175 &&
9176 (a = param_no_default_rule(p)) // param_no_default
9177 )
9178 {
9179 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9180 _res = a;
9181 if (_res == NULL && PyErr_Occurred()) {
9182 p->error_indicator = 1;
9183 D(p->level--);
9184 return NULL;
9185 }
9186 goto done;
9187 }
9188 p->mark = _mark;
9189 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9191 }
9192 _res = NULL;
9193 done:
9194 D(p->level--);
9195 return _res;
9196}
9197
9198// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9199static arg_ty
9200param_no_default_rule(Parser *p)
9201{
9202 D(p->level++);
9203 if (p->error_indicator) {
9204 D(p->level--);
9205 return NULL;
9206 }
9207 arg_ty _res = NULL;
9208 int _mark = p->mark;
9209 { // param ',' TYPE_COMMENT?
9210 if (p->error_indicator) {
9211 D(p->level--);
9212 return NULL;
9213 }
9214 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9215 Token * _literal;
9216 arg_ty a;
9217 void *tc;
9218 if (
9219 (a = param_rule(p)) // param
9220 &&
9221 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9222 &&
9223 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9224 )
9225 {
9226 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9227 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9228 if (_res == NULL && PyErr_Occurred()) {
9229 p->error_indicator = 1;
9230 D(p->level--);
9231 return NULL;
9232 }
9233 goto done;
9234 }
9235 p->mark = _mark;
9236 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9238 }
9239 { // param TYPE_COMMENT? &')'
9240 if (p->error_indicator) {
9241 D(p->level--);
9242 return NULL;
9243 }
9244 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9245 arg_ty a;
9246 void *tc;
9247 if (
9248 (a = param_rule(p)) // param
9249 &&
9250 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9251 &&
9252 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9253 )
9254 {
9255 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9256 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9257 if (_res == NULL && PyErr_Occurred()) {
9258 p->error_indicator = 1;
9259 D(p->level--);
9260 return NULL;
9261 }
9262 goto done;
9263 }
9264 p->mark = _mark;
9265 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9267 }
9268 _res = NULL;
9269 done:
9270 D(p->level--);
9271 return _res;
9272}
9273
9274// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9275static NameDefaultPair*
9276param_with_default_rule(Parser *p)
9277{
9278 D(p->level++);
9279 if (p->error_indicator) {
9280 D(p->level--);
9281 return NULL;
9282 }
9283 NameDefaultPair* _res = NULL;
9284 int _mark = p->mark;
9285 { // param default ',' TYPE_COMMENT?
9286 if (p->error_indicator) {
9287 D(p->level--);
9288 return NULL;
9289 }
9290 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9291 Token * _literal;
9292 arg_ty a;
9293 expr_ty c;
9294 void *tc;
9295 if (
9296 (a = param_rule(p)) // param
9297 &&
9298 (c = default_rule(p)) // default
9299 &&
9300 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9301 &&
9302 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9303 )
9304 {
9305 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9306 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9307 if (_res == NULL && PyErr_Occurred()) {
9308 p->error_indicator = 1;
9309 D(p->level--);
9310 return NULL;
9311 }
9312 goto done;
9313 }
9314 p->mark = _mark;
9315 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9317 }
9318 { // param default TYPE_COMMENT? &')'
9319 if (p->error_indicator) {
9320 D(p->level--);
9321 return NULL;
9322 }
9323 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9324 arg_ty a;
9325 expr_ty c;
9326 void *tc;
9327 if (
9328 (a = param_rule(p)) // param
9329 &&
9330 (c = default_rule(p)) // default
9331 &&
9332 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9333 &&
9334 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9335 )
9336 {
9337 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9338 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9339 if (_res == NULL && PyErr_Occurred()) {
9340 p->error_indicator = 1;
9341 D(p->level--);
9342 return NULL;
9343 }
9344 goto done;
9345 }
9346 p->mark = _mark;
9347 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9349 }
9350 _res = NULL;
9351 done:
9352 D(p->level--);
9353 return _res;
9354}
9355
9356// param_maybe_default:
9357// | param default? ',' TYPE_COMMENT?
9358// | param default? TYPE_COMMENT? &')'
9359static NameDefaultPair*
9360param_maybe_default_rule(Parser *p)
9361{
9362 D(p->level++);
9363 if (p->error_indicator) {
9364 D(p->level--);
9365 return NULL;
9366 }
9367 NameDefaultPair* _res = NULL;
9368 int _mark = p->mark;
9369 { // param default? ',' TYPE_COMMENT?
9370 if (p->error_indicator) {
9371 D(p->level--);
9372 return NULL;
9373 }
9374 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9375 Token * _literal;
9376 arg_ty a;
9377 void *c;
9378 void *tc;
9379 if (
9380 (a = param_rule(p)) // param
9381 &&
9382 (c = default_rule(p), 1) // default?
9383 &&
9384 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9385 &&
9386 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9387 )
9388 {
9389 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9390 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9391 if (_res == NULL && PyErr_Occurred()) {
9392 p->error_indicator = 1;
9393 D(p->level--);
9394 return NULL;
9395 }
9396 goto done;
9397 }
9398 p->mark = _mark;
9399 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9401 }
9402 { // param default? TYPE_COMMENT? &')'
9403 if (p->error_indicator) {
9404 D(p->level--);
9405 return NULL;
9406 }
9407 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9408 arg_ty a;
9409 void *c;
9410 void *tc;
9411 if (
9412 (a = param_rule(p)) // param
9413 &&
9414 (c = default_rule(p), 1) // default?
9415 &&
9416 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9417 &&
9418 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9419 )
9420 {
9421 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9422 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9423 if (_res == NULL && PyErr_Occurred()) {
9424 p->error_indicator = 1;
9425 D(p->level--);
9426 return NULL;
9427 }
9428 goto done;
9429 }
9430 p->mark = _mark;
9431 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9433 }
9434 _res = NULL;
9435 done:
9436 D(p->level--);
9437 return _res;
9438}
9439
9440// param: NAME annotation?
9441static arg_ty
9442param_rule(Parser *p)
9443{
9444 D(p->level++);
9445 if (p->error_indicator) {
9446 D(p->level--);
9447 return NULL;
9448 }
9449 arg_ty _res = NULL;
9450 int _mark = p->mark;
9451 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9452 p->error_indicator = 1;
9453 D(p->level--);
9454 return NULL;
9455 }
9456 int _start_lineno = p->tokens[_mark]->lineno;
9457 UNUSED(_start_lineno); // Only used by EXTRA macro
9458 int _start_col_offset = p->tokens[_mark]->col_offset;
9459 UNUSED(_start_col_offset); // Only used by EXTRA macro
9460 { // NAME annotation?
9461 if (p->error_indicator) {
9462 D(p->level--);
9463 return NULL;
9464 }
9465 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9466 expr_ty a;
9467 void *b;
9468 if (
9469 (a = _PyPegen_name_token(p)) // NAME
9470 &&
9471 (b = annotation_rule(p), 1) // annotation?
9472 )
9473 {
9474 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9475 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9476 if (_token == NULL) {
9477 D(p->level--);
9478 return NULL;
9479 }
9480 int _end_lineno = _token->end_lineno;
9481 UNUSED(_end_lineno); // Only used by EXTRA macro
9482 int _end_col_offset = _token->end_col_offset;
9483 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009484 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009485 if (_res == NULL && PyErr_Occurred()) {
9486 p->error_indicator = 1;
9487 D(p->level--);
9488 return NULL;
9489 }
9490 goto done;
9491 }
9492 p->mark = _mark;
9493 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9495 }
9496 _res = NULL;
9497 done:
9498 D(p->level--);
9499 return _res;
9500}
9501
9502// annotation: ':' expression
9503static expr_ty
9504annotation_rule(Parser *p)
9505{
9506 D(p->level++);
9507 if (p->error_indicator) {
9508 D(p->level--);
9509 return NULL;
9510 }
9511 expr_ty _res = NULL;
9512 int _mark = p->mark;
9513 { // ':' expression
9514 if (p->error_indicator) {
9515 D(p->level--);
9516 return NULL;
9517 }
9518 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9519 Token * _literal;
9520 expr_ty a;
9521 if (
9522 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9523 &&
9524 (a = expression_rule(p)) // expression
9525 )
9526 {
9527 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9528 _res = a;
9529 if (_res == NULL && PyErr_Occurred()) {
9530 p->error_indicator = 1;
9531 D(p->level--);
9532 return NULL;
9533 }
9534 goto done;
9535 }
9536 p->mark = _mark;
9537 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9539 }
9540 _res = NULL;
9541 done:
9542 D(p->level--);
9543 return _res;
9544}
9545
9546// default: '=' expression
9547static expr_ty
9548default_rule(Parser *p)
9549{
9550 D(p->level++);
9551 if (p->error_indicator) {
9552 D(p->level--);
9553 return NULL;
9554 }
9555 expr_ty _res = NULL;
9556 int _mark = p->mark;
9557 { // '=' expression
9558 if (p->error_indicator) {
9559 D(p->level--);
9560 return NULL;
9561 }
9562 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9563 Token * _literal;
9564 expr_ty a;
9565 if (
9566 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9567 &&
9568 (a = expression_rule(p)) // expression
9569 )
9570 {
9571 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9572 _res = a;
9573 if (_res == NULL && PyErr_Occurred()) {
9574 p->error_indicator = 1;
9575 D(p->level--);
9576 return NULL;
9577 }
9578 goto done;
9579 }
9580 p->mark = _mark;
9581 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9583 }
9584 _res = NULL;
9585 done:
9586 D(p->level--);
9587 return _res;
9588}
9589
9590// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009591static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009592decorators_rule(Parser *p)
9593{
9594 D(p->level++);
9595 if (p->error_indicator) {
9596 D(p->level--);
9597 return NULL;
9598 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009599 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009600 int _mark = p->mark;
9601 { // (('@' named_expression NEWLINE))+
9602 if (p->error_indicator) {
9603 D(p->level--);
9604 return NULL;
9605 }
9606 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009607 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009608 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009609 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009610 )
9611 {
9612 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9613 _res = a;
9614 if (_res == NULL && PyErr_Occurred()) {
9615 p->error_indicator = 1;
9616 D(p->level--);
9617 return NULL;
9618 }
9619 goto done;
9620 }
9621 p->mark = _mark;
9622 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9624 }
9625 _res = NULL;
9626 done:
9627 D(p->level--);
9628 return _res;
9629}
9630
9631// class_def: decorators class_def_raw | class_def_raw
9632static stmt_ty
9633class_def_rule(Parser *p)
9634{
9635 D(p->level++);
9636 if (p->error_indicator) {
9637 D(p->level--);
9638 return NULL;
9639 }
9640 stmt_ty _res = NULL;
9641 int _mark = p->mark;
9642 { // decorators class_def_raw
9643 if (p->error_indicator) {
9644 D(p->level--);
9645 return NULL;
9646 }
9647 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 +01009648 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009649 stmt_ty b;
9650 if (
9651 (a = decorators_rule(p)) // decorators
9652 &&
9653 (b = class_def_raw_rule(p)) // class_def_raw
9654 )
9655 {
9656 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9657 _res = _PyPegen_class_def_decorators ( p , a , b );
9658 if (_res == NULL && PyErr_Occurred()) {
9659 p->error_indicator = 1;
9660 D(p->level--);
9661 return NULL;
9662 }
9663 goto done;
9664 }
9665 p->mark = _mark;
9666 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9668 }
9669 { // class_def_raw
9670 if (p->error_indicator) {
9671 D(p->level--);
9672 return NULL;
9673 }
9674 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9675 stmt_ty class_def_raw_var;
9676 if (
9677 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9678 )
9679 {
9680 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9681 _res = class_def_raw_var;
9682 goto done;
9683 }
9684 p->mark = _mark;
9685 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9687 }
9688 _res = NULL;
9689 done:
9690 D(p->level--);
9691 return _res;
9692}
9693
Pablo Galindo56c95df2021-04-21 15:28:21 +01009694// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009695static stmt_ty
9696class_def_raw_rule(Parser *p)
9697{
9698 D(p->level++);
9699 if (p->error_indicator) {
9700 D(p->level--);
9701 return NULL;
9702 }
9703 stmt_ty _res = NULL;
9704 int _mark = p->mark;
9705 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9706 p->error_indicator = 1;
9707 D(p->level--);
9708 return NULL;
9709 }
9710 int _start_lineno = p->tokens[_mark]->lineno;
9711 UNUSED(_start_lineno); // Only used by EXTRA macro
9712 int _start_col_offset = p->tokens[_mark]->col_offset;
9713 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009714 if (p->call_invalid_rules) { // invalid_class_def_raw
9715 if (p->error_indicator) {
9716 D(p->level--);
9717 return NULL;
9718 }
9719 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9720 void *invalid_class_def_raw_var;
9721 if (
9722 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9723 )
9724 {
9725 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9726 _res = invalid_class_def_raw_var;
9727 goto done;
9728 }
9729 p->mark = _mark;
9730 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9732 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009733 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009734 if (p->error_indicator) {
9735 D(p->level--);
9736 return NULL;
9737 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009738 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 +01009739 Token * _keyword;
9740 Token * _literal;
9741 expr_ty a;
9742 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009743 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009744 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009745 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009746 &&
9747 (a = _PyPegen_name_token(p)) // NAME
9748 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009749 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009750 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009751 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009752 &&
9753 (c = block_rule(p)) // block
9754 )
9755 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009756 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 +01009757 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9758 if (_token == NULL) {
9759 D(p->level--);
9760 return NULL;
9761 }
9762 int _end_lineno = _token->end_lineno;
9763 UNUSED(_end_lineno); // Only used by EXTRA macro
9764 int _end_col_offset = _token->end_col_offset;
9765 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009766 _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 +01009767 if (_res == NULL && PyErr_Occurred()) {
9768 p->error_indicator = 1;
9769 D(p->level--);
9770 return NULL;
9771 }
9772 goto done;
9773 }
9774 p->mark = _mark;
9775 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009777 }
9778 _res = NULL;
9779 done:
9780 D(p->level--);
9781 return _res;
9782}
9783
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009784// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009785static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009786block_rule(Parser *p)
9787{
9788 D(p->level++);
9789 if (p->error_indicator) {
9790 D(p->level--);
9791 return NULL;
9792 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009793 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009794 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9795 D(p->level--);
9796 return _res;
9797 }
9798 int _mark = p->mark;
9799 { // NEWLINE INDENT statements DEDENT
9800 if (p->error_indicator) {
9801 D(p->level--);
9802 return NULL;
9803 }
9804 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 +01009805 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009806 Token * dedent_var;
9807 Token * indent_var;
9808 Token * newline_var;
9809 if (
9810 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9811 &&
9812 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9813 &&
9814 (a = statements_rule(p)) // statements
9815 &&
9816 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9817 )
9818 {
9819 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9820 _res = a;
9821 if (_res == NULL && PyErr_Occurred()) {
9822 p->error_indicator = 1;
9823 D(p->level--);
9824 return NULL;
9825 }
9826 goto done;
9827 }
9828 p->mark = _mark;
9829 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9831 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009832 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009833 if (p->error_indicator) {
9834 D(p->level--);
9835 return NULL;
9836 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009837 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9838 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009839 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009840 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009841 )
9842 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009843 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9844 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009845 goto done;
9846 }
9847 p->mark = _mark;
9848 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009850 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009851 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009852 if (p->error_indicator) {
9853 D(p->level--);
9854 return NULL;
9855 }
9856 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9857 void *invalid_block_var;
9858 if (
9859 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9860 )
9861 {
9862 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9863 _res = invalid_block_var;
9864 goto done;
9865 }
9866 p->mark = _mark;
9867 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9868 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9869 }
9870 _res = NULL;
9871 done:
9872 _PyPegen_insert_memo(p, _mark, block_type, _res);
9873 D(p->level--);
9874 return _res;
9875}
9876
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009877// star_expressions:
9878// | star_expression ((',' star_expression))+ ','?
9879// | star_expression ','
9880// | star_expression
9881static expr_ty
9882star_expressions_rule(Parser *p)
9883{
9884 D(p->level++);
9885 if (p->error_indicator) {
9886 D(p->level--);
9887 return NULL;
9888 }
9889 expr_ty _res = NULL;
9890 int _mark = p->mark;
9891 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9892 p->error_indicator = 1;
9893 D(p->level--);
9894 return NULL;
9895 }
9896 int _start_lineno = p->tokens[_mark]->lineno;
9897 UNUSED(_start_lineno); // Only used by EXTRA macro
9898 int _start_col_offset = p->tokens[_mark]->col_offset;
9899 UNUSED(_start_col_offset); // Only used by EXTRA macro
9900 { // star_expression ((',' star_expression))+ ','?
9901 if (p->error_indicator) {
9902 D(p->level--);
9903 return NULL;
9904 }
9905 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9906 void *_opt_var;
9907 UNUSED(_opt_var); // Silence compiler warnings
9908 expr_ty a;
9909 asdl_seq * b;
9910 if (
9911 (a = star_expression_rule(p)) // star_expression
9912 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009913 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009914 &&
9915 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9916 )
9917 {
9918 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9919 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9920 if (_token == NULL) {
9921 D(p->level--);
9922 return NULL;
9923 }
9924 int _end_lineno = _token->end_lineno;
9925 UNUSED(_end_lineno); // Only used by EXTRA macro
9926 int _end_col_offset = _token->end_col_offset;
9927 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009928 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009929 if (_res == NULL && PyErr_Occurred()) {
9930 p->error_indicator = 1;
9931 D(p->level--);
9932 return NULL;
9933 }
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 ((',' star_expression))+ ','?"));
9939 }
9940 { // star_expression ','
9941 if (p->error_indicator) {
9942 D(p->level--);
9943 return NULL;
9944 }
9945 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9946 Token * _literal;
9947 expr_ty a;
9948 if (
9949 (a = star_expression_rule(p)) // star_expression
9950 &&
9951 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9952 )
9953 {
9954 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9955 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9956 if (_token == NULL) {
9957 D(p->level--);
9958 return NULL;
9959 }
9960 int _end_lineno = _token->end_lineno;
9961 UNUSED(_end_lineno); // Only used by EXTRA macro
9962 int _end_col_offset = _token->end_col_offset;
9963 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009964 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009965 if (_res == NULL && PyErr_Occurred()) {
9966 p->error_indicator = 1;
9967 D(p->level--);
9968 return NULL;
9969 }
9970 goto done;
9971 }
9972 p->mark = _mark;
9973 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9975 }
9976 { // star_expression
9977 if (p->error_indicator) {
9978 D(p->level--);
9979 return NULL;
9980 }
9981 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9982 expr_ty star_expression_var;
9983 if (
9984 (star_expression_var = star_expression_rule(p)) // star_expression
9985 )
9986 {
9987 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9988 _res = star_expression_var;
9989 goto done;
9990 }
9991 p->mark = _mark;
9992 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9994 }
9995 _res = NULL;
9996 done:
9997 D(p->level--);
9998 return _res;
9999}
10000
10001// star_expression: '*' bitwise_or | expression
10002static expr_ty
10003star_expression_rule(Parser *p)
10004{
10005 D(p->level++);
10006 if (p->error_indicator) {
10007 D(p->level--);
10008 return NULL;
10009 }
10010 expr_ty _res = NULL;
10011 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
10012 D(p->level--);
10013 return _res;
10014 }
10015 int _mark = p->mark;
10016 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10017 p->error_indicator = 1;
10018 D(p->level--);
10019 return NULL;
10020 }
10021 int _start_lineno = p->tokens[_mark]->lineno;
10022 UNUSED(_start_lineno); // Only used by EXTRA macro
10023 int _start_col_offset = p->tokens[_mark]->col_offset;
10024 UNUSED(_start_col_offset); // Only used by EXTRA macro
10025 { // '*' bitwise_or
10026 if (p->error_indicator) {
10027 D(p->level--);
10028 return NULL;
10029 }
10030 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10031 Token * _literal;
10032 expr_ty a;
10033 if (
10034 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10035 &&
10036 (a = bitwise_or_rule(p)) // bitwise_or
10037 )
10038 {
10039 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10040 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10041 if (_token == NULL) {
10042 D(p->level--);
10043 return NULL;
10044 }
10045 int _end_lineno = _token->end_lineno;
10046 UNUSED(_end_lineno); // Only used by EXTRA macro
10047 int _end_col_offset = _token->end_col_offset;
10048 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010049 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010050 if (_res == NULL && PyErr_Occurred()) {
10051 p->error_indicator = 1;
10052 D(p->level--);
10053 return NULL;
10054 }
10055 goto done;
10056 }
10057 p->mark = _mark;
10058 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10060 }
10061 { // expression
10062 if (p->error_indicator) {
10063 D(p->level--);
10064 return NULL;
10065 }
10066 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10067 expr_ty expression_var;
10068 if (
10069 (expression_var = expression_rule(p)) // expression
10070 )
10071 {
10072 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10073 _res = expression_var;
10074 goto done;
10075 }
10076 p->mark = _mark;
10077 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10079 }
10080 _res = NULL;
10081 done:
10082 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10083 D(p->level--);
10084 return _res;
10085}
10086
10087// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010088static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010089star_named_expressions_rule(Parser *p)
10090{
10091 D(p->level++);
10092 if (p->error_indicator) {
10093 D(p->level--);
10094 return NULL;
10095 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010096 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010097 int _mark = p->mark;
10098 { // ','.star_named_expression+ ','?
10099 if (p->error_indicator) {
10100 D(p->level--);
10101 return NULL;
10102 }
10103 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10104 void *_opt_var;
10105 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010106 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010107 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010108 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010109 &&
10110 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10111 )
10112 {
10113 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10114 _res = a;
10115 if (_res == NULL && PyErr_Occurred()) {
10116 p->error_indicator = 1;
10117 D(p->level--);
10118 return NULL;
10119 }
10120 goto done;
10121 }
10122 p->mark = _mark;
10123 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10125 }
10126 _res = NULL;
10127 done:
10128 D(p->level--);
10129 return _res;
10130}
10131
10132// star_named_expression: '*' bitwise_or | named_expression
10133static expr_ty
10134star_named_expression_rule(Parser *p)
10135{
10136 D(p->level++);
10137 if (p->error_indicator) {
10138 D(p->level--);
10139 return NULL;
10140 }
10141 expr_ty _res = NULL;
10142 int _mark = p->mark;
10143 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10144 p->error_indicator = 1;
10145 D(p->level--);
10146 return NULL;
10147 }
10148 int _start_lineno = p->tokens[_mark]->lineno;
10149 UNUSED(_start_lineno); // Only used by EXTRA macro
10150 int _start_col_offset = p->tokens[_mark]->col_offset;
10151 UNUSED(_start_col_offset); // Only used by EXTRA macro
10152 { // '*' bitwise_or
10153 if (p->error_indicator) {
10154 D(p->level--);
10155 return NULL;
10156 }
10157 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10158 Token * _literal;
10159 expr_ty a;
10160 if (
10161 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10162 &&
10163 (a = bitwise_or_rule(p)) // bitwise_or
10164 )
10165 {
10166 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10167 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10168 if (_token == NULL) {
10169 D(p->level--);
10170 return NULL;
10171 }
10172 int _end_lineno = _token->end_lineno;
10173 UNUSED(_end_lineno); // Only used by EXTRA macro
10174 int _end_col_offset = _token->end_col_offset;
10175 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010176 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010177 if (_res == NULL && PyErr_Occurred()) {
10178 p->error_indicator = 1;
10179 D(p->level--);
10180 return NULL;
10181 }
10182 goto done;
10183 }
10184 p->mark = _mark;
10185 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10187 }
10188 { // named_expression
10189 if (p->error_indicator) {
10190 D(p->level--);
10191 return NULL;
10192 }
10193 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10194 expr_ty named_expression_var;
10195 if (
10196 (named_expression_var = named_expression_rule(p)) // named_expression
10197 )
10198 {
10199 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10200 _res = named_expression_var;
10201 goto done;
10202 }
10203 p->mark = _mark;
10204 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10206 }
10207 _res = NULL;
10208 done:
10209 D(p->level--);
10210 return _res;
10211}
10212
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010213// assigment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010214static expr_ty
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010215assigment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010216{
10217 D(p->level++);
10218 if (p->error_indicator) {
10219 D(p->level--);
10220 return NULL;
10221 }
10222 expr_ty _res = NULL;
10223 int _mark = p->mark;
10224 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10225 p->error_indicator = 1;
10226 D(p->level--);
10227 return NULL;
10228 }
10229 int _start_lineno = p->tokens[_mark]->lineno;
10230 UNUSED(_start_lineno); // Only used by EXTRA macro
10231 int _start_col_offset = p->tokens[_mark]->col_offset;
10232 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010233 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010234 if (p->error_indicator) {
10235 D(p->level--);
10236 return NULL;
10237 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010238 D(fprintf(stderr, "%*c> assigment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010239 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010240 Token * _literal;
10241 expr_ty a;
10242 expr_ty b;
10243 if (
10244 (a = _PyPegen_name_token(p)) // NAME
10245 &&
10246 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10247 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010248 (_cut_var = 1)
10249 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010250 (b = expression_rule(p)) // expression
10251 )
10252 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010253 D(fprintf(stderr, "%*c+ assigment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010254 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10255 if (_token == NULL) {
10256 D(p->level--);
10257 return NULL;
10258 }
10259 int _end_lineno = _token->end_lineno;
10260 UNUSED(_end_lineno); // Only used by EXTRA macro
10261 int _end_col_offset = _token->end_col_offset;
10262 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010263 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010264 if (_res == NULL && PyErr_Occurred()) {
10265 p->error_indicator = 1;
10266 D(p->level--);
10267 return NULL;
10268 }
10269 goto done;
10270 }
10271 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010272 D(fprintf(stderr, "%*c%s assigment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10274 if (_cut_var) {
10275 D(p->level--);
10276 return NULL;
10277 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010278 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010279 _res = NULL;
10280 done:
10281 D(p->level--);
10282 return _res;
10283}
10284
10285// named_expression: assigment_expression | invalid_named_expression | expression !':='
10286static expr_ty
10287named_expression_rule(Parser *p)
10288{
10289 D(p->level++);
10290 if (p->error_indicator) {
10291 D(p->level--);
10292 return NULL;
10293 }
10294 expr_ty _res = NULL;
10295 int _mark = p->mark;
10296 { // assigment_expression
10297 if (p->error_indicator) {
10298 D(p->level--);
10299 return NULL;
10300 }
10301 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10302 expr_ty assigment_expression_var;
10303 if (
10304 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
10305 )
10306 {
10307 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10308 _res = assigment_expression_var;
10309 goto done;
10310 }
10311 p->mark = _mark;
10312 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
10314 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010315 if (p->call_invalid_rules) { // invalid_named_expression
10316 if (p->error_indicator) {
10317 D(p->level--);
10318 return NULL;
10319 }
10320 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10321 void *invalid_named_expression_var;
10322 if (
10323 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10324 )
10325 {
10326 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10327 _res = invalid_named_expression_var;
10328 goto done;
10329 }
10330 p->mark = _mark;
10331 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10333 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010334 { // expression !':='
10335 if (p->error_indicator) {
10336 D(p->level--);
10337 return NULL;
10338 }
10339 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10340 expr_ty expression_var;
10341 if (
10342 (expression_var = expression_rule(p)) // expression
10343 &&
10344 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10345 )
10346 {
10347 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10348 _res = expression_var;
10349 goto done;
10350 }
10351 p->mark = _mark;
10352 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10354 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010355 _res = NULL;
10356 done:
10357 D(p->level--);
10358 return _res;
10359}
10360
10361// annotated_rhs: yield_expr | star_expressions
10362static expr_ty
10363annotated_rhs_rule(Parser *p)
10364{
10365 D(p->level++);
10366 if (p->error_indicator) {
10367 D(p->level--);
10368 return NULL;
10369 }
10370 expr_ty _res = NULL;
10371 int _mark = p->mark;
10372 { // yield_expr
10373 if (p->error_indicator) {
10374 D(p->level--);
10375 return NULL;
10376 }
10377 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10378 expr_ty yield_expr_var;
10379 if (
10380 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10381 )
10382 {
10383 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10384 _res = yield_expr_var;
10385 goto done;
10386 }
10387 p->mark = _mark;
10388 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10390 }
10391 { // star_expressions
10392 if (p->error_indicator) {
10393 D(p->level--);
10394 return NULL;
10395 }
10396 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10397 expr_ty star_expressions_var;
10398 if (
10399 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10400 )
10401 {
10402 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10403 _res = star_expressions_var;
10404 goto done;
10405 }
10406 p->mark = _mark;
10407 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10409 }
10410 _res = NULL;
10411 done:
10412 D(p->level--);
10413 return _res;
10414}
10415
10416// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10417static expr_ty
10418expressions_rule(Parser *p)
10419{
10420 D(p->level++);
10421 if (p->error_indicator) {
10422 D(p->level--);
10423 return NULL;
10424 }
10425 expr_ty _res = NULL;
10426 int _mark = p->mark;
10427 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10428 p->error_indicator = 1;
10429 D(p->level--);
10430 return NULL;
10431 }
10432 int _start_lineno = p->tokens[_mark]->lineno;
10433 UNUSED(_start_lineno); // Only used by EXTRA macro
10434 int _start_col_offset = p->tokens[_mark]->col_offset;
10435 UNUSED(_start_col_offset); // Only used by EXTRA macro
10436 { // expression ((',' expression))+ ','?
10437 if (p->error_indicator) {
10438 D(p->level--);
10439 return NULL;
10440 }
10441 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10442 void *_opt_var;
10443 UNUSED(_opt_var); // Silence compiler warnings
10444 expr_ty a;
10445 asdl_seq * b;
10446 if (
10447 (a = expression_rule(p)) // expression
10448 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010449 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010450 &&
10451 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10452 )
10453 {
10454 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10455 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10456 if (_token == NULL) {
10457 D(p->level--);
10458 return NULL;
10459 }
10460 int _end_lineno = _token->end_lineno;
10461 UNUSED(_end_lineno); // Only used by EXTRA macro
10462 int _end_col_offset = _token->end_col_offset;
10463 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010464 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010465 if (_res == NULL && PyErr_Occurred()) {
10466 p->error_indicator = 1;
10467 D(p->level--);
10468 return NULL;
10469 }
10470 goto done;
10471 }
10472 p->mark = _mark;
10473 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10475 }
10476 { // expression ','
10477 if (p->error_indicator) {
10478 D(p->level--);
10479 return NULL;
10480 }
10481 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10482 Token * _literal;
10483 expr_ty a;
10484 if (
10485 (a = expression_rule(p)) // expression
10486 &&
10487 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10488 )
10489 {
10490 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10491 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10492 if (_token == NULL) {
10493 D(p->level--);
10494 return NULL;
10495 }
10496 int _end_lineno = _token->end_lineno;
10497 UNUSED(_end_lineno); // Only used by EXTRA macro
10498 int _end_col_offset = _token->end_col_offset;
10499 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010500 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010501 if (_res == NULL && PyErr_Occurred()) {
10502 p->error_indicator = 1;
10503 D(p->level--);
10504 return NULL;
10505 }
10506 goto done;
10507 }
10508 p->mark = _mark;
10509 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10511 }
10512 { // expression
10513 if (p->error_indicator) {
10514 D(p->level--);
10515 return NULL;
10516 }
10517 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10518 expr_ty expression_var;
10519 if (
10520 (expression_var = expression_rule(p)) // expression
10521 )
10522 {
10523 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10524 _res = expression_var;
10525 goto done;
10526 }
10527 p->mark = _mark;
10528 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10530 }
10531 _res = NULL;
10532 done:
10533 D(p->level--);
10534 return _res;
10535}
10536
Pablo Galindob2802482021-04-15 21:38:45 +010010537// expression:
10538// | invalid_expression
10539// | disjunction 'if' disjunction 'else' expression
10540// | disjunction
10541// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010542static expr_ty
10543expression_rule(Parser *p)
10544{
10545 D(p->level++);
10546 if (p->error_indicator) {
10547 D(p->level--);
10548 return NULL;
10549 }
10550 expr_ty _res = NULL;
10551 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10552 D(p->level--);
10553 return _res;
10554 }
10555 int _mark = p->mark;
10556 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10557 p->error_indicator = 1;
10558 D(p->level--);
10559 return NULL;
10560 }
10561 int _start_lineno = p->tokens[_mark]->lineno;
10562 UNUSED(_start_lineno); // Only used by EXTRA macro
10563 int _start_col_offset = p->tokens[_mark]->col_offset;
10564 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010565 if (p->call_invalid_rules) { // invalid_expression
10566 if (p->error_indicator) {
10567 D(p->level--);
10568 return NULL;
10569 }
10570 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10571 void *invalid_expression_var;
10572 if (
10573 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10574 )
10575 {
10576 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10577 _res = invalid_expression_var;
10578 goto done;
10579 }
10580 p->mark = _mark;
10581 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10583 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010584 { // disjunction 'if' disjunction 'else' expression
10585 if (p->error_indicator) {
10586 D(p->level--);
10587 return NULL;
10588 }
10589 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10590 Token * _keyword;
10591 Token * _keyword_1;
10592 expr_ty a;
10593 expr_ty b;
10594 expr_ty c;
10595 if (
10596 (a = disjunction_rule(p)) // disjunction
10597 &&
10598 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10599 &&
10600 (b = disjunction_rule(p)) // disjunction
10601 &&
10602 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10603 &&
10604 (c = expression_rule(p)) // expression
10605 )
10606 {
10607 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10608 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10609 if (_token == NULL) {
10610 D(p->level--);
10611 return NULL;
10612 }
10613 int _end_lineno = _token->end_lineno;
10614 UNUSED(_end_lineno); // Only used by EXTRA macro
10615 int _end_col_offset = _token->end_col_offset;
10616 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010617 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010618 if (_res == NULL && PyErr_Occurred()) {
10619 p->error_indicator = 1;
10620 D(p->level--);
10621 return NULL;
10622 }
10623 goto done;
10624 }
10625 p->mark = _mark;
10626 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10628 }
10629 { // disjunction
10630 if (p->error_indicator) {
10631 D(p->level--);
10632 return NULL;
10633 }
10634 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10635 expr_ty disjunction_var;
10636 if (
10637 (disjunction_var = disjunction_rule(p)) // disjunction
10638 )
10639 {
10640 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10641 _res = disjunction_var;
10642 goto done;
10643 }
10644 p->mark = _mark;
10645 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10647 }
10648 { // lambdef
10649 if (p->error_indicator) {
10650 D(p->level--);
10651 return NULL;
10652 }
10653 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10654 expr_ty lambdef_var;
10655 if (
10656 (lambdef_var = lambdef_rule(p)) // lambdef
10657 )
10658 {
10659 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10660 _res = lambdef_var;
10661 goto done;
10662 }
10663 p->mark = _mark;
10664 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10666 }
10667 _res = NULL;
10668 done:
10669 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10670 D(p->level--);
10671 return _res;
10672}
10673
10674// lambdef: 'lambda' lambda_params? ':' expression
10675static expr_ty
10676lambdef_rule(Parser *p)
10677{
10678 D(p->level++);
10679 if (p->error_indicator) {
10680 D(p->level--);
10681 return NULL;
10682 }
10683 expr_ty _res = NULL;
10684 int _mark = p->mark;
10685 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10686 p->error_indicator = 1;
10687 D(p->level--);
10688 return NULL;
10689 }
10690 int _start_lineno = p->tokens[_mark]->lineno;
10691 UNUSED(_start_lineno); // Only used by EXTRA macro
10692 int _start_col_offset = p->tokens[_mark]->col_offset;
10693 UNUSED(_start_col_offset); // Only used by EXTRA macro
10694 { // 'lambda' lambda_params? ':' expression
10695 if (p->error_indicator) {
10696 D(p->level--);
10697 return NULL;
10698 }
10699 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10700 Token * _keyword;
10701 Token * _literal;
10702 void *a;
10703 expr_ty b;
10704 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010705 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010706 &&
10707 (a = lambda_params_rule(p), 1) // lambda_params?
10708 &&
10709 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10710 &&
10711 (b = expression_rule(p)) // expression
10712 )
10713 {
10714 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10715 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10716 if (_token == NULL) {
10717 D(p->level--);
10718 return NULL;
10719 }
10720 int _end_lineno = _token->end_lineno;
10721 UNUSED(_end_lineno); // Only used by EXTRA macro
10722 int _end_col_offset = _token->end_col_offset;
10723 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010724 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010725 if (_res == NULL && PyErr_Occurred()) {
10726 p->error_indicator = 1;
10727 D(p->level--);
10728 return NULL;
10729 }
10730 goto done;
10731 }
10732 p->mark = _mark;
10733 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10735 }
10736 _res = NULL;
10737 done:
10738 D(p->level--);
10739 return _res;
10740}
10741
10742// lambda_params: invalid_lambda_parameters | lambda_parameters
10743static arguments_ty
10744lambda_params_rule(Parser *p)
10745{
10746 D(p->level++);
10747 if (p->error_indicator) {
10748 D(p->level--);
10749 return NULL;
10750 }
10751 arguments_ty _res = NULL;
10752 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010753 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010754 if (p->error_indicator) {
10755 D(p->level--);
10756 return NULL;
10757 }
10758 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10759 void *invalid_lambda_parameters_var;
10760 if (
10761 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10762 )
10763 {
10764 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10765 _res = invalid_lambda_parameters_var;
10766 goto done;
10767 }
10768 p->mark = _mark;
10769 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10771 }
10772 { // lambda_parameters
10773 if (p->error_indicator) {
10774 D(p->level--);
10775 return NULL;
10776 }
10777 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10778 arguments_ty lambda_parameters_var;
10779 if (
10780 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10781 )
10782 {
10783 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10784 _res = lambda_parameters_var;
10785 goto done;
10786 }
10787 p->mark = _mark;
10788 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10790 }
10791 _res = NULL;
10792 done:
10793 D(p->level--);
10794 return _res;
10795}
10796
10797// lambda_parameters:
10798// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10799// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10800// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10801// | lambda_param_with_default+ lambda_star_etc?
10802// | lambda_star_etc
10803static arguments_ty
10804lambda_parameters_rule(Parser *p)
10805{
10806 D(p->level++);
10807 if (p->error_indicator) {
10808 D(p->level--);
10809 return NULL;
10810 }
10811 arguments_ty _res = NULL;
10812 int _mark = p->mark;
10813 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10814 if (p->error_indicator) {
10815 D(p->level--);
10816 return NULL;
10817 }
10818 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 +010010819 asdl_arg_seq* a;
10820 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010821 asdl_seq * c;
10822 void *d;
10823 if (
10824 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10825 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010826 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010827 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010828 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010829 &&
10830 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10831 )
10832 {
10833 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?"));
10834 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10835 if (_res == NULL && PyErr_Occurred()) {
10836 p->error_indicator = 1;
10837 D(p->level--);
10838 return NULL;
10839 }
10840 goto done;
10841 }
10842 p->mark = _mark;
10843 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10845 }
10846 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10847 if (p->error_indicator) {
10848 D(p->level--);
10849 return NULL;
10850 }
10851 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?"));
10852 SlashWithDefault* a;
10853 asdl_seq * b;
10854 void *c;
10855 if (
10856 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10857 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010858 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010859 &&
10860 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10861 )
10862 {
10863 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?"));
10864 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10865 if (_res == NULL && PyErr_Occurred()) {
10866 p->error_indicator = 1;
10867 D(p->level--);
10868 return NULL;
10869 }
10870 goto done;
10871 }
10872 p->mark = _mark;
10873 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10875 }
10876 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10877 if (p->error_indicator) {
10878 D(p->level--);
10879 return NULL;
10880 }
10881 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 +010010882 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010883 asdl_seq * b;
10884 void *c;
10885 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010886 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010887 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010888 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010889 &&
10890 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10891 )
10892 {
10893 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?"));
10894 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10895 if (_res == NULL && PyErr_Occurred()) {
10896 p->error_indicator = 1;
10897 D(p->level--);
10898 return NULL;
10899 }
10900 goto done;
10901 }
10902 p->mark = _mark;
10903 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10905 }
10906 { // lambda_param_with_default+ lambda_star_etc?
10907 if (p->error_indicator) {
10908 D(p->level--);
10909 return NULL;
10910 }
10911 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10912 asdl_seq * a;
10913 void *b;
10914 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010915 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010916 &&
10917 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10918 )
10919 {
10920 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10921 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10922 if (_res == NULL && PyErr_Occurred()) {
10923 p->error_indicator = 1;
10924 D(p->level--);
10925 return NULL;
10926 }
10927 goto done;
10928 }
10929 p->mark = _mark;
10930 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10932 }
10933 { // lambda_star_etc
10934 if (p->error_indicator) {
10935 D(p->level--);
10936 return NULL;
10937 }
10938 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10939 StarEtc* a;
10940 if (
10941 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10942 )
10943 {
10944 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10945 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10946 if (_res == NULL && PyErr_Occurred()) {
10947 p->error_indicator = 1;
10948 D(p->level--);
10949 return NULL;
10950 }
10951 goto done;
10952 }
10953 p->mark = _mark;
10954 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10956 }
10957 _res = NULL;
10958 done:
10959 D(p->level--);
10960 return _res;
10961}
10962
10963// lambda_slash_no_default:
10964// | lambda_param_no_default+ '/' ','
10965// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010966static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010967lambda_slash_no_default_rule(Parser *p)
10968{
10969 D(p->level++);
10970 if (p->error_indicator) {
10971 D(p->level--);
10972 return NULL;
10973 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010974 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010975 int _mark = p->mark;
10976 { // lambda_param_no_default+ '/' ','
10977 if (p->error_indicator) {
10978 D(p->level--);
10979 return NULL;
10980 }
10981 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10982 Token * _literal;
10983 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010984 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010985 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010986 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010987 &&
10988 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10989 &&
10990 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10991 )
10992 {
10993 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10994 _res = a;
10995 if (_res == NULL && PyErr_Occurred()) {
10996 p->error_indicator = 1;
10997 D(p->level--);
10998 return NULL;
10999 }
11000 goto done;
11001 }
11002 p->mark = _mark;
11003 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11005 }
11006 { // lambda_param_no_default+ '/' &':'
11007 if (p->error_indicator) {
11008 D(p->level--);
11009 return NULL;
11010 }
11011 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11012 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011013 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011014 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011015 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011016 &&
11017 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11018 &&
11019 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11020 )
11021 {
11022 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11023 _res = a;
11024 if (_res == NULL && PyErr_Occurred()) {
11025 p->error_indicator = 1;
11026 D(p->level--);
11027 return NULL;
11028 }
11029 goto done;
11030 }
11031 p->mark = _mark;
11032 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11034 }
11035 _res = NULL;
11036 done:
11037 D(p->level--);
11038 return _res;
11039}
11040
11041// lambda_slash_with_default:
11042// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11043// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11044static SlashWithDefault*
11045lambda_slash_with_default_rule(Parser *p)
11046{
11047 D(p->level++);
11048 if (p->error_indicator) {
11049 D(p->level--);
11050 return NULL;
11051 }
11052 SlashWithDefault* _res = NULL;
11053 int _mark = p->mark;
11054 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11055 if (p->error_indicator) {
11056 D(p->level--);
11057 return NULL;
11058 }
11059 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+ '/' ','"));
11060 Token * _literal;
11061 Token * _literal_1;
11062 asdl_seq * a;
11063 asdl_seq * b;
11064 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011065 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011066 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011067 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011068 &&
11069 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11070 &&
11071 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11072 )
11073 {
11074 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 +010011075 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011076 if (_res == NULL && PyErr_Occurred()) {
11077 p->error_indicator = 1;
11078 D(p->level--);
11079 return NULL;
11080 }
11081 goto done;
11082 }
11083 p->mark = _mark;
11084 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11086 }
11087 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11088 if (p->error_indicator) {
11089 D(p->level--);
11090 return NULL;
11091 }
11092 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+ '/' &':'"));
11093 Token * _literal;
11094 asdl_seq * a;
11095 asdl_seq * b;
11096 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011097 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011098 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011099 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011100 &&
11101 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11102 &&
11103 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11104 )
11105 {
11106 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 +010011107 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011108 if (_res == NULL && PyErr_Occurred()) {
11109 p->error_indicator = 1;
11110 D(p->level--);
11111 return NULL;
11112 }
11113 goto done;
11114 }
11115 p->mark = _mark;
11116 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11118 }
11119 _res = NULL;
11120 done:
11121 D(p->level--);
11122 return _res;
11123}
11124
11125// lambda_star_etc:
11126// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11127// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11128// | lambda_kwds
11129// | invalid_lambda_star_etc
11130static StarEtc*
11131lambda_star_etc_rule(Parser *p)
11132{
11133 D(p->level++);
11134 if (p->error_indicator) {
11135 D(p->level--);
11136 return NULL;
11137 }
11138 StarEtc* _res = NULL;
11139 int _mark = p->mark;
11140 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11141 if (p->error_indicator) {
11142 D(p->level--);
11143 return NULL;
11144 }
11145 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?"));
11146 Token * _literal;
11147 arg_ty a;
11148 asdl_seq * b;
11149 void *c;
11150 if (
11151 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11152 &&
11153 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11154 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011155 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011156 &&
11157 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11158 )
11159 {
11160 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?"));
11161 _res = _PyPegen_star_etc ( p , a , b , c );
11162 if (_res == NULL && PyErr_Occurred()) {
11163 p->error_indicator = 1;
11164 D(p->level--);
11165 return NULL;
11166 }
11167 goto done;
11168 }
11169 p->mark = _mark;
11170 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11172 }
11173 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11174 if (p->error_indicator) {
11175 D(p->level--);
11176 return NULL;
11177 }
11178 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11179 Token * _literal;
11180 Token * _literal_1;
11181 asdl_seq * b;
11182 void *c;
11183 if (
11184 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11185 &&
11186 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11187 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011188 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011189 &&
11190 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11191 )
11192 {
11193 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11194 _res = _PyPegen_star_etc ( p , NULL , b , c );
11195 if (_res == NULL && PyErr_Occurred()) {
11196 p->error_indicator = 1;
11197 D(p->level--);
11198 return NULL;
11199 }
11200 goto done;
11201 }
11202 p->mark = _mark;
11203 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11205 }
11206 { // lambda_kwds
11207 if (p->error_indicator) {
11208 D(p->level--);
11209 return NULL;
11210 }
11211 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11212 arg_ty a;
11213 if (
11214 (a = lambda_kwds_rule(p)) // lambda_kwds
11215 )
11216 {
11217 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11218 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11219 if (_res == NULL && PyErr_Occurred()) {
11220 p->error_indicator = 1;
11221 D(p->level--);
11222 return NULL;
11223 }
11224 goto done;
11225 }
11226 p->mark = _mark;
11227 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11229 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011230 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011231 if (p->error_indicator) {
11232 D(p->level--);
11233 return NULL;
11234 }
11235 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11236 void *invalid_lambda_star_etc_var;
11237 if (
11238 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11239 )
11240 {
11241 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11242 _res = invalid_lambda_star_etc_var;
11243 goto done;
11244 }
11245 p->mark = _mark;
11246 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11248 }
11249 _res = NULL;
11250 done:
11251 D(p->level--);
11252 return _res;
11253}
11254
11255// lambda_kwds: '**' lambda_param_no_default
11256static arg_ty
11257lambda_kwds_rule(Parser *p)
11258{
11259 D(p->level++);
11260 if (p->error_indicator) {
11261 D(p->level--);
11262 return NULL;
11263 }
11264 arg_ty _res = NULL;
11265 int _mark = p->mark;
11266 { // '**' lambda_param_no_default
11267 if (p->error_indicator) {
11268 D(p->level--);
11269 return NULL;
11270 }
11271 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11272 Token * _literal;
11273 arg_ty a;
11274 if (
11275 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11276 &&
11277 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11278 )
11279 {
11280 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11281 _res = a;
11282 if (_res == NULL && PyErr_Occurred()) {
11283 p->error_indicator = 1;
11284 D(p->level--);
11285 return NULL;
11286 }
11287 goto done;
11288 }
11289 p->mark = _mark;
11290 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11292 }
11293 _res = NULL;
11294 done:
11295 D(p->level--);
11296 return _res;
11297}
11298
11299// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11300static arg_ty
11301lambda_param_no_default_rule(Parser *p)
11302{
11303 D(p->level++);
11304 if (p->error_indicator) {
11305 D(p->level--);
11306 return NULL;
11307 }
11308 arg_ty _res = NULL;
11309 int _mark = p->mark;
11310 { // lambda_param ','
11311 if (p->error_indicator) {
11312 D(p->level--);
11313 return NULL;
11314 }
11315 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11316 Token * _literal;
11317 arg_ty a;
11318 if (
11319 (a = lambda_param_rule(p)) // lambda_param
11320 &&
11321 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11322 )
11323 {
11324 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11325 _res = a;
11326 if (_res == NULL && PyErr_Occurred()) {
11327 p->error_indicator = 1;
11328 D(p->level--);
11329 return NULL;
11330 }
11331 goto done;
11332 }
11333 p->mark = _mark;
11334 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11336 }
11337 { // lambda_param &':'
11338 if (p->error_indicator) {
11339 D(p->level--);
11340 return NULL;
11341 }
11342 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11343 arg_ty a;
11344 if (
11345 (a = lambda_param_rule(p)) // lambda_param
11346 &&
11347 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11348 )
11349 {
11350 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11351 _res = a;
11352 if (_res == NULL && PyErr_Occurred()) {
11353 p->error_indicator = 1;
11354 D(p->level--);
11355 return NULL;
11356 }
11357 goto done;
11358 }
11359 p->mark = _mark;
11360 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11362 }
11363 _res = NULL;
11364 done:
11365 D(p->level--);
11366 return _res;
11367}
11368
11369// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11370static NameDefaultPair*
11371lambda_param_with_default_rule(Parser *p)
11372{
11373 D(p->level++);
11374 if (p->error_indicator) {
11375 D(p->level--);
11376 return NULL;
11377 }
11378 NameDefaultPair* _res = NULL;
11379 int _mark = p->mark;
11380 { // lambda_param default ','
11381 if (p->error_indicator) {
11382 D(p->level--);
11383 return NULL;
11384 }
11385 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11386 Token * _literal;
11387 arg_ty a;
11388 expr_ty c;
11389 if (
11390 (a = lambda_param_rule(p)) // lambda_param
11391 &&
11392 (c = default_rule(p)) // default
11393 &&
11394 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11395 )
11396 {
11397 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11398 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11399 if (_res == NULL && PyErr_Occurred()) {
11400 p->error_indicator = 1;
11401 D(p->level--);
11402 return NULL;
11403 }
11404 goto done;
11405 }
11406 p->mark = _mark;
11407 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11409 }
11410 { // lambda_param default &':'
11411 if (p->error_indicator) {
11412 D(p->level--);
11413 return NULL;
11414 }
11415 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11416 arg_ty a;
11417 expr_ty c;
11418 if (
11419 (a = lambda_param_rule(p)) // lambda_param
11420 &&
11421 (c = default_rule(p)) // default
11422 &&
11423 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11424 )
11425 {
11426 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11427 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11428 if (_res == NULL && PyErr_Occurred()) {
11429 p->error_indicator = 1;
11430 D(p->level--);
11431 return NULL;
11432 }
11433 goto done;
11434 }
11435 p->mark = _mark;
11436 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11438 }
11439 _res = NULL;
11440 done:
11441 D(p->level--);
11442 return _res;
11443}
11444
11445// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11446static NameDefaultPair*
11447lambda_param_maybe_default_rule(Parser *p)
11448{
11449 D(p->level++);
11450 if (p->error_indicator) {
11451 D(p->level--);
11452 return NULL;
11453 }
11454 NameDefaultPair* _res = NULL;
11455 int _mark = p->mark;
11456 { // lambda_param default? ','
11457 if (p->error_indicator) {
11458 D(p->level--);
11459 return NULL;
11460 }
11461 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11462 Token * _literal;
11463 arg_ty a;
11464 void *c;
11465 if (
11466 (a = lambda_param_rule(p)) // lambda_param
11467 &&
11468 (c = default_rule(p), 1) // default?
11469 &&
11470 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11471 )
11472 {
11473 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11474 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11475 if (_res == NULL && PyErr_Occurred()) {
11476 p->error_indicator = 1;
11477 D(p->level--);
11478 return NULL;
11479 }
11480 goto done;
11481 }
11482 p->mark = _mark;
11483 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11485 }
11486 { // lambda_param default? &':'
11487 if (p->error_indicator) {
11488 D(p->level--);
11489 return NULL;
11490 }
11491 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11492 arg_ty a;
11493 void *c;
11494 if (
11495 (a = lambda_param_rule(p)) // lambda_param
11496 &&
11497 (c = default_rule(p), 1) // default?
11498 &&
11499 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11500 )
11501 {
11502 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11503 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11504 if (_res == NULL && PyErr_Occurred()) {
11505 p->error_indicator = 1;
11506 D(p->level--);
11507 return NULL;
11508 }
11509 goto done;
11510 }
11511 p->mark = _mark;
11512 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11514 }
11515 _res = NULL;
11516 done:
11517 D(p->level--);
11518 return _res;
11519}
11520
11521// lambda_param: NAME
11522static arg_ty
11523lambda_param_rule(Parser *p)
11524{
11525 D(p->level++);
11526 if (p->error_indicator) {
11527 D(p->level--);
11528 return NULL;
11529 }
11530 arg_ty _res = NULL;
11531 int _mark = p->mark;
11532 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11533 p->error_indicator = 1;
11534 D(p->level--);
11535 return NULL;
11536 }
11537 int _start_lineno = p->tokens[_mark]->lineno;
11538 UNUSED(_start_lineno); // Only used by EXTRA macro
11539 int _start_col_offset = p->tokens[_mark]->col_offset;
11540 UNUSED(_start_col_offset); // Only used by EXTRA macro
11541 { // NAME
11542 if (p->error_indicator) {
11543 D(p->level--);
11544 return NULL;
11545 }
11546 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11547 expr_ty a;
11548 if (
11549 (a = _PyPegen_name_token(p)) // NAME
11550 )
11551 {
11552 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11553 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11554 if (_token == NULL) {
11555 D(p->level--);
11556 return NULL;
11557 }
11558 int _end_lineno = _token->end_lineno;
11559 UNUSED(_end_lineno); // Only used by EXTRA macro
11560 int _end_col_offset = _token->end_col_offset;
11561 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011562 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011563 if (_res == NULL && PyErr_Occurred()) {
11564 p->error_indicator = 1;
11565 D(p->level--);
11566 return NULL;
11567 }
11568 goto done;
11569 }
11570 p->mark = _mark;
11571 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11573 }
11574 _res = NULL;
11575 done:
11576 D(p->level--);
11577 return _res;
11578}
11579
11580// disjunction: conjunction (('or' conjunction))+ | conjunction
11581static expr_ty
11582disjunction_rule(Parser *p)
11583{
11584 D(p->level++);
11585 if (p->error_indicator) {
11586 D(p->level--);
11587 return NULL;
11588 }
11589 expr_ty _res = NULL;
11590 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11591 D(p->level--);
11592 return _res;
11593 }
11594 int _mark = p->mark;
11595 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11596 p->error_indicator = 1;
11597 D(p->level--);
11598 return NULL;
11599 }
11600 int _start_lineno = p->tokens[_mark]->lineno;
11601 UNUSED(_start_lineno); // Only used by EXTRA macro
11602 int _start_col_offset = p->tokens[_mark]->col_offset;
11603 UNUSED(_start_col_offset); // Only used by EXTRA macro
11604 { // conjunction (('or' conjunction))+
11605 if (p->error_indicator) {
11606 D(p->level--);
11607 return NULL;
11608 }
11609 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11610 expr_ty a;
11611 asdl_seq * b;
11612 if (
11613 (a = conjunction_rule(p)) // conjunction
11614 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011615 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011616 )
11617 {
11618 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11619 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11620 if (_token == NULL) {
11621 D(p->level--);
11622 return NULL;
11623 }
11624 int _end_lineno = _token->end_lineno;
11625 UNUSED(_end_lineno); // Only used by EXTRA macro
11626 int _end_col_offset = _token->end_col_offset;
11627 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011628 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011629 if (_res == NULL && PyErr_Occurred()) {
11630 p->error_indicator = 1;
11631 D(p->level--);
11632 return NULL;
11633 }
11634 goto done;
11635 }
11636 p->mark = _mark;
11637 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11639 }
11640 { // conjunction
11641 if (p->error_indicator) {
11642 D(p->level--);
11643 return NULL;
11644 }
11645 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11646 expr_ty conjunction_var;
11647 if (
11648 (conjunction_var = conjunction_rule(p)) // conjunction
11649 )
11650 {
11651 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11652 _res = conjunction_var;
11653 goto done;
11654 }
11655 p->mark = _mark;
11656 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11658 }
11659 _res = NULL;
11660 done:
11661 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11662 D(p->level--);
11663 return _res;
11664}
11665
11666// conjunction: inversion (('and' inversion))+ | inversion
11667static expr_ty
11668conjunction_rule(Parser *p)
11669{
11670 D(p->level++);
11671 if (p->error_indicator) {
11672 D(p->level--);
11673 return NULL;
11674 }
11675 expr_ty _res = NULL;
11676 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11677 D(p->level--);
11678 return _res;
11679 }
11680 int _mark = p->mark;
11681 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11682 p->error_indicator = 1;
11683 D(p->level--);
11684 return NULL;
11685 }
11686 int _start_lineno = p->tokens[_mark]->lineno;
11687 UNUSED(_start_lineno); // Only used by EXTRA macro
11688 int _start_col_offset = p->tokens[_mark]->col_offset;
11689 UNUSED(_start_col_offset); // Only used by EXTRA macro
11690 { // inversion (('and' inversion))+
11691 if (p->error_indicator) {
11692 D(p->level--);
11693 return NULL;
11694 }
11695 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11696 expr_ty a;
11697 asdl_seq * b;
11698 if (
11699 (a = inversion_rule(p)) // inversion
11700 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011701 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011702 )
11703 {
11704 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11705 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11706 if (_token == NULL) {
11707 D(p->level--);
11708 return NULL;
11709 }
11710 int _end_lineno = _token->end_lineno;
11711 UNUSED(_end_lineno); // Only used by EXTRA macro
11712 int _end_col_offset = _token->end_col_offset;
11713 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011714 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011715 if (_res == NULL && PyErr_Occurred()) {
11716 p->error_indicator = 1;
11717 D(p->level--);
11718 return NULL;
11719 }
11720 goto done;
11721 }
11722 p->mark = _mark;
11723 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11725 }
11726 { // inversion
11727 if (p->error_indicator) {
11728 D(p->level--);
11729 return NULL;
11730 }
11731 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11732 expr_ty inversion_var;
11733 if (
11734 (inversion_var = inversion_rule(p)) // inversion
11735 )
11736 {
11737 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11738 _res = inversion_var;
11739 goto done;
11740 }
11741 p->mark = _mark;
11742 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11744 }
11745 _res = NULL;
11746 done:
11747 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11748 D(p->level--);
11749 return _res;
11750}
11751
11752// inversion: 'not' inversion | comparison
11753static expr_ty
11754inversion_rule(Parser *p)
11755{
11756 D(p->level++);
11757 if (p->error_indicator) {
11758 D(p->level--);
11759 return NULL;
11760 }
11761 expr_ty _res = NULL;
11762 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11763 D(p->level--);
11764 return _res;
11765 }
11766 int _mark = p->mark;
11767 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11768 p->error_indicator = 1;
11769 D(p->level--);
11770 return NULL;
11771 }
11772 int _start_lineno = p->tokens[_mark]->lineno;
11773 UNUSED(_start_lineno); // Only used by EXTRA macro
11774 int _start_col_offset = p->tokens[_mark]->col_offset;
11775 UNUSED(_start_col_offset); // Only used by EXTRA macro
11776 { // 'not' inversion
11777 if (p->error_indicator) {
11778 D(p->level--);
11779 return NULL;
11780 }
11781 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11782 Token * _keyword;
11783 expr_ty a;
11784 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011785 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011786 &&
11787 (a = inversion_rule(p)) // inversion
11788 )
11789 {
11790 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11791 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11792 if (_token == NULL) {
11793 D(p->level--);
11794 return NULL;
11795 }
11796 int _end_lineno = _token->end_lineno;
11797 UNUSED(_end_lineno); // Only used by EXTRA macro
11798 int _end_col_offset = _token->end_col_offset;
11799 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011800 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011801 if (_res == NULL && PyErr_Occurred()) {
11802 p->error_indicator = 1;
11803 D(p->level--);
11804 return NULL;
11805 }
11806 goto done;
11807 }
11808 p->mark = _mark;
11809 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11811 }
11812 { // comparison
11813 if (p->error_indicator) {
11814 D(p->level--);
11815 return NULL;
11816 }
11817 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11818 expr_ty comparison_var;
11819 if (
11820 (comparison_var = comparison_rule(p)) // comparison
11821 )
11822 {
11823 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11824 _res = comparison_var;
11825 goto done;
11826 }
11827 p->mark = _mark;
11828 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11830 }
11831 _res = NULL;
11832 done:
11833 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11834 D(p->level--);
11835 return _res;
11836}
11837
11838// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11839static expr_ty
11840comparison_rule(Parser *p)
11841{
11842 D(p->level++);
11843 if (p->error_indicator) {
11844 D(p->level--);
11845 return NULL;
11846 }
11847 expr_ty _res = NULL;
11848 int _mark = p->mark;
11849 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11850 p->error_indicator = 1;
11851 D(p->level--);
11852 return NULL;
11853 }
11854 int _start_lineno = p->tokens[_mark]->lineno;
11855 UNUSED(_start_lineno); // Only used by EXTRA macro
11856 int _start_col_offset = p->tokens[_mark]->col_offset;
11857 UNUSED(_start_col_offset); // Only used by EXTRA macro
11858 { // bitwise_or compare_op_bitwise_or_pair+
11859 if (p->error_indicator) {
11860 D(p->level--);
11861 return NULL;
11862 }
11863 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11864 expr_ty a;
11865 asdl_seq * b;
11866 if (
11867 (a = bitwise_or_rule(p)) // bitwise_or
11868 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011869 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011870 )
11871 {
11872 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11873 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11874 if (_token == NULL) {
11875 D(p->level--);
11876 return NULL;
11877 }
11878 int _end_lineno = _token->end_lineno;
11879 UNUSED(_end_lineno); // Only used by EXTRA macro
11880 int _end_col_offset = _token->end_col_offset;
11881 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011882 _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 +010011883 if (_res == NULL && PyErr_Occurred()) {
11884 p->error_indicator = 1;
11885 D(p->level--);
11886 return NULL;
11887 }
11888 goto done;
11889 }
11890 p->mark = _mark;
11891 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11893 }
11894 { // bitwise_or
11895 if (p->error_indicator) {
11896 D(p->level--);
11897 return NULL;
11898 }
11899 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11900 expr_ty bitwise_or_var;
11901 if (
11902 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11903 )
11904 {
11905 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11906 _res = bitwise_or_var;
11907 goto done;
11908 }
11909 p->mark = _mark;
11910 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11912 }
11913 _res = NULL;
11914 done:
11915 D(p->level--);
11916 return _res;
11917}
11918
11919// compare_op_bitwise_or_pair:
11920// | eq_bitwise_or
11921// | noteq_bitwise_or
11922// | lte_bitwise_or
11923// | lt_bitwise_or
11924// | gte_bitwise_or
11925// | gt_bitwise_or
11926// | notin_bitwise_or
11927// | in_bitwise_or
11928// | isnot_bitwise_or
11929// | is_bitwise_or
11930static CmpopExprPair*
11931compare_op_bitwise_or_pair_rule(Parser *p)
11932{
11933 D(p->level++);
11934 if (p->error_indicator) {
11935 D(p->level--);
11936 return NULL;
11937 }
11938 CmpopExprPair* _res = NULL;
11939 int _mark = p->mark;
11940 { // eq_bitwise_or
11941 if (p->error_indicator) {
11942 D(p->level--);
11943 return NULL;
11944 }
11945 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11946 CmpopExprPair* eq_bitwise_or_var;
11947 if (
11948 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11949 )
11950 {
11951 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11952 _res = eq_bitwise_or_var;
11953 goto done;
11954 }
11955 p->mark = _mark;
11956 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11958 }
11959 { // noteq_bitwise_or
11960 if (p->error_indicator) {
11961 D(p->level--);
11962 return NULL;
11963 }
11964 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11965 CmpopExprPair* noteq_bitwise_or_var;
11966 if (
11967 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11968 )
11969 {
11970 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11971 _res = noteq_bitwise_or_var;
11972 goto done;
11973 }
11974 p->mark = _mark;
11975 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11977 }
11978 { // lte_bitwise_or
11979 if (p->error_indicator) {
11980 D(p->level--);
11981 return NULL;
11982 }
11983 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11984 CmpopExprPair* lte_bitwise_or_var;
11985 if (
11986 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11987 )
11988 {
11989 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11990 _res = lte_bitwise_or_var;
11991 goto done;
11992 }
11993 p->mark = _mark;
11994 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11996 }
11997 { // lt_bitwise_or
11998 if (p->error_indicator) {
11999 D(p->level--);
12000 return NULL;
12001 }
12002 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12003 CmpopExprPair* lt_bitwise_or_var;
12004 if (
12005 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
12006 )
12007 {
12008 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12009 _res = lt_bitwise_or_var;
12010 goto done;
12011 }
12012 p->mark = _mark;
12013 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
12015 }
12016 { // gte_bitwise_or
12017 if (p->error_indicator) {
12018 D(p->level--);
12019 return NULL;
12020 }
12021 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12022 CmpopExprPair* gte_bitwise_or_var;
12023 if (
12024 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
12025 )
12026 {
12027 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12028 _res = gte_bitwise_or_var;
12029 goto done;
12030 }
12031 p->mark = _mark;
12032 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
12034 }
12035 { // gt_bitwise_or
12036 if (p->error_indicator) {
12037 D(p->level--);
12038 return NULL;
12039 }
12040 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12041 CmpopExprPair* gt_bitwise_or_var;
12042 if (
12043 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12044 )
12045 {
12046 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12047 _res = gt_bitwise_or_var;
12048 goto done;
12049 }
12050 p->mark = _mark;
12051 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12053 }
12054 { // notin_bitwise_or
12055 if (p->error_indicator) {
12056 D(p->level--);
12057 return NULL;
12058 }
12059 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12060 CmpopExprPair* notin_bitwise_or_var;
12061 if (
12062 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12063 )
12064 {
12065 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12066 _res = notin_bitwise_or_var;
12067 goto done;
12068 }
12069 p->mark = _mark;
12070 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12072 }
12073 { // in_bitwise_or
12074 if (p->error_indicator) {
12075 D(p->level--);
12076 return NULL;
12077 }
12078 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12079 CmpopExprPair* in_bitwise_or_var;
12080 if (
12081 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12082 )
12083 {
12084 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12085 _res = in_bitwise_or_var;
12086 goto done;
12087 }
12088 p->mark = _mark;
12089 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12091 }
12092 { // isnot_bitwise_or
12093 if (p->error_indicator) {
12094 D(p->level--);
12095 return NULL;
12096 }
12097 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12098 CmpopExprPair* isnot_bitwise_or_var;
12099 if (
12100 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12101 )
12102 {
12103 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12104 _res = isnot_bitwise_or_var;
12105 goto done;
12106 }
12107 p->mark = _mark;
12108 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12110 }
12111 { // is_bitwise_or
12112 if (p->error_indicator) {
12113 D(p->level--);
12114 return NULL;
12115 }
12116 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12117 CmpopExprPair* is_bitwise_or_var;
12118 if (
12119 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12120 )
12121 {
12122 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12123 _res = is_bitwise_or_var;
12124 goto done;
12125 }
12126 p->mark = _mark;
12127 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12129 }
12130 _res = NULL;
12131 done:
12132 D(p->level--);
12133 return _res;
12134}
12135
12136// eq_bitwise_or: '==' bitwise_or
12137static CmpopExprPair*
12138eq_bitwise_or_rule(Parser *p)
12139{
12140 D(p->level++);
12141 if (p->error_indicator) {
12142 D(p->level--);
12143 return NULL;
12144 }
12145 CmpopExprPair* _res = NULL;
12146 int _mark = p->mark;
12147 { // '==' bitwise_or
12148 if (p->error_indicator) {
12149 D(p->level--);
12150 return NULL;
12151 }
12152 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12153 Token * _literal;
12154 expr_ty a;
12155 if (
12156 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12157 &&
12158 (a = bitwise_or_rule(p)) // bitwise_or
12159 )
12160 {
12161 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12162 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12163 if (_res == NULL && PyErr_Occurred()) {
12164 p->error_indicator = 1;
12165 D(p->level--);
12166 return NULL;
12167 }
12168 goto done;
12169 }
12170 p->mark = _mark;
12171 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12173 }
12174 _res = NULL;
12175 done:
12176 D(p->level--);
12177 return _res;
12178}
12179
12180// noteq_bitwise_or: ('!=') bitwise_or
12181static CmpopExprPair*
12182noteq_bitwise_or_rule(Parser *p)
12183{
12184 D(p->level++);
12185 if (p->error_indicator) {
12186 D(p->level--);
12187 return NULL;
12188 }
12189 CmpopExprPair* _res = NULL;
12190 int _mark = p->mark;
12191 { // ('!=') bitwise_or
12192 if (p->error_indicator) {
12193 D(p->level--);
12194 return NULL;
12195 }
12196 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 -080012197 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012198 expr_ty a;
12199 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012200 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012201 &&
12202 (a = bitwise_or_rule(p)) // bitwise_or
12203 )
12204 {
12205 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12206 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12207 if (_res == NULL && PyErr_Occurred()) {
12208 p->error_indicator = 1;
12209 D(p->level--);
12210 return NULL;
12211 }
12212 goto done;
12213 }
12214 p->mark = _mark;
12215 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12217 }
12218 _res = NULL;
12219 done:
12220 D(p->level--);
12221 return _res;
12222}
12223
12224// lte_bitwise_or: '<=' bitwise_or
12225static CmpopExprPair*
12226lte_bitwise_or_rule(Parser *p)
12227{
12228 D(p->level++);
12229 if (p->error_indicator) {
12230 D(p->level--);
12231 return NULL;
12232 }
12233 CmpopExprPair* _res = NULL;
12234 int _mark = p->mark;
12235 { // '<=' bitwise_or
12236 if (p->error_indicator) {
12237 D(p->level--);
12238 return NULL;
12239 }
12240 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12241 Token * _literal;
12242 expr_ty a;
12243 if (
12244 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12245 &&
12246 (a = bitwise_or_rule(p)) // bitwise_or
12247 )
12248 {
12249 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12250 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12251 if (_res == NULL && PyErr_Occurred()) {
12252 p->error_indicator = 1;
12253 D(p->level--);
12254 return NULL;
12255 }
12256 goto done;
12257 }
12258 p->mark = _mark;
12259 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12261 }
12262 _res = NULL;
12263 done:
12264 D(p->level--);
12265 return _res;
12266}
12267
12268// lt_bitwise_or: '<' bitwise_or
12269static CmpopExprPair*
12270lt_bitwise_or_rule(Parser *p)
12271{
12272 D(p->level++);
12273 if (p->error_indicator) {
12274 D(p->level--);
12275 return NULL;
12276 }
12277 CmpopExprPair* _res = NULL;
12278 int _mark = p->mark;
12279 { // '<' bitwise_or
12280 if (p->error_indicator) {
12281 D(p->level--);
12282 return NULL;
12283 }
12284 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12285 Token * _literal;
12286 expr_ty a;
12287 if (
12288 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12289 &&
12290 (a = bitwise_or_rule(p)) // bitwise_or
12291 )
12292 {
12293 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12294 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12295 if (_res == NULL && PyErr_Occurred()) {
12296 p->error_indicator = 1;
12297 D(p->level--);
12298 return NULL;
12299 }
12300 goto done;
12301 }
12302 p->mark = _mark;
12303 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12305 }
12306 _res = NULL;
12307 done:
12308 D(p->level--);
12309 return _res;
12310}
12311
12312// gte_bitwise_or: '>=' bitwise_or
12313static CmpopExprPair*
12314gte_bitwise_or_rule(Parser *p)
12315{
12316 D(p->level++);
12317 if (p->error_indicator) {
12318 D(p->level--);
12319 return NULL;
12320 }
12321 CmpopExprPair* _res = NULL;
12322 int _mark = p->mark;
12323 { // '>=' bitwise_or
12324 if (p->error_indicator) {
12325 D(p->level--);
12326 return NULL;
12327 }
12328 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12329 Token * _literal;
12330 expr_ty a;
12331 if (
12332 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12333 &&
12334 (a = bitwise_or_rule(p)) // bitwise_or
12335 )
12336 {
12337 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12338 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12339 if (_res == NULL && PyErr_Occurred()) {
12340 p->error_indicator = 1;
12341 D(p->level--);
12342 return NULL;
12343 }
12344 goto done;
12345 }
12346 p->mark = _mark;
12347 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12349 }
12350 _res = NULL;
12351 done:
12352 D(p->level--);
12353 return _res;
12354}
12355
12356// gt_bitwise_or: '>' bitwise_or
12357static CmpopExprPair*
12358gt_bitwise_or_rule(Parser *p)
12359{
12360 D(p->level++);
12361 if (p->error_indicator) {
12362 D(p->level--);
12363 return NULL;
12364 }
12365 CmpopExprPair* _res = NULL;
12366 int _mark = p->mark;
12367 { // '>' bitwise_or
12368 if (p->error_indicator) {
12369 D(p->level--);
12370 return NULL;
12371 }
12372 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12373 Token * _literal;
12374 expr_ty a;
12375 if (
12376 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12377 &&
12378 (a = bitwise_or_rule(p)) // bitwise_or
12379 )
12380 {
12381 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12382 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12383 if (_res == NULL && PyErr_Occurred()) {
12384 p->error_indicator = 1;
12385 D(p->level--);
12386 return NULL;
12387 }
12388 goto done;
12389 }
12390 p->mark = _mark;
12391 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12393 }
12394 _res = NULL;
12395 done:
12396 D(p->level--);
12397 return _res;
12398}
12399
12400// notin_bitwise_or: 'not' 'in' bitwise_or
12401static CmpopExprPair*
12402notin_bitwise_or_rule(Parser *p)
12403{
12404 D(p->level++);
12405 if (p->error_indicator) {
12406 D(p->level--);
12407 return NULL;
12408 }
12409 CmpopExprPair* _res = NULL;
12410 int _mark = p->mark;
12411 { // 'not' 'in' bitwise_or
12412 if (p->error_indicator) {
12413 D(p->level--);
12414 return NULL;
12415 }
12416 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12417 Token * _keyword;
12418 Token * _keyword_1;
12419 expr_ty a;
12420 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012421 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012422 &&
12423 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12424 &&
12425 (a = bitwise_or_rule(p)) // bitwise_or
12426 )
12427 {
12428 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12429 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12430 if (_res == NULL && PyErr_Occurred()) {
12431 p->error_indicator = 1;
12432 D(p->level--);
12433 return NULL;
12434 }
12435 goto done;
12436 }
12437 p->mark = _mark;
12438 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12440 }
12441 _res = NULL;
12442 done:
12443 D(p->level--);
12444 return _res;
12445}
12446
12447// in_bitwise_or: 'in' bitwise_or
12448static CmpopExprPair*
12449in_bitwise_or_rule(Parser *p)
12450{
12451 D(p->level++);
12452 if (p->error_indicator) {
12453 D(p->level--);
12454 return NULL;
12455 }
12456 CmpopExprPair* _res = NULL;
12457 int _mark = p->mark;
12458 { // 'in' bitwise_or
12459 if (p->error_indicator) {
12460 D(p->level--);
12461 return NULL;
12462 }
12463 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12464 Token * _keyword;
12465 expr_ty a;
12466 if (
12467 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12468 &&
12469 (a = bitwise_or_rule(p)) // bitwise_or
12470 )
12471 {
12472 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12473 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12474 if (_res == NULL && PyErr_Occurred()) {
12475 p->error_indicator = 1;
12476 D(p->level--);
12477 return NULL;
12478 }
12479 goto done;
12480 }
12481 p->mark = _mark;
12482 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12484 }
12485 _res = NULL;
12486 done:
12487 D(p->level--);
12488 return _res;
12489}
12490
12491// isnot_bitwise_or: 'is' 'not' bitwise_or
12492static CmpopExprPair*
12493isnot_bitwise_or_rule(Parser *p)
12494{
12495 D(p->level++);
12496 if (p->error_indicator) {
12497 D(p->level--);
12498 return NULL;
12499 }
12500 CmpopExprPair* _res = NULL;
12501 int _mark = p->mark;
12502 { // 'is' 'not' bitwise_or
12503 if (p->error_indicator) {
12504 D(p->level--);
12505 return NULL;
12506 }
12507 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12508 Token * _keyword;
12509 Token * _keyword_1;
12510 expr_ty a;
12511 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012512 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012513 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012514 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012515 &&
12516 (a = bitwise_or_rule(p)) // bitwise_or
12517 )
12518 {
12519 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12520 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12521 if (_res == NULL && PyErr_Occurred()) {
12522 p->error_indicator = 1;
12523 D(p->level--);
12524 return NULL;
12525 }
12526 goto done;
12527 }
12528 p->mark = _mark;
12529 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12531 }
12532 _res = NULL;
12533 done:
12534 D(p->level--);
12535 return _res;
12536}
12537
12538// is_bitwise_or: 'is' bitwise_or
12539static CmpopExprPair*
12540is_bitwise_or_rule(Parser *p)
12541{
12542 D(p->level++);
12543 if (p->error_indicator) {
12544 D(p->level--);
12545 return NULL;
12546 }
12547 CmpopExprPair* _res = NULL;
12548 int _mark = p->mark;
12549 { // 'is' bitwise_or
12550 if (p->error_indicator) {
12551 D(p->level--);
12552 return NULL;
12553 }
12554 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12555 Token * _keyword;
12556 expr_ty a;
12557 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012558 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012559 &&
12560 (a = bitwise_or_rule(p)) // bitwise_or
12561 )
12562 {
12563 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12564 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12565 if (_res == NULL && PyErr_Occurred()) {
12566 p->error_indicator = 1;
12567 D(p->level--);
12568 return NULL;
12569 }
12570 goto done;
12571 }
12572 p->mark = _mark;
12573 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12575 }
12576 _res = NULL;
12577 done:
12578 D(p->level--);
12579 return _res;
12580}
12581
12582// Left-recursive
12583// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12584static expr_ty bitwise_or_raw(Parser *);
12585static expr_ty
12586bitwise_or_rule(Parser *p)
12587{
12588 D(p->level++);
12589 expr_ty _res = NULL;
12590 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12591 D(p->level--);
12592 return _res;
12593 }
12594 int _mark = p->mark;
12595 int _resmark = p->mark;
12596 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012597 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12598 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012599 D(p->level--);
12600 return _res;
12601 }
12602 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012603 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012604 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012605 p->in_raw_rule--;
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;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012721 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012722 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012723 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012724 if (p->error_indicator)
12725 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012726 if (_raw == NULL || p->mark <= _resmark)
12727 break;
12728 _resmark = p->mark;
12729 _res = _raw;
12730 }
12731 p->mark = _resmark;
12732 D(p->level--);
12733 return _res;
12734}
12735static expr_ty
12736bitwise_xor_raw(Parser *p)
12737{
12738 D(p->level++);
12739 if (p->error_indicator) {
12740 D(p->level--);
12741 return NULL;
12742 }
12743 expr_ty _res = NULL;
12744 int _mark = p->mark;
12745 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12746 p->error_indicator = 1;
12747 D(p->level--);
12748 return NULL;
12749 }
12750 int _start_lineno = p->tokens[_mark]->lineno;
12751 UNUSED(_start_lineno); // Only used by EXTRA macro
12752 int _start_col_offset = p->tokens[_mark]->col_offset;
12753 UNUSED(_start_col_offset); // Only used by EXTRA macro
12754 { // bitwise_xor '^' bitwise_and
12755 if (p->error_indicator) {
12756 D(p->level--);
12757 return NULL;
12758 }
12759 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12760 Token * _literal;
12761 expr_ty a;
12762 expr_ty b;
12763 if (
12764 (a = bitwise_xor_rule(p)) // bitwise_xor
12765 &&
12766 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12767 &&
12768 (b = bitwise_and_rule(p)) // bitwise_and
12769 )
12770 {
12771 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12772 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12773 if (_token == NULL) {
12774 D(p->level--);
12775 return NULL;
12776 }
12777 int _end_lineno = _token->end_lineno;
12778 UNUSED(_end_lineno); // Only used by EXTRA macro
12779 int _end_col_offset = _token->end_col_offset;
12780 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012781 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012782 if (_res == NULL && PyErr_Occurred()) {
12783 p->error_indicator = 1;
12784 D(p->level--);
12785 return NULL;
12786 }
12787 goto done;
12788 }
12789 p->mark = _mark;
12790 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12792 }
12793 { // bitwise_and
12794 if (p->error_indicator) {
12795 D(p->level--);
12796 return NULL;
12797 }
12798 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12799 expr_ty bitwise_and_var;
12800 if (
12801 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12802 )
12803 {
12804 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12805 _res = bitwise_and_var;
12806 goto done;
12807 }
12808 p->mark = _mark;
12809 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12811 }
12812 _res = NULL;
12813 done:
12814 D(p->level--);
12815 return _res;
12816}
12817
12818// Left-recursive
12819// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12820static expr_ty bitwise_and_raw(Parser *);
12821static expr_ty
12822bitwise_and_rule(Parser *p)
12823{
12824 D(p->level++);
12825 expr_ty _res = NULL;
12826 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12827 D(p->level--);
12828 return _res;
12829 }
12830 int _mark = p->mark;
12831 int _resmark = p->mark;
12832 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012833 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12834 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012835 D(p->level--);
12836 return _res;
12837 }
12838 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012839 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012840 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012841 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012842 if (p->error_indicator)
12843 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012844 if (_raw == NULL || p->mark <= _resmark)
12845 break;
12846 _resmark = p->mark;
12847 _res = _raw;
12848 }
12849 p->mark = _resmark;
12850 D(p->level--);
12851 return _res;
12852}
12853static expr_ty
12854bitwise_and_raw(Parser *p)
12855{
12856 D(p->level++);
12857 if (p->error_indicator) {
12858 D(p->level--);
12859 return NULL;
12860 }
12861 expr_ty _res = NULL;
12862 int _mark = p->mark;
12863 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12864 p->error_indicator = 1;
12865 D(p->level--);
12866 return NULL;
12867 }
12868 int _start_lineno = p->tokens[_mark]->lineno;
12869 UNUSED(_start_lineno); // Only used by EXTRA macro
12870 int _start_col_offset = p->tokens[_mark]->col_offset;
12871 UNUSED(_start_col_offset); // Only used by EXTRA macro
12872 { // bitwise_and '&' shift_expr
12873 if (p->error_indicator) {
12874 D(p->level--);
12875 return NULL;
12876 }
12877 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12878 Token * _literal;
12879 expr_ty a;
12880 expr_ty b;
12881 if (
12882 (a = bitwise_and_rule(p)) // bitwise_and
12883 &&
12884 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12885 &&
12886 (b = shift_expr_rule(p)) // shift_expr
12887 )
12888 {
12889 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12890 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12891 if (_token == NULL) {
12892 D(p->level--);
12893 return NULL;
12894 }
12895 int _end_lineno = _token->end_lineno;
12896 UNUSED(_end_lineno); // Only used by EXTRA macro
12897 int _end_col_offset = _token->end_col_offset;
12898 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012899 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012900 if (_res == NULL && PyErr_Occurred()) {
12901 p->error_indicator = 1;
12902 D(p->level--);
12903 return NULL;
12904 }
12905 goto done;
12906 }
12907 p->mark = _mark;
12908 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12910 }
12911 { // shift_expr
12912 if (p->error_indicator) {
12913 D(p->level--);
12914 return NULL;
12915 }
12916 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12917 expr_ty shift_expr_var;
12918 if (
12919 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12920 )
12921 {
12922 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12923 _res = shift_expr_var;
12924 goto done;
12925 }
12926 p->mark = _mark;
12927 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12929 }
12930 _res = NULL;
12931 done:
12932 D(p->level--);
12933 return _res;
12934}
12935
12936// Left-recursive
12937// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12938static expr_ty shift_expr_raw(Parser *);
12939static expr_ty
12940shift_expr_rule(Parser *p)
12941{
12942 D(p->level++);
12943 expr_ty _res = NULL;
12944 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12945 D(p->level--);
12946 return _res;
12947 }
12948 int _mark = p->mark;
12949 int _resmark = p->mark;
12950 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012951 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12952 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012953 D(p->level--);
12954 return _res;
12955 }
12956 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012957 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012958 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012959 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012960 if (p->error_indicator)
12961 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012962 if (_raw == NULL || p->mark <= _resmark)
12963 break;
12964 _resmark = p->mark;
12965 _res = _raw;
12966 }
12967 p->mark = _resmark;
12968 D(p->level--);
12969 return _res;
12970}
12971static expr_ty
12972shift_expr_raw(Parser *p)
12973{
12974 D(p->level++);
12975 if (p->error_indicator) {
12976 D(p->level--);
12977 return NULL;
12978 }
12979 expr_ty _res = NULL;
12980 int _mark = p->mark;
12981 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12982 p->error_indicator = 1;
12983 D(p->level--);
12984 return NULL;
12985 }
12986 int _start_lineno = p->tokens[_mark]->lineno;
12987 UNUSED(_start_lineno); // Only used by EXTRA macro
12988 int _start_col_offset = p->tokens[_mark]->col_offset;
12989 UNUSED(_start_col_offset); // Only used by EXTRA macro
12990 { // shift_expr '<<' sum
12991 if (p->error_indicator) {
12992 D(p->level--);
12993 return NULL;
12994 }
12995 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12996 Token * _literal;
12997 expr_ty a;
12998 expr_ty b;
12999 if (
13000 (a = shift_expr_rule(p)) // shift_expr
13001 &&
13002 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
13003 &&
13004 (b = sum_rule(p)) // sum
13005 )
13006 {
13007 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13009 if (_token == NULL) {
13010 D(p->level--);
13011 return NULL;
13012 }
13013 int _end_lineno = _token->end_lineno;
13014 UNUSED(_end_lineno); // Only used by EXTRA macro
13015 int _end_col_offset = _token->end_col_offset;
13016 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013017 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013018 if (_res == NULL && PyErr_Occurred()) {
13019 p->error_indicator = 1;
13020 D(p->level--);
13021 return NULL;
13022 }
13023 goto done;
13024 }
13025 p->mark = _mark;
13026 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
13028 }
13029 { // shift_expr '>>' sum
13030 if (p->error_indicator) {
13031 D(p->level--);
13032 return NULL;
13033 }
13034 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13035 Token * _literal;
13036 expr_ty a;
13037 expr_ty b;
13038 if (
13039 (a = shift_expr_rule(p)) // shift_expr
13040 &&
13041 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13042 &&
13043 (b = sum_rule(p)) // sum
13044 )
13045 {
13046 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13047 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13048 if (_token == NULL) {
13049 D(p->level--);
13050 return NULL;
13051 }
13052 int _end_lineno = _token->end_lineno;
13053 UNUSED(_end_lineno); // Only used by EXTRA macro
13054 int _end_col_offset = _token->end_col_offset;
13055 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013056 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013057 if (_res == NULL && PyErr_Occurred()) {
13058 p->error_indicator = 1;
13059 D(p->level--);
13060 return NULL;
13061 }
13062 goto done;
13063 }
13064 p->mark = _mark;
13065 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13067 }
13068 { // sum
13069 if (p->error_indicator) {
13070 D(p->level--);
13071 return NULL;
13072 }
13073 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13074 expr_ty sum_var;
13075 if (
13076 (sum_var = sum_rule(p)) // sum
13077 )
13078 {
13079 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13080 _res = sum_var;
13081 goto done;
13082 }
13083 p->mark = _mark;
13084 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13086 }
13087 _res = NULL;
13088 done:
13089 D(p->level--);
13090 return _res;
13091}
13092
13093// Left-recursive
13094// sum: sum '+' term | sum '-' term | term
13095static expr_ty sum_raw(Parser *);
13096static expr_ty
13097sum_rule(Parser *p)
13098{
13099 D(p->level++);
13100 expr_ty _res = NULL;
13101 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13102 D(p->level--);
13103 return _res;
13104 }
13105 int _mark = p->mark;
13106 int _resmark = p->mark;
13107 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013108 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13109 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013110 D(p->level--);
13111 return _res;
13112 }
13113 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013114 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013115 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013116 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013117 if (p->error_indicator)
13118 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013119 if (_raw == NULL || p->mark <= _resmark)
13120 break;
13121 _resmark = p->mark;
13122 _res = _raw;
13123 }
13124 p->mark = _resmark;
13125 D(p->level--);
13126 return _res;
13127}
13128static expr_ty
13129sum_raw(Parser *p)
13130{
13131 D(p->level++);
13132 if (p->error_indicator) {
13133 D(p->level--);
13134 return NULL;
13135 }
13136 expr_ty _res = NULL;
13137 int _mark = p->mark;
13138 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13139 p->error_indicator = 1;
13140 D(p->level--);
13141 return NULL;
13142 }
13143 int _start_lineno = p->tokens[_mark]->lineno;
13144 UNUSED(_start_lineno); // Only used by EXTRA macro
13145 int _start_col_offset = p->tokens[_mark]->col_offset;
13146 UNUSED(_start_col_offset); // Only used by EXTRA macro
13147 { // sum '+' term
13148 if (p->error_indicator) {
13149 D(p->level--);
13150 return NULL;
13151 }
13152 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13153 Token * _literal;
13154 expr_ty a;
13155 expr_ty b;
13156 if (
13157 (a = sum_rule(p)) // sum
13158 &&
13159 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13160 &&
13161 (b = term_rule(p)) // term
13162 )
13163 {
13164 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13165 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13166 if (_token == NULL) {
13167 D(p->level--);
13168 return NULL;
13169 }
13170 int _end_lineno = _token->end_lineno;
13171 UNUSED(_end_lineno); // Only used by EXTRA macro
13172 int _end_col_offset = _token->end_col_offset;
13173 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013174 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013175 if (_res == NULL && PyErr_Occurred()) {
13176 p->error_indicator = 1;
13177 D(p->level--);
13178 return NULL;
13179 }
13180 goto done;
13181 }
13182 p->mark = _mark;
13183 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13185 }
13186 { // sum '-' term
13187 if (p->error_indicator) {
13188 D(p->level--);
13189 return NULL;
13190 }
13191 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13192 Token * _literal;
13193 expr_ty a;
13194 expr_ty b;
13195 if (
13196 (a = sum_rule(p)) // sum
13197 &&
13198 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13199 &&
13200 (b = term_rule(p)) // term
13201 )
13202 {
13203 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13204 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13205 if (_token == NULL) {
13206 D(p->level--);
13207 return NULL;
13208 }
13209 int _end_lineno = _token->end_lineno;
13210 UNUSED(_end_lineno); // Only used by EXTRA macro
13211 int _end_col_offset = _token->end_col_offset;
13212 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013213 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013214 if (_res == NULL && PyErr_Occurred()) {
13215 p->error_indicator = 1;
13216 D(p->level--);
13217 return NULL;
13218 }
13219 goto done;
13220 }
13221 p->mark = _mark;
13222 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13224 }
13225 { // term
13226 if (p->error_indicator) {
13227 D(p->level--);
13228 return NULL;
13229 }
13230 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13231 expr_ty term_var;
13232 if (
13233 (term_var = term_rule(p)) // term
13234 )
13235 {
13236 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13237 _res = term_var;
13238 goto done;
13239 }
13240 p->mark = _mark;
13241 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13243 }
13244 _res = NULL;
13245 done:
13246 D(p->level--);
13247 return _res;
13248}
13249
13250// Left-recursive
13251// term:
13252// | term '*' factor
13253// | term '/' factor
13254// | term '//' factor
13255// | term '%' factor
13256// | term '@' factor
13257// | factor
13258static expr_ty term_raw(Parser *);
13259static expr_ty
13260term_rule(Parser *p)
13261{
13262 D(p->level++);
13263 expr_ty _res = NULL;
13264 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13265 D(p->level--);
13266 return _res;
13267 }
13268 int _mark = p->mark;
13269 int _resmark = p->mark;
13270 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013271 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13272 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013273 D(p->level--);
13274 return _res;
13275 }
13276 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013277 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013278 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013279 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013280 if (p->error_indicator)
13281 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013282 if (_raw == NULL || p->mark <= _resmark)
13283 break;
13284 _resmark = p->mark;
13285 _res = _raw;
13286 }
13287 p->mark = _resmark;
13288 D(p->level--);
13289 return _res;
13290}
13291static expr_ty
13292term_raw(Parser *p)
13293{
13294 D(p->level++);
13295 if (p->error_indicator) {
13296 D(p->level--);
13297 return NULL;
13298 }
13299 expr_ty _res = NULL;
13300 int _mark = p->mark;
13301 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13302 p->error_indicator = 1;
13303 D(p->level--);
13304 return NULL;
13305 }
13306 int _start_lineno = p->tokens[_mark]->lineno;
13307 UNUSED(_start_lineno); // Only used by EXTRA macro
13308 int _start_col_offset = p->tokens[_mark]->col_offset;
13309 UNUSED(_start_col_offset); // Only used by EXTRA macro
13310 { // term '*' factor
13311 if (p->error_indicator) {
13312 D(p->level--);
13313 return NULL;
13314 }
13315 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13316 Token * _literal;
13317 expr_ty a;
13318 expr_ty b;
13319 if (
13320 (a = term_rule(p)) // term
13321 &&
13322 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13323 &&
13324 (b = factor_rule(p)) // factor
13325 )
13326 {
13327 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13328 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13329 if (_token == NULL) {
13330 D(p->level--);
13331 return NULL;
13332 }
13333 int _end_lineno = _token->end_lineno;
13334 UNUSED(_end_lineno); // Only used by EXTRA macro
13335 int _end_col_offset = _token->end_col_offset;
13336 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013337 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013338 if (_res == NULL && PyErr_Occurred()) {
13339 p->error_indicator = 1;
13340 D(p->level--);
13341 return NULL;
13342 }
13343 goto done;
13344 }
13345 p->mark = _mark;
13346 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13348 }
13349 { // term '/' factor
13350 if (p->error_indicator) {
13351 D(p->level--);
13352 return NULL;
13353 }
13354 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13355 Token * _literal;
13356 expr_ty a;
13357 expr_ty b;
13358 if (
13359 (a = term_rule(p)) // term
13360 &&
13361 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13362 &&
13363 (b = factor_rule(p)) // factor
13364 )
13365 {
13366 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13367 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13368 if (_token == NULL) {
13369 D(p->level--);
13370 return NULL;
13371 }
13372 int _end_lineno = _token->end_lineno;
13373 UNUSED(_end_lineno); // Only used by EXTRA macro
13374 int _end_col_offset = _token->end_col_offset;
13375 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013376 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013377 if (_res == NULL && PyErr_Occurred()) {
13378 p->error_indicator = 1;
13379 D(p->level--);
13380 return NULL;
13381 }
13382 goto done;
13383 }
13384 p->mark = _mark;
13385 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13387 }
13388 { // term '//' factor
13389 if (p->error_indicator) {
13390 D(p->level--);
13391 return NULL;
13392 }
13393 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13394 Token * _literal;
13395 expr_ty a;
13396 expr_ty b;
13397 if (
13398 (a = term_rule(p)) // term
13399 &&
13400 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13401 &&
13402 (b = factor_rule(p)) // factor
13403 )
13404 {
13405 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13406 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13407 if (_token == NULL) {
13408 D(p->level--);
13409 return NULL;
13410 }
13411 int _end_lineno = _token->end_lineno;
13412 UNUSED(_end_lineno); // Only used by EXTRA macro
13413 int _end_col_offset = _token->end_col_offset;
13414 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013415 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013416 if (_res == NULL && PyErr_Occurred()) {
13417 p->error_indicator = 1;
13418 D(p->level--);
13419 return NULL;
13420 }
13421 goto done;
13422 }
13423 p->mark = _mark;
13424 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13426 }
13427 { // term '%' factor
13428 if (p->error_indicator) {
13429 D(p->level--);
13430 return NULL;
13431 }
13432 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13433 Token * _literal;
13434 expr_ty a;
13435 expr_ty b;
13436 if (
13437 (a = term_rule(p)) // term
13438 &&
13439 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13440 &&
13441 (b = factor_rule(p)) // factor
13442 )
13443 {
13444 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13445 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13446 if (_token == NULL) {
13447 D(p->level--);
13448 return NULL;
13449 }
13450 int _end_lineno = _token->end_lineno;
13451 UNUSED(_end_lineno); // Only used by EXTRA macro
13452 int _end_col_offset = _token->end_col_offset;
13453 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013454 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013455 if (_res == NULL && PyErr_Occurred()) {
13456 p->error_indicator = 1;
13457 D(p->level--);
13458 return NULL;
13459 }
13460 goto done;
13461 }
13462 p->mark = _mark;
13463 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13465 }
13466 { // term '@' factor
13467 if (p->error_indicator) {
13468 D(p->level--);
13469 return NULL;
13470 }
13471 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13472 Token * _literal;
13473 expr_ty a;
13474 expr_ty b;
13475 if (
13476 (a = term_rule(p)) // term
13477 &&
13478 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13479 &&
13480 (b = factor_rule(p)) // factor
13481 )
13482 {
13483 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13484 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13485 if (_token == NULL) {
13486 D(p->level--);
13487 return NULL;
13488 }
13489 int _end_lineno = _token->end_lineno;
13490 UNUSED(_end_lineno); // Only used by EXTRA macro
13491 int _end_col_offset = _token->end_col_offset;
13492 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013493 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013494 if (_res == NULL && PyErr_Occurred()) {
13495 p->error_indicator = 1;
13496 D(p->level--);
13497 return NULL;
13498 }
13499 goto done;
13500 }
13501 p->mark = _mark;
13502 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13504 }
13505 { // factor
13506 if (p->error_indicator) {
13507 D(p->level--);
13508 return NULL;
13509 }
13510 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13511 expr_ty factor_var;
13512 if (
13513 (factor_var = factor_rule(p)) // factor
13514 )
13515 {
13516 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13517 _res = factor_var;
13518 goto done;
13519 }
13520 p->mark = _mark;
13521 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13523 }
13524 _res = NULL;
13525 done:
13526 D(p->level--);
13527 return _res;
13528}
13529
13530// factor: '+' factor | '-' factor | '~' factor | power
13531static expr_ty
13532factor_rule(Parser *p)
13533{
13534 D(p->level++);
13535 if (p->error_indicator) {
13536 D(p->level--);
13537 return NULL;
13538 }
13539 expr_ty _res = NULL;
13540 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13541 D(p->level--);
13542 return _res;
13543 }
13544 int _mark = p->mark;
13545 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13546 p->error_indicator = 1;
13547 D(p->level--);
13548 return NULL;
13549 }
13550 int _start_lineno = p->tokens[_mark]->lineno;
13551 UNUSED(_start_lineno); // Only used by EXTRA macro
13552 int _start_col_offset = p->tokens[_mark]->col_offset;
13553 UNUSED(_start_col_offset); // Only used by EXTRA macro
13554 { // '+' factor
13555 if (p->error_indicator) {
13556 D(p->level--);
13557 return NULL;
13558 }
13559 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13560 Token * _literal;
13561 expr_ty a;
13562 if (
13563 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13564 &&
13565 (a = factor_rule(p)) // factor
13566 )
13567 {
13568 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13569 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13570 if (_token == NULL) {
13571 D(p->level--);
13572 return NULL;
13573 }
13574 int _end_lineno = _token->end_lineno;
13575 UNUSED(_end_lineno); // Only used by EXTRA macro
13576 int _end_col_offset = _token->end_col_offset;
13577 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013578 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013579 if (_res == NULL && PyErr_Occurred()) {
13580 p->error_indicator = 1;
13581 D(p->level--);
13582 return NULL;
13583 }
13584 goto done;
13585 }
13586 p->mark = _mark;
13587 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13589 }
13590 { // '-' factor
13591 if (p->error_indicator) {
13592 D(p->level--);
13593 return NULL;
13594 }
13595 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13596 Token * _literal;
13597 expr_ty a;
13598 if (
13599 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13600 &&
13601 (a = factor_rule(p)) // factor
13602 )
13603 {
13604 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13605 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13606 if (_token == NULL) {
13607 D(p->level--);
13608 return NULL;
13609 }
13610 int _end_lineno = _token->end_lineno;
13611 UNUSED(_end_lineno); // Only used by EXTRA macro
13612 int _end_col_offset = _token->end_col_offset;
13613 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013614 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013615 if (_res == NULL && PyErr_Occurred()) {
13616 p->error_indicator = 1;
13617 D(p->level--);
13618 return NULL;
13619 }
13620 goto done;
13621 }
13622 p->mark = _mark;
13623 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13625 }
13626 { // '~' factor
13627 if (p->error_indicator) {
13628 D(p->level--);
13629 return NULL;
13630 }
13631 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13632 Token * _literal;
13633 expr_ty a;
13634 if (
13635 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13636 &&
13637 (a = factor_rule(p)) // factor
13638 )
13639 {
13640 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13641 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13642 if (_token == NULL) {
13643 D(p->level--);
13644 return NULL;
13645 }
13646 int _end_lineno = _token->end_lineno;
13647 UNUSED(_end_lineno); // Only used by EXTRA macro
13648 int _end_col_offset = _token->end_col_offset;
13649 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013650 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013651 if (_res == NULL && PyErr_Occurred()) {
13652 p->error_indicator = 1;
13653 D(p->level--);
13654 return NULL;
13655 }
13656 goto done;
13657 }
13658 p->mark = _mark;
13659 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13661 }
13662 { // power
13663 if (p->error_indicator) {
13664 D(p->level--);
13665 return NULL;
13666 }
13667 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13668 expr_ty power_var;
13669 if (
13670 (power_var = power_rule(p)) // power
13671 )
13672 {
13673 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13674 _res = power_var;
13675 goto done;
13676 }
13677 p->mark = _mark;
13678 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13680 }
13681 _res = NULL;
13682 done:
13683 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13684 D(p->level--);
13685 return _res;
13686}
13687
13688// power: await_primary '**' factor | await_primary
13689static expr_ty
13690power_rule(Parser *p)
13691{
13692 D(p->level++);
13693 if (p->error_indicator) {
13694 D(p->level--);
13695 return NULL;
13696 }
13697 expr_ty _res = NULL;
13698 int _mark = p->mark;
13699 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13700 p->error_indicator = 1;
13701 D(p->level--);
13702 return NULL;
13703 }
13704 int _start_lineno = p->tokens[_mark]->lineno;
13705 UNUSED(_start_lineno); // Only used by EXTRA macro
13706 int _start_col_offset = p->tokens[_mark]->col_offset;
13707 UNUSED(_start_col_offset); // Only used by EXTRA macro
13708 { // await_primary '**' factor
13709 if (p->error_indicator) {
13710 D(p->level--);
13711 return NULL;
13712 }
13713 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13714 Token * _literal;
13715 expr_ty a;
13716 expr_ty b;
13717 if (
13718 (a = await_primary_rule(p)) // await_primary
13719 &&
13720 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13721 &&
13722 (b = factor_rule(p)) // factor
13723 )
13724 {
13725 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13726 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13727 if (_token == NULL) {
13728 D(p->level--);
13729 return NULL;
13730 }
13731 int _end_lineno = _token->end_lineno;
13732 UNUSED(_end_lineno); // Only used by EXTRA macro
13733 int _end_col_offset = _token->end_col_offset;
13734 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013735 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013736 if (_res == NULL && PyErr_Occurred()) {
13737 p->error_indicator = 1;
13738 D(p->level--);
13739 return NULL;
13740 }
13741 goto done;
13742 }
13743 p->mark = _mark;
13744 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13746 }
13747 { // await_primary
13748 if (p->error_indicator) {
13749 D(p->level--);
13750 return NULL;
13751 }
13752 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13753 expr_ty await_primary_var;
13754 if (
13755 (await_primary_var = await_primary_rule(p)) // await_primary
13756 )
13757 {
13758 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13759 _res = await_primary_var;
13760 goto done;
13761 }
13762 p->mark = _mark;
13763 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13765 }
13766 _res = NULL;
13767 done:
13768 D(p->level--);
13769 return _res;
13770}
13771
13772// await_primary: AWAIT primary | primary
13773static expr_ty
13774await_primary_rule(Parser *p)
13775{
13776 D(p->level++);
13777 if (p->error_indicator) {
13778 D(p->level--);
13779 return NULL;
13780 }
13781 expr_ty _res = NULL;
13782 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13783 D(p->level--);
13784 return _res;
13785 }
13786 int _mark = p->mark;
13787 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13788 p->error_indicator = 1;
13789 D(p->level--);
13790 return NULL;
13791 }
13792 int _start_lineno = p->tokens[_mark]->lineno;
13793 UNUSED(_start_lineno); // Only used by EXTRA macro
13794 int _start_col_offset = p->tokens[_mark]->col_offset;
13795 UNUSED(_start_col_offset); // Only used by EXTRA macro
13796 { // AWAIT primary
13797 if (p->error_indicator) {
13798 D(p->level--);
13799 return NULL;
13800 }
13801 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13802 expr_ty a;
13803 Token * await_var;
13804 if (
13805 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13806 &&
13807 (a = primary_rule(p)) // primary
13808 )
13809 {
13810 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13811 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13812 if (_token == NULL) {
13813 D(p->level--);
13814 return NULL;
13815 }
13816 int _end_lineno = _token->end_lineno;
13817 UNUSED(_end_lineno); // Only used by EXTRA macro
13818 int _end_col_offset = _token->end_col_offset;
13819 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013820 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013821 if (_res == NULL && PyErr_Occurred()) {
13822 p->error_indicator = 1;
13823 D(p->level--);
13824 return NULL;
13825 }
13826 goto done;
13827 }
13828 p->mark = _mark;
13829 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13831 }
13832 { // primary
13833 if (p->error_indicator) {
13834 D(p->level--);
13835 return NULL;
13836 }
13837 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13838 expr_ty primary_var;
13839 if (
13840 (primary_var = primary_rule(p)) // primary
13841 )
13842 {
13843 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13844 _res = primary_var;
13845 goto done;
13846 }
13847 p->mark = _mark;
13848 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13850 }
13851 _res = NULL;
13852 done:
13853 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13854 D(p->level--);
13855 return _res;
13856}
13857
13858// Left-recursive
13859// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013860// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013861// | primary '.' NAME
13862// | primary genexp
13863// | primary '(' arguments? ')'
13864// | primary '[' slices ']'
13865// | atom
13866static expr_ty primary_raw(Parser *);
13867static expr_ty
13868primary_rule(Parser *p)
13869{
13870 D(p->level++);
13871 expr_ty _res = NULL;
13872 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13873 D(p->level--);
13874 return _res;
13875 }
13876 int _mark = p->mark;
13877 int _resmark = p->mark;
13878 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013879 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13880 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013881 D(p->level--);
13882 return _res;
13883 }
13884 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013885 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013886 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013887 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013888 if (p->error_indicator)
13889 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013890 if (_raw == NULL || p->mark <= _resmark)
13891 break;
13892 _resmark = p->mark;
13893 _res = _raw;
13894 }
13895 p->mark = _resmark;
13896 D(p->level--);
13897 return _res;
13898}
13899static expr_ty
13900primary_raw(Parser *p)
13901{
13902 D(p->level++);
13903 if (p->error_indicator) {
13904 D(p->level--);
13905 return NULL;
13906 }
13907 expr_ty _res = NULL;
13908 int _mark = p->mark;
13909 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13910 p->error_indicator = 1;
13911 D(p->level--);
13912 return NULL;
13913 }
13914 int _start_lineno = p->tokens[_mark]->lineno;
13915 UNUSED(_start_lineno); // Only used by EXTRA macro
13916 int _start_col_offset = p->tokens[_mark]->col_offset;
13917 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013918 if (p->call_invalid_rules) { // invalid_primary
13919 if (p->error_indicator) {
13920 D(p->level--);
13921 return NULL;
13922 }
13923 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13924 void *invalid_primary_var;
13925 if (
13926 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13927 )
13928 {
13929 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13930 _res = invalid_primary_var;
13931 goto done;
13932 }
13933 p->mark = _mark;
13934 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13936 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013937 { // primary '.' NAME
13938 if (p->error_indicator) {
13939 D(p->level--);
13940 return NULL;
13941 }
13942 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13943 Token * _literal;
13944 expr_ty a;
13945 expr_ty b;
13946 if (
13947 (a = primary_rule(p)) // primary
13948 &&
13949 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13950 &&
13951 (b = _PyPegen_name_token(p)) // NAME
13952 )
13953 {
13954 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13955 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13956 if (_token == NULL) {
13957 D(p->level--);
13958 return NULL;
13959 }
13960 int _end_lineno = _token->end_lineno;
13961 UNUSED(_end_lineno); // Only used by EXTRA macro
13962 int _end_col_offset = _token->end_col_offset;
13963 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013964 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013965 if (_res == NULL && PyErr_Occurred()) {
13966 p->error_indicator = 1;
13967 D(p->level--);
13968 return NULL;
13969 }
13970 goto done;
13971 }
13972 p->mark = _mark;
13973 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13975 }
13976 { // primary genexp
13977 if (p->error_indicator) {
13978 D(p->level--);
13979 return NULL;
13980 }
13981 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13982 expr_ty a;
13983 expr_ty b;
13984 if (
13985 (a = primary_rule(p)) // primary
13986 &&
13987 (b = genexp_rule(p)) // genexp
13988 )
13989 {
13990 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13991 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13992 if (_token == NULL) {
13993 D(p->level--);
13994 return NULL;
13995 }
13996 int _end_lineno = _token->end_lineno;
13997 UNUSED(_end_lineno); // Only used by EXTRA macro
13998 int _end_col_offset = _token->end_col_offset;
13999 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014000 _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 +010014001 if (_res == NULL && PyErr_Occurred()) {
14002 p->error_indicator = 1;
14003 D(p->level--);
14004 return NULL;
14005 }
14006 goto done;
14007 }
14008 p->mark = _mark;
14009 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14010 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
14011 }
14012 { // primary '(' arguments? ')'
14013 if (p->error_indicator) {
14014 D(p->level--);
14015 return NULL;
14016 }
14017 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14018 Token * _literal;
14019 Token * _literal_1;
14020 expr_ty a;
14021 void *b;
14022 if (
14023 (a = primary_rule(p)) // primary
14024 &&
14025 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14026 &&
14027 (b = arguments_rule(p), 1) // arguments?
14028 &&
14029 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14030 )
14031 {
14032 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14033 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14034 if (_token == NULL) {
14035 D(p->level--);
14036 return NULL;
14037 }
14038 int _end_lineno = _token->end_lineno;
14039 UNUSED(_end_lineno); // Only used by EXTRA macro
14040 int _end_col_offset = _token->end_col_offset;
14041 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014042 _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 +010014043 if (_res == NULL && PyErr_Occurred()) {
14044 p->error_indicator = 1;
14045 D(p->level--);
14046 return NULL;
14047 }
14048 goto done;
14049 }
14050 p->mark = _mark;
14051 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14053 }
14054 { // primary '[' slices ']'
14055 if (p->error_indicator) {
14056 D(p->level--);
14057 return NULL;
14058 }
14059 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14060 Token * _literal;
14061 Token * _literal_1;
14062 expr_ty a;
14063 expr_ty b;
14064 if (
14065 (a = primary_rule(p)) // primary
14066 &&
14067 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14068 &&
14069 (b = slices_rule(p)) // slices
14070 &&
14071 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14072 )
14073 {
14074 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14076 if (_token == NULL) {
14077 D(p->level--);
14078 return NULL;
14079 }
14080 int _end_lineno = _token->end_lineno;
14081 UNUSED(_end_lineno); // Only used by EXTRA macro
14082 int _end_col_offset = _token->end_col_offset;
14083 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014084 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014085 if (_res == NULL && PyErr_Occurred()) {
14086 p->error_indicator = 1;
14087 D(p->level--);
14088 return NULL;
14089 }
14090 goto done;
14091 }
14092 p->mark = _mark;
14093 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14095 }
14096 { // atom
14097 if (p->error_indicator) {
14098 D(p->level--);
14099 return NULL;
14100 }
14101 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14102 expr_ty atom_var;
14103 if (
14104 (atom_var = atom_rule(p)) // atom
14105 )
14106 {
14107 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14108 _res = atom_var;
14109 goto done;
14110 }
14111 p->mark = _mark;
14112 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14114 }
14115 _res = NULL;
14116 done:
14117 D(p->level--);
14118 return _res;
14119}
14120
14121// slices: slice !',' | ','.slice+ ','?
14122static expr_ty
14123slices_rule(Parser *p)
14124{
14125 D(p->level++);
14126 if (p->error_indicator) {
14127 D(p->level--);
14128 return NULL;
14129 }
14130 expr_ty _res = NULL;
14131 int _mark = p->mark;
14132 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14133 p->error_indicator = 1;
14134 D(p->level--);
14135 return NULL;
14136 }
14137 int _start_lineno = p->tokens[_mark]->lineno;
14138 UNUSED(_start_lineno); // Only used by EXTRA macro
14139 int _start_col_offset = p->tokens[_mark]->col_offset;
14140 UNUSED(_start_col_offset); // Only used by EXTRA macro
14141 { // slice !','
14142 if (p->error_indicator) {
14143 D(p->level--);
14144 return NULL;
14145 }
14146 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14147 expr_ty a;
14148 if (
14149 (a = slice_rule(p)) // slice
14150 &&
14151 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14152 )
14153 {
14154 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14155 _res = a;
14156 if (_res == NULL && PyErr_Occurred()) {
14157 p->error_indicator = 1;
14158 D(p->level--);
14159 return NULL;
14160 }
14161 goto done;
14162 }
14163 p->mark = _mark;
14164 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14166 }
14167 { // ','.slice+ ','?
14168 if (p->error_indicator) {
14169 D(p->level--);
14170 return NULL;
14171 }
14172 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14173 void *_opt_var;
14174 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014175 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014176 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014177 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014178 &&
14179 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14180 )
14181 {
14182 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14183 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14184 if (_token == NULL) {
14185 D(p->level--);
14186 return NULL;
14187 }
14188 int _end_lineno = _token->end_lineno;
14189 UNUSED(_end_lineno); // Only used by EXTRA macro
14190 int _end_col_offset = _token->end_col_offset;
14191 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014192 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014193 if (_res == NULL && PyErr_Occurred()) {
14194 p->error_indicator = 1;
14195 D(p->level--);
14196 return NULL;
14197 }
14198 goto done;
14199 }
14200 p->mark = _mark;
14201 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14203 }
14204 _res = NULL;
14205 done:
14206 D(p->level--);
14207 return _res;
14208}
14209
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014210// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014211static expr_ty
14212slice_rule(Parser *p)
14213{
14214 D(p->level++);
14215 if (p->error_indicator) {
14216 D(p->level--);
14217 return NULL;
14218 }
14219 expr_ty _res = NULL;
14220 int _mark = p->mark;
14221 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14222 p->error_indicator = 1;
14223 D(p->level--);
14224 return NULL;
14225 }
14226 int _start_lineno = p->tokens[_mark]->lineno;
14227 UNUSED(_start_lineno); // Only used by EXTRA macro
14228 int _start_col_offset = p->tokens[_mark]->col_offset;
14229 UNUSED(_start_col_offset); // Only used by EXTRA macro
14230 { // expression? ':' expression? [':' expression?]
14231 if (p->error_indicator) {
14232 D(p->level--);
14233 return NULL;
14234 }
14235 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14236 Token * _literal;
14237 void *a;
14238 void *b;
14239 void *c;
14240 if (
14241 (a = expression_rule(p), 1) // expression?
14242 &&
14243 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14244 &&
14245 (b = expression_rule(p), 1) // expression?
14246 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014247 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014248 )
14249 {
14250 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14251 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14252 if (_token == NULL) {
14253 D(p->level--);
14254 return NULL;
14255 }
14256 int _end_lineno = _token->end_lineno;
14257 UNUSED(_end_lineno); // Only used by EXTRA macro
14258 int _end_col_offset = _token->end_col_offset;
14259 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014260 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014261 if (_res == NULL && PyErr_Occurred()) {
14262 p->error_indicator = 1;
14263 D(p->level--);
14264 return NULL;
14265 }
14266 goto done;
14267 }
14268 p->mark = _mark;
14269 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14271 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014272 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014273 if (p->error_indicator) {
14274 D(p->level--);
14275 return NULL;
14276 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014277 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014278 expr_ty a;
14279 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014280 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014281 )
14282 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014283 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014284 _res = a;
14285 if (_res == NULL && PyErr_Occurred()) {
14286 p->error_indicator = 1;
14287 D(p->level--);
14288 return NULL;
14289 }
14290 goto done;
14291 }
14292 p->mark = _mark;
14293 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014295 }
14296 _res = NULL;
14297 done:
14298 D(p->level--);
14299 return _res;
14300}
14301
14302// atom:
14303// | NAME
14304// | 'True'
14305// | 'False'
14306// | 'None'
14307// | &STRING strings
14308// | NUMBER
14309// | &'(' (tuple | group | genexp)
14310// | &'[' (list | listcomp)
14311// | &'{' (dict | set | dictcomp | setcomp)
14312// | '...'
14313static expr_ty
14314atom_rule(Parser *p)
14315{
14316 D(p->level++);
14317 if (p->error_indicator) {
14318 D(p->level--);
14319 return NULL;
14320 }
14321 expr_ty _res = NULL;
14322 int _mark = p->mark;
14323 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14324 p->error_indicator = 1;
14325 D(p->level--);
14326 return NULL;
14327 }
14328 int _start_lineno = p->tokens[_mark]->lineno;
14329 UNUSED(_start_lineno); // Only used by EXTRA macro
14330 int _start_col_offset = p->tokens[_mark]->col_offset;
14331 UNUSED(_start_col_offset); // Only used by EXTRA macro
14332 { // NAME
14333 if (p->error_indicator) {
14334 D(p->level--);
14335 return NULL;
14336 }
14337 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14338 expr_ty name_var;
14339 if (
14340 (name_var = _PyPegen_name_token(p)) // NAME
14341 )
14342 {
14343 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14344 _res = name_var;
14345 goto done;
14346 }
14347 p->mark = _mark;
14348 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14350 }
14351 { // 'True'
14352 if (p->error_indicator) {
14353 D(p->level--);
14354 return NULL;
14355 }
14356 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14357 Token * _keyword;
14358 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014359 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014360 )
14361 {
14362 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14363 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14364 if (_token == NULL) {
14365 D(p->level--);
14366 return NULL;
14367 }
14368 int _end_lineno = _token->end_lineno;
14369 UNUSED(_end_lineno); // Only used by EXTRA macro
14370 int _end_col_offset = _token->end_col_offset;
14371 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014372 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014373 if (_res == NULL && PyErr_Occurred()) {
14374 p->error_indicator = 1;
14375 D(p->level--);
14376 return NULL;
14377 }
14378 goto done;
14379 }
14380 p->mark = _mark;
14381 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14383 }
14384 { // 'False'
14385 if (p->error_indicator) {
14386 D(p->level--);
14387 return NULL;
14388 }
14389 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14390 Token * _keyword;
14391 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014392 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014393 )
14394 {
14395 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14396 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14397 if (_token == NULL) {
14398 D(p->level--);
14399 return NULL;
14400 }
14401 int _end_lineno = _token->end_lineno;
14402 UNUSED(_end_lineno); // Only used by EXTRA macro
14403 int _end_col_offset = _token->end_col_offset;
14404 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014405 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014406 if (_res == NULL && PyErr_Occurred()) {
14407 p->error_indicator = 1;
14408 D(p->level--);
14409 return NULL;
14410 }
14411 goto done;
14412 }
14413 p->mark = _mark;
14414 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14416 }
14417 { // 'None'
14418 if (p->error_indicator) {
14419 D(p->level--);
14420 return NULL;
14421 }
14422 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14423 Token * _keyword;
14424 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014425 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014426 )
14427 {
14428 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14429 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14430 if (_token == NULL) {
14431 D(p->level--);
14432 return NULL;
14433 }
14434 int _end_lineno = _token->end_lineno;
14435 UNUSED(_end_lineno); // Only used by EXTRA macro
14436 int _end_col_offset = _token->end_col_offset;
14437 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014438 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014439 if (_res == NULL && PyErr_Occurred()) {
14440 p->error_indicator = 1;
14441 D(p->level--);
14442 return NULL;
14443 }
14444 goto done;
14445 }
14446 p->mark = _mark;
14447 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14449 }
14450 { // &STRING strings
14451 if (p->error_indicator) {
14452 D(p->level--);
14453 return NULL;
14454 }
14455 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14456 expr_ty strings_var;
14457 if (
14458 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14459 &&
14460 (strings_var = strings_rule(p)) // strings
14461 )
14462 {
14463 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14464 _res = strings_var;
14465 goto done;
14466 }
14467 p->mark = _mark;
14468 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14470 }
14471 { // NUMBER
14472 if (p->error_indicator) {
14473 D(p->level--);
14474 return NULL;
14475 }
14476 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14477 expr_ty number_var;
14478 if (
14479 (number_var = _PyPegen_number_token(p)) // NUMBER
14480 )
14481 {
14482 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14483 _res = number_var;
14484 goto done;
14485 }
14486 p->mark = _mark;
14487 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14489 }
14490 { // &'(' (tuple | group | genexp)
14491 if (p->error_indicator) {
14492 D(p->level--);
14493 return NULL;
14494 }
14495 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014496 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014497 if (
14498 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14499 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014500 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014501 )
14502 {
14503 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 -080014504 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014505 goto done;
14506 }
14507 p->mark = _mark;
14508 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14509 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14510 }
14511 { // &'[' (list | listcomp)
14512 if (p->error_indicator) {
14513 D(p->level--);
14514 return NULL;
14515 }
14516 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014517 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014518 if (
14519 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14520 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014521 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014522 )
14523 {
14524 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014525 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014526 goto done;
14527 }
14528 p->mark = _mark;
14529 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14531 }
14532 { // &'{' (dict | set | dictcomp | setcomp)
14533 if (p->error_indicator) {
14534 D(p->level--);
14535 return NULL;
14536 }
14537 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 -080014538 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014539 if (
14540 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14541 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014542 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014543 )
14544 {
14545 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 -080014546 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014547 goto done;
14548 }
14549 p->mark = _mark;
14550 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14552 }
14553 { // '...'
14554 if (p->error_indicator) {
14555 D(p->level--);
14556 return NULL;
14557 }
14558 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14559 Token * _literal;
14560 if (
14561 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14562 )
14563 {
14564 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14565 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14566 if (_token == NULL) {
14567 D(p->level--);
14568 return NULL;
14569 }
14570 int _end_lineno = _token->end_lineno;
14571 UNUSED(_end_lineno); // Only used by EXTRA macro
14572 int _end_col_offset = _token->end_col_offset;
14573 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014574 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014575 if (_res == NULL && PyErr_Occurred()) {
14576 p->error_indicator = 1;
14577 D(p->level--);
14578 return NULL;
14579 }
14580 goto done;
14581 }
14582 p->mark = _mark;
14583 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14585 }
14586 _res = NULL;
14587 done:
14588 D(p->level--);
14589 return _res;
14590}
14591
14592// strings: STRING+
14593static expr_ty
14594strings_rule(Parser *p)
14595{
14596 D(p->level++);
14597 if (p->error_indicator) {
14598 D(p->level--);
14599 return NULL;
14600 }
14601 expr_ty _res = NULL;
14602 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14603 D(p->level--);
14604 return _res;
14605 }
14606 int _mark = p->mark;
14607 { // STRING+
14608 if (p->error_indicator) {
14609 D(p->level--);
14610 return NULL;
14611 }
14612 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14613 asdl_seq * a;
14614 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014615 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014616 )
14617 {
14618 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14619 _res = _PyPegen_concatenate_strings ( p , a );
14620 if (_res == NULL && PyErr_Occurred()) {
14621 p->error_indicator = 1;
14622 D(p->level--);
14623 return NULL;
14624 }
14625 goto done;
14626 }
14627 p->mark = _mark;
14628 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14630 }
14631 _res = NULL;
14632 done:
14633 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14634 D(p->level--);
14635 return _res;
14636}
14637
14638// list: '[' star_named_expressions? ']'
14639static expr_ty
14640list_rule(Parser *p)
14641{
14642 D(p->level++);
14643 if (p->error_indicator) {
14644 D(p->level--);
14645 return NULL;
14646 }
14647 expr_ty _res = NULL;
14648 int _mark = p->mark;
14649 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14650 p->error_indicator = 1;
14651 D(p->level--);
14652 return NULL;
14653 }
14654 int _start_lineno = p->tokens[_mark]->lineno;
14655 UNUSED(_start_lineno); // Only used by EXTRA macro
14656 int _start_col_offset = p->tokens[_mark]->col_offset;
14657 UNUSED(_start_col_offset); // Only used by EXTRA macro
14658 { // '[' star_named_expressions? ']'
14659 if (p->error_indicator) {
14660 D(p->level--);
14661 return NULL;
14662 }
14663 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14664 Token * _literal;
14665 Token * _literal_1;
14666 void *a;
14667 if (
14668 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14669 &&
14670 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14671 &&
14672 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14673 )
14674 {
14675 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14676 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14677 if (_token == NULL) {
14678 D(p->level--);
14679 return NULL;
14680 }
14681 int _end_lineno = _token->end_lineno;
14682 UNUSED(_end_lineno); // Only used by EXTRA macro
14683 int _end_col_offset = _token->end_col_offset;
14684 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014685 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014686 if (_res == NULL && PyErr_Occurred()) {
14687 p->error_indicator = 1;
14688 D(p->level--);
14689 return NULL;
14690 }
14691 goto done;
14692 }
14693 p->mark = _mark;
14694 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14696 }
14697 _res = NULL;
14698 done:
14699 D(p->level--);
14700 return _res;
14701}
14702
Pablo Galindo835f14f2021-01-31 22:52:56 +000014703// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014704static expr_ty
14705listcomp_rule(Parser *p)
14706{
14707 D(p->level++);
14708 if (p->error_indicator) {
14709 D(p->level--);
14710 return NULL;
14711 }
14712 expr_ty _res = NULL;
14713 int _mark = p->mark;
14714 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14715 p->error_indicator = 1;
14716 D(p->level--);
14717 return NULL;
14718 }
14719 int _start_lineno = p->tokens[_mark]->lineno;
14720 UNUSED(_start_lineno); // Only used by EXTRA macro
14721 int _start_col_offset = p->tokens[_mark]->col_offset;
14722 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014723 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014724 if (p->error_indicator) {
14725 D(p->level--);
14726 return NULL;
14727 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014728 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 +010014729 Token * _literal;
14730 Token * _literal_1;
14731 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014732 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014733 if (
14734 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14735 &&
14736 (a = named_expression_rule(p)) // named_expression
14737 &&
14738 (b = for_if_clauses_rule(p)) // for_if_clauses
14739 &&
14740 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14741 )
14742 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014743 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 +010014744 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14745 if (_token == NULL) {
14746 D(p->level--);
14747 return NULL;
14748 }
14749 int _end_lineno = _token->end_lineno;
14750 UNUSED(_end_lineno); // Only used by EXTRA macro
14751 int _end_col_offset = _token->end_col_offset;
14752 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014753 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014754 if (_res == NULL && PyErr_Occurred()) {
14755 p->error_indicator = 1;
14756 D(p->level--);
14757 return NULL;
14758 }
14759 goto done;
14760 }
14761 p->mark = _mark;
14762 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014764 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014765 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014766 if (p->error_indicator) {
14767 D(p->level--);
14768 return NULL;
14769 }
14770 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14771 void *invalid_comprehension_var;
14772 if (
14773 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14774 )
14775 {
14776 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14777 _res = invalid_comprehension_var;
14778 goto done;
14779 }
14780 p->mark = _mark;
14781 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14783 }
14784 _res = NULL;
14785 done:
14786 D(p->level--);
14787 return _res;
14788}
14789
14790// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14791static expr_ty
14792tuple_rule(Parser *p)
14793{
14794 D(p->level++);
14795 if (p->error_indicator) {
14796 D(p->level--);
14797 return NULL;
14798 }
14799 expr_ty _res = NULL;
14800 int _mark = p->mark;
14801 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14802 p->error_indicator = 1;
14803 D(p->level--);
14804 return NULL;
14805 }
14806 int _start_lineno = p->tokens[_mark]->lineno;
14807 UNUSED(_start_lineno); // Only used by EXTRA macro
14808 int _start_col_offset = p->tokens[_mark]->col_offset;
14809 UNUSED(_start_col_offset); // Only used by EXTRA macro
14810 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14811 if (p->error_indicator) {
14812 D(p->level--);
14813 return NULL;
14814 }
14815 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14816 Token * _literal;
14817 Token * _literal_1;
14818 void *a;
14819 if (
14820 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14821 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014822 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014823 &&
14824 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14825 )
14826 {
14827 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14828 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14829 if (_token == NULL) {
14830 D(p->level--);
14831 return NULL;
14832 }
14833 int _end_lineno = _token->end_lineno;
14834 UNUSED(_end_lineno); // Only used by EXTRA macro
14835 int _end_col_offset = _token->end_col_offset;
14836 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014837 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014838 if (_res == NULL && PyErr_Occurred()) {
14839 p->error_indicator = 1;
14840 D(p->level--);
14841 return NULL;
14842 }
14843 goto done;
14844 }
14845 p->mark = _mark;
14846 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14848 }
14849 _res = NULL;
14850 done:
14851 D(p->level--);
14852 return _res;
14853}
14854
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014855// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014856static expr_ty
14857group_rule(Parser *p)
14858{
14859 D(p->level++);
14860 if (p->error_indicator) {
14861 D(p->level--);
14862 return NULL;
14863 }
14864 expr_ty _res = NULL;
14865 int _mark = p->mark;
14866 { // '(' (yield_expr | named_expression) ')'
14867 if (p->error_indicator) {
14868 D(p->level--);
14869 return NULL;
14870 }
14871 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14872 Token * _literal;
14873 Token * _literal_1;
14874 void *a;
14875 if (
14876 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14877 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014878 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014879 &&
14880 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14881 )
14882 {
14883 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14884 _res = a;
14885 if (_res == NULL && PyErr_Occurred()) {
14886 p->error_indicator = 1;
14887 D(p->level--);
14888 return NULL;
14889 }
14890 goto done;
14891 }
14892 p->mark = _mark;
14893 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14895 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014896 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014897 if (p->error_indicator) {
14898 D(p->level--);
14899 return NULL;
14900 }
14901 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14902 void *invalid_group_var;
14903 if (
14904 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14905 )
14906 {
14907 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14908 _res = invalid_group_var;
14909 goto done;
14910 }
14911 p->mark = _mark;
14912 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14914 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014915 _res = NULL;
14916 done:
14917 D(p->level--);
14918 return _res;
14919}
14920
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014921// genexp:
14922// | '(' (assigment_expression | expression !':=') for_if_clauses ')'
14923// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014924static expr_ty
14925genexp_rule(Parser *p)
14926{
14927 D(p->level++);
14928 if (p->error_indicator) {
14929 D(p->level--);
14930 return NULL;
14931 }
14932 expr_ty _res = NULL;
14933 int _mark = p->mark;
14934 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14935 p->error_indicator = 1;
14936 D(p->level--);
14937 return NULL;
14938 }
14939 int _start_lineno = p->tokens[_mark]->lineno;
14940 UNUSED(_start_lineno); // Only used by EXTRA macro
14941 int _start_col_offset = p->tokens[_mark]->col_offset;
14942 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014943 { // '(' (assigment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014944 if (p->error_indicator) {
14945 D(p->level--);
14946 return NULL;
14947 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014948 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014949 Token * _literal;
14950 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014951 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014952 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014953 if (
14954 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14955 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014956 (a = _tmp_117_rule(p)) // assigment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014957 &&
14958 (b = for_if_clauses_rule(p)) // for_if_clauses
14959 &&
14960 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14961 )
14962 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014963 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014964 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14965 if (_token == NULL) {
14966 D(p->level--);
14967 return NULL;
14968 }
14969 int _end_lineno = _token->end_lineno;
14970 UNUSED(_end_lineno); // Only used by EXTRA macro
14971 int _end_col_offset = _token->end_col_offset;
14972 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014973 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014974 if (_res == NULL && PyErr_Occurred()) {
14975 p->error_indicator = 1;
14976 D(p->level--);
14977 return NULL;
14978 }
14979 goto done;
14980 }
14981 p->mark = _mark;
14982 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014984 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014985 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014986 if (p->error_indicator) {
14987 D(p->level--);
14988 return NULL;
14989 }
14990 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14991 void *invalid_comprehension_var;
14992 if (
14993 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14994 )
14995 {
14996 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14997 _res = invalid_comprehension_var;
14998 goto done;
14999 }
15000 p->mark = _mark;
15001 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
15002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15003 }
15004 _res = NULL;
15005 done:
15006 D(p->level--);
15007 return _res;
15008}
15009
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015010// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015011static expr_ty
15012set_rule(Parser *p)
15013{
15014 D(p->level++);
15015 if (p->error_indicator) {
15016 D(p->level--);
15017 return NULL;
15018 }
15019 expr_ty _res = NULL;
15020 int _mark = p->mark;
15021 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15022 p->error_indicator = 1;
15023 D(p->level--);
15024 return NULL;
15025 }
15026 int _start_lineno = p->tokens[_mark]->lineno;
15027 UNUSED(_start_lineno); // Only used by EXTRA macro
15028 int _start_col_offset = p->tokens[_mark]->col_offset;
15029 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015030 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015031 if (p->error_indicator) {
15032 D(p->level--);
15033 return NULL;
15034 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015035 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015036 Token * _literal;
15037 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015038 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015039 if (
15040 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15041 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015042 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015043 &&
15044 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15045 )
15046 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015047 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 +010015048 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15049 if (_token == NULL) {
15050 D(p->level--);
15051 return NULL;
15052 }
15053 int _end_lineno = _token->end_lineno;
15054 UNUSED(_end_lineno); // Only used by EXTRA macro
15055 int _end_col_offset = _token->end_col_offset;
15056 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015057 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015058 if (_res == NULL && PyErr_Occurred()) {
15059 p->error_indicator = 1;
15060 D(p->level--);
15061 return NULL;
15062 }
15063 goto done;
15064 }
15065 p->mark = _mark;
15066 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015068 }
15069 _res = NULL;
15070 done:
15071 D(p->level--);
15072 return _res;
15073}
15074
Pablo Galindo835f14f2021-01-31 22:52:56 +000015075// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015076static expr_ty
15077setcomp_rule(Parser *p)
15078{
15079 D(p->level++);
15080 if (p->error_indicator) {
15081 D(p->level--);
15082 return NULL;
15083 }
15084 expr_ty _res = NULL;
15085 int _mark = p->mark;
15086 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15087 p->error_indicator = 1;
15088 D(p->level--);
15089 return NULL;
15090 }
15091 int _start_lineno = p->tokens[_mark]->lineno;
15092 UNUSED(_start_lineno); // Only used by EXTRA macro
15093 int _start_col_offset = p->tokens[_mark]->col_offset;
15094 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015095 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015096 if (p->error_indicator) {
15097 D(p->level--);
15098 return NULL;
15099 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015100 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 +010015101 Token * _literal;
15102 Token * _literal_1;
15103 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015104 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015105 if (
15106 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15107 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015108 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015109 &&
15110 (b = for_if_clauses_rule(p)) // for_if_clauses
15111 &&
15112 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15113 )
15114 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015115 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 +010015116 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15117 if (_token == NULL) {
15118 D(p->level--);
15119 return NULL;
15120 }
15121 int _end_lineno = _token->end_lineno;
15122 UNUSED(_end_lineno); // Only used by EXTRA macro
15123 int _end_col_offset = _token->end_col_offset;
15124 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015125 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015126 if (_res == NULL && PyErr_Occurred()) {
15127 p->error_indicator = 1;
15128 D(p->level--);
15129 return NULL;
15130 }
15131 goto done;
15132 }
15133 p->mark = _mark;
15134 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015136 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015137 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015138 if (p->error_indicator) {
15139 D(p->level--);
15140 return NULL;
15141 }
15142 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15143 void *invalid_comprehension_var;
15144 if (
15145 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15146 )
15147 {
15148 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15149 _res = invalid_comprehension_var;
15150 goto done;
15151 }
15152 p->mark = _mark;
15153 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15155 }
15156 _res = NULL;
15157 done:
15158 D(p->level--);
15159 return _res;
15160}
15161
Pablo Galindoda743502021-04-15 14:06:39 +010015162// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015163static expr_ty
15164dict_rule(Parser *p)
15165{
15166 D(p->level++);
15167 if (p->error_indicator) {
15168 D(p->level--);
15169 return NULL;
15170 }
15171 expr_ty _res = NULL;
15172 int _mark = p->mark;
15173 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15174 p->error_indicator = 1;
15175 D(p->level--);
15176 return NULL;
15177 }
15178 int _start_lineno = p->tokens[_mark]->lineno;
15179 UNUSED(_start_lineno); // Only used by EXTRA macro
15180 int _start_col_offset = p->tokens[_mark]->col_offset;
15181 UNUSED(_start_col_offset); // Only used by EXTRA macro
15182 { // '{' double_starred_kvpairs? '}'
15183 if (p->error_indicator) {
15184 D(p->level--);
15185 return NULL;
15186 }
15187 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15188 Token * _literal;
15189 Token * _literal_1;
15190 void *a;
15191 if (
15192 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15193 &&
15194 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15195 &&
15196 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15197 )
15198 {
15199 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15200 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15201 if (_token == NULL) {
15202 D(p->level--);
15203 return NULL;
15204 }
15205 int _end_lineno = _token->end_lineno;
15206 UNUSED(_end_lineno); // Only used by EXTRA macro
15207 int _end_col_offset = _token->end_col_offset;
15208 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015209 _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 +010015210 if (_res == NULL && PyErr_Occurred()) {
15211 p->error_indicator = 1;
15212 D(p->level--);
15213 return NULL;
15214 }
15215 goto done;
15216 }
15217 p->mark = _mark;
15218 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15220 }
Pablo Galindoda743502021-04-15 14:06:39 +010015221 { // '{' invalid_double_starred_kvpairs '}'
15222 if (p->error_indicator) {
15223 D(p->level--);
15224 return NULL;
15225 }
15226 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15227 Token * _literal;
15228 Token * _literal_1;
15229 void *invalid_double_starred_kvpairs_var;
15230 if (
15231 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15232 &&
15233 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15234 &&
15235 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15236 )
15237 {
15238 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15239 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15240 goto done;
15241 }
15242 p->mark = _mark;
15243 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15245 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015246 _res = NULL;
15247 done:
15248 D(p->level--);
15249 return _res;
15250}
15251
15252// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15253static expr_ty
15254dictcomp_rule(Parser *p)
15255{
15256 D(p->level++);
15257 if (p->error_indicator) {
15258 D(p->level--);
15259 return NULL;
15260 }
15261 expr_ty _res = NULL;
15262 int _mark = p->mark;
15263 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15264 p->error_indicator = 1;
15265 D(p->level--);
15266 return NULL;
15267 }
15268 int _start_lineno = p->tokens[_mark]->lineno;
15269 UNUSED(_start_lineno); // Only used by EXTRA macro
15270 int _start_col_offset = p->tokens[_mark]->col_offset;
15271 UNUSED(_start_col_offset); // Only used by EXTRA macro
15272 { // '{' kvpair for_if_clauses '}'
15273 if (p->error_indicator) {
15274 D(p->level--);
15275 return NULL;
15276 }
15277 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15278 Token * _literal;
15279 Token * _literal_1;
15280 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015281 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015282 if (
15283 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15284 &&
15285 (a = kvpair_rule(p)) // kvpair
15286 &&
15287 (b = for_if_clauses_rule(p)) // for_if_clauses
15288 &&
15289 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15290 )
15291 {
15292 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15293 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15294 if (_token == NULL) {
15295 D(p->level--);
15296 return NULL;
15297 }
15298 int _end_lineno = _token->end_lineno;
15299 UNUSED(_end_lineno); // Only used by EXTRA macro
15300 int _end_col_offset = _token->end_col_offset;
15301 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015302 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015303 if (_res == NULL && PyErr_Occurred()) {
15304 p->error_indicator = 1;
15305 D(p->level--);
15306 return NULL;
15307 }
15308 goto done;
15309 }
15310 p->mark = _mark;
15311 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15313 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015314 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015315 if (p->error_indicator) {
15316 D(p->level--);
15317 return NULL;
15318 }
15319 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15320 void *invalid_dict_comprehension_var;
15321 if (
15322 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15323 )
15324 {
15325 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15326 _res = invalid_dict_comprehension_var;
15327 goto done;
15328 }
15329 p->mark = _mark;
15330 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15332 }
15333 _res = NULL;
15334 done:
15335 D(p->level--);
15336 return _res;
15337}
15338
15339// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15340static asdl_seq*
15341double_starred_kvpairs_rule(Parser *p)
15342{
15343 D(p->level++);
15344 if (p->error_indicator) {
15345 D(p->level--);
15346 return NULL;
15347 }
15348 asdl_seq* _res = NULL;
15349 int _mark = p->mark;
15350 { // ','.double_starred_kvpair+ ','?
15351 if (p->error_indicator) {
15352 D(p->level--);
15353 return NULL;
15354 }
15355 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15356 void *_opt_var;
15357 UNUSED(_opt_var); // Silence compiler warnings
15358 asdl_seq * a;
15359 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015360 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015361 &&
15362 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15363 )
15364 {
15365 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15366 _res = a;
15367 if (_res == NULL && PyErr_Occurred()) {
15368 p->error_indicator = 1;
15369 D(p->level--);
15370 return NULL;
15371 }
15372 goto done;
15373 }
15374 p->mark = _mark;
15375 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15377 }
15378 _res = NULL;
15379 done:
15380 D(p->level--);
15381 return _res;
15382}
15383
15384// double_starred_kvpair: '**' bitwise_or | kvpair
15385static KeyValuePair*
15386double_starred_kvpair_rule(Parser *p)
15387{
15388 D(p->level++);
15389 if (p->error_indicator) {
15390 D(p->level--);
15391 return NULL;
15392 }
15393 KeyValuePair* _res = NULL;
15394 int _mark = p->mark;
15395 { // '**' bitwise_or
15396 if (p->error_indicator) {
15397 D(p->level--);
15398 return NULL;
15399 }
15400 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15401 Token * _literal;
15402 expr_ty a;
15403 if (
15404 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15405 &&
15406 (a = bitwise_or_rule(p)) // bitwise_or
15407 )
15408 {
15409 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15410 _res = _PyPegen_key_value_pair ( p , NULL , a );
15411 if (_res == NULL && PyErr_Occurred()) {
15412 p->error_indicator = 1;
15413 D(p->level--);
15414 return NULL;
15415 }
15416 goto done;
15417 }
15418 p->mark = _mark;
15419 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15421 }
15422 { // kvpair
15423 if (p->error_indicator) {
15424 D(p->level--);
15425 return NULL;
15426 }
15427 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15428 KeyValuePair* kvpair_var;
15429 if (
15430 (kvpair_var = kvpair_rule(p)) // kvpair
15431 )
15432 {
15433 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15434 _res = kvpair_var;
15435 goto done;
15436 }
15437 p->mark = _mark;
15438 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15440 }
15441 _res = NULL;
15442 done:
15443 D(p->level--);
15444 return _res;
15445}
15446
15447// kvpair: expression ':' expression
15448static KeyValuePair*
15449kvpair_rule(Parser *p)
15450{
15451 D(p->level++);
15452 if (p->error_indicator) {
15453 D(p->level--);
15454 return NULL;
15455 }
15456 KeyValuePair* _res = NULL;
15457 int _mark = p->mark;
15458 { // expression ':' expression
15459 if (p->error_indicator) {
15460 D(p->level--);
15461 return NULL;
15462 }
15463 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15464 Token * _literal;
15465 expr_ty a;
15466 expr_ty b;
15467 if (
15468 (a = expression_rule(p)) // expression
15469 &&
15470 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15471 &&
15472 (b = expression_rule(p)) // expression
15473 )
15474 {
15475 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15476 _res = _PyPegen_key_value_pair ( p , a , b );
15477 if (_res == NULL && PyErr_Occurred()) {
15478 p->error_indicator = 1;
15479 D(p->level--);
15480 return NULL;
15481 }
15482 goto done;
15483 }
15484 p->mark = _mark;
15485 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15486 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15487 }
15488 _res = NULL;
15489 done:
15490 D(p->level--);
15491 return _res;
15492}
15493
15494// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015495static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015496for_if_clauses_rule(Parser *p)
15497{
15498 D(p->level++);
15499 if (p->error_indicator) {
15500 D(p->level--);
15501 return NULL;
15502 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015503 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015504 int _mark = p->mark;
15505 { // for_if_clause+
15506 if (p->error_indicator) {
15507 D(p->level--);
15508 return NULL;
15509 }
15510 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 +010015511 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015512 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015513 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015514 )
15515 {
15516 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 +010015517 _res = a;
15518 if (_res == NULL && PyErr_Occurred()) {
15519 p->error_indicator = 1;
15520 D(p->level--);
15521 return NULL;
15522 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015523 goto done;
15524 }
15525 p->mark = _mark;
15526 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15528 }
15529 _res = NULL;
15530 done:
15531 D(p->level--);
15532 return _res;
15533}
15534
15535// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015536// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15537// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15538// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015539static comprehension_ty
15540for_if_clause_rule(Parser *p)
15541{
15542 D(p->level++);
15543 if (p->error_indicator) {
15544 D(p->level--);
15545 return NULL;
15546 }
15547 comprehension_ty _res = NULL;
15548 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015549 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015550 if (p->error_indicator) {
15551 D(p->level--);
15552 return NULL;
15553 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015554 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15555 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015556 Token * _keyword;
15557 Token * _keyword_1;
15558 expr_ty a;
15559 Token * async_var;
15560 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015561 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015562 if (
15563 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15564 &&
15565 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15566 &&
15567 (a = star_targets_rule(p)) // star_targets
15568 &&
15569 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15570 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015571 (_cut_var = 1)
15572 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015573 (b = disjunction_rule(p)) // disjunction
15574 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015575 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015576 )
15577 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015578 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 +020015579 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015580 if (_res == NULL && PyErr_Occurred()) {
15581 p->error_indicator = 1;
15582 D(p->level--);
15583 return NULL;
15584 }
15585 goto done;
15586 }
15587 p->mark = _mark;
15588 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15590 if (_cut_var) {
15591 D(p->level--);
15592 return NULL;
15593 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015594 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015595 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015596 if (p->error_indicator) {
15597 D(p->level--);
15598 return NULL;
15599 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015600 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15601 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015602 Token * _keyword;
15603 Token * _keyword_1;
15604 expr_ty a;
15605 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015606 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015607 if (
15608 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15609 &&
15610 (a = star_targets_rule(p)) // star_targets
15611 &&
15612 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15613 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015614 (_cut_var = 1)
15615 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015616 (b = disjunction_rule(p)) // disjunction
15617 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015618 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015619 )
15620 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015621 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 +020015622 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015623 if (_res == NULL && PyErr_Occurred()) {
15624 p->error_indicator = 1;
15625 D(p->level--);
15626 return NULL;
15627 }
15628 goto done;
15629 }
15630 p->mark = _mark;
15631 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15633 if (_cut_var) {
15634 D(p->level--);
15635 return NULL;
15636 }
15637 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015638 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015639 if (p->error_indicator) {
15640 D(p->level--);
15641 return NULL;
15642 }
15643 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15644 void *invalid_for_target_var;
15645 if (
15646 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15647 )
15648 {
15649 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15650 _res = invalid_for_target_var;
15651 goto done;
15652 }
15653 p->mark = _mark;
15654 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015656 }
15657 _res = NULL;
15658 done:
15659 D(p->level--);
15660 return _res;
15661}
15662
15663// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15664static expr_ty
15665yield_expr_rule(Parser *p)
15666{
15667 D(p->level++);
15668 if (p->error_indicator) {
15669 D(p->level--);
15670 return NULL;
15671 }
15672 expr_ty _res = NULL;
15673 int _mark = p->mark;
15674 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15675 p->error_indicator = 1;
15676 D(p->level--);
15677 return NULL;
15678 }
15679 int _start_lineno = p->tokens[_mark]->lineno;
15680 UNUSED(_start_lineno); // Only used by EXTRA macro
15681 int _start_col_offset = p->tokens[_mark]->col_offset;
15682 UNUSED(_start_col_offset); // Only used by EXTRA macro
15683 { // 'yield' 'from' expression
15684 if (p->error_indicator) {
15685 D(p->level--);
15686 return NULL;
15687 }
15688 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15689 Token * _keyword;
15690 Token * _keyword_1;
15691 expr_ty a;
15692 if (
15693 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15694 &&
15695 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15696 &&
15697 (a = expression_rule(p)) // expression
15698 )
15699 {
15700 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15701 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15702 if (_token == NULL) {
15703 D(p->level--);
15704 return NULL;
15705 }
15706 int _end_lineno = _token->end_lineno;
15707 UNUSED(_end_lineno); // Only used by EXTRA macro
15708 int _end_col_offset = _token->end_col_offset;
15709 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015710 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015711 if (_res == NULL && PyErr_Occurred()) {
15712 p->error_indicator = 1;
15713 D(p->level--);
15714 return NULL;
15715 }
15716 goto done;
15717 }
15718 p->mark = _mark;
15719 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15721 }
15722 { // 'yield' star_expressions?
15723 if (p->error_indicator) {
15724 D(p->level--);
15725 return NULL;
15726 }
15727 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15728 Token * _keyword;
15729 void *a;
15730 if (
15731 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15732 &&
15733 (a = star_expressions_rule(p), 1) // star_expressions?
15734 )
15735 {
15736 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15737 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15738 if (_token == NULL) {
15739 D(p->level--);
15740 return NULL;
15741 }
15742 int _end_lineno = _token->end_lineno;
15743 UNUSED(_end_lineno); // Only used by EXTRA macro
15744 int _end_col_offset = _token->end_col_offset;
15745 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015746 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015747 if (_res == NULL && PyErr_Occurred()) {
15748 p->error_indicator = 1;
15749 D(p->level--);
15750 return NULL;
15751 }
15752 goto done;
15753 }
15754 p->mark = _mark;
15755 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15757 }
15758 _res = NULL;
15759 done:
15760 D(p->level--);
15761 return _res;
15762}
15763
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015764// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015765static expr_ty
15766arguments_rule(Parser *p)
15767{
15768 D(p->level++);
15769 if (p->error_indicator) {
15770 D(p->level--);
15771 return NULL;
15772 }
15773 expr_ty _res = NULL;
15774 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15775 D(p->level--);
15776 return _res;
15777 }
15778 int _mark = p->mark;
15779 { // args ','? &')'
15780 if (p->error_indicator) {
15781 D(p->level--);
15782 return NULL;
15783 }
15784 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15785 void *_opt_var;
15786 UNUSED(_opt_var); // Silence compiler warnings
15787 expr_ty a;
15788 if (
15789 (a = args_rule(p)) // args
15790 &&
15791 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15792 &&
15793 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15794 )
15795 {
15796 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15797 _res = a;
15798 if (_res == NULL && PyErr_Occurred()) {
15799 p->error_indicator = 1;
15800 D(p->level--);
15801 return NULL;
15802 }
15803 goto done;
15804 }
15805 p->mark = _mark;
15806 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15808 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015809 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015810 if (p->error_indicator) {
15811 D(p->level--);
15812 return NULL;
15813 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015814 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15815 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015816 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015817 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015818 )
15819 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015820 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15821 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015822 goto done;
15823 }
15824 p->mark = _mark;
15825 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015827 }
15828 _res = NULL;
15829 done:
15830 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15831 D(p->level--);
15832 return _res;
15833}
15834
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015835// args:
15836// | ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
15837// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015838static expr_ty
15839args_rule(Parser *p)
15840{
15841 D(p->level++);
15842 if (p->error_indicator) {
15843 D(p->level--);
15844 return NULL;
15845 }
15846 expr_ty _res = NULL;
15847 int _mark = p->mark;
15848 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15849 p->error_indicator = 1;
15850 D(p->level--);
15851 return NULL;
15852 }
15853 int _start_lineno = p->tokens[_mark]->lineno;
15854 UNUSED(_start_lineno); // Only used by EXTRA macro
15855 int _start_col_offset = p->tokens[_mark]->col_offset;
15856 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015857 { // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015858 if (p->error_indicator) {
15859 D(p->level--);
15860 return NULL;
15861 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015862 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015863 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015864 void *b;
15865 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015866 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015867 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015868 (b = _tmp_125_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015869 )
15870 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015871 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015872 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15873 if (_token == NULL) {
15874 D(p->level--);
15875 return NULL;
15876 }
15877 int _end_lineno = _token->end_lineno;
15878 UNUSED(_end_lineno); // Only used by EXTRA macro
15879 int _end_col_offset = _token->end_col_offset;
15880 UNUSED(_end_col_offset); // Only used by EXTRA macro
15881 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015882 if (_res == NULL && PyErr_Occurred()) {
15883 p->error_indicator = 1;
15884 D(p->level--);
15885 return NULL;
15886 }
15887 goto done;
15888 }
15889 p->mark = _mark;
15890 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015892 }
15893 { // kwargs
15894 if (p->error_indicator) {
15895 D(p->level--);
15896 return NULL;
15897 }
15898 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15899 asdl_seq* a;
15900 if (
15901 (a = kwargs_rule(p)) // kwargs
15902 )
15903 {
15904 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15905 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15906 if (_token == NULL) {
15907 D(p->level--);
15908 return NULL;
15909 }
15910 int _end_lineno = _token->end_lineno;
15911 UNUSED(_end_lineno); // Only used by EXTRA macro
15912 int _end_col_offset = _token->end_col_offset;
15913 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015914 _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 +010015915 if (_res == NULL && PyErr_Occurred()) {
15916 p->error_indicator = 1;
15917 D(p->level--);
15918 return NULL;
15919 }
15920 goto done;
15921 }
15922 p->mark = _mark;
15923 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15925 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015926 _res = NULL;
15927 done:
15928 D(p->level--);
15929 return _res;
15930}
15931
15932// kwargs:
15933// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15934// | ','.kwarg_or_starred+
15935// | ','.kwarg_or_double_starred+
15936static asdl_seq*
15937kwargs_rule(Parser *p)
15938{
15939 D(p->level++);
15940 if (p->error_indicator) {
15941 D(p->level--);
15942 return NULL;
15943 }
15944 asdl_seq* _res = NULL;
15945 int _mark = p->mark;
15946 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15947 if (p->error_indicator) {
15948 D(p->level--);
15949 return NULL;
15950 }
15951 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15952 Token * _literal;
15953 asdl_seq * a;
15954 asdl_seq * b;
15955 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015956 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015957 &&
15958 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15959 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015960 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015961 )
15962 {
15963 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15964 _res = _PyPegen_join_sequences ( p , a , b );
15965 if (_res == NULL && PyErr_Occurred()) {
15966 p->error_indicator = 1;
15967 D(p->level--);
15968 return NULL;
15969 }
15970 goto done;
15971 }
15972 p->mark = _mark;
15973 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15975 }
15976 { // ','.kwarg_or_starred+
15977 if (p->error_indicator) {
15978 D(p->level--);
15979 return NULL;
15980 }
15981 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015982 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015983 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015984 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015985 )
15986 {
15987 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015988 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015989 goto done;
15990 }
15991 p->mark = _mark;
15992 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15994 }
15995 { // ','.kwarg_or_double_starred+
15996 if (p->error_indicator) {
15997 D(p->level--);
15998 return NULL;
15999 }
16000 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016001 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016002 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016003 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016004 )
16005 {
16006 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016007 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016008 goto done;
16009 }
16010 p->mark = _mark;
16011 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
16012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
16013 }
16014 _res = NULL;
16015 done:
16016 D(p->level--);
16017 return _res;
16018}
16019
16020// starred_expression: '*' expression
16021static expr_ty
16022starred_expression_rule(Parser *p)
16023{
16024 D(p->level++);
16025 if (p->error_indicator) {
16026 D(p->level--);
16027 return NULL;
16028 }
16029 expr_ty _res = NULL;
16030 int _mark = p->mark;
16031 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16032 p->error_indicator = 1;
16033 D(p->level--);
16034 return NULL;
16035 }
16036 int _start_lineno = p->tokens[_mark]->lineno;
16037 UNUSED(_start_lineno); // Only used by EXTRA macro
16038 int _start_col_offset = p->tokens[_mark]->col_offset;
16039 UNUSED(_start_col_offset); // Only used by EXTRA macro
16040 { // '*' expression
16041 if (p->error_indicator) {
16042 D(p->level--);
16043 return NULL;
16044 }
16045 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16046 Token * _literal;
16047 expr_ty a;
16048 if (
16049 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16050 &&
16051 (a = expression_rule(p)) // expression
16052 )
16053 {
16054 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16055 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16056 if (_token == NULL) {
16057 D(p->level--);
16058 return NULL;
16059 }
16060 int _end_lineno = _token->end_lineno;
16061 UNUSED(_end_lineno); // Only used by EXTRA macro
16062 int _end_col_offset = _token->end_col_offset;
16063 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016064 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016065 if (_res == NULL && PyErr_Occurred()) {
16066 p->error_indicator = 1;
16067 D(p->level--);
16068 return NULL;
16069 }
16070 goto done;
16071 }
16072 p->mark = _mark;
16073 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16075 }
16076 _res = NULL;
16077 done:
16078 D(p->level--);
16079 return _res;
16080}
16081
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016082// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016083static KeywordOrStarred*
16084kwarg_or_starred_rule(Parser *p)
16085{
16086 D(p->level++);
16087 if (p->error_indicator) {
16088 D(p->level--);
16089 return NULL;
16090 }
16091 KeywordOrStarred* _res = NULL;
16092 int _mark = p->mark;
16093 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16094 p->error_indicator = 1;
16095 D(p->level--);
16096 return NULL;
16097 }
16098 int _start_lineno = p->tokens[_mark]->lineno;
16099 UNUSED(_start_lineno); // Only used by EXTRA macro
16100 int _start_col_offset = p->tokens[_mark]->col_offset;
16101 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016102 if (p->call_invalid_rules) { // invalid_kwarg
16103 if (p->error_indicator) {
16104 D(p->level--);
16105 return NULL;
16106 }
16107 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16108 void *invalid_kwarg_var;
16109 if (
16110 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16111 )
16112 {
16113 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16114 _res = invalid_kwarg_var;
16115 goto done;
16116 }
16117 p->mark = _mark;
16118 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16120 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016121 { // NAME '=' expression
16122 if (p->error_indicator) {
16123 D(p->level--);
16124 return NULL;
16125 }
16126 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16127 Token * _literal;
16128 expr_ty a;
16129 expr_ty b;
16130 if (
16131 (a = _PyPegen_name_token(p)) // NAME
16132 &&
16133 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16134 &&
16135 (b = expression_rule(p)) // expression
16136 )
16137 {
16138 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16140 if (_token == NULL) {
16141 D(p->level--);
16142 return NULL;
16143 }
16144 int _end_lineno = _token->end_lineno;
16145 UNUSED(_end_lineno); // Only used by EXTRA macro
16146 int _end_col_offset = _token->end_col_offset;
16147 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016148 _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 +010016149 if (_res == NULL && PyErr_Occurred()) {
16150 p->error_indicator = 1;
16151 D(p->level--);
16152 return NULL;
16153 }
16154 goto done;
16155 }
16156 p->mark = _mark;
16157 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16159 }
16160 { // starred_expression
16161 if (p->error_indicator) {
16162 D(p->level--);
16163 return NULL;
16164 }
16165 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16166 expr_ty a;
16167 if (
16168 (a = starred_expression_rule(p)) // starred_expression
16169 )
16170 {
16171 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16172 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16173 if (_res == NULL && PyErr_Occurred()) {
16174 p->error_indicator = 1;
16175 D(p->level--);
16176 return NULL;
16177 }
16178 goto done;
16179 }
16180 p->mark = _mark;
16181 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16183 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016184 _res = NULL;
16185 done:
16186 D(p->level--);
16187 return _res;
16188}
16189
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016190// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016191static KeywordOrStarred*
16192kwarg_or_double_starred_rule(Parser *p)
16193{
16194 D(p->level++);
16195 if (p->error_indicator) {
16196 D(p->level--);
16197 return NULL;
16198 }
16199 KeywordOrStarred* _res = NULL;
16200 int _mark = p->mark;
16201 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16202 p->error_indicator = 1;
16203 D(p->level--);
16204 return NULL;
16205 }
16206 int _start_lineno = p->tokens[_mark]->lineno;
16207 UNUSED(_start_lineno); // Only used by EXTRA macro
16208 int _start_col_offset = p->tokens[_mark]->col_offset;
16209 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016210 if (p->call_invalid_rules) { // invalid_kwarg
16211 if (p->error_indicator) {
16212 D(p->level--);
16213 return NULL;
16214 }
16215 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16216 void *invalid_kwarg_var;
16217 if (
16218 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16219 )
16220 {
16221 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16222 _res = invalid_kwarg_var;
16223 goto done;
16224 }
16225 p->mark = _mark;
16226 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16228 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016229 { // NAME '=' expression
16230 if (p->error_indicator) {
16231 D(p->level--);
16232 return NULL;
16233 }
16234 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16235 Token * _literal;
16236 expr_ty a;
16237 expr_ty b;
16238 if (
16239 (a = _PyPegen_name_token(p)) // NAME
16240 &&
16241 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16242 &&
16243 (b = expression_rule(p)) // expression
16244 )
16245 {
16246 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16247 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16248 if (_token == NULL) {
16249 D(p->level--);
16250 return NULL;
16251 }
16252 int _end_lineno = _token->end_lineno;
16253 UNUSED(_end_lineno); // Only used by EXTRA macro
16254 int _end_col_offset = _token->end_col_offset;
16255 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016256 _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 +010016257 if (_res == NULL && PyErr_Occurred()) {
16258 p->error_indicator = 1;
16259 D(p->level--);
16260 return NULL;
16261 }
16262 goto done;
16263 }
16264 p->mark = _mark;
16265 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16267 }
16268 { // '**' expression
16269 if (p->error_indicator) {
16270 D(p->level--);
16271 return NULL;
16272 }
16273 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16274 Token * _literal;
16275 expr_ty a;
16276 if (
16277 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16278 &&
16279 (a = expression_rule(p)) // expression
16280 )
16281 {
16282 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16283 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16284 if (_token == NULL) {
16285 D(p->level--);
16286 return NULL;
16287 }
16288 int _end_lineno = _token->end_lineno;
16289 UNUSED(_end_lineno); // Only used by EXTRA macro
16290 int _end_col_offset = _token->end_col_offset;
16291 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016292 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016293 if (_res == NULL && PyErr_Occurred()) {
16294 p->error_indicator = 1;
16295 D(p->level--);
16296 return NULL;
16297 }
16298 goto done;
16299 }
16300 p->mark = _mark;
16301 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16303 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016304 _res = NULL;
16305 done:
16306 D(p->level--);
16307 return _res;
16308}
16309
16310// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16311static expr_ty
16312star_targets_rule(Parser *p)
16313{
16314 D(p->level++);
16315 if (p->error_indicator) {
16316 D(p->level--);
16317 return NULL;
16318 }
16319 expr_ty _res = NULL;
16320 int _mark = p->mark;
16321 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16322 p->error_indicator = 1;
16323 D(p->level--);
16324 return NULL;
16325 }
16326 int _start_lineno = p->tokens[_mark]->lineno;
16327 UNUSED(_start_lineno); // Only used by EXTRA macro
16328 int _start_col_offset = p->tokens[_mark]->col_offset;
16329 UNUSED(_start_col_offset); // Only used by EXTRA macro
16330 { // star_target !','
16331 if (p->error_indicator) {
16332 D(p->level--);
16333 return NULL;
16334 }
16335 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16336 expr_ty a;
16337 if (
16338 (a = star_target_rule(p)) // star_target
16339 &&
16340 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16341 )
16342 {
16343 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16344 _res = a;
16345 if (_res == NULL && PyErr_Occurred()) {
16346 p->error_indicator = 1;
16347 D(p->level--);
16348 return NULL;
16349 }
16350 goto done;
16351 }
16352 p->mark = _mark;
16353 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16355 }
16356 { // star_target ((',' star_target))* ','?
16357 if (p->error_indicator) {
16358 D(p->level--);
16359 return NULL;
16360 }
16361 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16362 void *_opt_var;
16363 UNUSED(_opt_var); // Silence compiler warnings
16364 expr_ty a;
16365 asdl_seq * b;
16366 if (
16367 (a = star_target_rule(p)) // star_target
16368 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016369 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016370 &&
16371 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16372 )
16373 {
16374 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16375 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16376 if (_token == NULL) {
16377 D(p->level--);
16378 return NULL;
16379 }
16380 int _end_lineno = _token->end_lineno;
16381 UNUSED(_end_lineno); // Only used by EXTRA macro
16382 int _end_col_offset = _token->end_col_offset;
16383 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016384 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016385 if (_res == NULL && PyErr_Occurred()) {
16386 p->error_indicator = 1;
16387 D(p->level--);
16388 return NULL;
16389 }
16390 goto done;
16391 }
16392 p->mark = _mark;
16393 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16395 }
16396 _res = NULL;
16397 done:
16398 D(p->level--);
16399 return _res;
16400}
16401
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016402// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016403static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016404star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016405{
16406 D(p->level++);
16407 if (p->error_indicator) {
16408 D(p->level--);
16409 return NULL;
16410 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016411 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016412 int _mark = p->mark;
16413 { // ','.star_target+ ','?
16414 if (p->error_indicator) {
16415 D(p->level--);
16416 return NULL;
16417 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016418 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 +010016419 void *_opt_var;
16420 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016421 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016422 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016423 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016424 &&
16425 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16426 )
16427 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016428 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 +010016429 _res = a;
16430 if (_res == NULL && PyErr_Occurred()) {
16431 p->error_indicator = 1;
16432 D(p->level--);
16433 return NULL;
16434 }
16435 goto done;
16436 }
16437 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016438 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16440 }
16441 _res = NULL;
16442 done:
16443 D(p->level--);
16444 return _res;
16445}
16446
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016447// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16448static asdl_expr_seq*
16449star_targets_tuple_seq_rule(Parser *p)
16450{
16451 D(p->level++);
16452 if (p->error_indicator) {
16453 D(p->level--);
16454 return NULL;
16455 }
16456 asdl_expr_seq* _res = NULL;
16457 int _mark = p->mark;
16458 { // star_target ((',' star_target))+ ','?
16459 if (p->error_indicator) {
16460 D(p->level--);
16461 return NULL;
16462 }
16463 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16464 void *_opt_var;
16465 UNUSED(_opt_var); // Silence compiler warnings
16466 expr_ty a;
16467 asdl_seq * b;
16468 if (
16469 (a = star_target_rule(p)) // star_target
16470 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016471 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016472 &&
16473 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16474 )
16475 {
16476 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16477 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16478 if (_res == NULL && PyErr_Occurred()) {
16479 p->error_indicator = 1;
16480 D(p->level--);
16481 return NULL;
16482 }
16483 goto done;
16484 }
16485 p->mark = _mark;
16486 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16488 }
16489 { // star_target ','
16490 if (p->error_indicator) {
16491 D(p->level--);
16492 return NULL;
16493 }
16494 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16495 Token * _literal;
16496 expr_ty a;
16497 if (
16498 (a = star_target_rule(p)) // star_target
16499 &&
16500 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16501 )
16502 {
16503 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16504 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16505 if (_res == NULL && PyErr_Occurred()) {
16506 p->error_indicator = 1;
16507 D(p->level--);
16508 return NULL;
16509 }
16510 goto done;
16511 }
16512 p->mark = _mark;
16513 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16515 }
16516 _res = NULL;
16517 done:
16518 D(p->level--);
16519 return _res;
16520}
16521
16522// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016523static expr_ty
16524star_target_rule(Parser *p)
16525{
16526 D(p->level++);
16527 if (p->error_indicator) {
16528 D(p->level--);
16529 return NULL;
16530 }
16531 expr_ty _res = NULL;
16532 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16533 D(p->level--);
16534 return _res;
16535 }
16536 int _mark = p->mark;
16537 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16538 p->error_indicator = 1;
16539 D(p->level--);
16540 return NULL;
16541 }
16542 int _start_lineno = p->tokens[_mark]->lineno;
16543 UNUSED(_start_lineno); // Only used by EXTRA macro
16544 int _start_col_offset = p->tokens[_mark]->col_offset;
16545 UNUSED(_start_col_offset); // Only used by EXTRA macro
16546 { // '*' (!'*' star_target)
16547 if (p->error_indicator) {
16548 D(p->level--);
16549 return NULL;
16550 }
16551 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16552 Token * _literal;
16553 void *a;
16554 if (
16555 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16556 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016557 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016558 )
16559 {
16560 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16561 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16562 if (_token == NULL) {
16563 D(p->level--);
16564 return NULL;
16565 }
16566 int _end_lineno = _token->end_lineno;
16567 UNUSED(_end_lineno); // Only used by EXTRA macro
16568 int _end_col_offset = _token->end_col_offset;
16569 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016570 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016571 if (_res == NULL && PyErr_Occurred()) {
16572 p->error_indicator = 1;
16573 D(p->level--);
16574 return NULL;
16575 }
16576 goto done;
16577 }
16578 p->mark = _mark;
16579 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16581 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016582 { // target_with_star_atom
16583 if (p->error_indicator) {
16584 D(p->level--);
16585 return NULL;
16586 }
16587 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16588 expr_ty target_with_star_atom_var;
16589 if (
16590 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16591 )
16592 {
16593 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16594 _res = target_with_star_atom_var;
16595 goto done;
16596 }
16597 p->mark = _mark;
16598 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16600 }
16601 _res = NULL;
16602 done:
16603 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16604 D(p->level--);
16605 return _res;
16606}
16607
16608// target_with_star_atom:
16609// | t_primary '.' NAME !t_lookahead
16610// | t_primary '[' slices ']' !t_lookahead
16611// | star_atom
16612static expr_ty
16613target_with_star_atom_rule(Parser *p)
16614{
16615 D(p->level++);
16616 if (p->error_indicator) {
16617 D(p->level--);
16618 return NULL;
16619 }
16620 expr_ty _res = NULL;
16621 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16622 D(p->level--);
16623 return _res;
16624 }
16625 int _mark = p->mark;
16626 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16627 p->error_indicator = 1;
16628 D(p->level--);
16629 return NULL;
16630 }
16631 int _start_lineno = p->tokens[_mark]->lineno;
16632 UNUSED(_start_lineno); // Only used by EXTRA macro
16633 int _start_col_offset = p->tokens[_mark]->col_offset;
16634 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016635 { // t_primary '.' NAME !t_lookahead
16636 if (p->error_indicator) {
16637 D(p->level--);
16638 return NULL;
16639 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016640 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 +010016641 Token * _literal;
16642 expr_ty a;
16643 expr_ty b;
16644 if (
16645 (a = t_primary_rule(p)) // t_primary
16646 &&
16647 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16648 &&
16649 (b = _PyPegen_name_token(p)) // NAME
16650 &&
16651 _PyPegen_lookahead(0, t_lookahead_rule, p)
16652 )
16653 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016654 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 +010016655 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16656 if (_token == NULL) {
16657 D(p->level--);
16658 return NULL;
16659 }
16660 int _end_lineno = _token->end_lineno;
16661 UNUSED(_end_lineno); // Only used by EXTRA macro
16662 int _end_col_offset = _token->end_col_offset;
16663 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016664 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016665 if (_res == NULL && PyErr_Occurred()) {
16666 p->error_indicator = 1;
16667 D(p->level--);
16668 return NULL;
16669 }
16670 goto done;
16671 }
16672 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016673 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16675 }
16676 { // t_primary '[' slices ']' !t_lookahead
16677 if (p->error_indicator) {
16678 D(p->level--);
16679 return NULL;
16680 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016681 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 +010016682 Token * _literal;
16683 Token * _literal_1;
16684 expr_ty a;
16685 expr_ty b;
16686 if (
16687 (a = t_primary_rule(p)) // t_primary
16688 &&
16689 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16690 &&
16691 (b = slices_rule(p)) // slices
16692 &&
16693 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16694 &&
16695 _PyPegen_lookahead(0, t_lookahead_rule, p)
16696 )
16697 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016698 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 +010016699 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16700 if (_token == NULL) {
16701 D(p->level--);
16702 return NULL;
16703 }
16704 int _end_lineno = _token->end_lineno;
16705 UNUSED(_end_lineno); // Only used by EXTRA macro
16706 int _end_col_offset = _token->end_col_offset;
16707 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016708 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016709 if (_res == NULL && PyErr_Occurred()) {
16710 p->error_indicator = 1;
16711 D(p->level--);
16712 return NULL;
16713 }
16714 goto done;
16715 }
16716 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016717 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16719 }
16720 { // star_atom
16721 if (p->error_indicator) {
16722 D(p->level--);
16723 return NULL;
16724 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016725 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 +010016726 expr_ty star_atom_var;
16727 if (
16728 (star_atom_var = star_atom_rule(p)) // star_atom
16729 )
16730 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016731 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 +010016732 _res = star_atom_var;
16733 goto done;
16734 }
16735 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016736 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16738 }
16739 _res = NULL;
16740 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016741 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016742 D(p->level--);
16743 return _res;
16744}
16745
16746// star_atom:
16747// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016748// | '(' target_with_star_atom ')'
16749// | '(' star_targets_tuple_seq? ')'
16750// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016751static expr_ty
16752star_atom_rule(Parser *p)
16753{
16754 D(p->level++);
16755 if (p->error_indicator) {
16756 D(p->level--);
16757 return NULL;
16758 }
16759 expr_ty _res = NULL;
16760 int _mark = p->mark;
16761 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16762 p->error_indicator = 1;
16763 D(p->level--);
16764 return NULL;
16765 }
16766 int _start_lineno = p->tokens[_mark]->lineno;
16767 UNUSED(_start_lineno); // Only used by EXTRA macro
16768 int _start_col_offset = p->tokens[_mark]->col_offset;
16769 UNUSED(_start_col_offset); // Only used by EXTRA macro
16770 { // NAME
16771 if (p->error_indicator) {
16772 D(p->level--);
16773 return NULL;
16774 }
16775 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16776 expr_ty a;
16777 if (
16778 (a = _PyPegen_name_token(p)) // NAME
16779 )
16780 {
16781 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16782 _res = _PyPegen_set_expr_context ( p , a , Store );
16783 if (_res == NULL && PyErr_Occurred()) {
16784 p->error_indicator = 1;
16785 D(p->level--);
16786 return NULL;
16787 }
16788 goto done;
16789 }
16790 p->mark = _mark;
16791 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16793 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016794 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016795 if (p->error_indicator) {
16796 D(p->level--);
16797 return NULL;
16798 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016799 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 +010016800 Token * _literal;
16801 Token * _literal_1;
16802 expr_ty a;
16803 if (
16804 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16805 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016806 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016807 &&
16808 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16809 )
16810 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016811 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 +010016812 _res = _PyPegen_set_expr_context ( p , a , Store );
16813 if (_res == NULL && PyErr_Occurred()) {
16814 p->error_indicator = 1;
16815 D(p->level--);
16816 return NULL;
16817 }
16818 goto done;
16819 }
16820 p->mark = _mark;
16821 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016823 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016824 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016825 if (p->error_indicator) {
16826 D(p->level--);
16827 return NULL;
16828 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016829 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 +010016830 Token * _literal;
16831 Token * _literal_1;
16832 void *a;
16833 if (
16834 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16835 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016836 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016837 &&
16838 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16839 )
16840 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016841 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 +010016842 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16843 if (_token == NULL) {
16844 D(p->level--);
16845 return NULL;
16846 }
16847 int _end_lineno = _token->end_lineno;
16848 UNUSED(_end_lineno); // Only used by EXTRA macro
16849 int _end_col_offset = _token->end_col_offset;
16850 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016851 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016852 if (_res == NULL && PyErr_Occurred()) {
16853 p->error_indicator = 1;
16854 D(p->level--);
16855 return NULL;
16856 }
16857 goto done;
16858 }
16859 p->mark = _mark;
16860 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016862 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016863 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016864 if (p->error_indicator) {
16865 D(p->level--);
16866 return NULL;
16867 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016868 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 +010016869 Token * _literal;
16870 Token * _literal_1;
16871 void *a;
16872 if (
16873 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16874 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016875 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016876 &&
16877 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16878 )
16879 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016880 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 +010016881 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16882 if (_token == NULL) {
16883 D(p->level--);
16884 return NULL;
16885 }
16886 int _end_lineno = _token->end_lineno;
16887 UNUSED(_end_lineno); // Only used by EXTRA macro
16888 int _end_col_offset = _token->end_col_offset;
16889 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016890 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016891 if (_res == NULL && PyErr_Occurred()) {
16892 p->error_indicator = 1;
16893 D(p->level--);
16894 return NULL;
16895 }
16896 goto done;
16897 }
16898 p->mark = _mark;
16899 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016901 }
16902 _res = NULL;
16903 done:
16904 D(p->level--);
16905 return _res;
16906}
16907
16908// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16909static expr_ty
16910single_target_rule(Parser *p)
16911{
16912 D(p->level++);
16913 if (p->error_indicator) {
16914 D(p->level--);
16915 return NULL;
16916 }
16917 expr_ty _res = NULL;
16918 int _mark = p->mark;
16919 { // single_subscript_attribute_target
16920 if (p->error_indicator) {
16921 D(p->level--);
16922 return NULL;
16923 }
16924 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16925 expr_ty single_subscript_attribute_target_var;
16926 if (
16927 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16928 )
16929 {
16930 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16931 _res = single_subscript_attribute_target_var;
16932 goto done;
16933 }
16934 p->mark = _mark;
16935 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16937 }
16938 { // NAME
16939 if (p->error_indicator) {
16940 D(p->level--);
16941 return NULL;
16942 }
16943 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16944 expr_ty a;
16945 if (
16946 (a = _PyPegen_name_token(p)) // NAME
16947 )
16948 {
16949 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16950 _res = _PyPegen_set_expr_context ( p , a , Store );
16951 if (_res == NULL && PyErr_Occurred()) {
16952 p->error_indicator = 1;
16953 D(p->level--);
16954 return NULL;
16955 }
16956 goto done;
16957 }
16958 p->mark = _mark;
16959 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16961 }
16962 { // '(' single_target ')'
16963 if (p->error_indicator) {
16964 D(p->level--);
16965 return NULL;
16966 }
16967 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16968 Token * _literal;
16969 Token * _literal_1;
16970 expr_ty a;
16971 if (
16972 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16973 &&
16974 (a = single_target_rule(p)) // single_target
16975 &&
16976 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16977 )
16978 {
16979 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16980 _res = a;
16981 if (_res == NULL && PyErr_Occurred()) {
16982 p->error_indicator = 1;
16983 D(p->level--);
16984 return NULL;
16985 }
16986 goto done;
16987 }
16988 p->mark = _mark;
16989 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16991 }
16992 _res = NULL;
16993 done:
16994 D(p->level--);
16995 return _res;
16996}
16997
16998// single_subscript_attribute_target:
16999// | t_primary '.' NAME !t_lookahead
17000// | t_primary '[' slices ']' !t_lookahead
17001static expr_ty
17002single_subscript_attribute_target_rule(Parser *p)
17003{
17004 D(p->level++);
17005 if (p->error_indicator) {
17006 D(p->level--);
17007 return NULL;
17008 }
17009 expr_ty _res = NULL;
17010 int _mark = p->mark;
17011 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17012 p->error_indicator = 1;
17013 D(p->level--);
17014 return NULL;
17015 }
17016 int _start_lineno = p->tokens[_mark]->lineno;
17017 UNUSED(_start_lineno); // Only used by EXTRA macro
17018 int _start_col_offset = p->tokens[_mark]->col_offset;
17019 UNUSED(_start_col_offset); // Only used by EXTRA macro
17020 { // t_primary '.' NAME !t_lookahead
17021 if (p->error_indicator) {
17022 D(p->level--);
17023 return NULL;
17024 }
17025 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17026 Token * _literal;
17027 expr_ty a;
17028 expr_ty b;
17029 if (
17030 (a = t_primary_rule(p)) // t_primary
17031 &&
17032 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17033 &&
17034 (b = _PyPegen_name_token(p)) // NAME
17035 &&
17036 _PyPegen_lookahead(0, t_lookahead_rule, p)
17037 )
17038 {
17039 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17040 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17041 if (_token == NULL) {
17042 D(p->level--);
17043 return NULL;
17044 }
17045 int _end_lineno = _token->end_lineno;
17046 UNUSED(_end_lineno); // Only used by EXTRA macro
17047 int _end_col_offset = _token->end_col_offset;
17048 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017049 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017050 if (_res == NULL && PyErr_Occurred()) {
17051 p->error_indicator = 1;
17052 D(p->level--);
17053 return NULL;
17054 }
17055 goto done;
17056 }
17057 p->mark = _mark;
17058 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17060 }
17061 { // t_primary '[' slices ']' !t_lookahead
17062 if (p->error_indicator) {
17063 D(p->level--);
17064 return NULL;
17065 }
17066 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17067 Token * _literal;
17068 Token * _literal_1;
17069 expr_ty a;
17070 expr_ty b;
17071 if (
17072 (a = t_primary_rule(p)) // t_primary
17073 &&
17074 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17075 &&
17076 (b = slices_rule(p)) // slices
17077 &&
17078 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17079 &&
17080 _PyPegen_lookahead(0, t_lookahead_rule, p)
17081 )
17082 {
17083 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17084 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17085 if (_token == NULL) {
17086 D(p->level--);
17087 return NULL;
17088 }
17089 int _end_lineno = _token->end_lineno;
17090 UNUSED(_end_lineno); // Only used by EXTRA macro
17091 int _end_col_offset = _token->end_col_offset;
17092 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017093 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017094 if (_res == NULL && PyErr_Occurred()) {
17095 p->error_indicator = 1;
17096 D(p->level--);
17097 return NULL;
17098 }
17099 goto done;
17100 }
17101 p->mark = _mark;
17102 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17104 }
17105 _res = NULL;
17106 done:
17107 D(p->level--);
17108 return _res;
17109}
17110
17111// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017112static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017113del_targets_rule(Parser *p)
17114{
17115 D(p->level++);
17116 if (p->error_indicator) {
17117 D(p->level--);
17118 return NULL;
17119 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017120 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017121 int _mark = p->mark;
17122 { // ','.del_target+ ','?
17123 if (p->error_indicator) {
17124 D(p->level--);
17125 return NULL;
17126 }
17127 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17128 void *_opt_var;
17129 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017130 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017131 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017132 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017133 &&
17134 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17135 )
17136 {
17137 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17138 _res = a;
17139 if (_res == NULL && PyErr_Occurred()) {
17140 p->error_indicator = 1;
17141 D(p->level--);
17142 return NULL;
17143 }
17144 goto done;
17145 }
17146 p->mark = _mark;
17147 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17149 }
17150 _res = NULL;
17151 done:
17152 D(p->level--);
17153 return _res;
17154}
17155
17156// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017157// | t_primary '.' NAME !t_lookahead
17158// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017159// | del_t_atom
17160static expr_ty
17161del_target_rule(Parser *p)
17162{
17163 D(p->level++);
17164 if (p->error_indicator) {
17165 D(p->level--);
17166 return NULL;
17167 }
17168 expr_ty _res = NULL;
17169 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17170 D(p->level--);
17171 return _res;
17172 }
17173 int _mark = p->mark;
17174 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17175 p->error_indicator = 1;
17176 D(p->level--);
17177 return NULL;
17178 }
17179 int _start_lineno = p->tokens[_mark]->lineno;
17180 UNUSED(_start_lineno); // Only used by EXTRA macro
17181 int _start_col_offset = p->tokens[_mark]->col_offset;
17182 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017183 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017184 if (p->error_indicator) {
17185 D(p->level--);
17186 return NULL;
17187 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017188 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 +010017189 Token * _literal;
17190 expr_ty a;
17191 expr_ty b;
17192 if (
17193 (a = t_primary_rule(p)) // t_primary
17194 &&
17195 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17196 &&
17197 (b = _PyPegen_name_token(p)) // NAME
17198 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017199 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017200 )
17201 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017202 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 +010017203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17204 if (_token == NULL) {
17205 D(p->level--);
17206 return NULL;
17207 }
17208 int _end_lineno = _token->end_lineno;
17209 UNUSED(_end_lineno); // Only used by EXTRA macro
17210 int _end_col_offset = _token->end_col_offset;
17211 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017212 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017213 if (_res == NULL && PyErr_Occurred()) {
17214 p->error_indicator = 1;
17215 D(p->level--);
17216 return NULL;
17217 }
17218 goto done;
17219 }
17220 p->mark = _mark;
17221 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017223 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017224 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017225 if (p->error_indicator) {
17226 D(p->level--);
17227 return NULL;
17228 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017229 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 +010017230 Token * _literal;
17231 Token * _literal_1;
17232 expr_ty a;
17233 expr_ty b;
17234 if (
17235 (a = t_primary_rule(p)) // t_primary
17236 &&
17237 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17238 &&
17239 (b = slices_rule(p)) // slices
17240 &&
17241 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17242 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017243 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017244 )
17245 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017246 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 +010017247 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17248 if (_token == NULL) {
17249 D(p->level--);
17250 return NULL;
17251 }
17252 int _end_lineno = _token->end_lineno;
17253 UNUSED(_end_lineno); // Only used by EXTRA macro
17254 int _end_col_offset = _token->end_col_offset;
17255 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017256 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017257 if (_res == NULL && PyErr_Occurred()) {
17258 p->error_indicator = 1;
17259 D(p->level--);
17260 return NULL;
17261 }
17262 goto done;
17263 }
17264 p->mark = _mark;
17265 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017266 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017267 }
17268 { // del_t_atom
17269 if (p->error_indicator) {
17270 D(p->level--);
17271 return NULL;
17272 }
17273 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17274 expr_ty del_t_atom_var;
17275 if (
17276 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17277 )
17278 {
17279 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17280 _res = del_t_atom_var;
17281 goto done;
17282 }
17283 p->mark = _mark;
17284 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17286 }
17287 _res = NULL;
17288 done:
17289 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17290 D(p->level--);
17291 return _res;
17292}
17293
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017294// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017295static expr_ty
17296del_t_atom_rule(Parser *p)
17297{
17298 D(p->level++);
17299 if (p->error_indicator) {
17300 D(p->level--);
17301 return NULL;
17302 }
17303 expr_ty _res = NULL;
17304 int _mark = p->mark;
17305 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17306 p->error_indicator = 1;
17307 D(p->level--);
17308 return NULL;
17309 }
17310 int _start_lineno = p->tokens[_mark]->lineno;
17311 UNUSED(_start_lineno); // Only used by EXTRA macro
17312 int _start_col_offset = p->tokens[_mark]->col_offset;
17313 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017314 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017315 if (p->error_indicator) {
17316 D(p->level--);
17317 return NULL;
17318 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017319 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017320 expr_ty a;
17321 if (
17322 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017323 )
17324 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017325 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 +010017326 _res = _PyPegen_set_expr_context ( p , a , Del );
17327 if (_res == NULL && PyErr_Occurred()) {
17328 p->error_indicator = 1;
17329 D(p->level--);
17330 return NULL;
17331 }
17332 goto done;
17333 }
17334 p->mark = _mark;
17335 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017337 }
17338 { // '(' del_target ')'
17339 if (p->error_indicator) {
17340 D(p->level--);
17341 return NULL;
17342 }
17343 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17344 Token * _literal;
17345 Token * _literal_1;
17346 expr_ty a;
17347 if (
17348 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17349 &&
17350 (a = del_target_rule(p)) // del_target
17351 &&
17352 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17353 )
17354 {
17355 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17356 _res = _PyPegen_set_expr_context ( p , a , Del );
17357 if (_res == NULL && PyErr_Occurred()) {
17358 p->error_indicator = 1;
17359 D(p->level--);
17360 return NULL;
17361 }
17362 goto done;
17363 }
17364 p->mark = _mark;
17365 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17367 }
17368 { // '(' del_targets? ')'
17369 if (p->error_indicator) {
17370 D(p->level--);
17371 return NULL;
17372 }
17373 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17374 Token * _literal;
17375 Token * _literal_1;
17376 void *a;
17377 if (
17378 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17379 &&
17380 (a = del_targets_rule(p), 1) // del_targets?
17381 &&
17382 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17383 )
17384 {
17385 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17386 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17387 if (_token == NULL) {
17388 D(p->level--);
17389 return NULL;
17390 }
17391 int _end_lineno = _token->end_lineno;
17392 UNUSED(_end_lineno); // Only used by EXTRA macro
17393 int _end_col_offset = _token->end_col_offset;
17394 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017395 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017396 if (_res == NULL && PyErr_Occurred()) {
17397 p->error_indicator = 1;
17398 D(p->level--);
17399 return NULL;
17400 }
17401 goto done;
17402 }
17403 p->mark = _mark;
17404 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17406 }
17407 { // '[' del_targets? ']'
17408 if (p->error_indicator) {
17409 D(p->level--);
17410 return NULL;
17411 }
17412 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17413 Token * _literal;
17414 Token * _literal_1;
17415 void *a;
17416 if (
17417 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17418 &&
17419 (a = del_targets_rule(p), 1) // del_targets?
17420 &&
17421 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17422 )
17423 {
17424 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17425 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17426 if (_token == NULL) {
17427 D(p->level--);
17428 return NULL;
17429 }
17430 int _end_lineno = _token->end_lineno;
17431 UNUSED(_end_lineno); // Only used by EXTRA macro
17432 int _end_col_offset = _token->end_col_offset;
17433 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017434 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017435 if (_res == NULL && PyErr_Occurred()) {
17436 p->error_indicator = 1;
17437 D(p->level--);
17438 return NULL;
17439 }
17440 goto done;
17441 }
17442 p->mark = _mark;
17443 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17445 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017446 _res = NULL;
17447 done:
17448 D(p->level--);
17449 return _res;
17450}
17451
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017452// Left-recursive
17453// t_primary:
17454// | t_primary '.' NAME &t_lookahead
17455// | t_primary '[' slices ']' &t_lookahead
17456// | t_primary genexp &t_lookahead
17457// | t_primary '(' arguments? ')' &t_lookahead
17458// | atom &t_lookahead
17459static expr_ty t_primary_raw(Parser *);
17460static expr_ty
17461t_primary_rule(Parser *p)
17462{
17463 D(p->level++);
17464 expr_ty _res = NULL;
17465 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17466 D(p->level--);
17467 return _res;
17468 }
17469 int _mark = p->mark;
17470 int _resmark = p->mark;
17471 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017472 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17473 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017474 D(p->level--);
17475 return _res;
17476 }
17477 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017478 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017479 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017480 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017481 if (p->error_indicator)
17482 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017483 if (_raw == NULL || p->mark <= _resmark)
17484 break;
17485 _resmark = p->mark;
17486 _res = _raw;
17487 }
17488 p->mark = _resmark;
17489 D(p->level--);
17490 return _res;
17491}
17492static expr_ty
17493t_primary_raw(Parser *p)
17494{
17495 D(p->level++);
17496 if (p->error_indicator) {
17497 D(p->level--);
17498 return NULL;
17499 }
17500 expr_ty _res = NULL;
17501 int _mark = p->mark;
17502 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17503 p->error_indicator = 1;
17504 D(p->level--);
17505 return NULL;
17506 }
17507 int _start_lineno = p->tokens[_mark]->lineno;
17508 UNUSED(_start_lineno); // Only used by EXTRA macro
17509 int _start_col_offset = p->tokens[_mark]->col_offset;
17510 UNUSED(_start_col_offset); // Only used by EXTRA macro
17511 { // t_primary '.' NAME &t_lookahead
17512 if (p->error_indicator) {
17513 D(p->level--);
17514 return NULL;
17515 }
17516 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17517 Token * _literal;
17518 expr_ty a;
17519 expr_ty b;
17520 if (
17521 (a = t_primary_rule(p)) // t_primary
17522 &&
17523 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17524 &&
17525 (b = _PyPegen_name_token(p)) // NAME
17526 &&
17527 _PyPegen_lookahead(1, t_lookahead_rule, p)
17528 )
17529 {
17530 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17531 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17532 if (_token == NULL) {
17533 D(p->level--);
17534 return NULL;
17535 }
17536 int _end_lineno = _token->end_lineno;
17537 UNUSED(_end_lineno); // Only used by EXTRA macro
17538 int _end_col_offset = _token->end_col_offset;
17539 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017540 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017541 if (_res == NULL && PyErr_Occurred()) {
17542 p->error_indicator = 1;
17543 D(p->level--);
17544 return NULL;
17545 }
17546 goto done;
17547 }
17548 p->mark = _mark;
17549 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17551 }
17552 { // t_primary '[' slices ']' &t_lookahead
17553 if (p->error_indicator) {
17554 D(p->level--);
17555 return NULL;
17556 }
17557 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17558 Token * _literal;
17559 Token * _literal_1;
17560 expr_ty a;
17561 expr_ty b;
17562 if (
17563 (a = t_primary_rule(p)) // t_primary
17564 &&
17565 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17566 &&
17567 (b = slices_rule(p)) // slices
17568 &&
17569 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17570 &&
17571 _PyPegen_lookahead(1, t_lookahead_rule, p)
17572 )
17573 {
17574 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17575 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17576 if (_token == NULL) {
17577 D(p->level--);
17578 return NULL;
17579 }
17580 int _end_lineno = _token->end_lineno;
17581 UNUSED(_end_lineno); // Only used by EXTRA macro
17582 int _end_col_offset = _token->end_col_offset;
17583 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017584 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017585 if (_res == NULL && PyErr_Occurred()) {
17586 p->error_indicator = 1;
17587 D(p->level--);
17588 return NULL;
17589 }
17590 goto done;
17591 }
17592 p->mark = _mark;
17593 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17595 }
17596 { // t_primary genexp &t_lookahead
17597 if (p->error_indicator) {
17598 D(p->level--);
17599 return NULL;
17600 }
17601 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17602 expr_ty a;
17603 expr_ty b;
17604 if (
17605 (a = t_primary_rule(p)) // t_primary
17606 &&
17607 (b = genexp_rule(p)) // genexp
17608 &&
17609 _PyPegen_lookahead(1, t_lookahead_rule, p)
17610 )
17611 {
17612 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17613 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17614 if (_token == NULL) {
17615 D(p->level--);
17616 return NULL;
17617 }
17618 int _end_lineno = _token->end_lineno;
17619 UNUSED(_end_lineno); // Only used by EXTRA macro
17620 int _end_col_offset = _token->end_col_offset;
17621 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017622 _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 +010017623 if (_res == NULL && PyErr_Occurred()) {
17624 p->error_indicator = 1;
17625 D(p->level--);
17626 return NULL;
17627 }
17628 goto done;
17629 }
17630 p->mark = _mark;
17631 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17633 }
17634 { // t_primary '(' arguments? ')' &t_lookahead
17635 if (p->error_indicator) {
17636 D(p->level--);
17637 return NULL;
17638 }
17639 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17640 Token * _literal;
17641 Token * _literal_1;
17642 expr_ty a;
17643 void *b;
17644 if (
17645 (a = t_primary_rule(p)) // t_primary
17646 &&
17647 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17648 &&
17649 (b = arguments_rule(p), 1) // arguments?
17650 &&
17651 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17652 &&
17653 _PyPegen_lookahead(1, t_lookahead_rule, p)
17654 )
17655 {
17656 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17657 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17658 if (_token == NULL) {
17659 D(p->level--);
17660 return NULL;
17661 }
17662 int _end_lineno = _token->end_lineno;
17663 UNUSED(_end_lineno); // Only used by EXTRA macro
17664 int _end_col_offset = _token->end_col_offset;
17665 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017666 _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 +010017667 if (_res == NULL && PyErr_Occurred()) {
17668 p->error_indicator = 1;
17669 D(p->level--);
17670 return NULL;
17671 }
17672 goto done;
17673 }
17674 p->mark = _mark;
17675 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17677 }
17678 { // atom &t_lookahead
17679 if (p->error_indicator) {
17680 D(p->level--);
17681 return NULL;
17682 }
17683 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17684 expr_ty a;
17685 if (
17686 (a = atom_rule(p)) // atom
17687 &&
17688 _PyPegen_lookahead(1, t_lookahead_rule, p)
17689 )
17690 {
17691 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17692 _res = a;
17693 if (_res == NULL && PyErr_Occurred()) {
17694 p->error_indicator = 1;
17695 D(p->level--);
17696 return NULL;
17697 }
17698 goto done;
17699 }
17700 p->mark = _mark;
17701 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17703 }
17704 _res = NULL;
17705 done:
17706 D(p->level--);
17707 return _res;
17708}
17709
17710// t_lookahead: '(' | '[' | '.'
17711static void *
17712t_lookahead_rule(Parser *p)
17713{
17714 D(p->level++);
17715 if (p->error_indicator) {
17716 D(p->level--);
17717 return NULL;
17718 }
17719 void * _res = NULL;
17720 int _mark = p->mark;
17721 { // '('
17722 if (p->error_indicator) {
17723 D(p->level--);
17724 return NULL;
17725 }
17726 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17727 Token * _literal;
17728 if (
17729 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17730 )
17731 {
17732 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17733 _res = _literal;
17734 goto done;
17735 }
17736 p->mark = _mark;
17737 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17739 }
17740 { // '['
17741 if (p->error_indicator) {
17742 D(p->level--);
17743 return NULL;
17744 }
17745 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17746 Token * _literal;
17747 if (
17748 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17749 )
17750 {
17751 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17752 _res = _literal;
17753 goto done;
17754 }
17755 p->mark = _mark;
17756 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17758 }
17759 { // '.'
17760 if (p->error_indicator) {
17761 D(p->level--);
17762 return NULL;
17763 }
17764 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17765 Token * _literal;
17766 if (
17767 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17768 )
17769 {
17770 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17771 _res = _literal;
17772 goto done;
17773 }
17774 p->mark = _mark;
17775 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17777 }
17778 _res = NULL;
17779 done:
17780 D(p->level--);
17781 return _res;
17782}
17783
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017784// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017785// | args ',' '*'
17786// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017787// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017788// | args for_if_clauses
17789// | args ',' expression for_if_clauses
17790// | args ',' args
17791static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017792invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017793{
17794 D(p->level++);
17795 if (p->error_indicator) {
17796 D(p->level--);
17797 return NULL;
17798 }
17799 void * _res = NULL;
17800 int _mark = p->mark;
17801 { // args ',' '*'
17802 if (p->error_indicator) {
17803 D(p->level--);
17804 return NULL;
17805 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017806 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017807 Token * _literal;
17808 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017809 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017810 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010017811 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017812 &&
17813 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17814 &&
17815 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17816 )
17817 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017818 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017819 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017820 if (_res == NULL && PyErr_Occurred()) {
17821 p->error_indicator = 1;
17822 D(p->level--);
17823 return NULL;
17824 }
17825 goto done;
17826 }
17827 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017828 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17830 }
17831 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17832 if (p->error_indicator) {
17833 D(p->level--);
17834 return NULL;
17835 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017836 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 +010017837 Token * _literal;
17838 void *_opt_var;
17839 UNUSED(_opt_var); // Silence compiler warnings
17840 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017841 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017842 if (
17843 (a = expression_rule(p)) // expression
17844 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017845 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017846 &&
17847 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17848 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070017849 (_opt_var = _tmp_141_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017850 )
17851 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017852 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 +010017853 _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 +010017854 if (_res == NULL && PyErr_Occurred()) {
17855 p->error_indicator = 1;
17856 D(p->level--);
17857 return NULL;
17858 }
17859 goto done;
17860 }
17861 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017862 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17864 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017865 { // NAME '=' expression for_if_clauses
17866 if (p->error_indicator) {
17867 D(p->level--);
17868 return NULL;
17869 }
17870 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17871 expr_ty a;
17872 Token * b;
17873 expr_ty expression_var;
17874 asdl_comprehension_seq* for_if_clauses_var;
17875 if (
17876 (a = _PyPegen_name_token(p)) // NAME
17877 &&
17878 (b = _PyPegen_expect_token(p, 22)) // token='='
17879 &&
17880 (expression_var = expression_rule(p)) // expression
17881 &&
17882 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17883 )
17884 {
17885 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17886 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17887 if (_res == NULL && PyErr_Occurred()) {
17888 p->error_indicator = 1;
17889 D(p->level--);
17890 return NULL;
17891 }
17892 goto done;
17893 }
17894 p->mark = _mark;
17895 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
17896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
17897 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017898 { // args for_if_clauses
17899 if (p->error_indicator) {
17900 D(p->level--);
17901 return NULL;
17902 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017903 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 +010017904 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017905 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017906 if (
17907 (a = args_rule(p)) // args
17908 &&
17909 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17910 )
17911 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017912 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 +010017913 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17914 if (_res == NULL && PyErr_Occurred()) {
17915 p->error_indicator = 1;
17916 D(p->level--);
17917 return NULL;
17918 }
17919 goto done;
17920 }
17921 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017922 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17924 }
17925 { // args ',' expression for_if_clauses
17926 if (p->error_indicator) {
17927 D(p->level--);
17928 return NULL;
17929 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017930 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 +010017931 Token * _literal;
17932 expr_ty a;
17933 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017934 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017935 if (
17936 (args_var = args_rule(p)) // args
17937 &&
17938 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17939 &&
17940 (a = expression_rule(p)) // expression
17941 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017942 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017943 )
17944 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017945 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 +010017946 _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 +010017947 if (_res == NULL && PyErr_Occurred()) {
17948 p->error_indicator = 1;
17949 D(p->level--);
17950 return NULL;
17951 }
17952 goto done;
17953 }
17954 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017955 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17957 }
17958 { // args ',' args
17959 if (p->error_indicator) {
17960 D(p->level--);
17961 return NULL;
17962 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017963 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017964 Token * _literal;
17965 expr_ty a;
17966 expr_ty args_var;
17967 if (
17968 (a = args_rule(p)) // args
17969 &&
17970 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17971 &&
17972 (args_var = args_rule(p)) // args
17973 )
17974 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017975 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 +010017976 _res = _PyPegen_arguments_parsing_error ( p , a );
17977 if (_res == NULL && PyErr_Occurred()) {
17978 p->error_indicator = 1;
17979 D(p->level--);
17980 return NULL;
17981 }
17982 goto done;
17983 }
17984 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017985 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17987 }
17988 _res = NULL;
17989 done:
17990 D(p->level--);
17991 return _res;
17992}
17993
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017994// invalid_kwarg: NAME '=' expression for_if_clauses | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017995static void *
17996invalid_kwarg_rule(Parser *p)
17997{
17998 D(p->level++);
17999 if (p->error_indicator) {
18000 D(p->level--);
18001 return NULL;
18002 }
18003 void * _res = NULL;
18004 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018005 { // NAME '=' expression for_if_clauses
18006 if (p->error_indicator) {
18007 D(p->level--);
18008 return NULL;
18009 }
18010 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18011 expr_ty a;
18012 Token * b;
18013 expr_ty expression_var;
18014 asdl_comprehension_seq* for_if_clauses_var;
18015 if (
18016 (a = _PyPegen_name_token(p)) // NAME
18017 &&
18018 (b = _PyPegen_expect_token(p, 22)) // token='='
18019 &&
18020 (expression_var = expression_rule(p)) // expression
18021 &&
18022 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18023 )
18024 {
18025 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
18026 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
18027 if (_res == NULL && PyErr_Occurred()) {
18028 p->error_indicator = 1;
18029 D(p->level--);
18030 return NULL;
18031 }
18032 goto done;
18033 }
18034 p->mark = _mark;
18035 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18037 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018038 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018039 if (p->error_indicator) {
18040 D(p->level--);
18041 return NULL;
18042 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018043 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018044 expr_ty a;
18045 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018046 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018047 _PyPegen_lookahead(0, _tmp_142_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018048 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018049 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018050 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018051 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018052 )
18053 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018054 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018055 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018056 if (_res == NULL && PyErr_Occurred()) {
18057 p->error_indicator = 1;
18058 D(p->level--);
18059 return NULL;
18060 }
18061 goto done;
18062 }
18063 p->mark = _mark;
18064 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018066 }
18067 _res = NULL;
18068 done:
18069 D(p->level--);
18070 return _res;
18071}
18072
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018073// expression_without_invalid:
18074// | disjunction 'if' disjunction 'else' expression
18075// | disjunction
18076// | lambdef
18077static expr_ty
18078expression_without_invalid_rule(Parser *p)
18079{
18080 D(p->level++);
18081 if (p->error_indicator) {
18082 D(p->level--);
18083 return NULL;
18084 }
18085 expr_ty _res = NULL;
18086 int _mark = p->mark;
18087 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18088 p->error_indicator = 1;
18089 D(p->level--);
18090 return NULL;
18091 }
18092 int _start_lineno = p->tokens[_mark]->lineno;
18093 UNUSED(_start_lineno); // Only used by EXTRA macro
18094 int _start_col_offset = p->tokens[_mark]->col_offset;
18095 UNUSED(_start_col_offset); // Only used by EXTRA macro
18096 { // disjunction 'if' disjunction 'else' expression
18097 if (p->error_indicator) {
18098 D(p->level--);
18099 return NULL;
18100 }
18101 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18102 Token * _keyword;
18103 Token * _keyword_1;
18104 expr_ty a;
18105 expr_ty b;
18106 expr_ty c;
18107 if (
18108 (a = disjunction_rule(p)) // disjunction
18109 &&
18110 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18111 &&
18112 (b = disjunction_rule(p)) // disjunction
18113 &&
18114 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18115 &&
18116 (c = expression_rule(p)) // expression
18117 )
18118 {
18119 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18120 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18121 if (_token == NULL) {
18122 D(p->level--);
18123 return NULL;
18124 }
18125 int _end_lineno = _token->end_lineno;
18126 UNUSED(_end_lineno); // Only used by EXTRA macro
18127 int _end_col_offset = _token->end_col_offset;
18128 UNUSED(_end_col_offset); // Only used by EXTRA macro
18129 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18130 if (_res == NULL && PyErr_Occurred()) {
18131 p->error_indicator = 1;
18132 D(p->level--);
18133 return NULL;
18134 }
18135 goto done;
18136 }
18137 p->mark = _mark;
18138 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18140 }
18141 { // disjunction
18142 if (p->error_indicator) {
18143 D(p->level--);
18144 return NULL;
18145 }
18146 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18147 expr_ty disjunction_var;
18148 if (
18149 (disjunction_var = disjunction_rule(p)) // disjunction
18150 )
18151 {
18152 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18153 _res = disjunction_var;
18154 goto done;
18155 }
18156 p->mark = _mark;
18157 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18159 }
18160 { // lambdef
18161 if (p->error_indicator) {
18162 D(p->level--);
18163 return NULL;
18164 }
18165 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18166 expr_ty lambdef_var;
18167 if (
18168 (lambdef_var = lambdef_rule(p)) // lambdef
18169 )
18170 {
18171 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18172 _res = lambdef_var;
18173 goto done;
18174 }
18175 p->mark = _mark;
18176 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18178 }
18179 _res = NULL;
18180 done:
18181 D(p->level--);
18182 return _res;
18183}
18184
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018185// invalid_legacy_expression: NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018186static void *
18187invalid_legacy_expression_rule(Parser *p)
18188{
18189 D(p->level++);
18190 if (p->error_indicator) {
18191 D(p->level--);
18192 return NULL;
18193 }
18194 void * _res = NULL;
18195 int _mark = p->mark;
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018196 { // NAME !'(' star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018197 if (p->error_indicator) {
18198 D(p->level--);
18199 return NULL;
18200 }
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018201 D(fprintf(stderr, "%*c> invalid_legacy_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018202 expr_ty a;
18203 expr_ty b;
18204 if (
18205 (a = _PyPegen_name_token(p)) // NAME
18206 &&
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018207 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 7) // token='('
18208 &&
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018209 (b = star_expressions_rule(p)) // star_expressions
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018210 )
18211 {
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018212 D(fprintf(stderr, "%*c+ invalid_legacy_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME !'(' star_expressions"));
Miss Islington (bot)68e3dca2021-07-27 14:19:18 -070018213 _res = _PyPegen_check_legacy_stmt ( p , a ) ? RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "Missing parentheses in call to '%U'. Did you mean %U(...)?" , a -> v . Name . id , a -> v . Name . id ) : NULL;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018214 if (_res == NULL && PyErr_Occurred()) {
18215 p->error_indicator = 1;
18216 D(p->level--);
18217 return NULL;
18218 }
18219 goto done;
18220 }
18221 p->mark = _mark;
18222 D(fprintf(stderr, "%*c%s invalid_legacy_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)35035bc2021-07-31 18:31:44 -070018223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME !'(' star_expressions"));
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018224 }
18225 _res = NULL;
18226 done:
18227 D(p->level--);
18228 return _res;
18229}
18230
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018231// invalid_expression:
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018232// | invalid_legacy_expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018233// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018234// | disjunction 'if' disjunction !('else' | ':')
Pablo Galindob2802482021-04-15 21:38:45 +010018235static void *
18236invalid_expression_rule(Parser *p)
18237{
18238 D(p->level++);
18239 if (p->error_indicator) {
18240 D(p->level--);
18241 return NULL;
18242 }
18243 void * _res = NULL;
18244 int _mark = p->mark;
Pablo Galindo Salgadob977f852021-07-27 18:52:32 +010018245 if (p->call_invalid_rules) { // invalid_legacy_expression
18246 if (p->error_indicator) {
18247 D(p->level--);
18248 return NULL;
18249 }
18250 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18251 void *invalid_legacy_expression_var;
18252 if (
18253 (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
18254 )
18255 {
18256 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18257 _res = invalid_legacy_expression_var;
18258 goto done;
18259 }
18260 p->mark = _mark;
18261 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
18262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
18263 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018264 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018265 if (p->error_indicator) {
18266 D(p->level--);
18267 return NULL;
18268 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018269 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018270 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018271 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018272 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018273 _PyPegen_lookahead(0, _tmp_143_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018274 &&
18275 (a = disjunction_rule(p)) // disjunction
18276 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018277 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018278 )
18279 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018280 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018281 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018282 if (_res == NULL && PyErr_Occurred()) {
18283 p->error_indicator = 1;
18284 D(p->level--);
18285 return NULL;
18286 }
18287 goto done;
18288 }
18289 p->mark = _mark;
18290 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018292 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018293 { // disjunction 'if' disjunction !('else' | ':')
Miss Islington (bot)56717622021-08-02 12:05:33 -070018294 if (p->error_indicator) {
18295 D(p->level--);
18296 return NULL;
18297 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018298 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018299 Token * _keyword;
18300 expr_ty a;
18301 expr_ty b;
18302 if (
18303 (a = disjunction_rule(p)) // disjunction
18304 &&
18305 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18306 &&
18307 (b = disjunction_rule(p)) // disjunction
18308 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018309 _PyPegen_lookahead(0, _tmp_144_rule, p)
Miss Islington (bot)56717622021-08-02 12:05:33 -070018310 )
18311 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018312 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018313 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" );
18314 if (_res == NULL && PyErr_Occurred()) {
18315 p->error_indicator = 1;
18316 D(p->level--);
18317 return NULL;
18318 }
18319 goto done;
18320 }
18321 p->mark = _mark;
18322 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')"));
Miss Islington (bot)56717622021-08-02 12:05:33 -070018324 }
Pablo Galindob2802482021-04-15 21:38:45 +010018325 _res = NULL;
18326 done:
18327 D(p->level--);
18328 return _res;
18329}
18330
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018331// invalid_named_expression:
18332// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018333// | NAME '=' bitwise_or !('=' | ':=')
18334// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018335static void *
18336invalid_named_expression_rule(Parser *p)
18337{
18338 D(p->level++);
18339 if (p->error_indicator) {
18340 D(p->level--);
18341 return NULL;
18342 }
18343 void * _res = NULL;
18344 int _mark = p->mark;
18345 { // expression ':=' expression
18346 if (p->error_indicator) {
18347 D(p->level--);
18348 return NULL;
18349 }
18350 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18351 Token * _literal;
18352 expr_ty a;
18353 expr_ty expression_var;
18354 if (
18355 (a = expression_rule(p)) // expression
18356 &&
18357 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18358 &&
18359 (expression_var = expression_rule(p)) // expression
18360 )
18361 {
18362 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18363 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18364 if (_res == NULL && PyErr_Occurred()) {
18365 p->error_indicator = 1;
18366 D(p->level--);
18367 return NULL;
18368 }
18369 goto done;
18370 }
18371 p->mark = _mark;
18372 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18374 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018375 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018376 if (p->error_indicator) {
18377 D(p->level--);
18378 return NULL;
18379 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018380 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 +010018381 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018382 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018383 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018384 if (
18385 (a = _PyPegen_name_token(p)) // NAME
18386 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018387 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018388 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018389 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018390 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018391 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018392 )
18393 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018394 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
18395 _res = p -> in_raw_rule ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018396 if (_res == NULL && PyErr_Occurred()) {
18397 p->error_indicator = 1;
18398 D(p->level--);
18399 return NULL;
18400 }
18401 goto done;
18402 }
18403 p->mark = _mark;
18404 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018406 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018407 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018408 if (p->error_indicator) {
18409 D(p->level--);
18410 return NULL;
18411 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018412 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018413 expr_ty a;
18414 Token * b;
18415 expr_ty bitwise_or_var;
18416 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018417 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018418 &&
18419 (a = bitwise_or_rule(p)) // bitwise_or
18420 &&
18421 (b = _PyPegen_expect_token(p, 22)) // token='='
18422 &&
18423 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18424 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018425 _PyPegen_lookahead(0, _tmp_147_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018426 )
18427 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018428 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 !('=' | ':=')"));
18429 _res = p -> in_raw_rule ? NULL : RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018430 if (_res == NULL && PyErr_Occurred()) {
18431 p->error_indicator = 1;
18432 D(p->level--);
18433 return NULL;
18434 }
18435 goto done;
18436 }
18437 p->mark = _mark;
18438 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018440 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018441 _res = NULL;
18442 done:
18443 D(p->level--);
18444 return _res;
18445}
18446
18447// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018448// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018449// | star_named_expression ',' star_named_expressions* ':' expression
18450// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018451// | ((star_targets '='))* star_expressions '='
18452// | ((star_targets '='))* yield_expr '='
18453// | star_expressions augassign (yield_expr | star_expressions)
18454static void *
18455invalid_assignment_rule(Parser *p)
18456{
18457 D(p->level++);
18458 if (p->error_indicator) {
18459 D(p->level--);
18460 return NULL;
18461 }
18462 void * _res = NULL;
18463 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018464 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018465 if (p->error_indicator) {
18466 D(p->level--);
18467 return NULL;
18468 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018469 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 +010018470 Token * _literal;
18471 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018472 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018473 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018474 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018475 &&
18476 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018477 &&
18478 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018479 )
18480 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018481 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18482 _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 +010018483 if (_res == NULL && PyErr_Occurred()) {
18484 p->error_indicator = 1;
18485 D(p->level--);
18486 return NULL;
18487 }
18488 goto done;
18489 }
18490 p->mark = _mark;
18491 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018493 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018494 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018495 if (p->error_indicator) {
18496 D(p->level--);
18497 return NULL;
18498 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018499 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 +010018500 Token * _literal;
18501 Token * _literal_1;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018502 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018503 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018504 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018505 if (
18506 (a = star_named_expression_rule(p)) // star_named_expression
18507 &&
18508 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18509 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018510 (_loop0_148_var = _loop0_148_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018511 &&
18512 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018513 &&
18514 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018515 )
18516 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018517 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 +010018518 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18519 if (_res == NULL && PyErr_Occurred()) {
18520 p->error_indicator = 1;
18521 D(p->level--);
18522 return NULL;
18523 }
18524 goto done;
18525 }
18526 p->mark = _mark;
18527 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018529 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018530 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018531 if (p->error_indicator) {
18532 D(p->level--);
18533 return NULL;
18534 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018535 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018536 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018537 expr_ty a;
18538 expr_ty expression_var;
18539 if (
18540 (a = expression_rule(p)) // expression
18541 &&
18542 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18543 &&
18544 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018545 )
18546 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018547 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 +010018548 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18549 if (_res == NULL && PyErr_Occurred()) {
18550 p->error_indicator = 1;
18551 D(p->level--);
18552 return NULL;
18553 }
18554 goto done;
18555 }
18556 p->mark = _mark;
18557 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018559 }
18560 { // ((star_targets '='))* star_expressions '='
18561 if (p->error_indicator) {
18562 D(p->level--);
18563 return NULL;
18564 }
18565 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18566 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018567 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018568 expr_ty a;
18569 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018570 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018571 &&
18572 (a = star_expressions_rule(p)) // star_expressions
18573 &&
18574 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18575 )
18576 {
18577 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 +030018578 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018579 if (_res == NULL && PyErr_Occurred()) {
18580 p->error_indicator = 1;
18581 D(p->level--);
18582 return NULL;
18583 }
18584 goto done;
18585 }
18586 p->mark = _mark;
18587 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18588 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18589 }
18590 { // ((star_targets '='))* yield_expr '='
18591 if (p->error_indicator) {
18592 D(p->level--);
18593 return NULL;
18594 }
18595 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18596 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018597 asdl_seq * _loop0_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018598 expr_ty a;
18599 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018600 (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018601 &&
18602 (a = yield_expr_rule(p)) // yield_expr
18603 &&
18604 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18605 )
18606 {
18607 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18608 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18609 if (_res == NULL && PyErr_Occurred()) {
18610 p->error_indicator = 1;
18611 D(p->level--);
18612 return NULL;
18613 }
18614 goto done;
18615 }
18616 p->mark = _mark;
18617 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18619 }
18620 { // star_expressions augassign (yield_expr | star_expressions)
18621 if (p->error_indicator) {
18622 D(p->level--);
18623 return NULL;
18624 }
18625 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018626 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018627 expr_ty a;
18628 AugOperator* augassign_var;
18629 if (
18630 (a = star_expressions_rule(p)) // star_expressions
18631 &&
18632 (augassign_var = augassign_rule(p)) // augassign
18633 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018634 (_tmp_151_var = _tmp_151_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018635 )
18636 {
18637 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18638 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18639 if (_res == NULL && PyErr_Occurred()) {
18640 p->error_indicator = 1;
18641 D(p->level--);
18642 return NULL;
18643 }
18644 goto done;
18645 }
18646 p->mark = _mark;
18647 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18649 }
18650 _res = NULL;
18651 done:
18652 D(p->level--);
18653 return _res;
18654}
18655
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018656// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18657static expr_ty
18658invalid_ann_assign_target_rule(Parser *p)
18659{
18660 D(p->level++);
18661 if (p->error_indicator) {
18662 D(p->level--);
18663 return NULL;
18664 }
18665 expr_ty _res = NULL;
18666 int _mark = p->mark;
18667 { // list
18668 if (p->error_indicator) {
18669 D(p->level--);
18670 return NULL;
18671 }
18672 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18673 expr_ty list_var;
18674 if (
18675 (list_var = list_rule(p)) // list
18676 )
18677 {
18678 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18679 _res = list_var;
18680 goto done;
18681 }
18682 p->mark = _mark;
18683 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18685 }
18686 { // tuple
18687 if (p->error_indicator) {
18688 D(p->level--);
18689 return NULL;
18690 }
18691 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18692 expr_ty tuple_var;
18693 if (
18694 (tuple_var = tuple_rule(p)) // tuple
18695 )
18696 {
18697 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18698 _res = tuple_var;
18699 goto done;
18700 }
18701 p->mark = _mark;
18702 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18704 }
18705 { // '(' invalid_ann_assign_target ')'
18706 if (p->error_indicator) {
18707 D(p->level--);
18708 return NULL;
18709 }
18710 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18711 Token * _literal;
18712 Token * _literal_1;
18713 expr_ty a;
18714 if (
18715 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18716 &&
18717 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18718 &&
18719 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18720 )
18721 {
18722 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18723 _res = a;
18724 if (_res == NULL && PyErr_Occurred()) {
18725 p->error_indicator = 1;
18726 D(p->level--);
18727 return NULL;
18728 }
18729 goto done;
18730 }
18731 p->mark = _mark;
18732 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18734 }
18735 _res = NULL;
18736 done:
18737 D(p->level--);
18738 return _res;
18739}
18740
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018741// invalid_del_stmt: 'del' star_expressions
18742static void *
18743invalid_del_stmt_rule(Parser *p)
18744{
18745 D(p->level++);
18746 if (p->error_indicator) {
18747 D(p->level--);
18748 return NULL;
18749 }
18750 void * _res = NULL;
18751 int _mark = p->mark;
18752 { // 'del' star_expressions
18753 if (p->error_indicator) {
18754 D(p->level--);
18755 return NULL;
18756 }
18757 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18758 Token * _keyword;
18759 expr_ty a;
18760 if (
18761 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18762 &&
18763 (a = star_expressions_rule(p)) // star_expressions
18764 )
18765 {
18766 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 +030018767 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018768 if (_res == NULL && PyErr_Occurred()) {
18769 p->error_indicator = 1;
18770 D(p->level--);
18771 return NULL;
18772 }
18773 goto done;
18774 }
18775 p->mark = _mark;
18776 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18778 }
18779 _res = NULL;
18780 done:
18781 D(p->level--);
18782 return _res;
18783}
18784
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018785// invalid_block: NEWLINE !INDENT
18786static void *
18787invalid_block_rule(Parser *p)
18788{
18789 D(p->level++);
18790 if (p->error_indicator) {
18791 D(p->level--);
18792 return NULL;
18793 }
18794 void * _res = NULL;
18795 int _mark = p->mark;
18796 { // NEWLINE !INDENT
18797 if (p->error_indicator) {
18798 D(p->level--);
18799 return NULL;
18800 }
18801 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18802 Token * newline_var;
18803 if (
18804 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18805 &&
18806 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18807 )
18808 {
18809 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18810 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18811 if (_res == NULL && PyErr_Occurred()) {
18812 p->error_indicator = 1;
18813 D(p->level--);
18814 return NULL;
18815 }
18816 goto done;
18817 }
18818 p->mark = _mark;
18819 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18821 }
18822 _res = NULL;
18823 done:
18824 D(p->level--);
18825 return _res;
18826}
18827
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018828// Left-recursive
18829// invalid_primary: primary '{'
18830static void *
18831invalid_primary_rule(Parser *p)
18832{
18833 D(p->level++);
18834 if (p->error_indicator) {
18835 D(p->level--);
18836 return NULL;
18837 }
18838 void * _res = NULL;
18839 int _mark = p->mark;
18840 { // primary '{'
18841 if (p->error_indicator) {
18842 D(p->level--);
18843 return NULL;
18844 }
18845 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18846 Token * a;
18847 expr_ty primary_var;
18848 if (
18849 (primary_var = primary_rule(p)) // primary
18850 &&
18851 (a = _PyPegen_expect_token(p, 25)) // token='{'
18852 )
18853 {
18854 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18855 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18856 if (_res == NULL && PyErr_Occurred()) {
18857 p->error_indicator = 1;
18858 D(p->level--);
18859 return NULL;
18860 }
18861 goto done;
18862 }
18863 p->mark = _mark;
18864 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18866 }
18867 _res = NULL;
18868 done:
18869 D(p->level--);
18870 return _res;
18871}
18872
Pablo Galindo835f14f2021-01-31 22:52:56 +000018873// invalid_comprehension:
18874// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018875// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18876// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018877static void *
18878invalid_comprehension_rule(Parser *p)
18879{
18880 D(p->level++);
18881 if (p->error_indicator) {
18882 D(p->level--);
18883 return NULL;
18884 }
18885 void * _res = NULL;
18886 int _mark = p->mark;
18887 { // ('[' | '(' | '{') starred_expression for_if_clauses
18888 if (p->error_indicator) {
18889 D(p->level--);
18890 return NULL;
18891 }
18892 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018893 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018894 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018895 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018896 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018897 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018898 &&
18899 (a = starred_expression_rule(p)) // starred_expression
18900 &&
18901 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18902 )
18903 {
18904 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18905 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18906 if (_res == NULL && PyErr_Occurred()) {
18907 p->error_indicator = 1;
18908 D(p->level--);
18909 return NULL;
18910 }
18911 goto done;
18912 }
18913 p->mark = _mark;
18914 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18916 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018917 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018918 if (p->error_indicator) {
18919 D(p->level--);
18920 return NULL;
18921 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018922 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 +000018923 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018924 void *_tmp_153_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018925 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018926 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018927 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018928 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018929 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018930 &&
18931 (a = star_named_expression_rule(p)) // star_named_expression
18932 &&
18933 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18934 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018935 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018936 &&
18937 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018938 )
18939 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018940 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"));
18941 _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 +000018942 if (_res == NULL && PyErr_Occurred()) {
18943 p->error_indicator = 1;
18944 D(p->level--);
18945 return NULL;
18946 }
18947 goto done;
18948 }
18949 p->mark = _mark;
18950 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18952 }
18953 { // ('[' | '{') star_named_expression ',' for_if_clauses
18954 if (p->error_indicator) {
18955 D(p->level--);
18956 return NULL;
18957 }
18958 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018959 void *_tmp_154_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018960 expr_ty a;
18961 Token * b;
18962 asdl_comprehension_seq* for_if_clauses_var;
18963 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010018964 (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010018965 &&
18966 (a = star_named_expression_rule(p)) // star_named_expression
18967 &&
18968 (b = _PyPegen_expect_token(p, 12)) // token=','
18969 &&
18970 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18971 )
18972 {
18973 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18974 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
18975 if (_res == NULL && PyErr_Occurred()) {
18976 p->error_indicator = 1;
18977 D(p->level--);
18978 return NULL;
18979 }
18980 goto done;
18981 }
18982 p->mark = _mark;
18983 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018985 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018986 _res = NULL;
18987 done:
18988 D(p->level--);
18989 return _res;
18990}
18991
18992// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18993static void *
18994invalid_dict_comprehension_rule(Parser *p)
18995{
18996 D(p->level++);
18997 if (p->error_indicator) {
18998 D(p->level--);
18999 return NULL;
19000 }
19001 void * _res = NULL;
19002 int _mark = p->mark;
19003 { // '{' '**' bitwise_or for_if_clauses '}'
19004 if (p->error_indicator) {
19005 D(p->level--);
19006 return NULL;
19007 }
19008 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19009 Token * _literal;
19010 Token * _literal_1;
19011 Token * a;
19012 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019013 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019014 if (
19015 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
19016 &&
19017 (a = _PyPegen_expect_token(p, 35)) // token='**'
19018 &&
19019 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19020 &&
19021 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19022 &&
19023 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
19024 )
19025 {
19026 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19027 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
19028 if (_res == NULL && PyErr_Occurred()) {
19029 p->error_indicator = 1;
19030 D(p->level--);
19031 return NULL;
19032 }
19033 goto done;
19034 }
19035 p->mark = _mark;
19036 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19038 }
19039 _res = NULL;
19040 done:
19041 D(p->level--);
19042 return _res;
19043}
19044
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019045// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019046static void *
19047invalid_parameters_rule(Parser *p)
19048{
19049 D(p->level++);
19050 if (p->error_indicator) {
19051 D(p->level--);
19052 return NULL;
19053 }
19054 void * _res = NULL;
19055 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019056 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019057 if (p->error_indicator) {
19058 D(p->level--);
19059 return NULL;
19060 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019061 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 Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019062 asdl_seq * _loop0_155_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019063 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019064 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019065 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019066 (_loop0_155_var = _loop0_155_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019067 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019068 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019069 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019070 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019071 )
19072 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019073 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 +010019074 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019075 if (_res == NULL && PyErr_Occurred()) {
19076 p->error_indicator = 1;
19077 D(p->level--);
19078 return NULL;
19079 }
19080 goto done;
19081 }
19082 p->mark = _mark;
19083 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19085 }
19086 _res = NULL;
19087 done:
19088 D(p->level--);
19089 return _res;
19090}
19091
19092// invalid_parameters_helper: slash_with_default | param_with_default+
19093static void *
19094invalid_parameters_helper_rule(Parser *p)
19095{
19096 D(p->level++);
19097 if (p->error_indicator) {
19098 D(p->level--);
19099 return NULL;
19100 }
19101 void * _res = NULL;
19102 int _mark = p->mark;
19103 { // slash_with_default
19104 if (p->error_indicator) {
19105 D(p->level--);
19106 return NULL;
19107 }
19108 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19109 SlashWithDefault* a;
19110 if (
19111 (a = slash_with_default_rule(p)) // slash_with_default
19112 )
19113 {
19114 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19115 _res = _PyPegen_singleton_seq ( p , a );
19116 if (_res == NULL && PyErr_Occurred()) {
19117 p->error_indicator = 1;
19118 D(p->level--);
19119 return NULL;
19120 }
19121 goto done;
19122 }
19123 p->mark = _mark;
19124 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19126 }
19127 { // param_with_default+
19128 if (p->error_indicator) {
19129 D(p->level--);
19130 return NULL;
19131 }
19132 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019133 asdl_seq * _loop1_156_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019134 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019135 (_loop1_156_var = _loop1_156_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019136 )
19137 {
19138 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019139 _res = _loop1_156_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019140 goto done;
19141 }
19142 p->mark = _mark;
19143 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019145 }
19146 _res = NULL;
19147 done:
19148 D(p->level--);
19149 return _res;
19150}
19151
19152// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019153// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019154static void *
19155invalid_lambda_parameters_rule(Parser *p)
19156{
19157 D(p->level++);
19158 if (p->error_indicator) {
19159 D(p->level--);
19160 return NULL;
19161 }
19162 void * _res = NULL;
19163 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019164 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019165 if (p->error_indicator) {
19166 D(p->level--);
19167 return NULL;
19168 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019169 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 Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019170 asdl_seq * _loop0_157_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019171 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019172 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019173 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019174 (_loop0_157_var = _loop0_157_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019175 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019176 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019177 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019178 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019179 )
19180 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019181 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 +010019182 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019183 if (_res == NULL && PyErr_Occurred()) {
19184 p->error_indicator = 1;
19185 D(p->level--);
19186 return NULL;
19187 }
19188 goto done;
19189 }
19190 p->mark = _mark;
19191 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19193 }
19194 _res = NULL;
19195 done:
19196 D(p->level--);
19197 return _res;
19198}
19199
19200// invalid_lambda_parameters_helper:
19201// | lambda_slash_with_default
19202// | lambda_param_with_default+
19203static void *
19204invalid_lambda_parameters_helper_rule(Parser *p)
19205{
19206 D(p->level++);
19207 if (p->error_indicator) {
19208 D(p->level--);
19209 return NULL;
19210 }
19211 void * _res = NULL;
19212 int _mark = p->mark;
19213 { // lambda_slash_with_default
19214 if (p->error_indicator) {
19215 D(p->level--);
19216 return NULL;
19217 }
19218 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19219 SlashWithDefault* a;
19220 if (
19221 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19222 )
19223 {
19224 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19225 _res = _PyPegen_singleton_seq ( p , a );
19226 if (_res == NULL && PyErr_Occurred()) {
19227 p->error_indicator = 1;
19228 D(p->level--);
19229 return NULL;
19230 }
19231 goto done;
19232 }
19233 p->mark = _mark;
19234 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19236 }
19237 { // lambda_param_with_default+
19238 if (p->error_indicator) {
19239 D(p->level--);
19240 return NULL;
19241 }
19242 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019243 asdl_seq * _loop1_158_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019244 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019245 (_loop1_158_var = _loop1_158_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019246 )
19247 {
19248 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019249 _res = _loop1_158_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019250 goto done;
19251 }
19252 p->mark = _mark;
19253 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019255 }
19256 _res = NULL;
19257 done:
19258 D(p->level--);
19259 return _res;
19260}
19261
19262// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19263static void *
19264invalid_star_etc_rule(Parser *p)
19265{
19266 D(p->level++);
19267 if (p->error_indicator) {
19268 D(p->level--);
19269 return NULL;
19270 }
19271 void * _res = NULL;
19272 int _mark = p->mark;
19273 { // '*' (')' | ',' (')' | '**'))
19274 if (p->error_indicator) {
19275 D(p->level--);
19276 return NULL;
19277 }
19278 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019279 void *_tmp_159_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019280 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019281 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019282 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019283 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019284 (_tmp_159_var = _tmp_159_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019285 )
19286 {
19287 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019288 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019289 if (_res == NULL && PyErr_Occurred()) {
19290 p->error_indicator = 1;
19291 D(p->level--);
19292 return NULL;
19293 }
19294 goto done;
19295 }
19296 p->mark = _mark;
19297 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19299 }
19300 { // '*' ',' TYPE_COMMENT
19301 if (p->error_indicator) {
19302 D(p->level--);
19303 return NULL;
19304 }
19305 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19306 Token * _literal;
19307 Token * _literal_1;
19308 Token * type_comment_var;
19309 if (
19310 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19311 &&
19312 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19313 &&
19314 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19315 )
19316 {
19317 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19318 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19319 if (_res == NULL && PyErr_Occurred()) {
19320 p->error_indicator = 1;
19321 D(p->level--);
19322 return NULL;
19323 }
19324 goto done;
19325 }
19326 p->mark = _mark;
19327 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19329 }
19330 _res = NULL;
19331 done:
19332 D(p->level--);
19333 return _res;
19334}
19335
19336// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19337static void *
19338invalid_lambda_star_etc_rule(Parser *p)
19339{
19340 D(p->level++);
19341 if (p->error_indicator) {
19342 D(p->level--);
19343 return NULL;
19344 }
19345 void * _res = NULL;
19346 int _mark = p->mark;
19347 { // '*' (':' | ',' (':' | '**'))
19348 if (p->error_indicator) {
19349 D(p->level--);
19350 return NULL;
19351 }
19352 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19353 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019354 void *_tmp_160_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019355 if (
19356 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19357 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019358 (_tmp_160_var = _tmp_160_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019359 )
19360 {
19361 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19362 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19363 if (_res == NULL && PyErr_Occurred()) {
19364 p->error_indicator = 1;
19365 D(p->level--);
19366 return NULL;
19367 }
19368 goto done;
19369 }
19370 p->mark = _mark;
19371 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19373 }
19374 _res = NULL;
19375 done:
19376 D(p->level--);
19377 return _res;
19378}
19379
19380// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19381static void *
19382invalid_double_type_comments_rule(Parser *p)
19383{
19384 D(p->level++);
19385 if (p->error_indicator) {
19386 D(p->level--);
19387 return NULL;
19388 }
19389 void * _res = NULL;
19390 int _mark = p->mark;
19391 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19392 if (p->error_indicator) {
19393 D(p->level--);
19394 return NULL;
19395 }
19396 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19397 Token * indent_var;
19398 Token * newline_var;
19399 Token * newline_var_1;
19400 Token * type_comment_var;
19401 Token * type_comment_var_1;
19402 if (
19403 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19404 &&
19405 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19406 &&
19407 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19408 &&
19409 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19410 &&
19411 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19412 )
19413 {
19414 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"));
19415 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19416 if (_res == NULL && PyErr_Occurred()) {
19417 p->error_indicator = 1;
19418 D(p->level--);
19419 return NULL;
19420 }
19421 goto done;
19422 }
19423 p->mark = _mark;
19424 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19426 }
19427 _res = NULL;
19428 done:
19429 D(p->level--);
19430 return _res;
19431}
19432
Pablo Galindo58fb1562021-02-02 19:54:22 +000019433// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019434static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019435invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019436{
19437 D(p->level++);
19438 if (p->error_indicator) {
19439 D(p->level--);
19440 return NULL;
19441 }
19442 void * _res = NULL;
19443 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019444 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019445 if (p->error_indicator) {
19446 D(p->level--);
19447 return NULL;
19448 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019449 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 +030019450 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019451 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019452 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019453 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019454 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019455 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019456 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19457 &&
19458 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019459 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019460 _PyPegen_lookahead(1, _tmp_161_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019461 )
19462 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019463 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 +030019464 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019465 if (_res == NULL && PyErr_Occurred()) {
19466 p->error_indicator = 1;
19467 D(p->level--);
19468 return NULL;
19469 }
19470 goto done;
19471 }
19472 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019473 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019475 }
19476 _res = NULL;
19477 done:
19478 D(p->level--);
19479 return _res;
19480}
19481
19482// invalid_for_target: ASYNC? 'for' star_expressions
19483static void *
19484invalid_for_target_rule(Parser *p)
19485{
19486 D(p->level++);
19487 if (p->error_indicator) {
19488 D(p->level--);
19489 return NULL;
19490 }
19491 void * _res = NULL;
19492 int _mark = p->mark;
19493 { // ASYNC? 'for' star_expressions
19494 if (p->error_indicator) {
19495 D(p->level--);
19496 return NULL;
19497 }
19498 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19499 Token * _keyword;
19500 void *_opt_var;
19501 UNUSED(_opt_var); // Silence compiler warnings
19502 expr_ty a;
19503 if (
19504 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19505 &&
19506 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19507 &&
19508 (a = star_expressions_rule(p)) // star_expressions
19509 )
19510 {
19511 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 +030019512 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019513 if (_res == NULL && PyErr_Occurred()) {
19514 p->error_indicator = 1;
19515 D(p->level--);
19516 return NULL;
19517 }
19518 goto done;
19519 }
19520 p->mark = _mark;
19521 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19523 }
19524 _res = NULL;
19525 done:
19526 D(p->level--);
19527 return _res;
19528}
19529
Pablo Galindo8efad612021-03-24 19:34:17 +000019530// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019531static void *
19532invalid_group_rule(Parser *p)
19533{
19534 D(p->level++);
19535 if (p->error_indicator) {
19536 D(p->level--);
19537 return NULL;
19538 }
19539 void * _res = NULL;
19540 int _mark = p->mark;
19541 { // '(' starred_expression ')'
19542 if (p->error_indicator) {
19543 D(p->level--);
19544 return NULL;
19545 }
19546 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19547 Token * _literal;
19548 Token * _literal_1;
19549 expr_ty a;
19550 if (
19551 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19552 &&
19553 (a = starred_expression_rule(p)) // starred_expression
19554 &&
19555 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19556 )
19557 {
19558 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 +010019559 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019560 if (_res == NULL && PyErr_Occurred()) {
19561 p->error_indicator = 1;
19562 D(p->level--);
19563 return NULL;
19564 }
19565 goto done;
19566 }
19567 p->mark = _mark;
19568 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019570 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019571 { // '(' '**' expression ')'
19572 if (p->error_indicator) {
19573 D(p->level--);
19574 return NULL;
19575 }
19576 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19577 Token * _literal;
19578 Token * _literal_1;
19579 Token * a;
19580 expr_ty expression_var;
19581 if (
19582 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19583 &&
19584 (a = _PyPegen_expect_token(p, 35)) // token='**'
19585 &&
19586 (expression_var = expression_rule(p)) // expression
19587 &&
19588 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19589 )
19590 {
19591 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019592 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019593 if (_res == NULL && PyErr_Occurred()) {
19594 p->error_indicator = 1;
19595 D(p->level--);
19596 return NULL;
19597 }
19598 goto done;
19599 }
19600 p->mark = _mark;
19601 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19603 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019604 _res = NULL;
19605 done:
19606 D(p->level--);
19607 return _res;
19608}
19609
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019610// invalid_import_from_targets: import_from_as_names ',' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019611static void *
19612invalid_import_from_targets_rule(Parser *p)
19613{
19614 D(p->level++);
19615 if (p->error_indicator) {
19616 D(p->level--);
19617 return NULL;
19618 }
19619 void * _res = NULL;
19620 int _mark = p->mark;
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019621 { // import_from_as_names ',' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019622 if (p->error_indicator) {
19623 D(p->level--);
19624 return NULL;
19625 }
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019626 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019627 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019628 asdl_alias_seq* import_from_as_names_var;
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019629 Token * newline_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019630 if (
19631 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19632 &&
19633 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019634 &&
19635 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019636 )
19637 {
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019638 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019639 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19640 if (_res == NULL && PyErr_Occurred()) {
19641 p->error_indicator = 1;
19642 D(p->level--);
19643 return NULL;
19644 }
19645 goto done;
19646 }
19647 p->mark = _mark;
19648 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)846a10f2021-08-18 13:32:01 -070019649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019650 }
19651 _res = NULL;
19652 done:
19653 D(p->level--);
19654 return _res;
19655}
19656
Pablo Galindo58fb1562021-02-02 19:54:22 +000019657// invalid_with_stmt:
19658// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19659// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19660static void *
19661invalid_with_stmt_rule(Parser *p)
19662{
19663 D(p->level++);
19664 if (p->error_indicator) {
19665 D(p->level--);
19666 return NULL;
19667 }
19668 void * _res = NULL;
19669 int _mark = p->mark;
19670 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19671 if (p->error_indicator) {
19672 D(p->level--);
19673 return NULL;
19674 }
19675 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019676 asdl_seq * _gather_162_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019677 Token * _keyword;
19678 Token * _literal;
19679 void *_opt_var;
19680 UNUSED(_opt_var); // Silence compiler warnings
19681 if (
19682 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19683 &&
19684 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19685 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019686 (_gather_162_var = _gather_162_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019687 &&
19688 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19689 )
19690 {
19691 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019692 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_162_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019693 goto done;
19694 }
19695 p->mark = _mark;
19696 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19698 }
19699 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19700 if (p->error_indicator) {
19701 D(p->level--);
19702 return NULL;
19703 }
19704 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019705 asdl_seq * _gather_164_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019706 Token * _keyword;
19707 Token * _literal;
19708 Token * _literal_1;
19709 Token * _literal_2;
19710 void *_opt_var;
19711 UNUSED(_opt_var); // Silence compiler warnings
19712 void *_opt_var_1;
19713 UNUSED(_opt_var_1); // Silence compiler warnings
19714 if (
19715 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19716 &&
19717 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19718 &&
19719 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19720 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019721 (_gather_164_var = _gather_164_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019722 &&
19723 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19724 &&
19725 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19726 &&
19727 (_literal_2 = _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' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019731 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_164_var, _opt_var_1, _literal_1, _literal_2);
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' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19737 }
19738 _res = NULL;
19739 done:
19740 D(p->level--);
19741 return _res;
19742}
19743
Pablo Galindo56c95df2021-04-21 15:28:21 +010019744// invalid_with_stmt_indent:
19745// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19746// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019747static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019748invalid_with_stmt_indent_rule(Parser *p)
19749{
19750 D(p->level++);
19751 if (p->error_indicator) {
19752 D(p->level--);
19753 return NULL;
19754 }
19755 void * _res = NULL;
19756 int _mark = p->mark;
19757 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19758 if (p->error_indicator) {
19759 D(p->level--);
19760 return NULL;
19761 }
19762 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 Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019763 asdl_seq * _gather_166_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019764 Token * _literal;
19765 void *_opt_var;
19766 UNUSED(_opt_var); // Silence compiler warnings
19767 Token * a;
19768 Token * newline_var;
19769 if (
19770 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19771 &&
19772 (a = _PyPegen_expect_token(p, 519)) // token='with'
19773 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019774 (_gather_166_var = _gather_166_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019775 &&
19776 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19777 &&
19778 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19779 &&
19780 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19781 )
19782 {
19783 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"));
19784 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19785 if (_res == NULL && PyErr_Occurred()) {
19786 p->error_indicator = 1;
19787 D(p->level--);
19788 return NULL;
19789 }
19790 goto done;
19791 }
19792 p->mark = _mark;
19793 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19795 }
19796 { // ASYNC? 'with' '(' ','.(expressions ['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' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019802 asdl_seq * _gather_168_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019803 Token * _literal;
19804 Token * _literal_1;
19805 Token * _literal_2;
19806 void *_opt_var;
19807 UNUSED(_opt_var); // Silence compiler warnings
19808 void *_opt_var_1;
19809 UNUSED(_opt_var_1); // Silence compiler warnings
19810 Token * a;
19811 Token * newline_var;
19812 if (
19813 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19814 &&
19815 (a = _PyPegen_expect_token(p, 519)) // token='with'
19816 &&
19817 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19818 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019819 (_gather_168_var = _gather_168_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019820 &&
19821 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19822 &&
19823 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19824 &&
19825 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19826 &&
19827 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19828 &&
19829 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19830 )
19831 {
19832 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"));
19833 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19834 if (_res == NULL && PyErr_Occurred()) {
19835 p->error_indicator = 1;
19836 D(p->level--);
19837 return NULL;
19838 }
19839 goto done;
19840 }
19841 p->mark = _mark;
19842 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19844 }
19845 _res = NULL;
19846 done:
19847 D(p->level--);
19848 return _res;
19849}
19850
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019851// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
Pablo Galindo56c95df2021-04-21 15:28:21 +010019852static void *
19853invalid_try_stmt_rule(Parser *p)
19854{
19855 D(p->level++);
19856 if (p->error_indicator) {
19857 D(p->level--);
19858 return NULL;
19859 }
19860 void * _res = NULL;
19861 int _mark = p->mark;
19862 { // 'try' ':' NEWLINE !INDENT
19863 if (p->error_indicator) {
19864 D(p->level--);
19865 return NULL;
19866 }
19867 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19868 Token * _literal;
19869 Token * a;
19870 Token * newline_var;
19871 if (
19872 (a = _PyPegen_expect_token(p, 511)) // token='try'
19873 &&
19874 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19875 &&
19876 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19877 &&
19878 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19879 )
19880 {
19881 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19882 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19883 if (_res == NULL && PyErr_Occurred()) {
19884 p->error_indicator = 1;
19885 D(p->level--);
19886 return NULL;
19887 }
19888 goto done;
19889 }
19890 p->mark = _mark;
19891 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19893 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019894 { // 'try' ':' block !('except' | 'finally')
19895 if (p->error_indicator) {
19896 D(p->level--);
19897 return NULL;
19898 }
19899 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19900 Token * _keyword;
19901 Token * _literal;
19902 asdl_stmt_seq* block_var;
19903 if (
19904 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
19905 &&
19906 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19907 &&
19908 (block_var = block_rule(p)) // block
19909 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019910 _PyPegen_lookahead(0, _tmp_170_rule, p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019911 )
19912 {
19913 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19914 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
19915 if (_res == NULL && PyErr_Occurred()) {
19916 p->error_indicator = 1;
19917 D(p->level--);
19918 return NULL;
19919 }
19920 goto done;
19921 }
19922 p->mark = _mark;
19923 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19925 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019926 _res = NULL;
19927 done:
19928 D(p->level--);
19929 return _res;
19930}
19931
19932// invalid_except_stmt:
19933// | 'except' expression ',' expressions ['as' NAME] ':'
19934// | 'except' expression ['as' NAME] NEWLINE
19935// | 'except' NEWLINE
19936static void *
19937invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019938{
19939 D(p->level++);
19940 if (p->error_indicator) {
19941 D(p->level--);
19942 return NULL;
19943 }
19944 void * _res = NULL;
19945 int _mark = p->mark;
19946 { // 'except' expression ',' expressions ['as' NAME] ':'
19947 if (p->error_indicator) {
19948 D(p->level--);
19949 return NULL;
19950 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019951 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 +000019952 Token * _keyword;
19953 Token * _literal;
19954 Token * _literal_1;
19955 void *_opt_var;
19956 UNUSED(_opt_var); // Silence compiler warnings
19957 expr_ty a;
19958 expr_ty expressions_var;
19959 if (
19960 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19961 &&
19962 (a = expression_rule(p)) // expression
19963 &&
19964 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19965 &&
19966 (expressions_var = expressions_rule(p)) // expressions
19967 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010019968 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019969 &&
19970 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19971 )
19972 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019973 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
Miss Islington (bot)9a0e65c2021-05-09 14:13:50 -070019974 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019975 if (_res == NULL && PyErr_Occurred()) {
19976 p->error_indicator = 1;
19977 D(p->level--);
19978 return NULL;
19979 }
19980 goto done;
19981 }
19982 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019983 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19985 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019986 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019987 if (p->error_indicator) {
19988 D(p->level--);
19989 return NULL;
19990 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019991 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 +000019992 void *_opt_var;
19993 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010019994 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019995 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019996 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019997 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019998 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019999 &&
20000 (expression_var = expression_rule(p)) // expression
20001 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010020002 (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020003 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020004 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020005 )
20006 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020007 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
20008 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20009 if (_res == NULL && PyErr_Occurred()) {
20010 p->error_indicator = 1;
20011 D(p->level--);
20012 return NULL;
20013 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020014 goto done;
20015 }
20016 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020017 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020019 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020020 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020021 if (p->error_indicator) {
20022 D(p->level--);
20023 return NULL;
20024 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020025 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20026 Token * a;
20027 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020028 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020029 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020030 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020031 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020032 )
20033 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020034 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20035 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20036 if (_res == NULL && PyErr_Occurred()) {
20037 p->error_indicator = 1;
20038 D(p->level--);
20039 return NULL;
20040 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020041 goto done;
20042 }
20043 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020044 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020046 }
20047 _res = NULL;
20048 done:
20049 D(p->level--);
20050 return _res;
20051}
20052
Pablo Galindo56c95df2021-04-21 15:28:21 +010020053// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
20054static void *
20055invalid_finally_stmt_rule(Parser *p)
20056{
20057 D(p->level++);
20058 if (p->error_indicator) {
20059 D(p->level--);
20060 return NULL;
20061 }
20062 void * _res = NULL;
20063 int _mark = p->mark;
20064 { // 'finally' ':' NEWLINE !INDENT
20065 if (p->error_indicator) {
20066 D(p->level--);
20067 return NULL;
20068 }
20069 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20070 Token * _literal;
20071 Token * a;
20072 Token * newline_var;
20073 if (
20074 (a = _PyPegen_expect_token(p, 522)) // token='finally'
20075 &&
20076 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20077 &&
20078 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20079 &&
20080 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20081 )
20082 {
20083 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20084 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
20085 if (_res == NULL && PyErr_Occurred()) {
20086 p->error_indicator = 1;
20087 D(p->level--);
20088 return NULL;
20089 }
20090 goto done;
20091 }
20092 p->mark = _mark;
20093 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20095 }
20096 _res = NULL;
20097 done:
20098 D(p->level--);
20099 return _res;
20100}
20101
20102// invalid_except_stmt_indent:
20103// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20104// | 'except' ':' NEWLINE !INDENT
20105static void *
20106invalid_except_stmt_indent_rule(Parser *p)
20107{
20108 D(p->level++);
20109 if (p->error_indicator) {
20110 D(p->level--);
20111 return NULL;
20112 }
20113 void * _res = NULL;
20114 int _mark = p->mark;
20115 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20116 if (p->error_indicator) {
20117 D(p->level--);
20118 return NULL;
20119 }
20120 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20121 Token * _literal;
20122 void *_opt_var;
20123 UNUSED(_opt_var); // Silence compiler warnings
20124 Token * a;
20125 expr_ty expression_var;
20126 Token * newline_var;
20127 if (
20128 (a = _PyPegen_expect_token(p, 521)) // token='except'
20129 &&
20130 (expression_var = expression_rule(p)) // expression
20131 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010020132 (_opt_var = _tmp_173_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020133 &&
20134 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20135 &&
20136 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20137 &&
20138 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20139 )
20140 {
20141 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20142 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20143 if (_res == NULL && PyErr_Occurred()) {
20144 p->error_indicator = 1;
20145 D(p->level--);
20146 return NULL;
20147 }
20148 goto done;
20149 }
20150 p->mark = _mark;
20151 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20153 }
20154 { // 'except' ':' NEWLINE !INDENT
20155 if (p->error_indicator) {
20156 D(p->level--);
20157 return NULL;
20158 }
20159 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20160 Token * _literal;
20161 Token * a;
20162 Token * newline_var;
20163 if (
20164 (a = _PyPegen_expect_token(p, 521)) // token='except'
20165 &&
20166 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20167 &&
20168 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20169 &&
20170 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20171 )
20172 {
20173 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20174 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20175 if (_res == NULL && PyErr_Occurred()) {
20176 p->error_indicator = 1;
20177 D(p->level--);
20178 return NULL;
20179 }
20180 goto done;
20181 }
20182 p->mark = _mark;
20183 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20185 }
20186 _res = NULL;
20187 done:
20188 D(p->level--);
20189 return _res;
20190}
20191
20192// invalid_match_stmt:
20193// | "match" subject_expr !':'
20194// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020195static void *
20196invalid_match_stmt_rule(Parser *p)
20197{
20198 D(p->level++);
20199 if (p->error_indicator) {
20200 D(p->level--);
20201 return NULL;
20202 }
20203 void * _res = NULL;
20204 int _mark = p->mark;
20205 { // "match" subject_expr !':'
20206 if (p->error_indicator) {
20207 D(p->level--);
20208 return NULL;
20209 }
20210 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20211 expr_ty _keyword;
20212 expr_ty subject_expr_var;
20213 if (
20214 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20215 &&
20216 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20217 &&
20218 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20219 )
20220 {
20221 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20222 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20223 if (_res == NULL && PyErr_Occurred()) {
20224 p->error_indicator = 1;
20225 D(p->level--);
20226 return NULL;
20227 }
20228 goto done;
20229 }
20230 p->mark = _mark;
20231 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20233 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020234 { // "match" subject_expr ':' NEWLINE !INDENT
20235 if (p->error_indicator) {
20236 D(p->level--);
20237 return NULL;
20238 }
20239 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20240 Token * _literal;
20241 expr_ty a;
20242 Token * newline_var;
20243 expr_ty subject;
20244 if (
20245 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20246 &&
20247 (subject = subject_expr_rule(p)) // subject_expr
20248 &&
20249 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20250 &&
20251 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20252 &&
20253 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20254 )
20255 {
20256 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20257 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20258 if (_res == NULL && PyErr_Occurred()) {
20259 p->error_indicator = 1;
20260 D(p->level--);
20261 return NULL;
20262 }
20263 goto done;
20264 }
20265 p->mark = _mark;
20266 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20268 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020269 _res = NULL;
20270 done:
20271 D(p->level--);
20272 return _res;
20273}
20274
Pablo Galindo56c95df2021-04-21 15:28:21 +010020275// invalid_case_block:
20276// | "case" patterns guard? !':'
20277// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020278static void *
20279invalid_case_block_rule(Parser *p)
20280{
20281 D(p->level++);
20282 if (p->error_indicator) {
20283 D(p->level--);
20284 return NULL;
20285 }
20286 void * _res = NULL;
20287 int _mark = p->mark;
20288 { // "case" patterns guard? !':'
20289 if (p->error_indicator) {
20290 D(p->level--);
20291 return NULL;
20292 }
20293 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20294 expr_ty _keyword;
20295 void *_opt_var;
20296 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020297 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020298 if (
20299 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20300 &&
20301 (patterns_var = patterns_rule(p)) // patterns
20302 &&
20303 (_opt_var = guard_rule(p), 1) // guard?
20304 &&
20305 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20306 )
20307 {
20308 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20309 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20310 if (_res == NULL && PyErr_Occurred()) {
20311 p->error_indicator = 1;
20312 D(p->level--);
20313 return NULL;
20314 }
20315 goto done;
20316 }
20317 p->mark = _mark;
20318 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20320 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020321 { // "case" patterns guard? ':' NEWLINE !INDENT
20322 if (p->error_indicator) {
20323 D(p->level--);
20324 return NULL;
20325 }
20326 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20327 Token * _literal;
20328 void *_opt_var;
20329 UNUSED(_opt_var); // Silence compiler warnings
20330 expr_ty a;
20331 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020332 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020333 if (
20334 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20335 &&
20336 (patterns_var = patterns_rule(p)) // patterns
20337 &&
20338 (_opt_var = guard_rule(p), 1) // guard?
20339 &&
20340 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20341 &&
20342 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20343 &&
20344 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20345 )
20346 {
20347 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20348 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20349 if (_res == NULL && PyErr_Occurred()) {
20350 p->error_indicator = 1;
20351 D(p->level--);
20352 return NULL;
20353 }
20354 goto done;
20355 }
20356 p->mark = _mark;
20357 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20359 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020360 _res = NULL;
20361 done:
20362 D(p->level--);
20363 return _res;
20364}
20365
Pablo Galindoa8c418d2021-06-18 22:15:57 +010020366// invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' !NAME expression
20367static void *
20368invalid_as_pattern_rule(Parser *p)
20369{
20370 D(p->level++);
20371 if (p->error_indicator) {
20372 D(p->level--);
20373 return NULL;
20374 }
20375 void * _res = NULL;
20376 int _mark = p->mark;
20377 { // or_pattern 'as' "_"
20378 if (p->error_indicator) {
20379 D(p->level--);
20380 return NULL;
20381 }
20382 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20383 Token * _keyword;
20384 expr_ty a;
20385 pattern_ty or_pattern_var;
20386 if (
20387 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20388 &&
20389 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20390 &&
20391 (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
20392 )
20393 {
20394 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20395 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
20396 if (_res == NULL && PyErr_Occurred()) {
20397 p->error_indicator = 1;
20398 D(p->level--);
20399 return NULL;
20400 }
20401 goto done;
20402 }
20403 p->mark = _mark;
20404 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
20406 }
20407 { // or_pattern 'as' !NAME expression
20408 if (p->error_indicator) {
20409 D(p->level--);
20410 return NULL;
20411 }
20412 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20413 Token * _keyword;
20414 expr_ty a;
20415 pattern_ty or_pattern_var;
20416 if (
20417 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20418 &&
20419 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20420 &&
20421 _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
20422 &&
20423 (a = expression_rule(p)) // expression
20424 )
20425 {
20426 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20427 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid pattern target" );
20428 if (_res == NULL && PyErr_Occurred()) {
20429 p->error_indicator = 1;
20430 D(p->level--);
20431 return NULL;
20432 }
20433 goto done;
20434 }
20435 p->mark = _mark;
20436 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' !NAME expression"));
20438 }
20439 _res = NULL;
20440 done:
20441 D(p->level--);
20442 return _res;
20443}
20444
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020445// invalid_class_pattern: name_or_attr '(' invalid_class_argument_pattern
20446static void *
20447invalid_class_pattern_rule(Parser *p)
20448{
20449 D(p->level++);
20450 if (p->error_indicator) {
20451 D(p->level--);
20452 return NULL;
20453 }
20454 void * _res = NULL;
20455 int _mark = p->mark;
20456 { // name_or_attr '(' invalid_class_argument_pattern
20457 if (p->error_indicator) {
20458 D(p->level--);
20459 return NULL;
20460 }
20461 D(fprintf(stderr, "%*c> invalid_class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20462 Token * _literal;
20463 asdl_pattern_seq* a;
20464 expr_ty name_or_attr_var;
20465 if (
20466 (name_or_attr_var = name_or_attr_rule(p)) // name_or_attr
20467 &&
20468 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20469 &&
20470 (a = invalid_class_argument_pattern_rule(p)) // invalid_class_argument_pattern
20471 )
20472 {
20473 D(fprintf(stderr, "%*c+ invalid_class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20474 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( PyPegen_first_item ( a , pattern_ty ) , PyPegen_last_item ( a , pattern_ty ) , "positional patterns follow keyword patterns" );
20475 if (_res == NULL && PyErr_Occurred()) {
20476 p->error_indicator = 1;
20477 D(p->level--);
20478 return NULL;
20479 }
20480 goto done;
20481 }
20482 p->mark = _mark;
20483 D(fprintf(stderr, "%*c%s invalid_class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' invalid_class_argument_pattern"));
20485 }
20486 _res = NULL;
20487 done:
20488 D(p->level--);
20489 return _res;
20490}
20491
20492// invalid_class_argument_pattern:
20493// | [positional_patterns ','] keyword_patterns ',' positional_patterns
20494static asdl_pattern_seq*
20495invalid_class_argument_pattern_rule(Parser *p)
20496{
20497 D(p->level++);
20498 if (p->error_indicator) {
20499 D(p->level--);
20500 return NULL;
20501 }
20502 asdl_pattern_seq* _res = NULL;
20503 int _mark = p->mark;
20504 { // [positional_patterns ','] keyword_patterns ',' positional_patterns
20505 if (p->error_indicator) {
20506 D(p->level--);
20507 return NULL;
20508 }
20509 D(fprintf(stderr, "%*c> invalid_class_argument_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20510 Token * _literal;
20511 void *_opt_var;
20512 UNUSED(_opt_var); // Silence compiler warnings
20513 asdl_pattern_seq* a;
20514 asdl_seq* keyword_patterns_var;
20515 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010020516 (_opt_var = _tmp_174_rule(p), 1) // [positional_patterns ',']
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070020517 &&
20518 (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns
20519 &&
20520 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20521 &&
20522 (a = positional_patterns_rule(p)) // positional_patterns
20523 )
20524 {
20525 D(fprintf(stderr, "%*c+ invalid_class_argument_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20526 _res = a;
20527 if (_res == NULL && PyErr_Occurred()) {
20528 p->error_indicator = 1;
20529 D(p->level--);
20530 return NULL;
20531 }
20532 goto done;
20533 }
20534 p->mark = _mark;
20535 D(fprintf(stderr, "%*c%s invalid_class_argument_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20536 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[positional_patterns ','] keyword_patterns ',' positional_patterns"));
20537 }
20538 _res = NULL;
20539 done:
20540 D(p->level--);
20541 return _res;
20542}
20543
Pablo Galindo56c95df2021-04-21 15:28:21 +010020544// invalid_if_stmt:
20545// | 'if' named_expression NEWLINE
20546// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020547static void *
20548invalid_if_stmt_rule(Parser *p)
20549{
20550 D(p->level++);
20551 if (p->error_indicator) {
20552 D(p->level--);
20553 return NULL;
20554 }
20555 void * _res = NULL;
20556 int _mark = p->mark;
20557 { // 'if' named_expression NEWLINE
20558 if (p->error_indicator) {
20559 D(p->level--);
20560 return NULL;
20561 }
20562 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20563 Token * _keyword;
20564 expr_ty named_expression_var;
20565 Token * newline_var;
20566 if (
20567 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20568 &&
20569 (named_expression_var = named_expression_rule(p)) // named_expression
20570 &&
20571 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20572 )
20573 {
20574 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20575 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20576 if (_res == NULL && PyErr_Occurred()) {
20577 p->error_indicator = 1;
20578 D(p->level--);
20579 return NULL;
20580 }
20581 goto done;
20582 }
20583 p->mark = _mark;
20584 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20586 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020587 { // 'if' named_expression ':' NEWLINE !INDENT
20588 if (p->error_indicator) {
20589 D(p->level--);
20590 return NULL;
20591 }
20592 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20593 Token * _literal;
20594 Token * a;
20595 expr_ty a_1;
20596 Token * newline_var;
20597 if (
20598 (a = _PyPegen_expect_token(p, 510)) // token='if'
20599 &&
20600 (a_1 = named_expression_rule(p)) // named_expression
20601 &&
20602 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20603 &&
20604 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20605 &&
20606 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20607 )
20608 {
20609 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20610 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20611 if (_res == NULL && PyErr_Occurred()) {
20612 p->error_indicator = 1;
20613 D(p->level--);
20614 return NULL;
20615 }
20616 goto done;
20617 }
20618 p->mark = _mark;
20619 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20621 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020622 _res = NULL;
20623 done:
20624 D(p->level--);
20625 return _res;
20626}
20627
Pablo Galindo56c95df2021-04-21 15:28:21 +010020628// invalid_elif_stmt:
20629// | 'elif' named_expression NEWLINE
20630// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020631static void *
20632invalid_elif_stmt_rule(Parser *p)
20633{
20634 D(p->level++);
20635 if (p->error_indicator) {
20636 D(p->level--);
20637 return NULL;
20638 }
20639 void * _res = NULL;
20640 int _mark = p->mark;
20641 { // 'elif' named_expression NEWLINE
20642 if (p->error_indicator) {
20643 D(p->level--);
20644 return NULL;
20645 }
20646 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20647 Token * _keyword;
20648 expr_ty named_expression_var;
20649 Token * newline_var;
20650 if (
20651 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20652 &&
20653 (named_expression_var = named_expression_rule(p)) // named_expression
20654 &&
20655 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20656 )
20657 {
20658 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20659 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20660 if (_res == NULL && PyErr_Occurred()) {
20661 p->error_indicator = 1;
20662 D(p->level--);
20663 return NULL;
20664 }
20665 goto done;
20666 }
20667 p->mark = _mark;
20668 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20670 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020671 { // 'elif' named_expression ':' NEWLINE !INDENT
20672 if (p->error_indicator) {
20673 D(p->level--);
20674 return NULL;
20675 }
20676 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20677 Token * _literal;
20678 Token * a;
20679 expr_ty named_expression_var;
20680 Token * newline_var;
20681 if (
20682 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20683 &&
20684 (named_expression_var = named_expression_rule(p)) // named_expression
20685 &&
20686 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20687 &&
20688 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20689 &&
20690 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20691 )
20692 {
20693 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20694 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20695 if (_res == NULL && PyErr_Occurred()) {
20696 p->error_indicator = 1;
20697 D(p->level--);
20698 return NULL;
20699 }
20700 goto done;
20701 }
20702 p->mark = _mark;
20703 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20705 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020706 _res = NULL;
20707 done:
20708 D(p->level--);
20709 return _res;
20710}
20711
Pablo Galindo56c95df2021-04-21 15:28:21 +010020712// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20713static void *
20714invalid_else_stmt_rule(Parser *p)
20715{
20716 D(p->level++);
20717 if (p->error_indicator) {
20718 D(p->level--);
20719 return NULL;
20720 }
20721 void * _res = NULL;
20722 int _mark = p->mark;
20723 { // 'else' ':' NEWLINE !INDENT
20724 if (p->error_indicator) {
20725 D(p->level--);
20726 return NULL;
20727 }
20728 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20729 Token * _literal;
20730 Token * a;
20731 Token * newline_var;
20732 if (
20733 (a = _PyPegen_expect_token(p, 516)) // token='else'
20734 &&
20735 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20736 &&
20737 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20738 &&
20739 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20740 )
20741 {
20742 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20743 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20744 if (_res == NULL && PyErr_Occurred()) {
20745 p->error_indicator = 1;
20746 D(p->level--);
20747 return NULL;
20748 }
20749 goto done;
20750 }
20751 p->mark = _mark;
20752 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20754 }
20755 _res = NULL;
20756 done:
20757 D(p->level--);
20758 return _res;
20759}
20760
20761// invalid_while_stmt:
20762// | 'while' named_expression NEWLINE
20763// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020764static void *
20765invalid_while_stmt_rule(Parser *p)
20766{
20767 D(p->level++);
20768 if (p->error_indicator) {
20769 D(p->level--);
20770 return NULL;
20771 }
20772 void * _res = NULL;
20773 int _mark = p->mark;
20774 { // 'while' named_expression NEWLINE
20775 if (p->error_indicator) {
20776 D(p->level--);
20777 return NULL;
20778 }
20779 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20780 Token * _keyword;
20781 expr_ty named_expression_var;
20782 Token * newline_var;
20783 if (
20784 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20785 &&
20786 (named_expression_var = named_expression_rule(p)) // named_expression
20787 &&
20788 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20789 )
20790 {
20791 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20792 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20793 if (_res == NULL && PyErr_Occurred()) {
20794 p->error_indicator = 1;
20795 D(p->level--);
20796 return NULL;
20797 }
20798 goto done;
20799 }
20800 p->mark = _mark;
20801 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20803 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020804 { // 'while' named_expression ':' NEWLINE !INDENT
20805 if (p->error_indicator) {
20806 D(p->level--);
20807 return NULL;
20808 }
20809 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20810 Token * _literal;
20811 Token * a;
20812 expr_ty named_expression_var;
20813 Token * newline_var;
20814 if (
20815 (a = _PyPegen_expect_token(p, 512)) // token='while'
20816 &&
20817 (named_expression_var = named_expression_rule(p)) // named_expression
20818 &&
20819 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20820 &&
20821 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20822 &&
20823 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20824 )
20825 {
20826 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20827 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20828 if (_res == NULL && PyErr_Occurred()) {
20829 p->error_indicator = 1;
20830 D(p->level--);
20831 return NULL;
20832 }
20833 goto done;
20834 }
20835 p->mark = _mark;
20836 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20838 }
20839 _res = NULL;
20840 done:
20841 D(p->level--);
20842 return _res;
20843}
20844
20845// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20846static void *
20847invalid_for_stmt_rule(Parser *p)
20848{
20849 D(p->level++);
20850 if (p->error_indicator) {
20851 D(p->level--);
20852 return NULL;
20853 }
20854 void * _res = NULL;
20855 int _mark = p->mark;
20856 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20857 if (p->error_indicator) {
20858 D(p->level--);
20859 return NULL;
20860 }
20861 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"));
20862 Token * _keyword;
20863 Token * _literal;
20864 void *_opt_var;
20865 UNUSED(_opt_var); // Silence compiler warnings
20866 Token * a;
20867 Token * newline_var;
20868 expr_ty star_expressions_var;
20869 expr_ty star_targets_var;
20870 if (
20871 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20872 &&
20873 (a = _PyPegen_expect_token(p, 517)) // token='for'
20874 &&
20875 (star_targets_var = star_targets_rule(p)) // star_targets
20876 &&
20877 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20878 &&
20879 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20880 &&
20881 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20882 &&
20883 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20884 &&
20885 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20886 )
20887 {
20888 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"));
20889 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20890 if (_res == NULL && PyErr_Occurred()) {
20891 p->error_indicator = 1;
20892 D(p->level--);
20893 return NULL;
20894 }
20895 goto done;
20896 }
20897 p->mark = _mark;
20898 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20900 }
20901 _res = NULL;
20902 done:
20903 D(p->level--);
20904 return _res;
20905}
20906
20907// invalid_def_raw:
20908// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20909static void *
20910invalid_def_raw_rule(Parser *p)
20911{
20912 D(p->level++);
20913 if (p->error_indicator) {
20914 D(p->level--);
20915 return NULL;
20916 }
20917 void * _res = NULL;
20918 int _mark = p->mark;
20919 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20920 if (p->error_indicator) {
20921 D(p->level--);
20922 return NULL;
20923 }
20924 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20925 Token * _literal;
20926 Token * _literal_1;
20927 Token * _literal_2;
20928 void *_opt_var;
20929 UNUSED(_opt_var); // Silence compiler warnings
20930 void *_opt_var_1;
20931 UNUSED(_opt_var_1); // Silence compiler warnings
20932 void *_opt_var_2;
20933 UNUSED(_opt_var_2); // Silence compiler warnings
20934 Token * a;
20935 expr_ty name_var;
20936 Token * newline_var;
20937 if (
20938 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20939 &&
20940 (a = _PyPegen_expect_token(p, 526)) // token='def'
20941 &&
20942 (name_var = _PyPegen_name_token(p)) // NAME
20943 &&
20944 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20945 &&
20946 (_opt_var_1 = params_rule(p), 1) // params?
20947 &&
20948 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20949 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010020950 (_opt_var_2 = _tmp_175_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020951 &&
20952 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20953 &&
20954 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20955 &&
20956 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20957 )
20958 {
20959 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20960 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20961 if (_res == NULL && PyErr_Occurred()) {
20962 p->error_indicator = 1;
20963 D(p->level--);
20964 return NULL;
20965 }
20966 goto done;
20967 }
20968 p->mark = _mark;
20969 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20971 }
20972 _res = NULL;
20973 done:
20974 D(p->level--);
20975 return _res;
20976}
20977
20978// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20979static void *
20980invalid_class_def_raw_rule(Parser *p)
20981{
20982 D(p->level++);
20983 if (p->error_indicator) {
20984 D(p->level--);
20985 return NULL;
20986 }
20987 void * _res = NULL;
20988 int _mark = p->mark;
20989 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20990 if (p->error_indicator) {
20991 D(p->level--);
20992 return NULL;
20993 }
20994 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20995 Token * _literal;
20996 void *_opt_var;
20997 UNUSED(_opt_var); // Silence compiler warnings
20998 Token * a;
20999 expr_ty name_var;
21000 Token * newline_var;
21001 if (
21002 (a = _PyPegen_expect_token(p, 527)) // token='class'
21003 &&
21004 (name_var = _PyPegen_name_token(p)) // NAME
21005 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010021006 (_opt_var = _tmp_176_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010021007 &&
21008 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21009 &&
21010 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21011 &&
21012 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
21013 )
21014 {
21015 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21016 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
21017 if (_res == NULL && PyErr_Occurred()) {
21018 p->error_indicator = 1;
21019 D(p->level--);
21020 return NULL;
21021 }
21022 goto done;
21023 }
21024 p->mark = _mark;
21025 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
21026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
21027 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010021028 _res = NULL;
21029 done:
21030 D(p->level--);
21031 return _res;
21032}
21033
Pablo Galindoda743502021-04-15 14:06:39 +010021034// invalid_double_starred_kvpairs:
21035// | ','.double_starred_kvpair+ ',' invalid_kvpair
21036// | expression ':' '*' bitwise_or
21037// | expression ':' &('}' | ',')
21038static void *
21039invalid_double_starred_kvpairs_rule(Parser *p)
21040{
21041 D(p->level++);
21042 if (p->error_indicator) {
21043 D(p->level--);
21044 return NULL;
21045 }
21046 void * _res = NULL;
21047 int _mark = p->mark;
21048 { // ','.double_starred_kvpair+ ',' invalid_kvpair
21049 if (p->error_indicator) {
21050 D(p->level--);
21051 return NULL;
21052 }
21053 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010021054 asdl_seq * _gather_177_var;
Pablo Galindoda743502021-04-15 14:06:39 +010021055 Token * _literal;
21056 void *invalid_kvpair_var;
21057 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010021058 (_gather_177_var = _gather_177_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010021059 &&
21060 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21061 &&
21062 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
21063 )
21064 {
21065 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010021066 _res = _PyPegen_dummy_name(p, _gather_177_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010021067 goto done;
21068 }
21069 p->mark = _mark;
21070 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
21072 }
21073 { // expression ':' '*' bitwise_or
21074 if (p->error_indicator) {
21075 D(p->level--);
21076 return NULL;
21077 }
21078 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21079 Token * _literal;
21080 Token * a;
21081 expr_ty bitwise_or_var;
21082 expr_ty expression_var;
21083 if (
21084 (expression_var = expression_rule(p)) // expression
21085 &&
21086 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21087 &&
21088 (a = _PyPegen_expect_token(p, 16)) // token='*'
21089 &&
21090 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21091 )
21092 {
21093 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 +010021094 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021095 if (_res == NULL && PyErr_Occurred()) {
21096 p->error_indicator = 1;
21097 D(p->level--);
21098 return NULL;
21099 }
21100 goto done;
21101 }
21102 p->mark = _mark;
21103 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21105 }
21106 { // expression ':' &('}' | ',')
21107 if (p->error_indicator) {
21108 D(p->level--);
21109 return NULL;
21110 }
21111 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21112 Token * a;
21113 expr_ty expression_var;
21114 if (
21115 (expression_var = expression_rule(p)) // expression
21116 &&
21117 (a = _PyPegen_expect_token(p, 11)) // token=':'
21118 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010021119 _PyPegen_lookahead(1, _tmp_179_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010021120 )
21121 {
21122 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
21123 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21124 if (_res == NULL && PyErr_Occurred()) {
21125 p->error_indicator = 1;
21126 D(p->level--);
21127 return NULL;
21128 }
21129 goto done;
21130 }
21131 p->mark = _mark;
21132 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
21133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
21134 }
21135 _res = NULL;
21136 done:
21137 D(p->level--);
21138 return _res;
21139}
21140
21141// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
21142static void *
21143invalid_kvpair_rule(Parser *p)
21144{
21145 D(p->level++);
21146 if (p->error_indicator) {
21147 D(p->level--);
21148 return NULL;
21149 }
21150 void * _res = NULL;
21151 int _mark = p->mark;
21152 { // expression !(':')
21153 if (p->error_indicator) {
21154 D(p->level--);
21155 return NULL;
21156 }
21157 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
21158 expr_ty a;
21159 if (
21160 (a = expression_rule(p)) // expression
21161 &&
21162 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
21163 )
21164 {
21165 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010021166 _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 +010021167 if (_res == NULL && PyErr_Occurred()) {
21168 p->error_indicator = 1;
21169 D(p->level--);
21170 return NULL;
21171 }
21172 goto done;
21173 }
21174 p->mark = _mark;
21175 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21177 }
21178 { // expression ':' '*' bitwise_or
21179 if (p->error_indicator) {
21180 D(p->level--);
21181 return NULL;
21182 }
21183 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21184 Token * _literal;
21185 Token * a;
21186 expr_ty bitwise_or_var;
21187 expr_ty expression_var;
21188 if (
21189 (expression_var = expression_rule(p)) // expression
21190 &&
21191 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21192 &&
21193 (a = _PyPegen_expect_token(p, 16)) // token='*'
21194 &&
21195 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21196 )
21197 {
21198 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 +010021199 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021200 if (_res == NULL && PyErr_Occurred()) {
21201 p->error_indicator = 1;
21202 D(p->level--);
21203 return NULL;
21204 }
21205 goto done;
21206 }
21207 p->mark = _mark;
21208 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21210 }
21211 { // expression ':'
21212 if (p->error_indicator) {
21213 D(p->level--);
21214 return NULL;
21215 }
21216 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21217 Token * a;
21218 expr_ty expression_var;
21219 if (
21220 (expression_var = expression_rule(p)) // expression
21221 &&
21222 (a = _PyPegen_expect_token(p, 11)) // token=':'
21223 )
21224 {
21225 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21226 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21227 if (_res == NULL && PyErr_Occurred()) {
21228 p->error_indicator = 1;
21229 D(p->level--);
21230 return NULL;
21231 }
21232 goto done;
21233 }
21234 p->mark = _mark;
21235 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21237 }
21238 _res = NULL;
21239 done:
21240 D(p->level--);
21241 return _res;
21242}
21243
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021244// _loop0_1: NEWLINE
21245static asdl_seq *
21246_loop0_1_rule(Parser *p)
21247{
21248 D(p->level++);
21249 if (p->error_indicator) {
21250 D(p->level--);
21251 return NULL;
21252 }
21253 void *_res = NULL;
21254 int _mark = p->mark;
21255 int _start_mark = p->mark;
21256 void **_children = PyMem_Malloc(sizeof(void *));
21257 if (!_children) {
21258 p->error_indicator = 1;
21259 PyErr_NoMemory();
21260 D(p->level--);
21261 return NULL;
21262 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021263 Py_ssize_t _children_capacity = 1;
21264 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021265 { // NEWLINE
21266 if (p->error_indicator) {
21267 D(p->level--);
21268 return NULL;
21269 }
21270 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21271 Token * newline_var;
21272 while (
21273 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21274 )
21275 {
21276 _res = newline_var;
21277 if (_n == _children_capacity) {
21278 _children_capacity *= 2;
21279 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21280 if (!_new_children) {
21281 p->error_indicator = 1;
21282 PyErr_NoMemory();
21283 D(p->level--);
21284 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021285 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021286 _children = _new_children;
21287 }
21288 _children[_n++] = _res;
21289 _mark = p->mark;
21290 }
21291 p->mark = _mark;
21292 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21294 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021295 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021296 if (!_seq) {
21297 PyMem_Free(_children);
21298 p->error_indicator = 1;
21299 PyErr_NoMemory();
21300 D(p->level--);
21301 return NULL;
21302 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021303 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021304 PyMem_Free(_children);
21305 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21306 D(p->level--);
21307 return _seq;
21308}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021309
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021310// _loop0_2: NEWLINE
21311static asdl_seq *
21312_loop0_2_rule(Parser *p)
21313{
21314 D(p->level++);
21315 if (p->error_indicator) {
21316 D(p->level--);
21317 return NULL;
21318 }
21319 void *_res = NULL;
21320 int _mark = p->mark;
21321 int _start_mark = p->mark;
21322 void **_children = PyMem_Malloc(sizeof(void *));
21323 if (!_children) {
21324 p->error_indicator = 1;
21325 PyErr_NoMemory();
21326 D(p->level--);
21327 return NULL;
21328 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021329 Py_ssize_t _children_capacity = 1;
21330 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021331 { // NEWLINE
21332 if (p->error_indicator) {
21333 D(p->level--);
21334 return NULL;
21335 }
21336 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21337 Token * newline_var;
21338 while (
21339 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21340 )
21341 {
21342 _res = newline_var;
21343 if (_n == _children_capacity) {
21344 _children_capacity *= 2;
21345 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21346 if (!_new_children) {
21347 p->error_indicator = 1;
21348 PyErr_NoMemory();
21349 D(p->level--);
21350 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021351 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021352 _children = _new_children;
21353 }
21354 _children[_n++] = _res;
21355 _mark = p->mark;
21356 }
21357 p->mark = _mark;
21358 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21360 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021361 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021362 if (!_seq) {
21363 PyMem_Free(_children);
21364 p->error_indicator = 1;
21365 PyErr_NoMemory();
21366 D(p->level--);
21367 return NULL;
21368 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021369 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021370 PyMem_Free(_children);
21371 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21372 D(p->level--);
21373 return _seq;
21374}
21375
21376// _loop0_4: ',' expression
21377static asdl_seq *
21378_loop0_4_rule(Parser *p)
21379{
21380 D(p->level++);
21381 if (p->error_indicator) {
21382 D(p->level--);
21383 return NULL;
21384 }
21385 void *_res = NULL;
21386 int _mark = p->mark;
21387 int _start_mark = p->mark;
21388 void **_children = PyMem_Malloc(sizeof(void *));
21389 if (!_children) {
21390 p->error_indicator = 1;
21391 PyErr_NoMemory();
21392 D(p->level--);
21393 return NULL;
21394 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021395 Py_ssize_t _children_capacity = 1;
21396 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021397 { // ',' expression
21398 if (p->error_indicator) {
21399 D(p->level--);
21400 return NULL;
21401 }
21402 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21403 Token * _literal;
21404 expr_ty elem;
21405 while (
21406 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21407 &&
21408 (elem = expression_rule(p)) // expression
21409 )
21410 {
21411 _res = elem;
21412 if (_res == NULL && PyErr_Occurred()) {
21413 p->error_indicator = 1;
21414 PyMem_Free(_children);
21415 D(p->level--);
21416 return NULL;
21417 }
21418 if (_n == _children_capacity) {
21419 _children_capacity *= 2;
21420 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21421 if (!_new_children) {
21422 p->error_indicator = 1;
21423 PyErr_NoMemory();
21424 D(p->level--);
21425 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021426 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021427 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021428 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021429 _children[_n++] = _res;
21430 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021431 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021432 p->mark = _mark;
21433 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021435 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021436 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021437 if (!_seq) {
21438 PyMem_Free(_children);
21439 p->error_indicator = 1;
21440 PyErr_NoMemory();
21441 D(p->level--);
21442 return NULL;
21443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021444 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021445 PyMem_Free(_children);
21446 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21447 D(p->level--);
21448 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021449}
21450
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021451// _gather_3: expression _loop0_4
21452static asdl_seq *
21453_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021454{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021455 D(p->level++);
21456 if (p->error_indicator) {
21457 D(p->level--);
21458 return NULL;
21459 }
21460 asdl_seq * _res = NULL;
21461 int _mark = p->mark;
21462 { // expression _loop0_4
21463 if (p->error_indicator) {
21464 D(p->level--);
21465 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021466 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021467 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21468 expr_ty elem;
21469 asdl_seq * seq;
21470 if (
21471 (elem = expression_rule(p)) // expression
21472 &&
21473 (seq = _loop0_4_rule(p)) // _loop0_4
21474 )
21475 {
21476 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21477 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21478 goto done;
21479 }
21480 p->mark = _mark;
21481 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021483 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021484 _res = NULL;
21485 done:
21486 D(p->level--);
21487 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021488}
21489
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021490// _loop0_6: ',' expression
21491static asdl_seq *
21492_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021493{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021494 D(p->level++);
21495 if (p->error_indicator) {
21496 D(p->level--);
21497 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021498 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021499 void *_res = NULL;
21500 int _mark = p->mark;
21501 int _start_mark = p->mark;
21502 void **_children = PyMem_Malloc(sizeof(void *));
21503 if (!_children) {
21504 p->error_indicator = 1;
21505 PyErr_NoMemory();
21506 D(p->level--);
21507 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021508 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021509 Py_ssize_t _children_capacity = 1;
21510 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021511 { // ',' expression
21512 if (p->error_indicator) {
21513 D(p->level--);
21514 return NULL;
21515 }
21516 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21517 Token * _literal;
21518 expr_ty elem;
21519 while (
21520 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21521 &&
21522 (elem = expression_rule(p)) // expression
21523 )
21524 {
21525 _res = elem;
21526 if (_res == NULL && PyErr_Occurred()) {
21527 p->error_indicator = 1;
21528 PyMem_Free(_children);
21529 D(p->level--);
21530 return NULL;
21531 }
21532 if (_n == _children_capacity) {
21533 _children_capacity *= 2;
21534 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21535 if (!_new_children) {
21536 p->error_indicator = 1;
21537 PyErr_NoMemory();
21538 D(p->level--);
21539 return NULL;
21540 }
21541 _children = _new_children;
21542 }
21543 _children[_n++] = _res;
21544 _mark = p->mark;
21545 }
21546 p->mark = _mark;
21547 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21549 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021550 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021551 if (!_seq) {
21552 PyMem_Free(_children);
21553 p->error_indicator = 1;
21554 PyErr_NoMemory();
21555 D(p->level--);
21556 return NULL;
21557 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021558 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021559 PyMem_Free(_children);
21560 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21561 D(p->level--);
21562 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021563}
21564
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021565// _gather_5: expression _loop0_6
21566static asdl_seq *
21567_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021568{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021569 D(p->level++);
21570 if (p->error_indicator) {
21571 D(p->level--);
21572 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021573 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021574 asdl_seq * _res = NULL;
21575 int _mark = p->mark;
21576 { // expression _loop0_6
21577 if (p->error_indicator) {
21578 D(p->level--);
21579 return NULL;
21580 }
21581 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21582 expr_ty elem;
21583 asdl_seq * seq;
21584 if (
21585 (elem = expression_rule(p)) // expression
21586 &&
21587 (seq = _loop0_6_rule(p)) // _loop0_6
21588 )
21589 {
21590 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21591 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21592 goto done;
21593 }
21594 p->mark = _mark;
21595 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21597 }
21598 _res = NULL;
21599 done:
21600 D(p->level--);
21601 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021602}
21603
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021604// _loop0_8: ',' expression
21605static asdl_seq *
21606_loop0_8_rule(Parser *p)
21607{
21608 D(p->level++);
21609 if (p->error_indicator) {
21610 D(p->level--);
21611 return NULL;
21612 }
21613 void *_res = NULL;
21614 int _mark = p->mark;
21615 int _start_mark = p->mark;
21616 void **_children = PyMem_Malloc(sizeof(void *));
21617 if (!_children) {
21618 p->error_indicator = 1;
21619 PyErr_NoMemory();
21620 D(p->level--);
21621 return NULL;
21622 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021623 Py_ssize_t _children_capacity = 1;
21624 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021625 { // ',' expression
21626 if (p->error_indicator) {
21627 D(p->level--);
21628 return NULL;
21629 }
21630 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21631 Token * _literal;
21632 expr_ty elem;
21633 while (
21634 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21635 &&
21636 (elem = expression_rule(p)) // expression
21637 )
21638 {
21639 _res = elem;
21640 if (_res == NULL && PyErr_Occurred()) {
21641 p->error_indicator = 1;
21642 PyMem_Free(_children);
21643 D(p->level--);
21644 return NULL;
21645 }
21646 if (_n == _children_capacity) {
21647 _children_capacity *= 2;
21648 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21649 if (!_new_children) {
21650 p->error_indicator = 1;
21651 PyErr_NoMemory();
21652 D(p->level--);
21653 return NULL;
21654 }
21655 _children = _new_children;
21656 }
21657 _children[_n++] = _res;
21658 _mark = p->mark;
21659 }
21660 p->mark = _mark;
21661 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21663 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021664 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021665 if (!_seq) {
21666 PyMem_Free(_children);
21667 p->error_indicator = 1;
21668 PyErr_NoMemory();
21669 D(p->level--);
21670 return NULL;
21671 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021672 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021673 PyMem_Free(_children);
21674 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21675 D(p->level--);
21676 return _seq;
21677}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021678
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021679// _gather_7: expression _loop0_8
21680static asdl_seq *
21681_gather_7_rule(Parser *p)
21682{
21683 D(p->level++);
21684 if (p->error_indicator) {
21685 D(p->level--);
21686 return NULL;
21687 }
21688 asdl_seq * _res = NULL;
21689 int _mark = p->mark;
21690 { // expression _loop0_8
21691 if (p->error_indicator) {
21692 D(p->level--);
21693 return NULL;
21694 }
21695 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21696 expr_ty elem;
21697 asdl_seq * seq;
21698 if (
21699 (elem = expression_rule(p)) // expression
21700 &&
21701 (seq = _loop0_8_rule(p)) // _loop0_8
21702 )
21703 {
21704 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21705 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21706 goto done;
21707 }
21708 p->mark = _mark;
21709 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21711 }
21712 _res = NULL;
21713 done:
21714 D(p->level--);
21715 return _res;
21716}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021717
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021718// _loop0_10: ',' expression
21719static asdl_seq *
21720_loop0_10_rule(Parser *p)
21721{
21722 D(p->level++);
21723 if (p->error_indicator) {
21724 D(p->level--);
21725 return NULL;
21726 }
21727 void *_res = NULL;
21728 int _mark = p->mark;
21729 int _start_mark = p->mark;
21730 void **_children = PyMem_Malloc(sizeof(void *));
21731 if (!_children) {
21732 p->error_indicator = 1;
21733 PyErr_NoMemory();
21734 D(p->level--);
21735 return NULL;
21736 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021737 Py_ssize_t _children_capacity = 1;
21738 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021739 { // ',' expression
21740 if (p->error_indicator) {
21741 D(p->level--);
21742 return NULL;
21743 }
21744 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21745 Token * _literal;
21746 expr_ty elem;
21747 while (
21748 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21749 &&
21750 (elem = expression_rule(p)) // expression
21751 )
21752 {
21753 _res = elem;
21754 if (_res == NULL && PyErr_Occurred()) {
21755 p->error_indicator = 1;
21756 PyMem_Free(_children);
21757 D(p->level--);
21758 return NULL;
21759 }
21760 if (_n == _children_capacity) {
21761 _children_capacity *= 2;
21762 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21763 if (!_new_children) {
21764 p->error_indicator = 1;
21765 PyErr_NoMemory();
21766 D(p->level--);
21767 return NULL;
21768 }
21769 _children = _new_children;
21770 }
21771 _children[_n++] = _res;
21772 _mark = p->mark;
21773 }
21774 p->mark = _mark;
21775 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21777 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021778 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021779 if (!_seq) {
21780 PyMem_Free(_children);
21781 p->error_indicator = 1;
21782 PyErr_NoMemory();
21783 D(p->level--);
21784 return NULL;
21785 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021786 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021787 PyMem_Free(_children);
21788 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21789 D(p->level--);
21790 return _seq;
21791}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021792
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021793// _gather_9: expression _loop0_10
21794static asdl_seq *
21795_gather_9_rule(Parser *p)
21796{
21797 D(p->level++);
21798 if (p->error_indicator) {
21799 D(p->level--);
21800 return NULL;
21801 }
21802 asdl_seq * _res = NULL;
21803 int _mark = p->mark;
21804 { // expression _loop0_10
21805 if (p->error_indicator) {
21806 D(p->level--);
21807 return NULL;
21808 }
21809 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21810 expr_ty elem;
21811 asdl_seq * seq;
21812 if (
21813 (elem = expression_rule(p)) // expression
21814 &&
21815 (seq = _loop0_10_rule(p)) // _loop0_10
21816 )
21817 {
21818 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21819 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21820 goto done;
21821 }
21822 p->mark = _mark;
21823 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21825 }
21826 _res = NULL;
21827 done:
21828 D(p->level--);
21829 return _res;
21830}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021831
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021832// _loop1_11: statement
21833static asdl_seq *
21834_loop1_11_rule(Parser *p)
21835{
21836 D(p->level++);
21837 if (p->error_indicator) {
21838 D(p->level--);
21839 return NULL;
21840 }
21841 void *_res = NULL;
21842 int _mark = p->mark;
21843 int _start_mark = p->mark;
21844 void **_children = PyMem_Malloc(sizeof(void *));
21845 if (!_children) {
21846 p->error_indicator = 1;
21847 PyErr_NoMemory();
21848 D(p->level--);
21849 return NULL;
21850 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021851 Py_ssize_t _children_capacity = 1;
21852 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021853 { // statement
21854 if (p->error_indicator) {
21855 D(p->level--);
21856 return NULL;
21857 }
21858 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021859 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021860 while (
21861 (statement_var = statement_rule(p)) // statement
21862 )
21863 {
21864 _res = statement_var;
21865 if (_n == _children_capacity) {
21866 _children_capacity *= 2;
21867 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21868 if (!_new_children) {
21869 p->error_indicator = 1;
21870 PyErr_NoMemory();
21871 D(p->level--);
21872 return NULL;
21873 }
21874 _children = _new_children;
21875 }
21876 _children[_n++] = _res;
21877 _mark = p->mark;
21878 }
21879 p->mark = _mark;
21880 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21882 }
21883 if (_n == 0 || p->error_indicator) {
21884 PyMem_Free(_children);
21885 D(p->level--);
21886 return NULL;
21887 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021888 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021889 if (!_seq) {
21890 PyMem_Free(_children);
21891 p->error_indicator = 1;
21892 PyErr_NoMemory();
21893 D(p->level--);
21894 return NULL;
21895 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021896 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021897 PyMem_Free(_children);
21898 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21899 D(p->level--);
21900 return _seq;
21901}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021902
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021903// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021904static asdl_seq *
21905_loop0_13_rule(Parser *p)
21906{
21907 D(p->level++);
21908 if (p->error_indicator) {
21909 D(p->level--);
21910 return NULL;
21911 }
21912 void *_res = NULL;
21913 int _mark = p->mark;
21914 int _start_mark = p->mark;
21915 void **_children = PyMem_Malloc(sizeof(void *));
21916 if (!_children) {
21917 p->error_indicator = 1;
21918 PyErr_NoMemory();
21919 D(p->level--);
21920 return NULL;
21921 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021922 Py_ssize_t _children_capacity = 1;
21923 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021924 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021925 if (p->error_indicator) {
21926 D(p->level--);
21927 return NULL;
21928 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021929 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021930 Token * _literal;
21931 stmt_ty elem;
21932 while (
21933 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21934 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021935 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021936 )
21937 {
21938 _res = elem;
21939 if (_res == NULL && PyErr_Occurred()) {
21940 p->error_indicator = 1;
21941 PyMem_Free(_children);
21942 D(p->level--);
21943 return NULL;
21944 }
21945 if (_n == _children_capacity) {
21946 _children_capacity *= 2;
21947 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21948 if (!_new_children) {
21949 p->error_indicator = 1;
21950 PyErr_NoMemory();
21951 D(p->level--);
21952 return NULL;
21953 }
21954 _children = _new_children;
21955 }
21956 _children[_n++] = _res;
21957 _mark = p->mark;
21958 }
21959 p->mark = _mark;
21960 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021962 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021963 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021964 if (!_seq) {
21965 PyMem_Free(_children);
21966 p->error_indicator = 1;
21967 PyErr_NoMemory();
21968 D(p->level--);
21969 return NULL;
21970 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021971 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021972 PyMem_Free(_children);
21973 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21974 D(p->level--);
21975 return _seq;
21976}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021977
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021978// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021979static asdl_seq *
21980_gather_12_rule(Parser *p)
21981{
21982 D(p->level++);
21983 if (p->error_indicator) {
21984 D(p->level--);
21985 return NULL;
21986 }
21987 asdl_seq * _res = NULL;
21988 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021989 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021990 if (p->error_indicator) {
21991 D(p->level--);
21992 return NULL;
21993 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021994 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 +010021995 stmt_ty elem;
21996 asdl_seq * seq;
21997 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021998 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021999 &&
22000 (seq = _loop0_13_rule(p)) // _loop0_13
22001 )
22002 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022003 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 +010022004 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22005 goto done;
22006 }
22007 p->mark = _mark;
22008 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000022009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022010 }
22011 _res = NULL;
22012 done:
22013 D(p->level--);
22014 return _res;
22015}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022016
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022017// _tmp_14: 'import' | 'from'
22018static void *
22019_tmp_14_rule(Parser *p)
22020{
22021 D(p->level++);
22022 if (p->error_indicator) {
22023 D(p->level--);
22024 return NULL;
22025 }
22026 void * _res = NULL;
22027 int _mark = p->mark;
22028 { // 'import'
22029 if (p->error_indicator) {
22030 D(p->level--);
22031 return NULL;
22032 }
22033 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
22034 Token * _keyword;
22035 if (
22036 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
22037 )
22038 {
22039 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
22040 _res = _keyword;
22041 goto done;
22042 }
22043 p->mark = _mark;
22044 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
22046 }
22047 { // 'from'
22048 if (p->error_indicator) {
22049 D(p->level--);
22050 return NULL;
22051 }
22052 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
22053 Token * _keyword;
22054 if (
22055 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
22056 )
22057 {
22058 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
22059 _res = _keyword;
22060 goto done;
22061 }
22062 p->mark = _mark;
22063 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
22064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
22065 }
22066 _res = NULL;
22067 done:
22068 D(p->level--);
22069 return _res;
22070}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022071
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022072// _tmp_15: 'def' | '@' | ASYNC
22073static void *
22074_tmp_15_rule(Parser *p)
22075{
22076 D(p->level++);
22077 if (p->error_indicator) {
22078 D(p->level--);
22079 return NULL;
22080 }
22081 void * _res = NULL;
22082 int _mark = p->mark;
22083 { // 'def'
22084 if (p->error_indicator) {
22085 D(p->level--);
22086 return NULL;
22087 }
22088 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
22089 Token * _keyword;
22090 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022091 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022092 )
22093 {
22094 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
22095 _res = _keyword;
22096 goto done;
22097 }
22098 p->mark = _mark;
22099 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
22101 }
22102 { // '@'
22103 if (p->error_indicator) {
22104 D(p->level--);
22105 return NULL;
22106 }
22107 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22108 Token * _literal;
22109 if (
22110 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22111 )
22112 {
22113 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22114 _res = _literal;
22115 goto done;
22116 }
22117 p->mark = _mark;
22118 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22120 }
22121 { // ASYNC
22122 if (p->error_indicator) {
22123 D(p->level--);
22124 return NULL;
22125 }
22126 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22127 Token * async_var;
22128 if (
22129 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22130 )
22131 {
22132 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22133 _res = async_var;
22134 goto done;
22135 }
22136 p->mark = _mark;
22137 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
22138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22139 }
22140 _res = NULL;
22141 done:
22142 D(p->level--);
22143 return _res;
22144}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022145
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022146// _tmp_16: 'class' | '@'
22147static void *
22148_tmp_16_rule(Parser *p)
22149{
22150 D(p->level++);
22151 if (p->error_indicator) {
22152 D(p->level--);
22153 return NULL;
22154 }
22155 void * _res = NULL;
22156 int _mark = p->mark;
22157 { // 'class'
22158 if (p->error_indicator) {
22159 D(p->level--);
22160 return NULL;
22161 }
22162 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
22163 Token * _keyword;
22164 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080022165 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022166 )
22167 {
22168 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
22169 _res = _keyword;
22170 goto done;
22171 }
22172 p->mark = _mark;
22173 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22175 }
22176 { // '@'
22177 if (p->error_indicator) {
22178 D(p->level--);
22179 return NULL;
22180 }
22181 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22182 Token * _literal;
22183 if (
22184 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22185 )
22186 {
22187 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22188 _res = _literal;
22189 goto done;
22190 }
22191 p->mark = _mark;
22192 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22194 }
22195 _res = NULL;
22196 done:
22197 D(p->level--);
22198 return _res;
22199}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022200
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022201// _tmp_17: 'with' | ASYNC
22202static void *
22203_tmp_17_rule(Parser *p)
22204{
22205 D(p->level++);
22206 if (p->error_indicator) {
22207 D(p->level--);
22208 return NULL;
22209 }
22210 void * _res = NULL;
22211 int _mark = p->mark;
22212 { // 'with'
22213 if (p->error_indicator) {
22214 D(p->level--);
22215 return NULL;
22216 }
22217 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22218 Token * _keyword;
22219 if (
22220 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22221 )
22222 {
22223 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22224 _res = _keyword;
22225 goto done;
22226 }
22227 p->mark = _mark;
22228 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22229 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22230 }
22231 { // ASYNC
22232 if (p->error_indicator) {
22233 D(p->level--);
22234 return NULL;
22235 }
22236 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22237 Token * async_var;
22238 if (
22239 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22240 )
22241 {
22242 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22243 _res = async_var;
22244 goto done;
22245 }
22246 p->mark = _mark;
22247 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22249 }
22250 _res = NULL;
22251 done:
22252 D(p->level--);
22253 return _res;
22254}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022255
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022256// _tmp_18: 'for' | ASYNC
22257static void *
22258_tmp_18_rule(Parser *p)
22259{
22260 D(p->level++);
22261 if (p->error_indicator) {
22262 D(p->level--);
22263 return NULL;
22264 }
22265 void * _res = NULL;
22266 int _mark = p->mark;
22267 { // 'for'
22268 if (p->error_indicator) {
22269 D(p->level--);
22270 return NULL;
22271 }
22272 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22273 Token * _keyword;
22274 if (
22275 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22276 )
22277 {
22278 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22279 _res = _keyword;
22280 goto done;
22281 }
22282 p->mark = _mark;
22283 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22285 }
22286 { // ASYNC
22287 if (p->error_indicator) {
22288 D(p->level--);
22289 return NULL;
22290 }
22291 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22292 Token * async_var;
22293 if (
22294 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22295 )
22296 {
22297 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22298 _res = async_var;
22299 goto done;
22300 }
22301 p->mark = _mark;
22302 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22304 }
22305 _res = NULL;
22306 done:
22307 D(p->level--);
22308 return _res;
22309}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022310
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022311// _tmp_19: '=' annotated_rhs
22312static void *
22313_tmp_19_rule(Parser *p)
22314{
22315 D(p->level++);
22316 if (p->error_indicator) {
22317 D(p->level--);
22318 return NULL;
22319 }
22320 void * _res = NULL;
22321 int _mark = p->mark;
22322 { // '=' annotated_rhs
22323 if (p->error_indicator) {
22324 D(p->level--);
22325 return NULL;
22326 }
22327 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22328 Token * _literal;
22329 expr_ty d;
22330 if (
22331 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22332 &&
22333 (d = annotated_rhs_rule(p)) // annotated_rhs
22334 )
22335 {
22336 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22337 _res = d;
22338 if (_res == NULL && PyErr_Occurred()) {
22339 p->error_indicator = 1;
22340 D(p->level--);
22341 return NULL;
22342 }
22343 goto done;
22344 }
22345 p->mark = _mark;
22346 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22348 }
22349 _res = NULL;
22350 done:
22351 D(p->level--);
22352 return _res;
22353}
22354
22355// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22356static void *
22357_tmp_20_rule(Parser *p)
22358{
22359 D(p->level++);
22360 if (p->error_indicator) {
22361 D(p->level--);
22362 return NULL;
22363 }
22364 void * _res = NULL;
22365 int _mark = p->mark;
22366 { // '(' single_target ')'
22367 if (p->error_indicator) {
22368 D(p->level--);
22369 return NULL;
22370 }
22371 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22372 Token * _literal;
22373 Token * _literal_1;
22374 expr_ty b;
22375 if (
22376 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22377 &&
22378 (b = single_target_rule(p)) // single_target
22379 &&
22380 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22381 )
22382 {
22383 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22384 _res = b;
22385 if (_res == NULL && PyErr_Occurred()) {
22386 p->error_indicator = 1;
22387 D(p->level--);
22388 return NULL;
22389 }
22390 goto done;
22391 }
22392 p->mark = _mark;
22393 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22395 }
22396 { // single_subscript_attribute_target
22397 if (p->error_indicator) {
22398 D(p->level--);
22399 return NULL;
22400 }
22401 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22402 expr_ty single_subscript_attribute_target_var;
22403 if (
22404 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22405 )
22406 {
22407 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22408 _res = single_subscript_attribute_target_var;
22409 goto done;
22410 }
22411 p->mark = _mark;
22412 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22414 }
22415 _res = NULL;
22416 done:
22417 D(p->level--);
22418 return _res;
22419}
22420
22421// _tmp_21: '=' annotated_rhs
22422static void *
22423_tmp_21_rule(Parser *p)
22424{
22425 D(p->level++);
22426 if (p->error_indicator) {
22427 D(p->level--);
22428 return NULL;
22429 }
22430 void * _res = NULL;
22431 int _mark = p->mark;
22432 { // '=' annotated_rhs
22433 if (p->error_indicator) {
22434 D(p->level--);
22435 return NULL;
22436 }
22437 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22438 Token * _literal;
22439 expr_ty d;
22440 if (
22441 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22442 &&
22443 (d = annotated_rhs_rule(p)) // annotated_rhs
22444 )
22445 {
22446 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22447 _res = d;
22448 if (_res == NULL && PyErr_Occurred()) {
22449 p->error_indicator = 1;
22450 D(p->level--);
22451 return NULL;
22452 }
22453 goto done;
22454 }
22455 p->mark = _mark;
22456 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22458 }
22459 _res = NULL;
22460 done:
22461 D(p->level--);
22462 return _res;
22463}
22464
22465// _loop1_22: (star_targets '=')
22466static asdl_seq *
22467_loop1_22_rule(Parser *p)
22468{
22469 D(p->level++);
22470 if (p->error_indicator) {
22471 D(p->level--);
22472 return NULL;
22473 }
22474 void *_res = NULL;
22475 int _mark = p->mark;
22476 int _start_mark = p->mark;
22477 void **_children = PyMem_Malloc(sizeof(void *));
22478 if (!_children) {
22479 p->error_indicator = 1;
22480 PyErr_NoMemory();
22481 D(p->level--);
22482 return NULL;
22483 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022484 Py_ssize_t _children_capacity = 1;
22485 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022486 { // (star_targets '=')
22487 if (p->error_indicator) {
22488 D(p->level--);
22489 return NULL;
22490 }
22491 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010022492 void *_tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022493 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010022494 (_tmp_180_var = _tmp_180_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022495 )
22496 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010022497 _res = _tmp_180_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022498 if (_n == _children_capacity) {
22499 _children_capacity *= 2;
22500 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22501 if (!_new_children) {
22502 p->error_indicator = 1;
22503 PyErr_NoMemory();
22504 D(p->level--);
22505 return NULL;
22506 }
22507 _children = _new_children;
22508 }
22509 _children[_n++] = _res;
22510 _mark = p->mark;
22511 }
22512 p->mark = _mark;
22513 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22515 }
22516 if (_n == 0 || p->error_indicator) {
22517 PyMem_Free(_children);
22518 D(p->level--);
22519 return NULL;
22520 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022521 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022522 if (!_seq) {
22523 PyMem_Free(_children);
22524 p->error_indicator = 1;
22525 PyErr_NoMemory();
22526 D(p->level--);
22527 return NULL;
22528 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022529 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022530 PyMem_Free(_children);
22531 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22532 D(p->level--);
22533 return _seq;
22534}
22535
22536// _tmp_23: yield_expr | star_expressions
22537static void *
22538_tmp_23_rule(Parser *p)
22539{
22540 D(p->level++);
22541 if (p->error_indicator) {
22542 D(p->level--);
22543 return NULL;
22544 }
22545 void * _res = NULL;
22546 int _mark = p->mark;
22547 { // yield_expr
22548 if (p->error_indicator) {
22549 D(p->level--);
22550 return NULL;
22551 }
22552 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22553 expr_ty yield_expr_var;
22554 if (
22555 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22556 )
22557 {
22558 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22559 _res = yield_expr_var;
22560 goto done;
22561 }
22562 p->mark = _mark;
22563 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22565 }
22566 { // star_expressions
22567 if (p->error_indicator) {
22568 D(p->level--);
22569 return NULL;
22570 }
22571 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22572 expr_ty star_expressions_var;
22573 if (
22574 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22575 )
22576 {
22577 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22578 _res = star_expressions_var;
22579 goto done;
22580 }
22581 p->mark = _mark;
22582 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22584 }
22585 _res = NULL;
22586 done:
22587 D(p->level--);
22588 return _res;
22589}
22590
22591// _tmp_24: yield_expr | star_expressions
22592static void *
22593_tmp_24_rule(Parser *p)
22594{
22595 D(p->level++);
22596 if (p->error_indicator) {
22597 D(p->level--);
22598 return NULL;
22599 }
22600 void * _res = NULL;
22601 int _mark = p->mark;
22602 { // yield_expr
22603 if (p->error_indicator) {
22604 D(p->level--);
22605 return NULL;
22606 }
22607 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22608 expr_ty yield_expr_var;
22609 if (
22610 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22611 )
22612 {
22613 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22614 _res = yield_expr_var;
22615 goto done;
22616 }
22617 p->mark = _mark;
22618 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22620 }
22621 { // star_expressions
22622 if (p->error_indicator) {
22623 D(p->level--);
22624 return NULL;
22625 }
22626 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22627 expr_ty star_expressions_var;
22628 if (
22629 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22630 )
22631 {
22632 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22633 _res = star_expressions_var;
22634 goto done;
22635 }
22636 p->mark = _mark;
22637 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22639 }
22640 _res = NULL;
22641 done:
22642 D(p->level--);
22643 return _res;
22644}
22645
22646// _loop0_26: ',' NAME
22647static asdl_seq *
22648_loop0_26_rule(Parser *p)
22649{
22650 D(p->level++);
22651 if (p->error_indicator) {
22652 D(p->level--);
22653 return NULL;
22654 }
22655 void *_res = NULL;
22656 int _mark = p->mark;
22657 int _start_mark = p->mark;
22658 void **_children = PyMem_Malloc(sizeof(void *));
22659 if (!_children) {
22660 p->error_indicator = 1;
22661 PyErr_NoMemory();
22662 D(p->level--);
22663 return NULL;
22664 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022665 Py_ssize_t _children_capacity = 1;
22666 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022667 { // ',' NAME
22668 if (p->error_indicator) {
22669 D(p->level--);
22670 return NULL;
22671 }
22672 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22673 Token * _literal;
22674 expr_ty elem;
22675 while (
22676 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22677 &&
22678 (elem = _PyPegen_name_token(p)) // NAME
22679 )
22680 {
22681 _res = elem;
22682 if (_res == NULL && PyErr_Occurred()) {
22683 p->error_indicator = 1;
22684 PyMem_Free(_children);
22685 D(p->level--);
22686 return NULL;
22687 }
22688 if (_n == _children_capacity) {
22689 _children_capacity *= 2;
22690 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22691 if (!_new_children) {
22692 p->error_indicator = 1;
22693 PyErr_NoMemory();
22694 D(p->level--);
22695 return NULL;
22696 }
22697 _children = _new_children;
22698 }
22699 _children[_n++] = _res;
22700 _mark = p->mark;
22701 }
22702 p->mark = _mark;
22703 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22705 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022706 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022707 if (!_seq) {
22708 PyMem_Free(_children);
22709 p->error_indicator = 1;
22710 PyErr_NoMemory();
22711 D(p->level--);
22712 return NULL;
22713 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022714 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022715 PyMem_Free(_children);
22716 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22717 D(p->level--);
22718 return _seq;
22719}
22720
22721// _gather_25: NAME _loop0_26
22722static asdl_seq *
22723_gather_25_rule(Parser *p)
22724{
22725 D(p->level++);
22726 if (p->error_indicator) {
22727 D(p->level--);
22728 return NULL;
22729 }
22730 asdl_seq * _res = NULL;
22731 int _mark = p->mark;
22732 { // NAME _loop0_26
22733 if (p->error_indicator) {
22734 D(p->level--);
22735 return NULL;
22736 }
22737 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22738 expr_ty elem;
22739 asdl_seq * seq;
22740 if (
22741 (elem = _PyPegen_name_token(p)) // NAME
22742 &&
22743 (seq = _loop0_26_rule(p)) // _loop0_26
22744 )
22745 {
22746 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22747 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22748 goto done;
22749 }
22750 p->mark = _mark;
22751 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22753 }
22754 _res = NULL;
22755 done:
22756 D(p->level--);
22757 return _res;
22758}
22759
22760// _loop0_28: ',' NAME
22761static asdl_seq *
22762_loop0_28_rule(Parser *p)
22763{
22764 D(p->level++);
22765 if (p->error_indicator) {
22766 D(p->level--);
22767 return NULL;
22768 }
22769 void *_res = NULL;
22770 int _mark = p->mark;
22771 int _start_mark = p->mark;
22772 void **_children = PyMem_Malloc(sizeof(void *));
22773 if (!_children) {
22774 p->error_indicator = 1;
22775 PyErr_NoMemory();
22776 D(p->level--);
22777 return NULL;
22778 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022779 Py_ssize_t _children_capacity = 1;
22780 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022781 { // ',' NAME
22782 if (p->error_indicator) {
22783 D(p->level--);
22784 return NULL;
22785 }
22786 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22787 Token * _literal;
22788 expr_ty elem;
22789 while (
22790 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22791 &&
22792 (elem = _PyPegen_name_token(p)) // NAME
22793 )
22794 {
22795 _res = elem;
22796 if (_res == NULL && PyErr_Occurred()) {
22797 p->error_indicator = 1;
22798 PyMem_Free(_children);
22799 D(p->level--);
22800 return NULL;
22801 }
22802 if (_n == _children_capacity) {
22803 _children_capacity *= 2;
22804 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22805 if (!_new_children) {
22806 p->error_indicator = 1;
22807 PyErr_NoMemory();
22808 D(p->level--);
22809 return NULL;
22810 }
22811 _children = _new_children;
22812 }
22813 _children[_n++] = _res;
22814 _mark = p->mark;
22815 }
22816 p->mark = _mark;
22817 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22819 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022820 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022821 if (!_seq) {
22822 PyMem_Free(_children);
22823 p->error_indicator = 1;
22824 PyErr_NoMemory();
22825 D(p->level--);
22826 return NULL;
22827 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022828 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022829 PyMem_Free(_children);
22830 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22831 D(p->level--);
22832 return _seq;
22833}
22834
22835// _gather_27: NAME _loop0_28
22836static asdl_seq *
22837_gather_27_rule(Parser *p)
22838{
22839 D(p->level++);
22840 if (p->error_indicator) {
22841 D(p->level--);
22842 return NULL;
22843 }
22844 asdl_seq * _res = NULL;
22845 int _mark = p->mark;
22846 { // NAME _loop0_28
22847 if (p->error_indicator) {
22848 D(p->level--);
22849 return NULL;
22850 }
22851 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22852 expr_ty elem;
22853 asdl_seq * seq;
22854 if (
22855 (elem = _PyPegen_name_token(p)) // NAME
22856 &&
22857 (seq = _loop0_28_rule(p)) // _loop0_28
22858 )
22859 {
22860 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22861 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22862 goto done;
22863 }
22864 p->mark = _mark;
22865 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22867 }
22868 _res = NULL;
22869 done:
22870 D(p->level--);
22871 return _res;
22872}
22873
22874// _tmp_29: ',' expression
22875static void *
22876_tmp_29_rule(Parser *p)
22877{
22878 D(p->level++);
22879 if (p->error_indicator) {
22880 D(p->level--);
22881 return NULL;
22882 }
22883 void * _res = NULL;
22884 int _mark = p->mark;
22885 { // ',' expression
22886 if (p->error_indicator) {
22887 D(p->level--);
22888 return NULL;
22889 }
22890 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22891 Token * _literal;
22892 expr_ty z;
22893 if (
22894 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22895 &&
22896 (z = expression_rule(p)) // expression
22897 )
22898 {
22899 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22900 _res = z;
22901 if (_res == NULL && PyErr_Occurred()) {
22902 p->error_indicator = 1;
22903 D(p->level--);
22904 return NULL;
22905 }
22906 goto done;
22907 }
22908 p->mark = _mark;
22909 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22911 }
22912 _res = NULL;
22913 done:
22914 D(p->level--);
22915 return _res;
22916}
22917
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022918// _tmp_30: ';' | NEWLINE
22919static void *
22920_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022921{
22922 D(p->level++);
22923 if (p->error_indicator) {
22924 D(p->level--);
22925 return NULL;
22926 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022927 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022928 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022929 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022930 if (p->error_indicator) {
22931 D(p->level--);
22932 return NULL;
22933 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022934 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22935 Token * _literal;
22936 if (
22937 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022938 )
22939 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022940 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22941 _res = _literal;
22942 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022943 }
22944 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022945 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022947 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022948 { // NEWLINE
22949 if (p->error_indicator) {
22950 D(p->level--);
22951 return NULL;
22952 }
22953 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22954 Token * newline_var;
22955 if (
22956 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22957 )
22958 {
22959 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22960 _res = newline_var;
22961 goto done;
22962 }
22963 p->mark = _mark;
22964 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022966 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022967 _res = NULL;
22968 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022969 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022970 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022971}
22972
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022973// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022974static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022975_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022976{
22977 D(p->level++);
22978 if (p->error_indicator) {
22979 D(p->level--);
22980 return NULL;
22981 }
22982 void *_res = NULL;
22983 int _mark = p->mark;
22984 int _start_mark = p->mark;
22985 void **_children = PyMem_Malloc(sizeof(void *));
22986 if (!_children) {
22987 p->error_indicator = 1;
22988 PyErr_NoMemory();
22989 D(p->level--);
22990 return NULL;
22991 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022992 Py_ssize_t _children_capacity = 1;
22993 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022994 { // ('.' | '...')
22995 if (p->error_indicator) {
22996 D(p->level--);
22997 return NULL;
22998 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022999 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010023000 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023001 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010023002 (_tmp_181_var = _tmp_181_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023003 )
23004 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010023005 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023006 if (_n == _children_capacity) {
23007 _children_capacity *= 2;
23008 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23009 if (!_new_children) {
23010 p->error_indicator = 1;
23011 PyErr_NoMemory();
23012 D(p->level--);
23013 return NULL;
23014 }
23015 _children = _new_children;
23016 }
23017 _children[_n++] = _res;
23018 _mark = p->mark;
23019 }
23020 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023021 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
23022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23023 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023024 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023025 if (!_seq) {
23026 PyMem_Free(_children);
23027 p->error_indicator = 1;
23028 PyErr_NoMemory();
23029 D(p->level--);
23030 return NULL;
23031 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023032 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023033 PyMem_Free(_children);
23034 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
23035 D(p->level--);
23036 return _seq;
23037}
23038
23039// _loop1_32: ('.' | '...')
23040static asdl_seq *
23041_loop1_32_rule(Parser *p)
23042{
23043 D(p->level++);
23044 if (p->error_indicator) {
23045 D(p->level--);
23046 return NULL;
23047 }
23048 void *_res = NULL;
23049 int _mark = p->mark;
23050 int _start_mark = p->mark;
23051 void **_children = PyMem_Malloc(sizeof(void *));
23052 if (!_children) {
23053 p->error_indicator = 1;
23054 PyErr_NoMemory();
23055 D(p->level--);
23056 return NULL;
23057 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023058 Py_ssize_t _children_capacity = 1;
23059 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023060 { // ('.' | '...')
23061 if (p->error_indicator) {
23062 D(p->level--);
23063 return NULL;
23064 }
23065 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010023066 void *_tmp_182_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023067 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010023068 (_tmp_182_var = _tmp_182_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023069 )
23070 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010023071 _res = _tmp_182_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023072 if (_n == _children_capacity) {
23073 _children_capacity *= 2;
23074 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23075 if (!_new_children) {
23076 p->error_indicator = 1;
23077 PyErr_NoMemory();
23078 D(p->level--);
23079 return NULL;
23080 }
23081 _children = _new_children;
23082 }
23083 _children[_n++] = _res;
23084 _mark = p->mark;
23085 }
23086 p->mark = _mark;
23087 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
23089 }
23090 if (_n == 0 || p->error_indicator) {
23091 PyMem_Free(_children);
23092 D(p->level--);
23093 return NULL;
23094 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023095 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023096 if (!_seq) {
23097 PyMem_Free(_children);
23098 p->error_indicator = 1;
23099 PyErr_NoMemory();
23100 D(p->level--);
23101 return NULL;
23102 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023103 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023104 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023105 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023106 D(p->level--);
23107 return _seq;
23108}
23109
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023110// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023111static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023112_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023113{
23114 D(p->level++);
23115 if (p->error_indicator) {
23116 D(p->level--);
23117 return NULL;
23118 }
23119 void *_res = NULL;
23120 int _mark = p->mark;
23121 int _start_mark = p->mark;
23122 void **_children = PyMem_Malloc(sizeof(void *));
23123 if (!_children) {
23124 p->error_indicator = 1;
23125 PyErr_NoMemory();
23126 D(p->level--);
23127 return NULL;
23128 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023129 Py_ssize_t _children_capacity = 1;
23130 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023131 { // ',' import_from_as_name
23132 if (p->error_indicator) {
23133 D(p->level--);
23134 return NULL;
23135 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023136 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 +010023137 Token * _literal;
23138 alias_ty elem;
23139 while (
23140 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23141 &&
23142 (elem = import_from_as_name_rule(p)) // import_from_as_name
23143 )
23144 {
23145 _res = elem;
23146 if (_res == NULL && PyErr_Occurred()) {
23147 p->error_indicator = 1;
23148 PyMem_Free(_children);
23149 D(p->level--);
23150 return NULL;
23151 }
23152 if (_n == _children_capacity) {
23153 _children_capacity *= 2;
23154 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23155 if (!_new_children) {
23156 p->error_indicator = 1;
23157 PyErr_NoMemory();
23158 D(p->level--);
23159 return NULL;
23160 }
23161 _children = _new_children;
23162 }
23163 _children[_n++] = _res;
23164 _mark = p->mark;
23165 }
23166 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023167 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
23169 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023170 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023171 if (!_seq) {
23172 PyMem_Free(_children);
23173 p->error_indicator = 1;
23174 PyErr_NoMemory();
23175 D(p->level--);
23176 return NULL;
23177 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023178 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023179 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023180 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023181 D(p->level--);
23182 return _seq;
23183}
23184
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023185// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023186static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023187_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023188{
23189 D(p->level++);
23190 if (p->error_indicator) {
23191 D(p->level--);
23192 return NULL;
23193 }
23194 asdl_seq * _res = NULL;
23195 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023196 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023197 if (p->error_indicator) {
23198 D(p->level--);
23199 return NULL;
23200 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023201 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 +010023202 alias_ty elem;
23203 asdl_seq * seq;
23204 if (
23205 (elem = import_from_as_name_rule(p)) // import_from_as_name
23206 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023207 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023208 )
23209 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023210 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 +010023211 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23212 goto done;
23213 }
23214 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023215 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23216 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023217 }
23218 _res = NULL;
23219 done:
23220 D(p->level--);
23221 return _res;
23222}
23223
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023224// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023225static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023226_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023227{
23228 D(p->level++);
23229 if (p->error_indicator) {
23230 D(p->level--);
23231 return NULL;
23232 }
23233 void * _res = NULL;
23234 int _mark = p->mark;
23235 { // 'as' NAME
23236 if (p->error_indicator) {
23237 D(p->level--);
23238 return NULL;
23239 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023240 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023241 Token * _keyword;
23242 expr_ty z;
23243 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023244 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023245 &&
23246 (z = _PyPegen_name_token(p)) // NAME
23247 )
23248 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023249 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 +010023250 _res = z;
23251 if (_res == NULL && PyErr_Occurred()) {
23252 p->error_indicator = 1;
23253 D(p->level--);
23254 return NULL;
23255 }
23256 goto done;
23257 }
23258 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023259 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23261 }
23262 _res = NULL;
23263 done:
23264 D(p->level--);
23265 return _res;
23266}
23267
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023268// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023269static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023270_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023271{
23272 D(p->level++);
23273 if (p->error_indicator) {
23274 D(p->level--);
23275 return NULL;
23276 }
23277 void *_res = NULL;
23278 int _mark = p->mark;
23279 int _start_mark = p->mark;
23280 void **_children = PyMem_Malloc(sizeof(void *));
23281 if (!_children) {
23282 p->error_indicator = 1;
23283 PyErr_NoMemory();
23284 D(p->level--);
23285 return NULL;
23286 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023287 Py_ssize_t _children_capacity = 1;
23288 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023289 { // ',' dotted_as_name
23290 if (p->error_indicator) {
23291 D(p->level--);
23292 return NULL;
23293 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023294 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 +010023295 Token * _literal;
23296 alias_ty elem;
23297 while (
23298 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23299 &&
23300 (elem = dotted_as_name_rule(p)) // dotted_as_name
23301 )
23302 {
23303 _res = elem;
23304 if (_res == NULL && PyErr_Occurred()) {
23305 p->error_indicator = 1;
23306 PyMem_Free(_children);
23307 D(p->level--);
23308 return NULL;
23309 }
23310 if (_n == _children_capacity) {
23311 _children_capacity *= 2;
23312 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23313 if (!_new_children) {
23314 p->error_indicator = 1;
23315 PyErr_NoMemory();
23316 D(p->level--);
23317 return NULL;
23318 }
23319 _children = _new_children;
23320 }
23321 _children[_n++] = _res;
23322 _mark = p->mark;
23323 }
23324 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023325 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23327 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023328 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023329 if (!_seq) {
23330 PyMem_Free(_children);
23331 p->error_indicator = 1;
23332 PyErr_NoMemory();
23333 D(p->level--);
23334 return NULL;
23335 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023336 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023337 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023338 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023339 D(p->level--);
23340 return _seq;
23341}
23342
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023343// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023344static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023345_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023346{
23347 D(p->level++);
23348 if (p->error_indicator) {
23349 D(p->level--);
23350 return NULL;
23351 }
23352 asdl_seq * _res = NULL;
23353 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023354 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023355 if (p->error_indicator) {
23356 D(p->level--);
23357 return NULL;
23358 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023359 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 +010023360 alias_ty elem;
23361 asdl_seq * seq;
23362 if (
23363 (elem = dotted_as_name_rule(p)) // dotted_as_name
23364 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023365 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023366 )
23367 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023368 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 +010023369 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23370 goto done;
23371 }
23372 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023373 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023375 }
23376 _res = NULL;
23377 done:
23378 D(p->level--);
23379 return _res;
23380}
23381
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023382// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023383static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023384_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023385{
23386 D(p->level++);
23387 if (p->error_indicator) {
23388 D(p->level--);
23389 return NULL;
23390 }
23391 void * _res = NULL;
23392 int _mark = p->mark;
23393 { // 'as' NAME
23394 if (p->error_indicator) {
23395 D(p->level--);
23396 return NULL;
23397 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023398 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023399 Token * _keyword;
23400 expr_ty z;
23401 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023402 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023403 &&
23404 (z = _PyPegen_name_token(p)) // NAME
23405 )
23406 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023407 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 +010023408 _res = z;
23409 if (_res == NULL && PyErr_Occurred()) {
23410 p->error_indicator = 1;
23411 D(p->level--);
23412 return NULL;
23413 }
23414 goto done;
23415 }
23416 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023417 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23419 }
23420 _res = NULL;
23421 done:
23422 D(p->level--);
23423 return _res;
23424}
23425
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023426// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023427static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023428_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023429{
23430 D(p->level++);
23431 if (p->error_indicator) {
23432 D(p->level--);
23433 return NULL;
23434 }
23435 void *_res = NULL;
23436 int _mark = p->mark;
23437 int _start_mark = p->mark;
23438 void **_children = PyMem_Malloc(sizeof(void *));
23439 if (!_children) {
23440 p->error_indicator = 1;
23441 PyErr_NoMemory();
23442 D(p->level--);
23443 return NULL;
23444 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023445 Py_ssize_t _children_capacity = 1;
23446 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023447 { // ',' with_item
23448 if (p->error_indicator) {
23449 D(p->level--);
23450 return NULL;
23451 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023452 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023453 Token * _literal;
23454 withitem_ty elem;
23455 while (
23456 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23457 &&
23458 (elem = with_item_rule(p)) // with_item
23459 )
23460 {
23461 _res = elem;
23462 if (_res == NULL && PyErr_Occurred()) {
23463 p->error_indicator = 1;
23464 PyMem_Free(_children);
23465 D(p->level--);
23466 return NULL;
23467 }
23468 if (_n == _children_capacity) {
23469 _children_capacity *= 2;
23470 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23471 if (!_new_children) {
23472 p->error_indicator = 1;
23473 PyErr_NoMemory();
23474 D(p->level--);
23475 return NULL;
23476 }
23477 _children = _new_children;
23478 }
23479 _children[_n++] = _res;
23480 _mark = p->mark;
23481 }
23482 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023483 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23485 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023486 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023487 if (!_seq) {
23488 PyMem_Free(_children);
23489 p->error_indicator = 1;
23490 PyErr_NoMemory();
23491 D(p->level--);
23492 return NULL;
23493 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023494 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023495 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023496 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023497 D(p->level--);
23498 return _seq;
23499}
23500
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023501// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023502static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023503_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023504{
23505 D(p->level++);
23506 if (p->error_indicator) {
23507 D(p->level--);
23508 return NULL;
23509 }
23510 asdl_seq * _res = NULL;
23511 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023512 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023513 if (p->error_indicator) {
23514 D(p->level--);
23515 return NULL;
23516 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023517 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 +010023518 withitem_ty elem;
23519 asdl_seq * seq;
23520 if (
23521 (elem = with_item_rule(p)) // with_item
23522 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023523 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023524 )
23525 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023526 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 +010023527 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23528 goto done;
23529 }
23530 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023531 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23532 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023533 }
23534 _res = NULL;
23535 done:
23536 D(p->level--);
23537 return _res;
23538}
23539
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023540// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023541static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023542_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023543{
23544 D(p->level++);
23545 if (p->error_indicator) {
23546 D(p->level--);
23547 return NULL;
23548 }
23549 void *_res = NULL;
23550 int _mark = p->mark;
23551 int _start_mark = p->mark;
23552 void **_children = PyMem_Malloc(sizeof(void *));
23553 if (!_children) {
23554 p->error_indicator = 1;
23555 PyErr_NoMemory();
23556 D(p->level--);
23557 return NULL;
23558 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023559 Py_ssize_t _children_capacity = 1;
23560 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023561 { // ',' with_item
23562 if (p->error_indicator) {
23563 D(p->level--);
23564 return NULL;
23565 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023566 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023567 Token * _literal;
23568 withitem_ty elem;
23569 while (
23570 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23571 &&
23572 (elem = with_item_rule(p)) // with_item
23573 )
23574 {
23575 _res = elem;
23576 if (_res == NULL && PyErr_Occurred()) {
23577 p->error_indicator = 1;
23578 PyMem_Free(_children);
23579 D(p->level--);
23580 return NULL;
23581 }
23582 if (_n == _children_capacity) {
23583 _children_capacity *= 2;
23584 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23585 if (!_new_children) {
23586 p->error_indicator = 1;
23587 PyErr_NoMemory();
23588 D(p->level--);
23589 return NULL;
23590 }
23591 _children = _new_children;
23592 }
23593 _children[_n++] = _res;
23594 _mark = p->mark;
23595 }
23596 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023597 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23599 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023600 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023601 if (!_seq) {
23602 PyMem_Free(_children);
23603 p->error_indicator = 1;
23604 PyErr_NoMemory();
23605 D(p->level--);
23606 return NULL;
23607 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023608 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023609 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023610 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023611 D(p->level--);
23612 return _seq;
23613}
23614
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023615// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023616static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023617_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023618{
23619 D(p->level++);
23620 if (p->error_indicator) {
23621 D(p->level--);
23622 return NULL;
23623 }
23624 asdl_seq * _res = NULL;
23625 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023626 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023627 if (p->error_indicator) {
23628 D(p->level--);
23629 return NULL;
23630 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023631 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 +010023632 withitem_ty elem;
23633 asdl_seq * seq;
23634 if (
23635 (elem = with_item_rule(p)) // with_item
23636 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023637 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023638 )
23639 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023640 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 +010023641 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23642 goto done;
23643 }
23644 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023645 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023647 }
23648 _res = NULL;
23649 done:
23650 D(p->level--);
23651 return _res;
23652}
23653
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023654// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023655static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023656_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023657{
23658 D(p->level++);
23659 if (p->error_indicator) {
23660 D(p->level--);
23661 return NULL;
23662 }
23663 void *_res = NULL;
23664 int _mark = p->mark;
23665 int _start_mark = p->mark;
23666 void **_children = PyMem_Malloc(sizeof(void *));
23667 if (!_children) {
23668 p->error_indicator = 1;
23669 PyErr_NoMemory();
23670 D(p->level--);
23671 return NULL;
23672 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023673 Py_ssize_t _children_capacity = 1;
23674 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023675 { // ',' with_item
23676 if (p->error_indicator) {
23677 D(p->level--);
23678 return NULL;
23679 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023680 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023681 Token * _literal;
23682 withitem_ty elem;
23683 while (
23684 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23685 &&
23686 (elem = with_item_rule(p)) // with_item
23687 )
23688 {
23689 _res = elem;
23690 if (_res == NULL && PyErr_Occurred()) {
23691 p->error_indicator = 1;
23692 PyMem_Free(_children);
23693 D(p->level--);
23694 return NULL;
23695 }
23696 if (_n == _children_capacity) {
23697 _children_capacity *= 2;
23698 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23699 if (!_new_children) {
23700 p->error_indicator = 1;
23701 PyErr_NoMemory();
23702 D(p->level--);
23703 return NULL;
23704 }
23705 _children = _new_children;
23706 }
23707 _children[_n++] = _res;
23708 _mark = p->mark;
23709 }
23710 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023711 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23713 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023714 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023715 if (!_seq) {
23716 PyMem_Free(_children);
23717 p->error_indicator = 1;
23718 PyErr_NoMemory();
23719 D(p->level--);
23720 return NULL;
23721 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023722 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023723 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023724 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023725 D(p->level--);
23726 return _seq;
23727}
23728
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023729// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023730static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023731_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023732{
23733 D(p->level++);
23734 if (p->error_indicator) {
23735 D(p->level--);
23736 return NULL;
23737 }
23738 asdl_seq * _res = NULL;
23739 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023740 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023741 if (p->error_indicator) {
23742 D(p->level--);
23743 return NULL;
23744 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023745 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 +010023746 withitem_ty elem;
23747 asdl_seq * seq;
23748 if (
23749 (elem = with_item_rule(p)) // with_item
23750 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023751 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023752 )
23753 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023754 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 +010023755 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23756 goto done;
23757 }
23758 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023759 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023761 }
23762 _res = NULL;
23763 done:
23764 D(p->level--);
23765 return _res;
23766}
23767
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023768// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023769static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023770_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023771{
23772 D(p->level++);
23773 if (p->error_indicator) {
23774 D(p->level--);
23775 return NULL;
23776 }
23777 void *_res = NULL;
23778 int _mark = p->mark;
23779 int _start_mark = p->mark;
23780 void **_children = PyMem_Malloc(sizeof(void *));
23781 if (!_children) {
23782 p->error_indicator = 1;
23783 PyErr_NoMemory();
23784 D(p->level--);
23785 return NULL;
23786 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023787 Py_ssize_t _children_capacity = 1;
23788 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023789 { // ',' with_item
23790 if (p->error_indicator) {
23791 D(p->level--);
23792 return NULL;
23793 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023794 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023795 Token * _literal;
23796 withitem_ty elem;
23797 while (
23798 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23799 &&
23800 (elem = with_item_rule(p)) // with_item
23801 )
23802 {
23803 _res = elem;
23804 if (_res == NULL && PyErr_Occurred()) {
23805 p->error_indicator = 1;
23806 PyMem_Free(_children);
23807 D(p->level--);
23808 return NULL;
23809 }
23810 if (_n == _children_capacity) {
23811 _children_capacity *= 2;
23812 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23813 if (!_new_children) {
23814 p->error_indicator = 1;
23815 PyErr_NoMemory();
23816 D(p->level--);
23817 return NULL;
23818 }
23819 _children = _new_children;
23820 }
23821 _children[_n++] = _res;
23822 _mark = p->mark;
23823 }
23824 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023825 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23827 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023828 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023829 if (!_seq) {
23830 PyMem_Free(_children);
23831 p->error_indicator = 1;
23832 PyErr_NoMemory();
23833 D(p->level--);
23834 return NULL;
23835 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023836 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023837 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023838 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023839 D(p->level--);
23840 return _seq;
23841}
23842
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023843// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023844static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023845_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023846{
23847 D(p->level++);
23848 if (p->error_indicator) {
23849 D(p->level--);
23850 return NULL;
23851 }
23852 asdl_seq * _res = NULL;
23853 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023854 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023855 if (p->error_indicator) {
23856 D(p->level--);
23857 return NULL;
23858 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023859 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 +010023860 withitem_ty elem;
23861 asdl_seq * seq;
23862 if (
23863 (elem = with_item_rule(p)) // with_item
23864 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023865 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023866 )
23867 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023868 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 +010023869 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23870 goto done;
23871 }
23872 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023873 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023875 }
23876 _res = NULL;
23877 done:
23878 D(p->level--);
23879 return _res;
23880}
23881
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023882// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023883static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023884_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023885{
23886 D(p->level++);
23887 if (p->error_indicator) {
23888 D(p->level--);
23889 return NULL;
23890 }
23891 void * _res = NULL;
23892 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023893 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023894 if (p->error_indicator) {
23895 D(p->level--);
23896 return NULL;
23897 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023898 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23899 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023900 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023901 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023902 )
23903 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023904 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23905 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023906 goto done;
23907 }
23908 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023909 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23911 }
23912 { // ')'
23913 if (p->error_indicator) {
23914 D(p->level--);
23915 return NULL;
23916 }
23917 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23918 Token * _literal;
23919 if (
23920 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23921 )
23922 {
23923 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23924 _res = _literal;
23925 goto done;
23926 }
23927 p->mark = _mark;
23928 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23930 }
23931 { // ':'
23932 if (p->error_indicator) {
23933 D(p->level--);
23934 return NULL;
23935 }
23936 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23937 Token * _literal;
23938 if (
23939 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23940 )
23941 {
23942 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23943 _res = _literal;
23944 goto done;
23945 }
23946 p->mark = _mark;
23947 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023949 }
23950 _res = NULL;
23951 done:
23952 D(p->level--);
23953 return _res;
23954}
23955
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023956// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023957static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023958_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023959{
23960 D(p->level++);
23961 if (p->error_indicator) {
23962 D(p->level--);
23963 return NULL;
23964 }
23965 void *_res = NULL;
23966 int _mark = p->mark;
23967 int _start_mark = p->mark;
23968 void **_children = PyMem_Malloc(sizeof(void *));
23969 if (!_children) {
23970 p->error_indicator = 1;
23971 PyErr_NoMemory();
23972 D(p->level--);
23973 return NULL;
23974 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023975 Py_ssize_t _children_capacity = 1;
23976 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023977 { // except_block
23978 if (p->error_indicator) {
23979 D(p->level--);
23980 return NULL;
23981 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023982 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023983 excepthandler_ty except_block_var;
23984 while (
23985 (except_block_var = except_block_rule(p)) // except_block
23986 )
23987 {
23988 _res = except_block_var;
23989 if (_n == _children_capacity) {
23990 _children_capacity *= 2;
23991 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23992 if (!_new_children) {
23993 p->error_indicator = 1;
23994 PyErr_NoMemory();
23995 D(p->level--);
23996 return NULL;
23997 }
23998 _children = _new_children;
23999 }
24000 _children[_n++] = _res;
24001 _mark = p->mark;
24002 }
24003 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024004 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
24006 }
24007 if (_n == 0 || p->error_indicator) {
24008 PyMem_Free(_children);
24009 D(p->level--);
24010 return NULL;
24011 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024012 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024013 if (!_seq) {
24014 PyMem_Free(_children);
24015 p->error_indicator = 1;
24016 PyErr_NoMemory();
24017 D(p->level--);
24018 return NULL;
24019 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024020 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024021 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024022 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024023 D(p->level--);
24024 return _seq;
24025}
24026
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024027// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024028static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024029_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024030{
24031 D(p->level++);
24032 if (p->error_indicator) {
24033 D(p->level--);
24034 return NULL;
24035 }
24036 void * _res = NULL;
24037 int _mark = p->mark;
24038 { // 'as' NAME
24039 if (p->error_indicator) {
24040 D(p->level--);
24041 return NULL;
24042 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024043 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024044 Token * _keyword;
24045 expr_ty z;
24046 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024047 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024048 &&
24049 (z = _PyPegen_name_token(p)) // NAME
24050 )
24051 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024052 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 +010024053 _res = z;
24054 if (_res == NULL && PyErr_Occurred()) {
24055 p->error_indicator = 1;
24056 D(p->level--);
24057 return NULL;
24058 }
24059 goto done;
24060 }
24061 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024062 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
24064 }
24065 _res = NULL;
24066 done:
24067 D(p->level--);
24068 return _res;
24069}
24070
Brandt Bucher145bf262021-02-26 14:51:55 -080024071// _loop1_50: case_block
24072static asdl_seq *
24073_loop1_50_rule(Parser *p)
24074{
24075 D(p->level++);
24076 if (p->error_indicator) {
24077 D(p->level--);
24078 return NULL;
24079 }
24080 void *_res = NULL;
24081 int _mark = p->mark;
24082 int _start_mark = p->mark;
24083 void **_children = PyMem_Malloc(sizeof(void *));
24084 if (!_children) {
24085 p->error_indicator = 1;
24086 PyErr_NoMemory();
24087 D(p->level--);
24088 return NULL;
24089 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024090 Py_ssize_t _children_capacity = 1;
24091 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024092 { // case_block
24093 if (p->error_indicator) {
24094 D(p->level--);
24095 return NULL;
24096 }
24097 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
24098 match_case_ty case_block_var;
24099 while (
24100 (case_block_var = case_block_rule(p)) // case_block
24101 )
24102 {
24103 _res = case_block_var;
24104 if (_n == _children_capacity) {
24105 _children_capacity *= 2;
24106 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24107 if (!_new_children) {
24108 p->error_indicator = 1;
24109 PyErr_NoMemory();
24110 D(p->level--);
24111 return NULL;
24112 }
24113 _children = _new_children;
24114 }
24115 _children[_n++] = _res;
24116 _mark = p->mark;
24117 }
24118 p->mark = _mark;
24119 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
24120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
24121 }
24122 if (_n == 0 || p->error_indicator) {
24123 PyMem_Free(_children);
24124 D(p->level--);
24125 return NULL;
24126 }
24127 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24128 if (!_seq) {
24129 PyMem_Free(_children);
24130 p->error_indicator = 1;
24131 PyErr_NoMemory();
24132 D(p->level--);
24133 return NULL;
24134 }
24135 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24136 PyMem_Free(_children);
24137 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
24138 D(p->level--);
24139 return _seq;
24140}
24141
24142// _loop0_52: '|' closed_pattern
24143static asdl_seq *
24144_loop0_52_rule(Parser *p)
24145{
24146 D(p->level++);
24147 if (p->error_indicator) {
24148 D(p->level--);
24149 return NULL;
24150 }
24151 void *_res = NULL;
24152 int _mark = p->mark;
24153 int _start_mark = p->mark;
24154 void **_children = PyMem_Malloc(sizeof(void *));
24155 if (!_children) {
24156 p->error_indicator = 1;
24157 PyErr_NoMemory();
24158 D(p->level--);
24159 return NULL;
24160 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024161 Py_ssize_t _children_capacity = 1;
24162 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024163 { // '|' closed_pattern
24164 if (p->error_indicator) {
24165 D(p->level--);
24166 return NULL;
24167 }
24168 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
24169 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024170 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024171 while (
24172 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
24173 &&
24174 (elem = closed_pattern_rule(p)) // closed_pattern
24175 )
24176 {
24177 _res = elem;
24178 if (_res == NULL && PyErr_Occurred()) {
24179 p->error_indicator = 1;
24180 PyMem_Free(_children);
24181 D(p->level--);
24182 return NULL;
24183 }
24184 if (_n == _children_capacity) {
24185 _children_capacity *= 2;
24186 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24187 if (!_new_children) {
24188 p->error_indicator = 1;
24189 PyErr_NoMemory();
24190 D(p->level--);
24191 return NULL;
24192 }
24193 _children = _new_children;
24194 }
24195 _children[_n++] = _res;
24196 _mark = p->mark;
24197 }
24198 p->mark = _mark;
24199 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
24200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
24201 }
24202 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24203 if (!_seq) {
24204 PyMem_Free(_children);
24205 p->error_indicator = 1;
24206 PyErr_NoMemory();
24207 D(p->level--);
24208 return NULL;
24209 }
24210 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24211 PyMem_Free(_children);
24212 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
24213 D(p->level--);
24214 return _seq;
24215}
24216
24217// _gather_51: closed_pattern _loop0_52
24218static asdl_seq *
24219_gather_51_rule(Parser *p)
24220{
24221 D(p->level++);
24222 if (p->error_indicator) {
24223 D(p->level--);
24224 return NULL;
24225 }
24226 asdl_seq * _res = NULL;
24227 int _mark = p->mark;
24228 { // closed_pattern _loop0_52
24229 if (p->error_indicator) {
24230 D(p->level--);
24231 return NULL;
24232 }
24233 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 +100024234 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024235 asdl_seq * seq;
24236 if (
24237 (elem = closed_pattern_rule(p)) // closed_pattern
24238 &&
24239 (seq = _loop0_52_rule(p)) // _loop0_52
24240 )
24241 {
24242 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24243 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24244 goto done;
24245 }
24246 p->mark = _mark;
24247 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24249 }
24250 _res = NULL;
24251 done:
24252 D(p->level--);
24253 return _res;
24254}
24255
24256// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024257static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024258_tmp_53_rule(Parser *p)
24259{
24260 D(p->level++);
24261 if (p->error_indicator) {
24262 D(p->level--);
24263 return NULL;
24264 }
24265 void * _res = NULL;
24266 int _mark = p->mark;
24267 { // '+'
24268 if (p->error_indicator) {
24269 D(p->level--);
24270 return NULL;
24271 }
24272 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24273 Token * _literal;
24274 if (
24275 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24276 )
24277 {
24278 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24279 _res = _literal;
24280 goto done;
24281 }
24282 p->mark = _mark;
24283 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24285 }
24286 { // '-'
24287 if (p->error_indicator) {
24288 D(p->level--);
24289 return NULL;
24290 }
24291 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24292 Token * _literal;
24293 if (
24294 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24295 )
24296 {
24297 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24298 _res = _literal;
24299 goto done;
24300 }
24301 p->mark = _mark;
24302 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24304 }
24305 _res = NULL;
24306 done:
24307 D(p->level--);
24308 return _res;
24309}
24310
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024311// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024312static void *
24313_tmp_54_rule(Parser *p)
24314{
24315 D(p->level++);
24316 if (p->error_indicator) {
24317 D(p->level--);
24318 return NULL;
24319 }
24320 void * _res = NULL;
24321 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024322 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024323 if (p->error_indicator) {
24324 D(p->level--);
24325 return NULL;
24326 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024327 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024328 Token * _literal;
24329 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024330 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024331 )
24332 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024333 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024334 _res = _literal;
24335 goto done;
24336 }
24337 p->mark = _mark;
24338 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024340 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024341 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024342 if (p->error_indicator) {
24343 D(p->level--);
24344 return NULL;
24345 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024346 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024347 Token * _literal;
24348 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024349 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024350 )
24351 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024352 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024353 _res = _literal;
24354 goto done;
24355 }
24356 p->mark = _mark;
24357 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024358 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024359 }
24360 _res = NULL;
24361 done:
24362 D(p->level--);
24363 return _res;
24364}
24365
24366// _tmp_55: '.' | '(' | '='
24367static void *
24368_tmp_55_rule(Parser *p)
24369{
24370 D(p->level++);
24371 if (p->error_indicator) {
24372 D(p->level--);
24373 return NULL;
24374 }
24375 void * _res = NULL;
24376 int _mark = p->mark;
24377 { // '.'
24378 if (p->error_indicator) {
24379 D(p->level--);
24380 return NULL;
24381 }
24382 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24383 Token * _literal;
24384 if (
24385 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24386 )
24387 {
24388 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24389 _res = _literal;
24390 goto done;
24391 }
24392 p->mark = _mark;
24393 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24394 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24395 }
24396 { // '('
24397 if (p->error_indicator) {
24398 D(p->level--);
24399 return NULL;
24400 }
24401 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24402 Token * _literal;
24403 if (
24404 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24405 )
24406 {
24407 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24408 _res = _literal;
24409 goto done;
24410 }
24411 p->mark = _mark;
24412 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24414 }
24415 { // '='
24416 if (p->error_indicator) {
24417 D(p->level--);
24418 return NULL;
24419 }
24420 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24421 Token * _literal;
24422 if (
24423 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24424 )
24425 {
24426 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24427 _res = _literal;
24428 goto done;
24429 }
24430 p->mark = _mark;
24431 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24433 }
24434 _res = NULL;
24435 done:
24436 D(p->level--);
24437 return _res;
24438}
24439
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024440// _tmp_56: '.' | '(' | '='
24441static void *
24442_tmp_56_rule(Parser *p)
24443{
24444 D(p->level++);
24445 if (p->error_indicator) {
24446 D(p->level--);
24447 return NULL;
24448 }
24449 void * _res = NULL;
24450 int _mark = p->mark;
24451 { // '.'
24452 if (p->error_indicator) {
24453 D(p->level--);
24454 return NULL;
24455 }
24456 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24457 Token * _literal;
24458 if (
24459 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24460 )
24461 {
24462 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24463 _res = _literal;
24464 goto done;
24465 }
24466 p->mark = _mark;
24467 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24469 }
24470 { // '('
24471 if (p->error_indicator) {
24472 D(p->level--);
24473 return NULL;
24474 }
24475 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24476 Token * _literal;
24477 if (
24478 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24479 )
24480 {
24481 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24482 _res = _literal;
24483 goto done;
24484 }
24485 p->mark = _mark;
24486 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24488 }
24489 { // '='
24490 if (p->error_indicator) {
24491 D(p->level--);
24492 return NULL;
24493 }
24494 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24495 Token * _literal;
24496 if (
24497 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24498 )
24499 {
24500 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24501 _res = _literal;
24502 goto done;
24503 }
24504 p->mark = _mark;
24505 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24507 }
24508 _res = NULL;
24509 done:
24510 D(p->level--);
24511 return _res;
24512}
24513
24514// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024515static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024516_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024517{
24518 D(p->level++);
24519 if (p->error_indicator) {
24520 D(p->level--);
24521 return NULL;
24522 }
24523 void *_res = NULL;
24524 int _mark = p->mark;
24525 int _start_mark = p->mark;
24526 void **_children = PyMem_Malloc(sizeof(void *));
24527 if (!_children) {
24528 p->error_indicator = 1;
24529 PyErr_NoMemory();
24530 D(p->level--);
24531 return NULL;
24532 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024533 Py_ssize_t _children_capacity = 1;
24534 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024535 { // ',' maybe_star_pattern
24536 if (p->error_indicator) {
24537 D(p->level--);
24538 return NULL;
24539 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024540 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 -080024541 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024542 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024543 while (
24544 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24545 &&
24546 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24547 )
24548 {
24549 _res = elem;
24550 if (_res == NULL && PyErr_Occurred()) {
24551 p->error_indicator = 1;
24552 PyMem_Free(_children);
24553 D(p->level--);
24554 return NULL;
24555 }
24556 if (_n == _children_capacity) {
24557 _children_capacity *= 2;
24558 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24559 if (!_new_children) {
24560 p->error_indicator = 1;
24561 PyErr_NoMemory();
24562 D(p->level--);
24563 return NULL;
24564 }
24565 _children = _new_children;
24566 }
24567 _children[_n++] = _res;
24568 _mark = p->mark;
24569 }
24570 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024571 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24573 }
24574 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24575 if (!_seq) {
24576 PyMem_Free(_children);
24577 p->error_indicator = 1;
24578 PyErr_NoMemory();
24579 D(p->level--);
24580 return NULL;
24581 }
24582 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24583 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024584 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024585 D(p->level--);
24586 return _seq;
24587}
24588
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024589// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024590static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024591_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024592{
24593 D(p->level++);
24594 if (p->error_indicator) {
24595 D(p->level--);
24596 return NULL;
24597 }
24598 asdl_seq * _res = NULL;
24599 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024600 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024601 if (p->error_indicator) {
24602 D(p->level--);
24603 return NULL;
24604 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024605 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24606 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024607 asdl_seq * seq;
24608 if (
24609 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24610 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024611 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024612 )
24613 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024614 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 -080024615 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24616 goto done;
24617 }
24618 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024619 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024621 }
24622 _res = NULL;
24623 done:
24624 D(p->level--);
24625 return _res;
24626}
24627
24628// _loop0_60: ',' key_value_pattern
24629static asdl_seq *
24630_loop0_60_rule(Parser *p)
24631{
24632 D(p->level++);
24633 if (p->error_indicator) {
24634 D(p->level--);
24635 return NULL;
24636 }
24637 void *_res = NULL;
24638 int _mark = p->mark;
24639 int _start_mark = p->mark;
24640 void **_children = PyMem_Malloc(sizeof(void *));
24641 if (!_children) {
24642 p->error_indicator = 1;
24643 PyErr_NoMemory();
24644 D(p->level--);
24645 return NULL;
24646 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024647 Py_ssize_t _children_capacity = 1;
24648 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024649 { // ',' key_value_pattern
24650 if (p->error_indicator) {
24651 D(p->level--);
24652 return NULL;
24653 }
24654 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24655 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024656 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024657 while (
24658 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24659 &&
24660 (elem = key_value_pattern_rule(p)) // key_value_pattern
24661 )
24662 {
24663 _res = elem;
24664 if (_res == NULL && PyErr_Occurred()) {
24665 p->error_indicator = 1;
24666 PyMem_Free(_children);
24667 D(p->level--);
24668 return NULL;
24669 }
24670 if (_n == _children_capacity) {
24671 _children_capacity *= 2;
24672 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24673 if (!_new_children) {
24674 p->error_indicator = 1;
24675 PyErr_NoMemory();
24676 D(p->level--);
24677 return NULL;
24678 }
24679 _children = _new_children;
24680 }
24681 _children[_n++] = _res;
24682 _mark = p->mark;
24683 }
24684 p->mark = _mark;
24685 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24687 }
24688 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24689 if (!_seq) {
24690 PyMem_Free(_children);
24691 p->error_indicator = 1;
24692 PyErr_NoMemory();
24693 D(p->level--);
24694 return NULL;
24695 }
24696 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24697 PyMem_Free(_children);
24698 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24699 D(p->level--);
24700 return _seq;
24701}
24702
24703// _gather_59: key_value_pattern _loop0_60
24704static asdl_seq *
24705_gather_59_rule(Parser *p)
24706{
24707 D(p->level++);
24708 if (p->error_indicator) {
24709 D(p->level--);
24710 return NULL;
24711 }
24712 asdl_seq * _res = NULL;
24713 int _mark = p->mark;
24714 { // key_value_pattern _loop0_60
24715 if (p->error_indicator) {
24716 D(p->level--);
24717 return NULL;
24718 }
24719 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 +100024720 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024721 asdl_seq * seq;
24722 if (
24723 (elem = key_value_pattern_rule(p)) // key_value_pattern
24724 &&
24725 (seq = _loop0_60_rule(p)) // _loop0_60
24726 )
24727 {
24728 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24729 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24730 goto done;
24731 }
24732 p->mark = _mark;
24733 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24735 }
24736 _res = NULL;
24737 done:
24738 D(p->level--);
24739 return _res;
24740}
24741
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024742// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024743static void *
24744_tmp_61_rule(Parser *p)
24745{
24746 D(p->level++);
24747 if (p->error_indicator) {
24748 D(p->level--);
24749 return NULL;
24750 }
24751 void * _res = NULL;
24752 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024753 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024754 if (p->error_indicator) {
24755 D(p->level--);
24756 return NULL;
24757 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024758 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24759 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024760 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024761 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024762 )
24763 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024764 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24765 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024766 goto done;
24767 }
24768 p->mark = _mark;
24769 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024771 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024772 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024773 if (p->error_indicator) {
24774 D(p->level--);
24775 return NULL;
24776 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024777 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24778 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024779 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024780 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024781 )
24782 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024783 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24784 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024785 goto done;
24786 }
24787 p->mark = _mark;
24788 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024790 }
24791 _res = NULL;
24792 done:
24793 D(p->level--);
24794 return _res;
24795}
24796
24797// _loop0_63: ',' pattern
24798static asdl_seq *
24799_loop0_63_rule(Parser *p)
24800{
24801 D(p->level++);
24802 if (p->error_indicator) {
24803 D(p->level--);
24804 return NULL;
24805 }
24806 void *_res = NULL;
24807 int _mark = p->mark;
24808 int _start_mark = p->mark;
24809 void **_children = PyMem_Malloc(sizeof(void *));
24810 if (!_children) {
24811 p->error_indicator = 1;
24812 PyErr_NoMemory();
24813 D(p->level--);
24814 return NULL;
24815 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024816 Py_ssize_t _children_capacity = 1;
24817 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024818 { // ',' pattern
24819 if (p->error_indicator) {
24820 D(p->level--);
24821 return NULL;
24822 }
24823 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24824 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024825 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024826 while (
24827 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24828 &&
24829 (elem = pattern_rule(p)) // pattern
24830 )
24831 {
24832 _res = elem;
24833 if (_res == NULL && PyErr_Occurred()) {
24834 p->error_indicator = 1;
24835 PyMem_Free(_children);
24836 D(p->level--);
24837 return NULL;
24838 }
24839 if (_n == _children_capacity) {
24840 _children_capacity *= 2;
24841 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24842 if (!_new_children) {
24843 p->error_indicator = 1;
24844 PyErr_NoMemory();
24845 D(p->level--);
24846 return NULL;
24847 }
24848 _children = _new_children;
24849 }
24850 _children[_n++] = _res;
24851 _mark = p->mark;
24852 }
24853 p->mark = _mark;
24854 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24856 }
24857 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24858 if (!_seq) {
24859 PyMem_Free(_children);
24860 p->error_indicator = 1;
24861 PyErr_NoMemory();
24862 D(p->level--);
24863 return NULL;
24864 }
24865 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24866 PyMem_Free(_children);
24867 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24868 D(p->level--);
24869 return _seq;
24870}
24871
24872// _gather_62: pattern _loop0_63
24873static asdl_seq *
24874_gather_62_rule(Parser *p)
24875{
24876 D(p->level++);
24877 if (p->error_indicator) {
24878 D(p->level--);
24879 return NULL;
24880 }
24881 asdl_seq * _res = NULL;
24882 int _mark = p->mark;
24883 { // pattern _loop0_63
24884 if (p->error_indicator) {
24885 D(p->level--);
24886 return NULL;
24887 }
24888 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 +100024889 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024890 asdl_seq * seq;
24891 if (
24892 (elem = pattern_rule(p)) // pattern
24893 &&
24894 (seq = _loop0_63_rule(p)) // _loop0_63
24895 )
24896 {
24897 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24898 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24899 goto done;
24900 }
24901 p->mark = _mark;
24902 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24904 }
24905 _res = NULL;
24906 done:
24907 D(p->level--);
24908 return _res;
24909}
24910
24911// _loop0_65: ',' keyword_pattern
24912static asdl_seq *
24913_loop0_65_rule(Parser *p)
24914{
24915 D(p->level++);
24916 if (p->error_indicator) {
24917 D(p->level--);
24918 return NULL;
24919 }
24920 void *_res = NULL;
24921 int _mark = p->mark;
24922 int _start_mark = p->mark;
24923 void **_children = PyMem_Malloc(sizeof(void *));
24924 if (!_children) {
24925 p->error_indicator = 1;
24926 PyErr_NoMemory();
24927 D(p->level--);
24928 return NULL;
24929 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024930 Py_ssize_t _children_capacity = 1;
24931 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024932 { // ',' keyword_pattern
24933 if (p->error_indicator) {
24934 D(p->level--);
24935 return NULL;
24936 }
24937 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24938 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024939 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024940 while (
24941 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24942 &&
24943 (elem = keyword_pattern_rule(p)) // keyword_pattern
24944 )
24945 {
24946 _res = elem;
24947 if (_res == NULL && PyErr_Occurred()) {
24948 p->error_indicator = 1;
24949 PyMem_Free(_children);
24950 D(p->level--);
24951 return NULL;
24952 }
24953 if (_n == _children_capacity) {
24954 _children_capacity *= 2;
24955 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24956 if (!_new_children) {
24957 p->error_indicator = 1;
24958 PyErr_NoMemory();
24959 D(p->level--);
24960 return NULL;
24961 }
24962 _children = _new_children;
24963 }
24964 _children[_n++] = _res;
24965 _mark = p->mark;
24966 }
24967 p->mark = _mark;
24968 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24970 }
24971 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24972 if (!_seq) {
24973 PyMem_Free(_children);
24974 p->error_indicator = 1;
24975 PyErr_NoMemory();
24976 D(p->level--);
24977 return NULL;
24978 }
24979 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24980 PyMem_Free(_children);
24981 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24982 D(p->level--);
24983 return _seq;
24984}
24985
24986// _gather_64: keyword_pattern _loop0_65
24987static asdl_seq *
24988_gather_64_rule(Parser *p)
24989{
24990 D(p->level++);
24991 if (p->error_indicator) {
24992 D(p->level--);
24993 return NULL;
24994 }
24995 asdl_seq * _res = NULL;
24996 int _mark = p->mark;
24997 { // keyword_pattern _loop0_65
24998 if (p->error_indicator) {
24999 D(p->level--);
25000 return NULL;
25001 }
25002 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 +100025003 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080025004 asdl_seq * seq;
25005 if (
25006 (elem = keyword_pattern_rule(p)) // keyword_pattern
25007 &&
25008 (seq = _loop0_65_rule(p)) // _loop0_65
25009 )
25010 {
25011 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
25012 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
25013 goto done;
25014 }
25015 p->mark = _mark;
25016 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
25017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
25018 }
25019 _res = NULL;
25020 done:
25021 D(p->level--);
25022 return _res;
25023}
25024
25025// _tmp_66: 'from' expression
25026static void *
25027_tmp_66_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 { // 'from' expression
25037 if (p->error_indicator) {
25038 D(p->level--);
25039 return NULL;
25040 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025041 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025042 Token * _keyword;
25043 expr_ty z;
25044 if (
25045 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
25046 &&
25047 (z = expression_rule(p)) // expression
25048 )
25049 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025050 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 +010025051 _res = z;
25052 if (_res == NULL && PyErr_Occurred()) {
25053 p->error_indicator = 1;
25054 D(p->level--);
25055 return NULL;
25056 }
25057 goto done;
25058 }
25059 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025060 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025062 }
25063 _res = NULL;
25064 done:
25065 D(p->level--);
25066 return _res;
25067}
25068
Brandt Bucher145bf262021-02-26 14:51:55 -080025069// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025070static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025071_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025072{
25073 D(p->level++);
25074 if (p->error_indicator) {
25075 D(p->level--);
25076 return NULL;
25077 }
25078 void * _res = NULL;
25079 int _mark = p->mark;
25080 { // '->' expression
25081 if (p->error_indicator) {
25082 D(p->level--);
25083 return NULL;
25084 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025085 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025086 Token * _literal;
25087 expr_ty z;
25088 if (
25089 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25090 &&
25091 (z = expression_rule(p)) // expression
25092 )
25093 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025094 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025095 _res = z;
25096 if (_res == NULL && PyErr_Occurred()) {
25097 p->error_indicator = 1;
25098 D(p->level--);
25099 return NULL;
25100 }
25101 goto done;
25102 }
25103 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025104 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25106 }
25107 _res = NULL;
25108 done:
25109 D(p->level--);
25110 return _res;
25111}
25112
Brandt Bucher145bf262021-02-26 14:51:55 -080025113// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025114static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025115_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025116{
25117 D(p->level++);
25118 if (p->error_indicator) {
25119 D(p->level--);
25120 return NULL;
25121 }
25122 void * _res = NULL;
25123 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025124 { // '->' expression
25125 if (p->error_indicator) {
25126 D(p->level--);
25127 return NULL;
25128 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025129 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025130 Token * _literal;
25131 expr_ty z;
25132 if (
25133 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
25134 &&
25135 (z = expression_rule(p)) // expression
25136 )
25137 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025138 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025139 _res = z;
25140 if (_res == NULL && PyErr_Occurred()) {
25141 p->error_indicator = 1;
25142 D(p->level--);
25143 return NULL;
25144 }
25145 goto done;
25146 }
25147 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025148 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
25150 }
25151 _res = NULL;
25152 done:
25153 D(p->level--);
25154 return _res;
25155}
25156
Brandt Bucher145bf262021-02-26 14:51:55 -080025157// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025158static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025159_tmp_69_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;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025168 { // NEWLINE INDENT
25169 if (p->error_indicator) {
25170 D(p->level--);
25171 return NULL;
25172 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025173 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025174 Token * indent_var;
25175 Token * newline_var;
25176 if (
25177 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25178 &&
25179 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
25180 )
25181 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025182 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 +010025183 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
25184 goto done;
25185 }
25186 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025187 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
25189 }
25190 _res = NULL;
25191 done:
25192 D(p->level--);
25193 return _res;
25194}
25195
Brandt Bucher145bf262021-02-26 14:51:55 -080025196// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025197static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025198_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025199{
25200 D(p->level++);
25201 if (p->error_indicator) {
25202 D(p->level--);
25203 return NULL;
25204 }
25205 void *_res = NULL;
25206 int _mark = p->mark;
25207 int _start_mark = p->mark;
25208 void **_children = PyMem_Malloc(sizeof(void *));
25209 if (!_children) {
25210 p->error_indicator = 1;
25211 PyErr_NoMemory();
25212 D(p->level--);
25213 return NULL;
25214 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025215 Py_ssize_t _children_capacity = 1;
25216 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025217 { // param_no_default
25218 if (p->error_indicator) {
25219 D(p->level--);
25220 return NULL;
25221 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025222 D(fprintf(stderr, "%*c> _loop0_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025223 arg_ty param_no_default_var;
25224 while (
25225 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25226 )
25227 {
25228 _res = param_no_default_var;
25229 if (_n == _children_capacity) {
25230 _children_capacity *= 2;
25231 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25232 if (!_new_children) {
25233 p->error_indicator = 1;
25234 PyErr_NoMemory();
25235 D(p->level--);
25236 return NULL;
25237 }
25238 _children = _new_children;
25239 }
25240 _children[_n++] = _res;
25241 _mark = p->mark;
25242 }
25243 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025244 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025246 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025247 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025248 if (!_seq) {
25249 PyMem_Free(_children);
25250 p->error_indicator = 1;
25251 PyErr_NoMemory();
25252 D(p->level--);
25253 return NULL;
25254 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025255 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025256 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025257 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025258 D(p->level--);
25259 return _seq;
25260}
25261
Brandt Bucher145bf262021-02-26 14:51:55 -080025262// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025263static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025264_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025265{
25266 D(p->level++);
25267 if (p->error_indicator) {
25268 D(p->level--);
25269 return NULL;
25270 }
25271 void *_res = NULL;
25272 int _mark = p->mark;
25273 int _start_mark = p->mark;
25274 void **_children = PyMem_Malloc(sizeof(void *));
25275 if (!_children) {
25276 p->error_indicator = 1;
25277 PyErr_NoMemory();
25278 D(p->level--);
25279 return NULL;
25280 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025281 Py_ssize_t _children_capacity = 1;
25282 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025283 { // param_with_default
25284 if (p->error_indicator) {
25285 D(p->level--);
25286 return NULL;
25287 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025288 D(fprintf(stderr, "%*c> _loop0_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025289 NameDefaultPair* param_with_default_var;
25290 while (
25291 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25292 )
25293 {
25294 _res = param_with_default_var;
25295 if (_n == _children_capacity) {
25296 _children_capacity *= 2;
25297 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25298 if (!_new_children) {
25299 p->error_indicator = 1;
25300 PyErr_NoMemory();
25301 D(p->level--);
25302 return NULL;
25303 }
25304 _children = _new_children;
25305 }
25306 _children[_n++] = _res;
25307 _mark = p->mark;
25308 }
25309 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025310 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25312 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025313 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025314 if (!_seq) {
25315 PyMem_Free(_children);
25316 p->error_indicator = 1;
25317 PyErr_NoMemory();
25318 D(p->level--);
25319 return NULL;
25320 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025321 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025322 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025323 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025324 D(p->level--);
25325 return _seq;
25326}
25327
Brandt Bucher145bf262021-02-26 14:51:55 -080025328// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025329static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025330_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025331{
25332 D(p->level++);
25333 if (p->error_indicator) {
25334 D(p->level--);
25335 return NULL;
25336 }
25337 void *_res = NULL;
25338 int _mark = p->mark;
25339 int _start_mark = p->mark;
25340 void **_children = PyMem_Malloc(sizeof(void *));
25341 if (!_children) {
25342 p->error_indicator = 1;
25343 PyErr_NoMemory();
25344 D(p->level--);
25345 return NULL;
25346 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025347 Py_ssize_t _children_capacity = 1;
25348 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025349 { // param_with_default
25350 if (p->error_indicator) {
25351 D(p->level--);
25352 return NULL;
25353 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025354 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 +030025355 NameDefaultPair* param_with_default_var;
25356 while (
25357 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25358 )
25359 {
25360 _res = param_with_default_var;
25361 if (_n == _children_capacity) {
25362 _children_capacity *= 2;
25363 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25364 if (!_new_children) {
25365 p->error_indicator = 1;
25366 PyErr_NoMemory();
25367 D(p->level--);
25368 return NULL;
25369 }
25370 _children = _new_children;
25371 }
25372 _children[_n++] = _res;
25373 _mark = p->mark;
25374 }
25375 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025376 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25378 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025379 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025380 if (!_seq) {
25381 PyMem_Free(_children);
25382 p->error_indicator = 1;
25383 PyErr_NoMemory();
25384 D(p->level--);
25385 return NULL;
25386 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025387 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025388 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025389 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025390 D(p->level--);
25391 return _seq;
25392}
25393
Brandt Bucher145bf262021-02-26 14:51:55 -080025394// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025395static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025396_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025397{
25398 D(p->level++);
25399 if (p->error_indicator) {
25400 D(p->level--);
25401 return NULL;
25402 }
25403 void *_res = NULL;
25404 int _mark = p->mark;
25405 int _start_mark = p->mark;
25406 void **_children = PyMem_Malloc(sizeof(void *));
25407 if (!_children) {
25408 p->error_indicator = 1;
25409 PyErr_NoMemory();
25410 D(p->level--);
25411 return NULL;
25412 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025413 Py_ssize_t _children_capacity = 1;
25414 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025415 { // param_no_default
25416 if (p->error_indicator) {
25417 D(p->level--);
25418 return NULL;
25419 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025420 D(fprintf(stderr, "%*c> _loop1_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025421 arg_ty param_no_default_var;
25422 while (
25423 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25424 )
25425 {
25426 _res = param_no_default_var;
25427 if (_n == _children_capacity) {
25428 _children_capacity *= 2;
25429 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25430 if (!_new_children) {
25431 p->error_indicator = 1;
25432 PyErr_NoMemory();
25433 D(p->level--);
25434 return NULL;
25435 }
25436 _children = _new_children;
25437 }
25438 _children[_n++] = _res;
25439 _mark = p->mark;
25440 }
25441 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025442 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25444 }
25445 if (_n == 0 || p->error_indicator) {
25446 PyMem_Free(_children);
25447 D(p->level--);
25448 return NULL;
25449 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025450 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025451 if (!_seq) {
25452 PyMem_Free(_children);
25453 p->error_indicator = 1;
25454 PyErr_NoMemory();
25455 D(p->level--);
25456 return NULL;
25457 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025458 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025459 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025460 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025461 D(p->level--);
25462 return _seq;
25463}
25464
Brandt Bucher145bf262021-02-26 14:51:55 -080025465// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025466static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025467_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025468{
25469 D(p->level++);
25470 if (p->error_indicator) {
25471 D(p->level--);
25472 return NULL;
25473 }
25474 void *_res = NULL;
25475 int _mark = p->mark;
25476 int _start_mark = p->mark;
25477 void **_children = PyMem_Malloc(sizeof(void *));
25478 if (!_children) {
25479 p->error_indicator = 1;
25480 PyErr_NoMemory();
25481 D(p->level--);
25482 return NULL;
25483 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025484 Py_ssize_t _children_capacity = 1;
25485 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025486 { // param_with_default
25487 if (p->error_indicator) {
25488 D(p->level--);
25489 return NULL;
25490 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025491 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 +010025492 NameDefaultPair* param_with_default_var;
25493 while (
25494 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25495 )
25496 {
25497 _res = param_with_default_var;
25498 if (_n == _children_capacity) {
25499 _children_capacity *= 2;
25500 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25501 if (!_new_children) {
25502 p->error_indicator = 1;
25503 PyErr_NoMemory();
25504 D(p->level--);
25505 return NULL;
25506 }
25507 _children = _new_children;
25508 }
25509 _children[_n++] = _res;
25510 _mark = p->mark;
25511 }
25512 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025513 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25515 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025516 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025517 if (!_seq) {
25518 PyMem_Free(_children);
25519 p->error_indicator = 1;
25520 PyErr_NoMemory();
25521 D(p->level--);
25522 return NULL;
25523 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025524 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025525 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025526 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025527 D(p->level--);
25528 return _seq;
25529}
25530
Brandt Bucher145bf262021-02-26 14:51:55 -080025531// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025532static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025533_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025534{
25535 D(p->level++);
25536 if (p->error_indicator) {
25537 D(p->level--);
25538 return NULL;
25539 }
25540 void *_res = NULL;
25541 int _mark = p->mark;
25542 int _start_mark = p->mark;
25543 void **_children = PyMem_Malloc(sizeof(void *));
25544 if (!_children) {
25545 p->error_indicator = 1;
25546 PyErr_NoMemory();
25547 D(p->level--);
25548 return NULL;
25549 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025550 Py_ssize_t _children_capacity = 1;
25551 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025552 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025553 if (p->error_indicator) {
25554 D(p->level--);
25555 return NULL;
25556 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025557 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 +030025558 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025559 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025560 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025561 )
25562 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025563 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025564 if (_n == _children_capacity) {
25565 _children_capacity *= 2;
25566 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25567 if (!_new_children) {
25568 p->error_indicator = 1;
25569 PyErr_NoMemory();
25570 D(p->level--);
25571 return NULL;
25572 }
25573 _children = _new_children;
25574 }
25575 _children[_n++] = _res;
25576 _mark = p->mark;
25577 }
25578 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025579 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025581 }
25582 if (_n == 0 || p->error_indicator) {
25583 PyMem_Free(_children);
25584 D(p->level--);
25585 return NULL;
25586 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025587 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025588 if (!_seq) {
25589 PyMem_Free(_children);
25590 p->error_indicator = 1;
25591 PyErr_NoMemory();
25592 D(p->level--);
25593 return NULL;
25594 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025595 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025596 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025597 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025598 D(p->level--);
25599 return _seq;
25600}
25601
Brandt Bucher145bf262021-02-26 14:51:55 -080025602// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025603static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025604_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025605{
25606 D(p->level++);
25607 if (p->error_indicator) {
25608 D(p->level--);
25609 return NULL;
25610 }
25611 void *_res = NULL;
25612 int _mark = p->mark;
25613 int _start_mark = p->mark;
25614 void **_children = PyMem_Malloc(sizeof(void *));
25615 if (!_children) {
25616 p->error_indicator = 1;
25617 PyErr_NoMemory();
25618 D(p->level--);
25619 return NULL;
25620 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025621 Py_ssize_t _children_capacity = 1;
25622 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025623 { // param_no_default
25624 if (p->error_indicator) {
25625 D(p->level--);
25626 return NULL;
25627 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025628 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 +010025629 arg_ty param_no_default_var;
25630 while (
25631 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25632 )
25633 {
25634 _res = param_no_default_var;
25635 if (_n == _children_capacity) {
25636 _children_capacity *= 2;
25637 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25638 if (!_new_children) {
25639 p->error_indicator = 1;
25640 PyErr_NoMemory();
25641 D(p->level--);
25642 return NULL;
25643 }
25644 _children = _new_children;
25645 }
25646 _children[_n++] = _res;
25647 _mark = p->mark;
25648 }
25649 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025650 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25652 }
25653 if (_n == 0 || p->error_indicator) {
25654 PyMem_Free(_children);
25655 D(p->level--);
25656 return NULL;
25657 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025658 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025659 if (!_seq) {
25660 PyMem_Free(_children);
25661 p->error_indicator = 1;
25662 PyErr_NoMemory();
25663 D(p->level--);
25664 return NULL;
25665 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025666 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025667 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025668 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025669 D(p->level--);
25670 return _seq;
25671}
25672
Brandt Bucher145bf262021-02-26 14:51:55 -080025673// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025674static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025675_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025676{
25677 D(p->level++);
25678 if (p->error_indicator) {
25679 D(p->level--);
25680 return NULL;
25681 }
25682 void *_res = NULL;
25683 int _mark = p->mark;
25684 int _start_mark = p->mark;
25685 void **_children = PyMem_Malloc(sizeof(void *));
25686 if (!_children) {
25687 p->error_indicator = 1;
25688 PyErr_NoMemory();
25689 D(p->level--);
25690 return NULL;
25691 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025692 Py_ssize_t _children_capacity = 1;
25693 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025694 { // param_no_default
25695 if (p->error_indicator) {
25696 D(p->level--);
25697 return NULL;
25698 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025699 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 +010025700 arg_ty param_no_default_var;
25701 while (
25702 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25703 )
25704 {
25705 _res = param_no_default_var;
25706 if (_n == _children_capacity) {
25707 _children_capacity *= 2;
25708 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25709 if (!_new_children) {
25710 p->error_indicator = 1;
25711 PyErr_NoMemory();
25712 D(p->level--);
25713 return NULL;
25714 }
25715 _children = _new_children;
25716 }
25717 _children[_n++] = _res;
25718 _mark = p->mark;
25719 }
25720 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025721 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25723 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025724 if (_n == 0 || p->error_indicator) {
25725 PyMem_Free(_children);
25726 D(p->level--);
25727 return NULL;
25728 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025729 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025730 if (!_seq) {
25731 PyMem_Free(_children);
25732 p->error_indicator = 1;
25733 PyErr_NoMemory();
25734 D(p->level--);
25735 return NULL;
25736 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025737 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025738 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025739 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025740 D(p->level--);
25741 return _seq;
25742}
25743
Brandt Bucher145bf262021-02-26 14:51:55 -080025744// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025745static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025746_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025747{
25748 D(p->level++);
25749 if (p->error_indicator) {
25750 D(p->level--);
25751 return NULL;
25752 }
25753 void *_res = NULL;
25754 int _mark = p->mark;
25755 int _start_mark = p->mark;
25756 void **_children = PyMem_Malloc(sizeof(void *));
25757 if (!_children) {
25758 p->error_indicator = 1;
25759 PyErr_NoMemory();
25760 D(p->level--);
25761 return NULL;
25762 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025763 Py_ssize_t _children_capacity = 1;
25764 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025765 { // param_no_default
25766 if (p->error_indicator) {
25767 D(p->level--);
25768 return NULL;
25769 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025770 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 +010025771 arg_ty param_no_default_var;
25772 while (
25773 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25774 )
25775 {
25776 _res = param_no_default_var;
25777 if (_n == _children_capacity) {
25778 _children_capacity *= 2;
25779 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25780 if (!_new_children) {
25781 p->error_indicator = 1;
25782 PyErr_NoMemory();
25783 D(p->level--);
25784 return NULL;
25785 }
25786 _children = _new_children;
25787 }
25788 _children[_n++] = _res;
25789 _mark = p->mark;
25790 }
25791 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025792 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25794 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025795 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025796 if (!_seq) {
25797 PyMem_Free(_children);
25798 p->error_indicator = 1;
25799 PyErr_NoMemory();
25800 D(p->level--);
25801 return NULL;
25802 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025803 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025804 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025805 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025806 D(p->level--);
25807 return _seq;
25808}
25809
Brandt Bucher145bf262021-02-26 14:51:55 -080025810// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025811static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025812_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025813{
25814 D(p->level++);
25815 if (p->error_indicator) {
25816 D(p->level--);
25817 return NULL;
25818 }
25819 void *_res = NULL;
25820 int _mark = p->mark;
25821 int _start_mark = p->mark;
25822 void **_children = PyMem_Malloc(sizeof(void *));
25823 if (!_children) {
25824 p->error_indicator = 1;
25825 PyErr_NoMemory();
25826 D(p->level--);
25827 return NULL;
25828 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025829 Py_ssize_t _children_capacity = 1;
25830 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025831 { // param_with_default
25832 if (p->error_indicator) {
25833 D(p->level--);
25834 return NULL;
25835 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025836 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 +010025837 NameDefaultPair* param_with_default_var;
25838 while (
25839 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25840 )
25841 {
25842 _res = param_with_default_var;
25843 if (_n == _children_capacity) {
25844 _children_capacity *= 2;
25845 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25846 if (!_new_children) {
25847 p->error_indicator = 1;
25848 PyErr_NoMemory();
25849 D(p->level--);
25850 return NULL;
25851 }
25852 _children = _new_children;
25853 }
25854 _children[_n++] = _res;
25855 _mark = p->mark;
25856 }
25857 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025858 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25860 }
25861 if (_n == 0 || p->error_indicator) {
25862 PyMem_Free(_children);
25863 D(p->level--);
25864 return NULL;
25865 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025866 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025867 if (!_seq) {
25868 PyMem_Free(_children);
25869 p->error_indicator = 1;
25870 PyErr_NoMemory();
25871 D(p->level--);
25872 return NULL;
25873 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025874 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025875 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025876 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025877 D(p->level--);
25878 return _seq;
25879}
25880
Brandt Bucher145bf262021-02-26 14:51:55 -080025881// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025882static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025883_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025884{
25885 D(p->level++);
25886 if (p->error_indicator) {
25887 D(p->level--);
25888 return NULL;
25889 }
25890 void *_res = NULL;
25891 int _mark = p->mark;
25892 int _start_mark = p->mark;
25893 void **_children = PyMem_Malloc(sizeof(void *));
25894 if (!_children) {
25895 p->error_indicator = 1;
25896 PyErr_NoMemory();
25897 D(p->level--);
25898 return NULL;
25899 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025900 Py_ssize_t _children_capacity = 1;
25901 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025902 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025903 if (p->error_indicator) {
25904 D(p->level--);
25905 return NULL;
25906 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025907 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 +030025908 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025909 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025910 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025911 )
25912 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025913 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025914 if (_n == _children_capacity) {
25915 _children_capacity *= 2;
25916 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25917 if (!_new_children) {
25918 p->error_indicator = 1;
25919 PyErr_NoMemory();
25920 D(p->level--);
25921 return NULL;
25922 }
25923 _children = _new_children;
25924 }
25925 _children[_n++] = _res;
25926 _mark = p->mark;
25927 }
25928 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025929 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025931 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025932 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025933 if (!_seq) {
25934 PyMem_Free(_children);
25935 p->error_indicator = 1;
25936 PyErr_NoMemory();
25937 D(p->level--);
25938 return NULL;
25939 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025940 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025941 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025942 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025943 D(p->level--);
25944 return _seq;
25945}
25946
Brandt Bucher145bf262021-02-26 14:51:55 -080025947// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025948static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025949_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025950{
25951 D(p->level++);
25952 if (p->error_indicator) {
25953 D(p->level--);
25954 return NULL;
25955 }
25956 void *_res = NULL;
25957 int _mark = p->mark;
25958 int _start_mark = p->mark;
25959 void **_children = PyMem_Malloc(sizeof(void *));
25960 if (!_children) {
25961 p->error_indicator = 1;
25962 PyErr_NoMemory();
25963 D(p->level--);
25964 return NULL;
25965 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025966 Py_ssize_t _children_capacity = 1;
25967 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025968 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025969 if (p->error_indicator) {
25970 D(p->level--);
25971 return NULL;
25972 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025973 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 +030025974 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025975 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025976 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025977 )
25978 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025979 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025980 if (_n == _children_capacity) {
25981 _children_capacity *= 2;
25982 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25983 if (!_new_children) {
25984 p->error_indicator = 1;
25985 PyErr_NoMemory();
25986 D(p->level--);
25987 return NULL;
25988 }
25989 _children = _new_children;
25990 }
25991 _children[_n++] = _res;
25992 _mark = p->mark;
25993 }
25994 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025995 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025997 }
25998 if (_n == 0 || p->error_indicator) {
25999 PyMem_Free(_children);
26000 D(p->level--);
26001 return NULL;
26002 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026003 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026004 if (!_seq) {
26005 PyMem_Free(_children);
26006 p->error_indicator = 1;
26007 PyErr_NoMemory();
26008 D(p->level--);
26009 return NULL;
26010 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026011 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026012 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026013 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026014 D(p->level--);
26015 return _seq;
26016}
26017
Brandt Bucher145bf262021-02-26 14:51:55 -080026018// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026019static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026020_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026021{
26022 D(p->level++);
26023 if (p->error_indicator) {
26024 D(p->level--);
26025 return NULL;
26026 }
26027 void *_res = NULL;
26028 int _mark = p->mark;
26029 int _start_mark = p->mark;
26030 void **_children = PyMem_Malloc(sizeof(void *));
26031 if (!_children) {
26032 p->error_indicator = 1;
26033 PyErr_NoMemory();
26034 D(p->level--);
26035 return NULL;
26036 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026037 Py_ssize_t _children_capacity = 1;
26038 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026039 { // param_maybe_default
26040 if (p->error_indicator) {
26041 D(p->level--);
26042 return NULL;
26043 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026044 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 +030026045 NameDefaultPair* param_maybe_default_var;
26046 while (
26047 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26048 )
26049 {
26050 _res = param_maybe_default_var;
26051 if (_n == _children_capacity) {
26052 _children_capacity *= 2;
26053 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26054 if (!_new_children) {
26055 p->error_indicator = 1;
26056 PyErr_NoMemory();
26057 D(p->level--);
26058 return NULL;
26059 }
26060 _children = _new_children;
26061 }
26062 _children[_n++] = _res;
26063 _mark = p->mark;
26064 }
26065 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026066 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26068 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026069 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026070 if (!_seq) {
26071 PyMem_Free(_children);
26072 p->error_indicator = 1;
26073 PyErr_NoMemory();
26074 D(p->level--);
26075 return NULL;
26076 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026077 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026078 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026079 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026080 D(p->level--);
26081 return _seq;
26082}
26083
Brandt Bucher145bf262021-02-26 14:51:55 -080026084// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026085static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026086_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026087{
26088 D(p->level++);
26089 if (p->error_indicator) {
26090 D(p->level--);
26091 return NULL;
26092 }
26093 void *_res = NULL;
26094 int _mark = p->mark;
26095 int _start_mark = p->mark;
26096 void **_children = PyMem_Malloc(sizeof(void *));
26097 if (!_children) {
26098 p->error_indicator = 1;
26099 PyErr_NoMemory();
26100 D(p->level--);
26101 return NULL;
26102 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026103 Py_ssize_t _children_capacity = 1;
26104 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026105 { // param_maybe_default
26106 if (p->error_indicator) {
26107 D(p->level--);
26108 return NULL;
26109 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026110 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 +030026111 NameDefaultPair* param_maybe_default_var;
26112 while (
26113 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
26114 )
26115 {
26116 _res = param_maybe_default_var;
26117 if (_n == _children_capacity) {
26118 _children_capacity *= 2;
26119 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26120 if (!_new_children) {
26121 p->error_indicator = 1;
26122 PyErr_NoMemory();
26123 D(p->level--);
26124 return NULL;
26125 }
26126 _children = _new_children;
26127 }
26128 _children[_n++] = _res;
26129 _mark = p->mark;
26130 }
26131 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026132 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
26134 }
26135 if (_n == 0 || p->error_indicator) {
26136 PyMem_Free(_children);
26137 D(p->level--);
26138 return NULL;
26139 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026140 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026141 if (!_seq) {
26142 PyMem_Free(_children);
26143 p->error_indicator = 1;
26144 PyErr_NoMemory();
26145 D(p->level--);
26146 return NULL;
26147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026148 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026149 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026150 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026151 D(p->level--);
26152 return _seq;
26153}
26154
Brandt Bucher145bf262021-02-26 14:51:55 -080026155// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026156static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026157_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026158{
26159 D(p->level++);
26160 if (p->error_indicator) {
26161 D(p->level--);
26162 return NULL;
26163 }
26164 void *_res = NULL;
26165 int _mark = p->mark;
26166 int _start_mark = p->mark;
26167 void **_children = PyMem_Malloc(sizeof(void *));
26168 if (!_children) {
26169 p->error_indicator = 1;
26170 PyErr_NoMemory();
26171 D(p->level--);
26172 return NULL;
26173 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026174 Py_ssize_t _children_capacity = 1;
26175 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026176 { // ('@' named_expression NEWLINE)
26177 if (p->error_indicator) {
26178 D(p->level--);
26179 return NULL;
26180 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026181 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010026182 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026183 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010026184 (_tmp_183_var = _tmp_183_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026185 )
26186 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010026187 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026188 if (_n == _children_capacity) {
26189 _children_capacity *= 2;
26190 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26191 if (!_new_children) {
26192 p->error_indicator = 1;
26193 PyErr_NoMemory();
26194 D(p->level--);
26195 return NULL;
26196 }
26197 _children = _new_children;
26198 }
26199 _children[_n++] = _res;
26200 _mark = p->mark;
26201 }
26202 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026203 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
26205 }
26206 if (_n == 0 || p->error_indicator) {
26207 PyMem_Free(_children);
26208 D(p->level--);
26209 return NULL;
26210 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026211 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026212 if (!_seq) {
26213 PyMem_Free(_children);
26214 p->error_indicator = 1;
26215 PyErr_NoMemory();
26216 D(p->level--);
26217 return NULL;
26218 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026219 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026220 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026221 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026222 D(p->level--);
26223 return _seq;
26224}
26225
Brandt Bucher145bf262021-02-26 14:51:55 -080026226// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026227static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026228_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026229{
26230 D(p->level++);
26231 if (p->error_indicator) {
26232 D(p->level--);
26233 return NULL;
26234 }
26235 void * _res = NULL;
26236 int _mark = p->mark;
26237 { // '(' arguments? ')'
26238 if (p->error_indicator) {
26239 D(p->level--);
26240 return NULL;
26241 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026242 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026243 Token * _literal;
26244 Token * _literal_1;
26245 void *z;
26246 if (
26247 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26248 &&
26249 (z = arguments_rule(p), 1) // arguments?
26250 &&
26251 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26252 )
26253 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026254 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026255 _res = z;
26256 if (_res == NULL && PyErr_Occurred()) {
26257 p->error_indicator = 1;
26258 D(p->level--);
26259 return NULL;
26260 }
26261 goto done;
26262 }
26263 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026264 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26266 }
26267 _res = NULL;
26268 done:
26269 D(p->level--);
26270 return _res;
26271}
26272
Brandt Bucher145bf262021-02-26 14:51:55 -080026273// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026274static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026275_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026276{
26277 D(p->level++);
26278 if (p->error_indicator) {
26279 D(p->level--);
26280 return NULL;
26281 }
26282 void *_res = NULL;
26283 int _mark = p->mark;
26284 int _start_mark = p->mark;
26285 void **_children = PyMem_Malloc(sizeof(void *));
26286 if (!_children) {
26287 p->error_indicator = 1;
26288 PyErr_NoMemory();
26289 D(p->level--);
26290 return NULL;
26291 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026292 Py_ssize_t _children_capacity = 1;
26293 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026294 { // (',' star_expression)
26295 if (p->error_indicator) {
26296 D(p->level--);
26297 return NULL;
26298 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026299 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010026300 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026301 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010026302 (_tmp_184_var = _tmp_184_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026303 )
26304 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010026305 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026306 if (_n == _children_capacity) {
26307 _children_capacity *= 2;
26308 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26309 if (!_new_children) {
26310 p->error_indicator = 1;
26311 PyErr_NoMemory();
26312 D(p->level--);
26313 return NULL;
26314 }
26315 _children = _new_children;
26316 }
26317 _children[_n++] = _res;
26318 _mark = p->mark;
26319 }
26320 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026321 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26323 }
26324 if (_n == 0 || p->error_indicator) {
26325 PyMem_Free(_children);
26326 D(p->level--);
26327 return NULL;
26328 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026329 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026330 if (!_seq) {
26331 PyMem_Free(_children);
26332 p->error_indicator = 1;
26333 PyErr_NoMemory();
26334 D(p->level--);
26335 return NULL;
26336 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026337 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026338 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026339 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026340 D(p->level--);
26341 return _seq;
26342}
26343
Brandt Bucher145bf262021-02-26 14:51:55 -080026344// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026345static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026346_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026347{
26348 D(p->level++);
26349 if (p->error_indicator) {
26350 D(p->level--);
26351 return NULL;
26352 }
26353 void *_res = NULL;
26354 int _mark = p->mark;
26355 int _start_mark = p->mark;
26356 void **_children = PyMem_Malloc(sizeof(void *));
26357 if (!_children) {
26358 p->error_indicator = 1;
26359 PyErr_NoMemory();
26360 D(p->level--);
26361 return NULL;
26362 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026363 Py_ssize_t _children_capacity = 1;
26364 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026365 { // ',' star_named_expression
26366 if (p->error_indicator) {
26367 D(p->level--);
26368 return NULL;
26369 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026370 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 +010026371 Token * _literal;
26372 expr_ty elem;
26373 while (
26374 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26375 &&
26376 (elem = star_named_expression_rule(p)) // star_named_expression
26377 )
26378 {
26379 _res = elem;
26380 if (_res == NULL && PyErr_Occurred()) {
26381 p->error_indicator = 1;
26382 PyMem_Free(_children);
26383 D(p->level--);
26384 return NULL;
26385 }
26386 if (_n == _children_capacity) {
26387 _children_capacity *= 2;
26388 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26389 if (!_new_children) {
26390 p->error_indicator = 1;
26391 PyErr_NoMemory();
26392 D(p->level--);
26393 return NULL;
26394 }
26395 _children = _new_children;
26396 }
26397 _children[_n++] = _res;
26398 _mark = p->mark;
26399 }
26400 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026401 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26403 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026404 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026405 if (!_seq) {
26406 PyMem_Free(_children);
26407 p->error_indicator = 1;
26408 PyErr_NoMemory();
26409 D(p->level--);
26410 return NULL;
26411 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026412 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026413 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026414 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026415 D(p->level--);
26416 return _seq;
26417}
26418
Brandt Bucher145bf262021-02-26 14:51:55 -080026419// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026420static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026421_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026422{
26423 D(p->level++);
26424 if (p->error_indicator) {
26425 D(p->level--);
26426 return NULL;
26427 }
26428 asdl_seq * _res = NULL;
26429 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026430 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026431 if (p->error_indicator) {
26432 D(p->level--);
26433 return NULL;
26434 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026435 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 +010026436 expr_ty elem;
26437 asdl_seq * seq;
26438 if (
26439 (elem = star_named_expression_rule(p)) // star_named_expression
26440 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026441 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026442 )
26443 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026444 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 +010026445 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26446 goto done;
26447 }
26448 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026449 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026451 }
26452 _res = NULL;
26453 done:
26454 D(p->level--);
26455 return _res;
26456}
26457
Brandt Bucher145bf262021-02-26 14:51:55 -080026458// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026459static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026460_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026461{
26462 D(p->level++);
26463 if (p->error_indicator) {
26464 D(p->level--);
26465 return NULL;
26466 }
26467 void *_res = NULL;
26468 int _mark = p->mark;
26469 int _start_mark = p->mark;
26470 void **_children = PyMem_Malloc(sizeof(void *));
26471 if (!_children) {
26472 p->error_indicator = 1;
26473 PyErr_NoMemory();
26474 D(p->level--);
26475 return NULL;
26476 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026477 Py_ssize_t _children_capacity = 1;
26478 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026479 { // (',' expression)
26480 if (p->error_indicator) {
26481 D(p->level--);
26482 return NULL;
26483 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026484 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010026485 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026486 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010026487 (_tmp_185_var = _tmp_185_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026488 )
26489 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010026490 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026491 if (_n == _children_capacity) {
26492 _children_capacity *= 2;
26493 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26494 if (!_new_children) {
26495 p->error_indicator = 1;
26496 PyErr_NoMemory();
26497 D(p->level--);
26498 return NULL;
26499 }
26500 _children = _new_children;
26501 }
26502 _children[_n++] = _res;
26503 _mark = p->mark;
26504 }
26505 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026506 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026507 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26508 }
26509 if (_n == 0 || p->error_indicator) {
26510 PyMem_Free(_children);
26511 D(p->level--);
26512 return NULL;
26513 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026514 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026515 if (!_seq) {
26516 PyMem_Free(_children);
26517 p->error_indicator = 1;
26518 PyErr_NoMemory();
26519 D(p->level--);
26520 return NULL;
26521 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026522 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026523 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026524 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026525 D(p->level--);
26526 return _seq;
26527}
26528
Brandt Bucher145bf262021-02-26 14:51:55 -080026529// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026530static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026531_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026532{
26533 D(p->level++);
26534 if (p->error_indicator) {
26535 D(p->level--);
26536 return NULL;
26537 }
26538 void *_res = NULL;
26539 int _mark = p->mark;
26540 int _start_mark = p->mark;
26541 void **_children = PyMem_Malloc(sizeof(void *));
26542 if (!_children) {
26543 p->error_indicator = 1;
26544 PyErr_NoMemory();
26545 D(p->level--);
26546 return NULL;
26547 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026548 Py_ssize_t _children_capacity = 1;
26549 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026550 { // lambda_param_no_default
26551 if (p->error_indicator) {
26552 D(p->level--);
26553 return NULL;
26554 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026555 D(fprintf(stderr, "%*c> _loop0_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026556 arg_ty lambda_param_no_default_var;
26557 while (
26558 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26559 )
26560 {
26561 _res = lambda_param_no_default_var;
26562 if (_n == _children_capacity) {
26563 _children_capacity *= 2;
26564 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26565 if (!_new_children) {
26566 p->error_indicator = 1;
26567 PyErr_NoMemory();
26568 D(p->level--);
26569 return NULL;
26570 }
26571 _children = _new_children;
26572 }
26573 _children[_n++] = _res;
26574 _mark = p->mark;
26575 }
26576 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026577 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026579 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026580 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026581 if (!_seq) {
26582 PyMem_Free(_children);
26583 p->error_indicator = 1;
26584 PyErr_NoMemory();
26585 D(p->level--);
26586 return NULL;
26587 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026588 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026589 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026590 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026591 D(p->level--);
26592 return _seq;
26593}
26594
Brandt Bucher145bf262021-02-26 14:51:55 -080026595// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026596static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026597_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026598{
26599 D(p->level++);
26600 if (p->error_indicator) {
26601 D(p->level--);
26602 return NULL;
26603 }
26604 void *_res = NULL;
26605 int _mark = p->mark;
26606 int _start_mark = p->mark;
26607 void **_children = PyMem_Malloc(sizeof(void *));
26608 if (!_children) {
26609 p->error_indicator = 1;
26610 PyErr_NoMemory();
26611 D(p->level--);
26612 return NULL;
26613 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026614 Py_ssize_t _children_capacity = 1;
26615 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026616 { // lambda_param_with_default
26617 if (p->error_indicator) {
26618 D(p->level--);
26619 return NULL;
26620 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026621 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 +010026622 NameDefaultPair* lambda_param_with_default_var;
26623 while (
26624 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26625 )
26626 {
26627 _res = lambda_param_with_default_var;
26628 if (_n == _children_capacity) {
26629 _children_capacity *= 2;
26630 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26631 if (!_new_children) {
26632 p->error_indicator = 1;
26633 PyErr_NoMemory();
26634 D(p->level--);
26635 return NULL;
26636 }
26637 _children = _new_children;
26638 }
26639 _children[_n++] = _res;
26640 _mark = p->mark;
26641 }
26642 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026643 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26645 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026646 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026647 if (!_seq) {
26648 PyMem_Free(_children);
26649 p->error_indicator = 1;
26650 PyErr_NoMemory();
26651 D(p->level--);
26652 return NULL;
26653 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026654 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026655 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026656 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026657 D(p->level--);
26658 return _seq;
26659}
26660
Brandt Bucher145bf262021-02-26 14:51:55 -080026661// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026662static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026663_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026664{
26665 D(p->level++);
26666 if (p->error_indicator) {
26667 D(p->level--);
26668 return NULL;
26669 }
26670 void *_res = NULL;
26671 int _mark = p->mark;
26672 int _start_mark = p->mark;
26673 void **_children = PyMem_Malloc(sizeof(void *));
26674 if (!_children) {
26675 p->error_indicator = 1;
26676 PyErr_NoMemory();
26677 D(p->level--);
26678 return NULL;
26679 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026680 Py_ssize_t _children_capacity = 1;
26681 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026682 { // lambda_param_with_default
26683 if (p->error_indicator) {
26684 D(p->level--);
26685 return NULL;
26686 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026687 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 +000026688 NameDefaultPair* lambda_param_with_default_var;
26689 while (
26690 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26691 )
26692 {
26693 _res = lambda_param_with_default_var;
26694 if (_n == _children_capacity) {
26695 _children_capacity *= 2;
26696 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26697 if (!_new_children) {
26698 p->error_indicator = 1;
26699 PyErr_NoMemory();
26700 D(p->level--);
26701 return NULL;
26702 }
26703 _children = _new_children;
26704 }
26705 _children[_n++] = _res;
26706 _mark = p->mark;
26707 }
26708 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026709 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26711 }
26712 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26713 if (!_seq) {
26714 PyMem_Free(_children);
26715 p->error_indicator = 1;
26716 PyErr_NoMemory();
26717 D(p->level--);
26718 return NULL;
26719 }
26720 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26721 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026722 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026723 D(p->level--);
26724 return _seq;
26725}
26726
Brandt Bucher145bf262021-02-26 14:51:55 -080026727// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026728static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026729_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026730{
26731 D(p->level++);
26732 if (p->error_indicator) {
26733 D(p->level--);
26734 return NULL;
26735 }
26736 void *_res = NULL;
26737 int _mark = p->mark;
26738 int _start_mark = p->mark;
26739 void **_children = PyMem_Malloc(sizeof(void *));
26740 if (!_children) {
26741 p->error_indicator = 1;
26742 PyErr_NoMemory();
26743 D(p->level--);
26744 return NULL;
26745 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026746 Py_ssize_t _children_capacity = 1;
26747 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026748 { // lambda_param_no_default
26749 if (p->error_indicator) {
26750 D(p->level--);
26751 return NULL;
26752 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026753 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 +000026754 arg_ty lambda_param_no_default_var;
26755 while (
26756 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26757 )
26758 {
26759 _res = lambda_param_no_default_var;
26760 if (_n == _children_capacity) {
26761 _children_capacity *= 2;
26762 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26763 if (!_new_children) {
26764 p->error_indicator = 1;
26765 PyErr_NoMemory();
26766 D(p->level--);
26767 return NULL;
26768 }
26769 _children = _new_children;
26770 }
26771 _children[_n++] = _res;
26772 _mark = p->mark;
26773 }
26774 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026775 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26777 }
26778 if (_n == 0 || p->error_indicator) {
26779 PyMem_Free(_children);
26780 D(p->level--);
26781 return NULL;
26782 }
26783 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26784 if (!_seq) {
26785 PyMem_Free(_children);
26786 p->error_indicator = 1;
26787 PyErr_NoMemory();
26788 D(p->level--);
26789 return NULL;
26790 }
26791 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26792 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026793 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026794 D(p->level--);
26795 return _seq;
26796}
26797
Brandt Bucher145bf262021-02-26 14:51:55 -080026798// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026799static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026800_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026801{
26802 D(p->level++);
26803 if (p->error_indicator) {
26804 D(p->level--);
26805 return NULL;
26806 }
26807 void *_res = NULL;
26808 int _mark = p->mark;
26809 int _start_mark = p->mark;
26810 void **_children = PyMem_Malloc(sizeof(void *));
26811 if (!_children) {
26812 p->error_indicator = 1;
26813 PyErr_NoMemory();
26814 D(p->level--);
26815 return NULL;
26816 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026817 Py_ssize_t _children_capacity = 1;
26818 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026819 { // lambda_param_with_default
26820 if (p->error_indicator) {
26821 D(p->level--);
26822 return NULL;
26823 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026824 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 +030026825 NameDefaultPair* lambda_param_with_default_var;
26826 while (
26827 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26828 )
26829 {
26830 _res = lambda_param_with_default_var;
26831 if (_n == _children_capacity) {
26832 _children_capacity *= 2;
26833 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26834 if (!_new_children) {
26835 p->error_indicator = 1;
26836 PyErr_NoMemory();
26837 D(p->level--);
26838 return NULL;
26839 }
26840 _children = _new_children;
26841 }
26842 _children[_n++] = _res;
26843 _mark = p->mark;
26844 }
26845 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026846 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26848 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026849 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026850 if (!_seq) {
26851 PyMem_Free(_children);
26852 p->error_indicator = 1;
26853 PyErr_NoMemory();
26854 D(p->level--);
26855 return NULL;
26856 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026857 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026858 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026859 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026860 D(p->level--);
26861 return _seq;
26862}
26863
Brandt Bucher145bf262021-02-26 14:51:55 -080026864// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026865static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026866_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026867{
26868 D(p->level++);
26869 if (p->error_indicator) {
26870 D(p->level--);
26871 return NULL;
26872 }
26873 void *_res = NULL;
26874 int _mark = p->mark;
26875 int _start_mark = p->mark;
26876 void **_children = PyMem_Malloc(sizeof(void *));
26877 if (!_children) {
26878 p->error_indicator = 1;
26879 PyErr_NoMemory();
26880 D(p->level--);
26881 return NULL;
26882 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026883 Py_ssize_t _children_capacity = 1;
26884 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026885 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026886 if (p->error_indicator) {
26887 D(p->level--);
26888 return NULL;
26889 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026890 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 +000026891 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026892 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026893 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026894 )
26895 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026896 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026897 if (_n == _children_capacity) {
26898 _children_capacity *= 2;
26899 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26900 if (!_new_children) {
26901 p->error_indicator = 1;
26902 PyErr_NoMemory();
26903 D(p->level--);
26904 return NULL;
26905 }
26906 _children = _new_children;
26907 }
26908 _children[_n++] = _res;
26909 _mark = p->mark;
26910 }
26911 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026912 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026914 }
26915 if (_n == 0 || p->error_indicator) {
26916 PyMem_Free(_children);
26917 D(p->level--);
26918 return NULL;
26919 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026920 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026921 if (!_seq) {
26922 PyMem_Free(_children);
26923 p->error_indicator = 1;
26924 PyErr_NoMemory();
26925 D(p->level--);
26926 return NULL;
26927 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026928 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026929 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026930 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026931 D(p->level--);
26932 return _seq;
26933}
26934
Brandt Bucher145bf262021-02-26 14:51:55 -080026935// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026936static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026937_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026938{
26939 D(p->level++);
26940 if (p->error_indicator) {
26941 D(p->level--);
26942 return NULL;
26943 }
26944 void *_res = NULL;
26945 int _mark = p->mark;
26946 int _start_mark = p->mark;
26947 void **_children = PyMem_Malloc(sizeof(void *));
26948 if (!_children) {
26949 p->error_indicator = 1;
26950 PyErr_NoMemory();
26951 D(p->level--);
26952 return NULL;
26953 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026954 Py_ssize_t _children_capacity = 1;
26955 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026956 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026957 if (p->error_indicator) {
26958 D(p->level--);
26959 return NULL;
26960 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026961 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 +000026962 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026963 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026964 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026965 )
26966 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026967 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026968 if (_n == _children_capacity) {
26969 _children_capacity *= 2;
26970 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26971 if (!_new_children) {
26972 p->error_indicator = 1;
26973 PyErr_NoMemory();
26974 D(p->level--);
26975 return NULL;
26976 }
26977 _children = _new_children;
26978 }
26979 _children[_n++] = _res;
26980 _mark = p->mark;
26981 }
26982 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026983 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26985 }
26986 if (_n == 0 || p->error_indicator) {
26987 PyMem_Free(_children);
26988 D(p->level--);
26989 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026990 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026991 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026992 if (!_seq) {
26993 PyMem_Free(_children);
26994 p->error_indicator = 1;
26995 PyErr_NoMemory();
26996 D(p->level--);
26997 return NULL;
26998 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026999 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027000 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027001 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027002 D(p->level--);
27003 return _seq;
27004}
27005
Brandt Bucher145bf262021-02-26 14:51:55 -080027006// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027007static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027008_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027009{
27010 D(p->level++);
27011 if (p->error_indicator) {
27012 D(p->level--);
27013 return NULL;
27014 }
27015 void *_res = NULL;
27016 int _mark = p->mark;
27017 int _start_mark = p->mark;
27018 void **_children = PyMem_Malloc(sizeof(void *));
27019 if (!_children) {
27020 p->error_indicator = 1;
27021 PyErr_NoMemory();
27022 D(p->level--);
27023 return NULL;
27024 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027025 Py_ssize_t _children_capacity = 1;
27026 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027027 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027028 if (p->error_indicator) {
27029 D(p->level--);
27030 return NULL;
27031 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027032 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 +000027033 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027034 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027035 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027036 )
27037 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027038 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027039 if (_n == _children_capacity) {
27040 _children_capacity *= 2;
27041 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27042 if (!_new_children) {
27043 p->error_indicator = 1;
27044 PyErr_NoMemory();
27045 D(p->level--);
27046 return NULL;
27047 }
27048 _children = _new_children;
27049 }
27050 _children[_n++] = _res;
27051 _mark = p->mark;
27052 }
27053 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027054 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027056 }
27057 if (_n == 0 || p->error_indicator) {
27058 PyMem_Free(_children);
27059 D(p->level--);
27060 return NULL;
27061 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027062 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027063 if (!_seq) {
27064 PyMem_Free(_children);
27065 p->error_indicator = 1;
27066 PyErr_NoMemory();
27067 D(p->level--);
27068 return NULL;
27069 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027070 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027071 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027072 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027073 D(p->level--);
27074 return _seq;
27075}
27076
Brandt Bucher145bf262021-02-26 14:51:55 -080027077// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027078static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027079_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027080{
27081 D(p->level++);
27082 if (p->error_indicator) {
27083 D(p->level--);
27084 return NULL;
27085 }
27086 void *_res = NULL;
27087 int _mark = p->mark;
27088 int _start_mark = p->mark;
27089 void **_children = PyMem_Malloc(sizeof(void *));
27090 if (!_children) {
27091 p->error_indicator = 1;
27092 PyErr_NoMemory();
27093 D(p->level--);
27094 return NULL;
27095 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027096 Py_ssize_t _children_capacity = 1;
27097 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027098 { // lambda_param_no_default
27099 if (p->error_indicator) {
27100 D(p->level--);
27101 return NULL;
27102 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027103 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 +010027104 arg_ty lambda_param_no_default_var;
27105 while (
27106 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27107 )
27108 {
27109 _res = lambda_param_no_default_var;
27110 if (_n == _children_capacity) {
27111 _children_capacity *= 2;
27112 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27113 if (!_new_children) {
27114 p->error_indicator = 1;
27115 PyErr_NoMemory();
27116 D(p->level--);
27117 return NULL;
27118 }
27119 _children = _new_children;
27120 }
27121 _children[_n++] = _res;
27122 _mark = p->mark;
27123 }
27124 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027125 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27127 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027128 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027129 if (!_seq) {
27130 PyMem_Free(_children);
27131 p->error_indicator = 1;
27132 PyErr_NoMemory();
27133 D(p->level--);
27134 return NULL;
27135 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027136 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027137 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027138 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027139 D(p->level--);
27140 return _seq;
27141}
27142
Brandt Bucher145bf262021-02-26 14:51:55 -080027143// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027144static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027145_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027146{
27147 D(p->level++);
27148 if (p->error_indicator) {
27149 D(p->level--);
27150 return NULL;
27151 }
27152 void *_res = NULL;
27153 int _mark = p->mark;
27154 int _start_mark = p->mark;
27155 void **_children = PyMem_Malloc(sizeof(void *));
27156 if (!_children) {
27157 p->error_indicator = 1;
27158 PyErr_NoMemory();
27159 D(p->level--);
27160 return NULL;
27161 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027162 Py_ssize_t _children_capacity = 1;
27163 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027164 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027165 if (p->error_indicator) {
27166 D(p->level--);
27167 return NULL;
27168 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027169 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 +000027170 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027171 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027172 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027173 )
27174 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027175 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027176 if (_n == _children_capacity) {
27177 _children_capacity *= 2;
27178 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27179 if (!_new_children) {
27180 p->error_indicator = 1;
27181 PyErr_NoMemory();
27182 D(p->level--);
27183 return NULL;
27184 }
27185 _children = _new_children;
27186 }
27187 _children[_n++] = _res;
27188 _mark = p->mark;
27189 }
27190 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027191 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027193 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027194 if (_n == 0 || p->error_indicator) {
27195 PyMem_Free(_children);
27196 D(p->level--);
27197 return NULL;
27198 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027199 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027200 if (!_seq) {
27201 PyMem_Free(_children);
27202 p->error_indicator = 1;
27203 PyErr_NoMemory();
27204 D(p->level--);
27205 return NULL;
27206 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027207 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027208 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027209 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027210 D(p->level--);
27211 return _seq;
27212}
27213
Brandt Bucher145bf262021-02-26 14:51:55 -080027214// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027215static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027216_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027217{
27218 D(p->level++);
27219 if (p->error_indicator) {
27220 D(p->level--);
27221 return NULL;
27222 }
27223 void *_res = NULL;
27224 int _mark = p->mark;
27225 int _start_mark = p->mark;
27226 void **_children = PyMem_Malloc(sizeof(void *));
27227 if (!_children) {
27228 p->error_indicator = 1;
27229 PyErr_NoMemory();
27230 D(p->level--);
27231 return NULL;
27232 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027233 Py_ssize_t _children_capacity = 1;
27234 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027235 { // lambda_param_no_default
27236 if (p->error_indicator) {
27237 D(p->level--);
27238 return NULL;
27239 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027240 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 +010027241 arg_ty lambda_param_no_default_var;
27242 while (
27243 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27244 )
27245 {
27246 _res = lambda_param_no_default_var;
27247 if (_n == _children_capacity) {
27248 _children_capacity *= 2;
27249 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27250 if (!_new_children) {
27251 p->error_indicator = 1;
27252 PyErr_NoMemory();
27253 D(p->level--);
27254 return NULL;
27255 }
27256 _children = _new_children;
27257 }
27258 _children[_n++] = _res;
27259 _mark = p->mark;
27260 }
27261 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027262 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27264 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027265 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027266 if (!_seq) {
27267 PyMem_Free(_children);
27268 p->error_indicator = 1;
27269 PyErr_NoMemory();
27270 D(p->level--);
27271 return NULL;
27272 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027273 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027274 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027275 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027276 D(p->level--);
27277 return _seq;
27278}
27279
Brandt Bucher145bf262021-02-26 14:51:55 -080027280// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027281static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027282_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027283{
27284 D(p->level++);
27285 if (p->error_indicator) {
27286 D(p->level--);
27287 return NULL;
27288 }
27289 void *_res = NULL;
27290 int _mark = p->mark;
27291 int _start_mark = p->mark;
27292 void **_children = PyMem_Malloc(sizeof(void *));
27293 if (!_children) {
27294 p->error_indicator = 1;
27295 PyErr_NoMemory();
27296 D(p->level--);
27297 return NULL;
27298 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027299 Py_ssize_t _children_capacity = 1;
27300 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027301 { // lambda_param_with_default
27302 if (p->error_indicator) {
27303 D(p->level--);
27304 return NULL;
27305 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027306 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 +010027307 NameDefaultPair* lambda_param_with_default_var;
27308 while (
27309 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27310 )
27311 {
27312 _res = lambda_param_with_default_var;
27313 if (_n == _children_capacity) {
27314 _children_capacity *= 2;
27315 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27316 if (!_new_children) {
27317 p->error_indicator = 1;
27318 PyErr_NoMemory();
27319 D(p->level--);
27320 return NULL;
27321 }
27322 _children = _new_children;
27323 }
27324 _children[_n++] = _res;
27325 _mark = p->mark;
27326 }
27327 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027328 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27330 }
27331 if (_n == 0 || p->error_indicator) {
27332 PyMem_Free(_children);
27333 D(p->level--);
27334 return NULL;
27335 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027336 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027337 if (!_seq) {
27338 PyMem_Free(_children);
27339 p->error_indicator = 1;
27340 PyErr_NoMemory();
27341 D(p->level--);
27342 return NULL;
27343 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027344 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027345 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027346 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027347 D(p->level--);
27348 return _seq;
27349}
27350
Brandt Bucher145bf262021-02-26 14:51:55 -080027351// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027352static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027353_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027354{
27355 D(p->level++);
27356 if (p->error_indicator) {
27357 D(p->level--);
27358 return NULL;
27359 }
27360 void *_res = NULL;
27361 int _mark = p->mark;
27362 int _start_mark = p->mark;
27363 void **_children = PyMem_Malloc(sizeof(void *));
27364 if (!_children) {
27365 p->error_indicator = 1;
27366 PyErr_NoMemory();
27367 D(p->level--);
27368 return NULL;
27369 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027370 Py_ssize_t _children_capacity = 1;
27371 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027372 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027373 if (p->error_indicator) {
27374 D(p->level--);
27375 return NULL;
27376 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027377 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 +000027378 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027379 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027380 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027381 )
27382 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027383 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027384 if (_n == _children_capacity) {
27385 _children_capacity *= 2;
27386 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27387 if (!_new_children) {
27388 p->error_indicator = 1;
27389 PyErr_NoMemory();
27390 D(p->level--);
27391 return NULL;
27392 }
27393 _children = _new_children;
27394 }
27395 _children[_n++] = _res;
27396 _mark = p->mark;
27397 }
27398 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027399 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027401 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027402 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027403 if (!_seq) {
27404 PyMem_Free(_children);
27405 p->error_indicator = 1;
27406 PyErr_NoMemory();
27407 D(p->level--);
27408 return NULL;
27409 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027410 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027411 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027412 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027413 D(p->level--);
27414 return _seq;
27415}
27416
Brandt Bucher145bf262021-02-26 14:51:55 -080027417// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027418static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027419_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027420{
27421 D(p->level++);
27422 if (p->error_indicator) {
27423 D(p->level--);
27424 return NULL;
27425 }
27426 void *_res = NULL;
27427 int _mark = p->mark;
27428 int _start_mark = p->mark;
27429 void **_children = PyMem_Malloc(sizeof(void *));
27430 if (!_children) {
27431 p->error_indicator = 1;
27432 PyErr_NoMemory();
27433 D(p->level--);
27434 return NULL;
27435 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027436 Py_ssize_t _children_capacity = 1;
27437 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027438 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027439 if (p->error_indicator) {
27440 D(p->level--);
27441 return NULL;
27442 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027443 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 +000027444 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027445 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027446 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027447 )
27448 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027449 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027450 if (_n == _children_capacity) {
27451 _children_capacity *= 2;
27452 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27453 if (!_new_children) {
27454 p->error_indicator = 1;
27455 PyErr_NoMemory();
27456 D(p->level--);
27457 return NULL;
27458 }
27459 _children = _new_children;
27460 }
27461 _children[_n++] = _res;
27462 _mark = p->mark;
27463 }
27464 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027465 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027467 }
27468 if (_n == 0 || p->error_indicator) {
27469 PyMem_Free(_children);
27470 D(p->level--);
27471 return NULL;
27472 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027473 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027474 if (!_seq) {
27475 PyMem_Free(_children);
27476 p->error_indicator = 1;
27477 PyErr_NoMemory();
27478 D(p->level--);
27479 return NULL;
27480 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027481 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027482 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027483 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027484 D(p->level--);
27485 return _seq;
27486}
27487
Brandt Bucher145bf262021-02-26 14:51:55 -080027488// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027489static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027490_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027491{
27492 D(p->level++);
27493 if (p->error_indicator) {
27494 D(p->level--);
27495 return NULL;
27496 }
27497 void *_res = NULL;
27498 int _mark = p->mark;
27499 int _start_mark = p->mark;
27500 void **_children = PyMem_Malloc(sizeof(void *));
27501 if (!_children) {
27502 p->error_indicator = 1;
27503 PyErr_NoMemory();
27504 D(p->level--);
27505 return NULL;
27506 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027507 Py_ssize_t _children_capacity = 1;
27508 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027509 { // ('or' conjunction)
27510 if (p->error_indicator) {
27511 D(p->level--);
27512 return NULL;
27513 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027514 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010027515 void *_tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027516 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010027517 (_tmp_186_var = _tmp_186_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027518 )
27519 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010027520 _res = _tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027521 if (_n == _children_capacity) {
27522 _children_capacity *= 2;
27523 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27524 if (!_new_children) {
27525 p->error_indicator = 1;
27526 PyErr_NoMemory();
27527 D(p->level--);
27528 return NULL;
27529 }
27530 _children = _new_children;
27531 }
27532 _children[_n++] = _res;
27533 _mark = p->mark;
27534 }
27535 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027536 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27538 }
27539 if (_n == 0 || p->error_indicator) {
27540 PyMem_Free(_children);
27541 D(p->level--);
27542 return NULL;
27543 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027544 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027545 if (!_seq) {
27546 PyMem_Free(_children);
27547 p->error_indicator = 1;
27548 PyErr_NoMemory();
27549 D(p->level--);
27550 return NULL;
27551 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027552 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027553 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027554 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027555 D(p->level--);
27556 return _seq;
27557}
27558
Brandt Bucher145bf262021-02-26 14:51:55 -080027559// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027560static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027561_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027562{
27563 D(p->level++);
27564 if (p->error_indicator) {
27565 D(p->level--);
27566 return NULL;
27567 }
27568 void *_res = NULL;
27569 int _mark = p->mark;
27570 int _start_mark = p->mark;
27571 void **_children = PyMem_Malloc(sizeof(void *));
27572 if (!_children) {
27573 p->error_indicator = 1;
27574 PyErr_NoMemory();
27575 D(p->level--);
27576 return NULL;
27577 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027578 Py_ssize_t _children_capacity = 1;
27579 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027580 { // ('and' inversion)
27581 if (p->error_indicator) {
27582 D(p->level--);
27583 return NULL;
27584 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027585 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010027586 void *_tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027587 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010027588 (_tmp_187_var = _tmp_187_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027589 )
27590 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010027591 _res = _tmp_187_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027592 if (_n == _children_capacity) {
27593 _children_capacity *= 2;
27594 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27595 if (!_new_children) {
27596 p->error_indicator = 1;
27597 PyErr_NoMemory();
27598 D(p->level--);
27599 return NULL;
27600 }
27601 _children = _new_children;
27602 }
27603 _children[_n++] = _res;
27604 _mark = p->mark;
27605 }
27606 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027607 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27609 }
27610 if (_n == 0 || p->error_indicator) {
27611 PyMem_Free(_children);
27612 D(p->level--);
27613 return NULL;
27614 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027615 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027616 if (!_seq) {
27617 PyMem_Free(_children);
27618 p->error_indicator = 1;
27619 PyErr_NoMemory();
27620 D(p->level--);
27621 return NULL;
27622 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027623 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027624 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027625 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027626 D(p->level--);
27627 return _seq;
27628}
27629
Brandt Bucher145bf262021-02-26 14:51:55 -080027630// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027631static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027632_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027633{
27634 D(p->level++);
27635 if (p->error_indicator) {
27636 D(p->level--);
27637 return NULL;
27638 }
27639 void *_res = NULL;
27640 int _mark = p->mark;
27641 int _start_mark = p->mark;
27642 void **_children = PyMem_Malloc(sizeof(void *));
27643 if (!_children) {
27644 p->error_indicator = 1;
27645 PyErr_NoMemory();
27646 D(p->level--);
27647 return NULL;
27648 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027649 Py_ssize_t _children_capacity = 1;
27650 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027651 { // compare_op_bitwise_or_pair
27652 if (p->error_indicator) {
27653 D(p->level--);
27654 return NULL;
27655 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027656 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 +010027657 CmpopExprPair* compare_op_bitwise_or_pair_var;
27658 while (
27659 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27660 )
27661 {
27662 _res = compare_op_bitwise_or_pair_var;
27663 if (_n == _children_capacity) {
27664 _children_capacity *= 2;
27665 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27666 if (!_new_children) {
27667 p->error_indicator = 1;
27668 PyErr_NoMemory();
27669 D(p->level--);
27670 return NULL;
27671 }
27672 _children = _new_children;
27673 }
27674 _children[_n++] = _res;
27675 _mark = p->mark;
27676 }
27677 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027678 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27680 }
27681 if (_n == 0 || p->error_indicator) {
27682 PyMem_Free(_children);
27683 D(p->level--);
27684 return NULL;
27685 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027686 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027687 if (!_seq) {
27688 PyMem_Free(_children);
27689 p->error_indicator = 1;
27690 PyErr_NoMemory();
27691 D(p->level--);
27692 return NULL;
27693 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027694 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027695 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027696 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027697 D(p->level--);
27698 return _seq;
27699}
27700
Brandt Bucher145bf262021-02-26 14:51:55 -080027701// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027702static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027703_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027704{
27705 D(p->level++);
27706 if (p->error_indicator) {
27707 D(p->level--);
27708 return NULL;
27709 }
27710 void * _res = NULL;
27711 int _mark = p->mark;
27712 { // '!='
27713 if (p->error_indicator) {
27714 D(p->level--);
27715 return NULL;
27716 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027717 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027718 Token * tok;
27719 if (
27720 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27721 )
27722 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027723 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027724 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027725 if (_res == NULL && PyErr_Occurred()) {
27726 p->error_indicator = 1;
27727 D(p->level--);
27728 return NULL;
27729 }
27730 goto done;
27731 }
27732 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027733 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27735 }
27736 _res = NULL;
27737 done:
27738 D(p->level--);
27739 return _res;
27740}
27741
Brandt Bucher145bf262021-02-26 14:51:55 -080027742// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027743static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027744_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027745{
27746 D(p->level++);
27747 if (p->error_indicator) {
27748 D(p->level--);
27749 return NULL;
27750 }
27751 void *_res = NULL;
27752 int _mark = p->mark;
27753 int _start_mark = p->mark;
27754 void **_children = PyMem_Malloc(sizeof(void *));
27755 if (!_children) {
27756 p->error_indicator = 1;
27757 PyErr_NoMemory();
27758 D(p->level--);
27759 return NULL;
27760 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027761 Py_ssize_t _children_capacity = 1;
27762 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027763 { // ',' slice
27764 if (p->error_indicator) {
27765 D(p->level--);
27766 return NULL;
27767 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027768 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027769 Token * _literal;
27770 expr_ty elem;
27771 while (
27772 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27773 &&
27774 (elem = slice_rule(p)) // slice
27775 )
27776 {
27777 _res = elem;
27778 if (_res == NULL && PyErr_Occurred()) {
27779 p->error_indicator = 1;
27780 PyMem_Free(_children);
27781 D(p->level--);
27782 return NULL;
27783 }
27784 if (_n == _children_capacity) {
27785 _children_capacity *= 2;
27786 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27787 if (!_new_children) {
27788 p->error_indicator = 1;
27789 PyErr_NoMemory();
27790 D(p->level--);
27791 return NULL;
27792 }
27793 _children = _new_children;
27794 }
27795 _children[_n++] = _res;
27796 _mark = p->mark;
27797 }
27798 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027799 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27801 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027802 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027803 if (!_seq) {
27804 PyMem_Free(_children);
27805 p->error_indicator = 1;
27806 PyErr_NoMemory();
27807 D(p->level--);
27808 return NULL;
27809 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027810 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027811 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027812 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027813 D(p->level--);
27814 return _seq;
27815}
27816
Brandt Bucher145bf262021-02-26 14:51:55 -080027817// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027818static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027819_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027820{
27821 D(p->level++);
27822 if (p->error_indicator) {
27823 D(p->level--);
27824 return NULL;
27825 }
27826 asdl_seq * _res = NULL;
27827 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027828 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027829 if (p->error_indicator) {
27830 D(p->level--);
27831 return NULL;
27832 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027833 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 +010027834 expr_ty elem;
27835 asdl_seq * seq;
27836 if (
27837 (elem = slice_rule(p)) // slice
27838 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027839 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027840 )
27841 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027842 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 +010027843 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27844 goto done;
27845 }
27846 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027847 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027849 }
27850 _res = NULL;
27851 done:
27852 D(p->level--);
27853 return _res;
27854}
27855
Brandt Bucher145bf262021-02-26 14:51:55 -080027856// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027857static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027858_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027859{
27860 D(p->level++);
27861 if (p->error_indicator) {
27862 D(p->level--);
27863 return NULL;
27864 }
27865 void * _res = NULL;
27866 int _mark = p->mark;
27867 { // ':' expression?
27868 if (p->error_indicator) {
27869 D(p->level--);
27870 return NULL;
27871 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027872 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027873 Token * _literal;
27874 void *d;
27875 if (
27876 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27877 &&
27878 (d = expression_rule(p), 1) // expression?
27879 )
27880 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027881 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027882 _res = d;
27883 if (_res == NULL && PyErr_Occurred()) {
27884 p->error_indicator = 1;
27885 D(p->level--);
27886 return NULL;
27887 }
27888 goto done;
27889 }
27890 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027891 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27893 }
27894 _res = NULL;
27895 done:
27896 D(p->level--);
27897 return _res;
27898}
27899
Brandt Bucher145bf262021-02-26 14:51:55 -080027900// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027901static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027902_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027903{
27904 D(p->level++);
27905 if (p->error_indicator) {
27906 D(p->level--);
27907 return NULL;
27908 }
27909 void * _res = NULL;
27910 int _mark = p->mark;
27911 { // tuple
27912 if (p->error_indicator) {
27913 D(p->level--);
27914 return NULL;
27915 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027916 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027917 expr_ty tuple_var;
27918 if (
27919 (tuple_var = tuple_rule(p)) // tuple
27920 )
27921 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027922 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027923 _res = tuple_var;
27924 goto done;
27925 }
27926 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027927 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27929 }
27930 { // group
27931 if (p->error_indicator) {
27932 D(p->level--);
27933 return NULL;
27934 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027935 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027936 expr_ty group_var;
27937 if (
27938 (group_var = group_rule(p)) // group
27939 )
27940 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027941 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027942 _res = group_var;
27943 goto done;
27944 }
27945 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027946 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27948 }
27949 { // genexp
27950 if (p->error_indicator) {
27951 D(p->level--);
27952 return NULL;
27953 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027954 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027955 expr_ty genexp_var;
27956 if (
27957 (genexp_var = genexp_rule(p)) // genexp
27958 )
27959 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027960 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027961 _res = genexp_var;
27962 goto done;
27963 }
27964 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027965 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27967 }
27968 _res = NULL;
27969 done:
27970 D(p->level--);
27971 return _res;
27972}
27973
Brandt Bucher145bf262021-02-26 14:51:55 -080027974// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027975static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027976_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027977{
27978 D(p->level++);
27979 if (p->error_indicator) {
27980 D(p->level--);
27981 return NULL;
27982 }
27983 void * _res = NULL;
27984 int _mark = p->mark;
27985 { // list
27986 if (p->error_indicator) {
27987 D(p->level--);
27988 return NULL;
27989 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027990 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027991 expr_ty list_var;
27992 if (
27993 (list_var = list_rule(p)) // list
27994 )
27995 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027996 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027997 _res = list_var;
27998 goto done;
27999 }
28000 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028001 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
28003 }
28004 { // listcomp
28005 if (p->error_indicator) {
28006 D(p->level--);
28007 return NULL;
28008 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028009 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028010 expr_ty listcomp_var;
28011 if (
28012 (listcomp_var = listcomp_rule(p)) // listcomp
28013 )
28014 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028015 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028016 _res = listcomp_var;
28017 goto done;
28018 }
28019 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028020 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
28022 }
28023 _res = NULL;
28024 done:
28025 D(p->level--);
28026 return _res;
28027}
28028
Brandt Bucher145bf262021-02-26 14:51:55 -080028029// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028030static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028031_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028032{
28033 D(p->level++);
28034 if (p->error_indicator) {
28035 D(p->level--);
28036 return NULL;
28037 }
28038 void * _res = NULL;
28039 int _mark = p->mark;
28040 { // dict
28041 if (p->error_indicator) {
28042 D(p->level--);
28043 return NULL;
28044 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028045 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028046 expr_ty dict_var;
28047 if (
28048 (dict_var = dict_rule(p)) // dict
28049 )
28050 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028051 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028052 _res = dict_var;
28053 goto done;
28054 }
28055 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028056 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
28058 }
28059 { // set
28060 if (p->error_indicator) {
28061 D(p->level--);
28062 return NULL;
28063 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028064 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028065 expr_ty set_var;
28066 if (
28067 (set_var = set_rule(p)) // set
28068 )
28069 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028070 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028071 _res = set_var;
28072 goto done;
28073 }
28074 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028075 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
28077 }
28078 { // dictcomp
28079 if (p->error_indicator) {
28080 D(p->level--);
28081 return NULL;
28082 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028083 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028084 expr_ty dictcomp_var;
28085 if (
28086 (dictcomp_var = dictcomp_rule(p)) // dictcomp
28087 )
28088 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028089 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028090 _res = dictcomp_var;
28091 goto done;
28092 }
28093 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028094 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
28096 }
28097 { // setcomp
28098 if (p->error_indicator) {
28099 D(p->level--);
28100 return NULL;
28101 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028102 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028103 expr_ty setcomp_var;
28104 if (
28105 (setcomp_var = setcomp_rule(p)) // setcomp
28106 )
28107 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028108 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028109 _res = setcomp_var;
28110 goto done;
28111 }
28112 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028113 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
28115 }
28116 _res = NULL;
28117 done:
28118 D(p->level--);
28119 return _res;
28120}
28121
Brandt Bucher145bf262021-02-26 14:51:55 -080028122// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028123static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028124_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028125{
28126 D(p->level++);
28127 if (p->error_indicator) {
28128 D(p->level--);
28129 return NULL;
28130 }
28131 void *_res = NULL;
28132 int _mark = p->mark;
28133 int _start_mark = p->mark;
28134 void **_children = PyMem_Malloc(sizeof(void *));
28135 if (!_children) {
28136 p->error_indicator = 1;
28137 PyErr_NoMemory();
28138 D(p->level--);
28139 return NULL;
28140 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028141 Py_ssize_t _children_capacity = 1;
28142 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028143 { // STRING
28144 if (p->error_indicator) {
28145 D(p->level--);
28146 return NULL;
28147 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028148 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028149 expr_ty string_var;
28150 while (
28151 (string_var = _PyPegen_string_token(p)) // STRING
28152 )
28153 {
28154 _res = string_var;
28155 if (_n == _children_capacity) {
28156 _children_capacity *= 2;
28157 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28158 if (!_new_children) {
28159 p->error_indicator = 1;
28160 PyErr_NoMemory();
28161 D(p->level--);
28162 return NULL;
28163 }
28164 _children = _new_children;
28165 }
28166 _children[_n++] = _res;
28167 _mark = p->mark;
28168 }
28169 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028170 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
28172 }
28173 if (_n == 0 || p->error_indicator) {
28174 PyMem_Free(_children);
28175 D(p->level--);
28176 return NULL;
28177 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028178 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028179 if (!_seq) {
28180 PyMem_Free(_children);
28181 p->error_indicator = 1;
28182 PyErr_NoMemory();
28183 D(p->level--);
28184 return NULL;
28185 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028186 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028187 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028188 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028189 D(p->level--);
28190 return _seq;
28191}
28192
Brandt Bucher145bf262021-02-26 14:51:55 -080028193// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028194static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028195_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028196{
28197 D(p->level++);
28198 if (p->error_indicator) {
28199 D(p->level--);
28200 return NULL;
28201 }
28202 void * _res = NULL;
28203 int _mark = p->mark;
28204 { // star_named_expression ',' star_named_expressions?
28205 if (p->error_indicator) {
28206 D(p->level--);
28207 return NULL;
28208 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028209 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 +010028210 Token * _literal;
28211 expr_ty y;
28212 void *z;
28213 if (
28214 (y = star_named_expression_rule(p)) // star_named_expression
28215 &&
28216 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28217 &&
28218 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
28219 )
28220 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028221 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 +010028222 _res = _PyPegen_seq_insert_in_front ( p , y , z );
28223 if (_res == NULL && PyErr_Occurred()) {
28224 p->error_indicator = 1;
28225 D(p->level--);
28226 return NULL;
28227 }
28228 goto done;
28229 }
28230 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028231 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28233 }
28234 _res = NULL;
28235 done:
28236 D(p->level--);
28237 return _res;
28238}
28239
Brandt Bucher145bf262021-02-26 14:51:55 -080028240// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028241static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028242_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028243{
28244 D(p->level++);
28245 if (p->error_indicator) {
28246 D(p->level--);
28247 return NULL;
28248 }
28249 void * _res = NULL;
28250 int _mark = p->mark;
28251 { // yield_expr
28252 if (p->error_indicator) {
28253 D(p->level--);
28254 return NULL;
28255 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028256 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028257 expr_ty yield_expr_var;
28258 if (
28259 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28260 )
28261 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028262 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 +010028263 _res = yield_expr_var;
28264 goto done;
28265 }
28266 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028267 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28269 }
28270 { // named_expression
28271 if (p->error_indicator) {
28272 D(p->level--);
28273 return NULL;
28274 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028275 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028276 expr_ty named_expression_var;
28277 if (
28278 (named_expression_var = named_expression_rule(p)) // named_expression
28279 )
28280 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028281 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 +010028282 _res = named_expression_var;
28283 goto done;
28284 }
28285 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028286 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028287 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28288 }
28289 _res = NULL;
28290 done:
28291 D(p->level--);
28292 return _res;
28293}
28294
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028295// _tmp_117: assigment_expression | expression !':='
28296static void *
28297_tmp_117_rule(Parser *p)
28298{
28299 D(p->level++);
28300 if (p->error_indicator) {
28301 D(p->level--);
28302 return NULL;
28303 }
28304 void * _res = NULL;
28305 int _mark = p->mark;
28306 { // assigment_expression
28307 if (p->error_indicator) {
28308 D(p->level--);
28309 return NULL;
28310 }
28311 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28312 expr_ty assigment_expression_var;
28313 if (
28314 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
28315 )
28316 {
28317 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28318 _res = assigment_expression_var;
28319 goto done;
28320 }
28321 p->mark = _mark;
28322 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
28324 }
28325 { // expression !':='
28326 if (p->error_indicator) {
28327 D(p->level--);
28328 return NULL;
28329 }
28330 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28331 expr_ty expression_var;
28332 if (
28333 (expression_var = expression_rule(p)) // expression
28334 &&
28335 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
28336 )
28337 {
28338 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28339 _res = expression_var;
28340 goto done;
28341 }
28342 p->mark = _mark;
28343 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
28345 }
28346 _res = NULL;
28347 done:
28348 D(p->level--);
28349 return _res;
28350}
28351
28352// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028353static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028354_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028355{
28356 D(p->level++);
28357 if (p->error_indicator) {
28358 D(p->level--);
28359 return NULL;
28360 }
28361 void *_res = NULL;
28362 int _mark = p->mark;
28363 int _start_mark = p->mark;
28364 void **_children = PyMem_Malloc(sizeof(void *));
28365 if (!_children) {
28366 p->error_indicator = 1;
28367 PyErr_NoMemory();
28368 D(p->level--);
28369 return NULL;
28370 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028371 Py_ssize_t _children_capacity = 1;
28372 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028373 { // ',' double_starred_kvpair
28374 if (p->error_indicator) {
28375 D(p->level--);
28376 return NULL;
28377 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028378 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028379 Token * _literal;
28380 KeyValuePair* elem;
28381 while (
28382 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28383 &&
28384 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28385 )
28386 {
28387 _res = elem;
28388 if (_res == NULL && PyErr_Occurred()) {
28389 p->error_indicator = 1;
28390 PyMem_Free(_children);
28391 D(p->level--);
28392 return NULL;
28393 }
28394 if (_n == _children_capacity) {
28395 _children_capacity *= 2;
28396 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28397 if (!_new_children) {
28398 p->error_indicator = 1;
28399 PyErr_NoMemory();
28400 D(p->level--);
28401 return NULL;
28402 }
28403 _children = _new_children;
28404 }
28405 _children[_n++] = _res;
28406 _mark = p->mark;
28407 }
28408 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028409 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28411 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028412 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028413 if (!_seq) {
28414 PyMem_Free(_children);
28415 p->error_indicator = 1;
28416 PyErr_NoMemory();
28417 D(p->level--);
28418 return NULL;
28419 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028420 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028421 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028422 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028423 D(p->level--);
28424 return _seq;
28425}
28426
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028427// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028428static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028429_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028430{
28431 D(p->level++);
28432 if (p->error_indicator) {
28433 D(p->level--);
28434 return NULL;
28435 }
28436 asdl_seq * _res = NULL;
28437 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028438 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028439 if (p->error_indicator) {
28440 D(p->level--);
28441 return NULL;
28442 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028443 D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028444 KeyValuePair* elem;
28445 asdl_seq * seq;
28446 if (
28447 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28448 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028449 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028450 )
28451 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028452 D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028453 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28454 goto done;
28455 }
28456 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028457 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
28458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028459 }
28460 _res = NULL;
28461 done:
28462 D(p->level--);
28463 return _res;
28464}
28465
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028466// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028467static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028468_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028469{
28470 D(p->level++);
28471 if (p->error_indicator) {
28472 D(p->level--);
28473 return NULL;
28474 }
28475 void *_res = NULL;
28476 int _mark = p->mark;
28477 int _start_mark = p->mark;
28478 void **_children = PyMem_Malloc(sizeof(void *));
28479 if (!_children) {
28480 p->error_indicator = 1;
28481 PyErr_NoMemory();
28482 D(p->level--);
28483 return NULL;
28484 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028485 Py_ssize_t _children_capacity = 1;
28486 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028487 { // for_if_clause
28488 if (p->error_indicator) {
28489 D(p->level--);
28490 return NULL;
28491 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028492 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028493 comprehension_ty for_if_clause_var;
28494 while (
28495 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28496 )
28497 {
28498 _res = for_if_clause_var;
28499 if (_n == _children_capacity) {
28500 _children_capacity *= 2;
28501 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28502 if (!_new_children) {
28503 p->error_indicator = 1;
28504 PyErr_NoMemory();
28505 D(p->level--);
28506 return NULL;
28507 }
28508 _children = _new_children;
28509 }
28510 _children[_n++] = _res;
28511 _mark = p->mark;
28512 }
28513 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028514 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28516 }
28517 if (_n == 0 || p->error_indicator) {
28518 PyMem_Free(_children);
28519 D(p->level--);
28520 return NULL;
28521 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028522 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028523 if (!_seq) {
28524 PyMem_Free(_children);
28525 p->error_indicator = 1;
28526 PyErr_NoMemory();
28527 D(p->level--);
28528 return NULL;
28529 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028530 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028531 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028532 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028533 D(p->level--);
28534 return _seq;
28535}
28536
Brandt Bucher145bf262021-02-26 14:51:55 -080028537// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028538static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028539_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028540{
28541 D(p->level++);
28542 if (p->error_indicator) {
28543 D(p->level--);
28544 return NULL;
28545 }
28546 void *_res = NULL;
28547 int _mark = p->mark;
28548 int _start_mark = p->mark;
28549 void **_children = PyMem_Malloc(sizeof(void *));
28550 if (!_children) {
28551 p->error_indicator = 1;
28552 PyErr_NoMemory();
28553 D(p->level--);
28554 return NULL;
28555 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028556 Py_ssize_t _children_capacity = 1;
28557 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028558 { // ('if' disjunction)
28559 if (p->error_indicator) {
28560 D(p->level--);
28561 return NULL;
28562 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028563 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010028564 void *_tmp_188_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028565 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010028566 (_tmp_188_var = _tmp_188_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028567 )
28568 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010028569 _res = _tmp_188_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028570 if (_n == _children_capacity) {
28571 _children_capacity *= 2;
28572 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28573 if (!_new_children) {
28574 p->error_indicator = 1;
28575 PyErr_NoMemory();
28576 D(p->level--);
28577 return NULL;
28578 }
28579 _children = _new_children;
28580 }
28581 _children[_n++] = _res;
28582 _mark = p->mark;
28583 }
28584 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028585 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28587 }
28588 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28589 if (!_seq) {
28590 PyMem_Free(_children);
28591 p->error_indicator = 1;
28592 PyErr_NoMemory();
28593 D(p->level--);
28594 return NULL;
28595 }
28596 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28597 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028598 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028599 D(p->level--);
28600 return _seq;
28601}
28602
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028603// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028604static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028605_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028606{
28607 D(p->level++);
28608 if (p->error_indicator) {
28609 D(p->level--);
28610 return NULL;
28611 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028612 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028613 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028614 int _start_mark = p->mark;
28615 void **_children = PyMem_Malloc(sizeof(void *));
28616 if (!_children) {
28617 p->error_indicator = 1;
28618 PyErr_NoMemory();
28619 D(p->level--);
28620 return NULL;
28621 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028622 Py_ssize_t _children_capacity = 1;
28623 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028624 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010028625 if (p->error_indicator) {
28626 D(p->level--);
28627 return NULL;
28628 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028629 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010028630 void *_tmp_189_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028631 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010028632 (_tmp_189_var = _tmp_189_rule(p)) // 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028633 )
28634 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010028635 _res = _tmp_189_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028636 if (_n == _children_capacity) {
28637 _children_capacity *= 2;
28638 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28639 if (!_new_children) {
28640 p->error_indicator = 1;
28641 PyErr_NoMemory();
28642 D(p->level--);
28643 return NULL;
28644 }
28645 _children = _new_children;
28646 }
28647 _children[_n++] = _res;
28648 _mark = p->mark;
28649 }
28650 p->mark = _mark;
28651 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
28652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28653 }
28654 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28655 if (!_seq) {
28656 PyMem_Free(_children);
28657 p->error_indicator = 1;
28658 PyErr_NoMemory();
28659 D(p->level--);
28660 return NULL;
28661 }
28662 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28663 PyMem_Free(_children);
28664 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
28665 D(p->level--);
28666 return _seq;
28667}
28668
28669// _loop0_124: ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28670static asdl_seq *
28671_loop0_124_rule(Parser *p)
28672{
28673 D(p->level++);
28674 if (p->error_indicator) {
28675 D(p->level--);
28676 return NULL;
28677 }
28678 void *_res = NULL;
28679 int _mark = p->mark;
28680 int _start_mark = p->mark;
28681 void **_children = PyMem_Malloc(sizeof(void *));
28682 if (!_children) {
28683 p->error_indicator = 1;
28684 PyErr_NoMemory();
28685 D(p->level--);
28686 return NULL;
28687 }
28688 Py_ssize_t _children_capacity = 1;
28689 Py_ssize_t _n = 0;
28690 { // ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28691 if (p->error_indicator) {
28692 D(p->level--);
28693 return NULL;
28694 }
28695 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028696 Token * _literal;
28697 void *elem;
28698 while (
28699 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28700 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010028701 (elem = _tmp_190_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028702 )
28703 {
28704 _res = elem;
28705 if (_res == NULL && PyErr_Occurred()) {
28706 p->error_indicator = 1;
28707 PyMem_Free(_children);
28708 D(p->level--);
28709 return NULL;
28710 }
28711 if (_n == _children_capacity) {
28712 _children_capacity *= 2;
28713 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28714 if (!_new_children) {
28715 p->error_indicator = 1;
28716 PyErr_NoMemory();
28717 D(p->level--);
28718 return NULL;
28719 }
28720 _children = _new_children;
28721 }
28722 _children[_n++] = _res;
28723 _mark = p->mark;
28724 }
28725 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028726 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
28727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028728 }
28729 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28730 if (!_seq) {
28731 PyMem_Free(_children);
28732 p->error_indicator = 1;
28733 PyErr_NoMemory();
28734 D(p->level--);
28735 return NULL;
28736 }
28737 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28738 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028739 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028740 D(p->level--);
28741 return _seq;
28742}
28743
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028744// _gather_123:
28745// | (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028746static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028747_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028748{
28749 D(p->level++);
28750 if (p->error_indicator) {
28751 D(p->level--);
28752 return NULL;
28753 }
28754 asdl_seq * _res = NULL;
28755 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028756 { // (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028757 if (p->error_indicator) {
28758 D(p->level--);
28759 return NULL;
28760 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028761 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028762 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028763 asdl_seq * seq;
28764 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010028765 (elem = _tmp_190_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028766 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028767 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028768 )
28769 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028770 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028771 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28772 goto done;
28773 }
28774 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028775 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
28776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028777 }
28778 _res = NULL;
28779 done:
28780 D(p->level--);
28781 return _res;
28782}
28783
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028784// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080028785static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028786_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028787{
28788 D(p->level++);
28789 if (p->error_indicator) {
28790 D(p->level--);
28791 return NULL;
28792 }
28793 void * _res = NULL;
28794 int _mark = p->mark;
28795 { // ',' kwargs
28796 if (p->error_indicator) {
28797 D(p->level--);
28798 return NULL;
28799 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028800 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028801 Token * _literal;
28802 asdl_seq* k;
28803 if (
28804 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28805 &&
28806 (k = kwargs_rule(p)) // kwargs
28807 )
28808 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028809 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028810 _res = k;
28811 if (_res == NULL && PyErr_Occurred()) {
28812 p->error_indicator = 1;
28813 D(p->level--);
28814 return NULL;
28815 }
28816 goto done;
28817 }
28818 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028819 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28821 }
28822 _res = NULL;
28823 done:
28824 D(p->level--);
28825 return _res;
28826}
28827
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028828// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028829static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028830_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028831{
28832 D(p->level++);
28833 if (p->error_indicator) {
28834 D(p->level--);
28835 return NULL;
28836 }
28837 void *_res = NULL;
28838 int _mark = p->mark;
28839 int _start_mark = p->mark;
28840 void **_children = PyMem_Malloc(sizeof(void *));
28841 if (!_children) {
28842 p->error_indicator = 1;
28843 PyErr_NoMemory();
28844 D(p->level--);
28845 return NULL;
28846 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028847 Py_ssize_t _children_capacity = 1;
28848 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028849 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028850 if (p->error_indicator) {
28851 D(p->level--);
28852 return NULL;
28853 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028854 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028855 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028856 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028857 while (
28858 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28859 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028860 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028861 )
28862 {
28863 _res = elem;
28864 if (_res == NULL && PyErr_Occurred()) {
28865 p->error_indicator = 1;
28866 PyMem_Free(_children);
28867 D(p->level--);
28868 return NULL;
28869 }
28870 if (_n == _children_capacity) {
28871 _children_capacity *= 2;
28872 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28873 if (!_new_children) {
28874 p->error_indicator = 1;
28875 PyErr_NoMemory();
28876 D(p->level--);
28877 return NULL;
28878 }
28879 _children = _new_children;
28880 }
28881 _children[_n++] = _res;
28882 _mark = p->mark;
28883 }
28884 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028885 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028887 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028888 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028889 if (!_seq) {
28890 PyMem_Free(_children);
28891 p->error_indicator = 1;
28892 PyErr_NoMemory();
28893 D(p->level--);
28894 return NULL;
28895 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028896 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028897 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028898 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028899 D(p->level--);
28900 return _seq;
28901}
28902
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028903// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028904static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028905_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028906{
28907 D(p->level++);
28908 if (p->error_indicator) {
28909 D(p->level--);
28910 return NULL;
28911 }
28912 asdl_seq * _res = NULL;
28913 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028914 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028915 if (p->error_indicator) {
28916 D(p->level--);
28917 return NULL;
28918 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028919 D(fprintf(stderr, "%*c> _gather_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028920 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028921 asdl_seq * seq;
28922 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028923 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028924 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028925 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028926 )
28927 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028928 D(fprintf(stderr, "%*c+ _gather_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028929 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28930 goto done;
28931 }
28932 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028933 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
28934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028935 }
28936 _res = NULL;
28937 done:
28938 D(p->level--);
28939 return _res;
28940}
28941
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028942// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028943static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028944_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028945{
28946 D(p->level++);
28947 if (p->error_indicator) {
28948 D(p->level--);
28949 return NULL;
28950 }
28951 void *_res = NULL;
28952 int _mark = p->mark;
28953 int _start_mark = p->mark;
28954 void **_children = PyMem_Malloc(sizeof(void *));
28955 if (!_children) {
28956 p->error_indicator = 1;
28957 PyErr_NoMemory();
28958 D(p->level--);
28959 return NULL;
28960 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028961 Py_ssize_t _children_capacity = 1;
28962 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028963 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028964 if (p->error_indicator) {
28965 D(p->level--);
28966 return NULL;
28967 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028968 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028969 Token * _literal;
28970 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028971 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028972 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28973 &&
28974 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028975 )
28976 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028977 _res = elem;
28978 if (_res == NULL && PyErr_Occurred()) {
28979 p->error_indicator = 1;
28980 PyMem_Free(_children);
28981 D(p->level--);
28982 return NULL;
28983 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028984 if (_n == _children_capacity) {
28985 _children_capacity *= 2;
28986 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28987 if (!_new_children) {
28988 p->error_indicator = 1;
28989 PyErr_NoMemory();
28990 D(p->level--);
28991 return NULL;
28992 }
28993 _children = _new_children;
28994 }
28995 _children[_n++] = _res;
28996 _mark = p->mark;
28997 }
28998 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028999 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000029001 }
29002 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29003 if (!_seq) {
29004 PyMem_Free(_children);
29005 p->error_indicator = 1;
29006 PyErr_NoMemory();
29007 D(p->level--);
29008 return NULL;
29009 }
29010 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29011 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029012 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029013 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030029014 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029015}
29016
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029017// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029018static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029019_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029020{
29021 D(p->level++);
29022 if (p->error_indicator) {
29023 D(p->level--);
29024 return NULL;
29025 }
29026 asdl_seq * _res = NULL;
29027 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029028 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029029 if (p->error_indicator) {
29030 D(p->level--);
29031 return NULL;
29032 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029033 D(fprintf(stderr, "%*c> _gather_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029034 KeywordOrStarred* elem;
29035 asdl_seq * seq;
29036 if (
29037 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29038 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029039 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080029040 )
29041 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029042 D(fprintf(stderr, "%*c+ _gather_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029043 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29044 goto done;
29045 }
29046 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029047 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
29048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029049 }
29050 _res = NULL;
29051 done:
29052 D(p->level--);
29053 return _res;
29054}
29055
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029056// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080029057static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029058_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029059{
29060 D(p->level++);
29061 if (p->error_indicator) {
29062 D(p->level--);
29063 return NULL;
29064 }
29065 void *_res = NULL;
29066 int _mark = p->mark;
29067 int _start_mark = p->mark;
29068 void **_children = PyMem_Malloc(sizeof(void *));
29069 if (!_children) {
29070 p->error_indicator = 1;
29071 PyErr_NoMemory();
29072 D(p->level--);
29073 return NULL;
29074 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029075 Py_ssize_t _children_capacity = 1;
29076 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029077 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029078 if (p->error_indicator) {
29079 D(p->level--);
29080 return NULL;
29081 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029082 D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029083 Token * _literal;
29084 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029085 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029086 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29087 &&
29088 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029089 )
29090 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029091 _res = elem;
29092 if (_res == NULL && PyErr_Occurred()) {
29093 p->error_indicator = 1;
29094 PyMem_Free(_children);
29095 D(p->level--);
29096 return NULL;
29097 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029098 if (_n == _children_capacity) {
29099 _children_capacity *= 2;
29100 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29101 if (!_new_children) {
29102 p->error_indicator = 1;
29103 PyErr_NoMemory();
29104 D(p->level--);
29105 return NULL;
29106 }
29107 _children = _new_children;
29108 }
29109 _children[_n++] = _res;
29110 _mark = p->mark;
29111 }
29112 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029113 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029115 }
29116 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29117 if (!_seq) {
29118 PyMem_Free(_children);
29119 p->error_indicator = 1;
29120 PyErr_NoMemory();
29121 D(p->level--);
29122 return NULL;
29123 }
29124 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29125 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029126 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020029127 D(p->level--);
29128 return _seq;
29129}
29130
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029131// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080029132static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029133_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029134{
29135 D(p->level++);
29136 if (p->error_indicator) {
29137 D(p->level--);
29138 return NULL;
29139 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029140 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029141 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029142 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029143 if (p->error_indicator) {
29144 D(p->level--);
29145 return NULL;
29146 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029147 D(fprintf(stderr, "%*c> _gather_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029148 KeywordOrStarred* elem;
29149 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029150 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029151 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
29152 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029153 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029154 )
29155 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029156 D(fprintf(stderr, "%*c+ _gather_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029157 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029158 goto done;
29159 }
29160 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029161 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
29162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029163 }
29164 _res = NULL;
29165 done:
29166 D(p->level--);
29167 return _res;
29168}
29169
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029170// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029171static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029172_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029173{
29174 D(p->level++);
29175 if (p->error_indicator) {
29176 D(p->level--);
29177 return NULL;
29178 }
29179 void *_res = NULL;
29180 int _mark = p->mark;
29181 int _start_mark = p->mark;
29182 void **_children = PyMem_Malloc(sizeof(void *));
29183 if (!_children) {
29184 p->error_indicator = 1;
29185 PyErr_NoMemory();
29186 D(p->level--);
29187 return NULL;
29188 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029189 Py_ssize_t _children_capacity = 1;
29190 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029191 { // ',' kwarg_or_double_starred
29192 if (p->error_indicator) {
29193 D(p->level--);
29194 return NULL;
29195 }
29196 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
29197 Token * _literal;
29198 KeywordOrStarred* elem;
29199 while (
29200 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29201 &&
29202 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29203 )
29204 {
29205 _res = elem;
29206 if (_res == NULL && PyErr_Occurred()) {
29207 p->error_indicator = 1;
29208 PyMem_Free(_children);
29209 D(p->level--);
29210 return NULL;
29211 }
29212 if (_n == _children_capacity) {
29213 _children_capacity *= 2;
29214 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29215 if (!_new_children) {
29216 p->error_indicator = 1;
29217 PyErr_NoMemory();
29218 D(p->level--);
29219 return NULL;
29220 }
29221 _children = _new_children;
29222 }
29223 _children[_n++] = _res;
29224 _mark = p->mark;
29225 }
29226 p->mark = _mark;
29227 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
29228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
29229 }
29230 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29231 if (!_seq) {
29232 PyMem_Free(_children);
29233 p->error_indicator = 1;
29234 PyErr_NoMemory();
29235 D(p->level--);
29236 return NULL;
29237 }
29238 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29239 PyMem_Free(_children);
29240 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
29241 D(p->level--);
29242 return _seq;
29243}
29244
29245// _gather_132: kwarg_or_double_starred _loop0_133
29246static asdl_seq *
29247_gather_132_rule(Parser *p)
29248{
29249 D(p->level++);
29250 if (p->error_indicator) {
29251 D(p->level--);
29252 return NULL;
29253 }
29254 asdl_seq * _res = NULL;
29255 int _mark = p->mark;
29256 { // kwarg_or_double_starred _loop0_133
29257 if (p->error_indicator) {
29258 D(p->level--);
29259 return NULL;
29260 }
29261 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29262 KeywordOrStarred* elem;
29263 asdl_seq * seq;
29264 if (
29265 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29266 &&
29267 (seq = _loop0_133_rule(p)) // _loop0_133
29268 )
29269 {
29270 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29271 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29272 goto done;
29273 }
29274 p->mark = _mark;
29275 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
29276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29277 }
29278 _res = NULL;
29279 done:
29280 D(p->level--);
29281 return _res;
29282}
29283
29284// _loop0_134: (',' star_target)
29285static asdl_seq *
29286_loop0_134_rule(Parser *p)
29287{
29288 D(p->level++);
29289 if (p->error_indicator) {
29290 D(p->level--);
29291 return NULL;
29292 }
29293 void *_res = NULL;
29294 int _mark = p->mark;
29295 int _start_mark = p->mark;
29296 void **_children = PyMem_Malloc(sizeof(void *));
29297 if (!_children) {
29298 p->error_indicator = 1;
29299 PyErr_NoMemory();
29300 D(p->level--);
29301 return NULL;
29302 }
29303 Py_ssize_t _children_capacity = 1;
29304 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029305 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029306 if (p->error_indicator) {
29307 D(p->level--);
29308 return NULL;
29309 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029310 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029311 void *_tmp_191_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029312 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029313 (_tmp_191_var = _tmp_191_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029314 )
29315 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029316 _res = _tmp_191_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029317 if (_n == _children_capacity) {
29318 _children_capacity *= 2;
29319 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29320 if (!_new_children) {
29321 p->error_indicator = 1;
29322 PyErr_NoMemory();
29323 D(p->level--);
29324 return NULL;
29325 }
29326 _children = _new_children;
29327 }
29328 _children[_n++] = _res;
29329 _mark = p->mark;
29330 }
29331 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029332 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029334 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029335 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029336 if (!_seq) {
29337 PyMem_Free(_children);
29338 p->error_indicator = 1;
29339 PyErr_NoMemory();
29340 D(p->level--);
29341 return NULL;
29342 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029343 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029344 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029345 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029346 D(p->level--);
29347 return _seq;
29348}
29349
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029350// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029351static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029352_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029353{
29354 D(p->level++);
29355 if (p->error_indicator) {
29356 D(p->level--);
29357 return NULL;
29358 }
29359 void *_res = NULL;
29360 int _mark = p->mark;
29361 int _start_mark = p->mark;
29362 void **_children = PyMem_Malloc(sizeof(void *));
29363 if (!_children) {
29364 p->error_indicator = 1;
29365 PyErr_NoMemory();
29366 D(p->level--);
29367 return NULL;
29368 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029369 Py_ssize_t _children_capacity = 1;
29370 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029371 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029372 if (p->error_indicator) {
29373 D(p->level--);
29374 return NULL;
29375 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029376 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029377 Token * _literal;
29378 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029379 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029380 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29381 &&
29382 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029383 )
29384 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029385 _res = elem;
29386 if (_res == NULL && PyErr_Occurred()) {
29387 p->error_indicator = 1;
29388 PyMem_Free(_children);
29389 D(p->level--);
29390 return NULL;
29391 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029392 if (_n == _children_capacity) {
29393 _children_capacity *= 2;
29394 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29395 if (!_new_children) {
29396 p->error_indicator = 1;
29397 PyErr_NoMemory();
29398 D(p->level--);
29399 return NULL;
29400 }
29401 _children = _new_children;
29402 }
29403 _children[_n++] = _res;
29404 _mark = p->mark;
29405 }
29406 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029407 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029409 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029410 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029411 if (!_seq) {
29412 PyMem_Free(_children);
29413 p->error_indicator = 1;
29414 PyErr_NoMemory();
29415 D(p->level--);
29416 return NULL;
29417 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029418 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029419 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029420 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029421 D(p->level--);
29422 return _seq;
29423}
29424
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029425// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029426static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029427_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029428{
29429 D(p->level++);
29430 if (p->error_indicator) {
29431 D(p->level--);
29432 return NULL;
29433 }
29434 asdl_seq * _res = NULL;
29435 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029436 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029437 if (p->error_indicator) {
29438 D(p->level--);
29439 return NULL;
29440 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029441 D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029442 expr_ty elem;
29443 asdl_seq * seq;
29444 if (
29445 (elem = star_target_rule(p)) // star_target
29446 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029447 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029448 )
29449 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029450 D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029451 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29452 goto done;
29453 }
29454 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029455 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
29456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029457 }
29458 _res = NULL;
29459 done:
29460 D(p->level--);
29461 return _res;
29462}
29463
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029464// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029465static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029466_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029467{
29468 D(p->level++);
29469 if (p->error_indicator) {
29470 D(p->level--);
29471 return NULL;
29472 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029473 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029474 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029475 int _start_mark = p->mark;
29476 void **_children = PyMem_Malloc(sizeof(void *));
29477 if (!_children) {
29478 p->error_indicator = 1;
29479 PyErr_NoMemory();
29480 D(p->level--);
29481 return NULL;
29482 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029483 Py_ssize_t _children_capacity = 1;
29484 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029485 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029486 if (p->error_indicator) {
29487 D(p->level--);
29488 return NULL;
29489 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029490 D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029491 void *_tmp_192_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029492 while (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029493 (_tmp_192_var = _tmp_192_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029494 )
29495 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029496 _res = _tmp_192_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029497 if (_n == _children_capacity) {
29498 _children_capacity *= 2;
29499 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29500 if (!_new_children) {
29501 p->error_indicator = 1;
29502 PyErr_NoMemory();
29503 D(p->level--);
29504 return NULL;
29505 }
29506 _children = _new_children;
29507 }
29508 _children[_n++] = _res;
29509 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029510 }
29511 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029512 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029514 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029515 if (_n == 0 || p->error_indicator) {
29516 PyMem_Free(_children);
29517 D(p->level--);
29518 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029519 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029520 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29521 if (!_seq) {
29522 PyMem_Free(_children);
29523 p->error_indicator = 1;
29524 PyErr_NoMemory();
29525 D(p->level--);
29526 return NULL;
29527 }
29528 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29529 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029530 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029531 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029532 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029533}
29534
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029535// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029536static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029537_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029538{
29539 D(p->level++);
29540 if (p->error_indicator) {
29541 D(p->level--);
29542 return NULL;
29543 }
29544 void * _res = NULL;
29545 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029546 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029547 if (p->error_indicator) {
29548 D(p->level--);
29549 return NULL;
29550 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029551 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029552 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029553 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029554 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029555 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029556 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029557 )
29558 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029559 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029560 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029561 goto done;
29562 }
29563 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029564 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029566 }
29567 _res = NULL;
29568 done:
29569 D(p->level--);
29570 return _res;
29571}
29572
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029573// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080029574static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029575_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029576{
29577 D(p->level++);
29578 if (p->error_indicator) {
29579 D(p->level--);
29580 return NULL;
29581 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029582 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029583 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029584 int _start_mark = p->mark;
29585 void **_children = PyMem_Malloc(sizeof(void *));
29586 if (!_children) {
29587 p->error_indicator = 1;
29588 PyErr_NoMemory();
29589 D(p->level--);
29590 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029591 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029592 Py_ssize_t _children_capacity = 1;
29593 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029594 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029595 if (p->error_indicator) {
29596 D(p->level--);
29597 return NULL;
29598 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029599 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029600 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029601 expr_ty elem;
29602 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029603 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29604 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029605 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029606 )
29607 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029608 _res = elem;
29609 if (_res == NULL && PyErr_Occurred()) {
29610 p->error_indicator = 1;
29611 PyMem_Free(_children);
29612 D(p->level--);
29613 return NULL;
29614 }
29615 if (_n == _children_capacity) {
29616 _children_capacity *= 2;
29617 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29618 if (!_new_children) {
29619 p->error_indicator = 1;
29620 PyErr_NoMemory();
29621 D(p->level--);
29622 return NULL;
29623 }
29624 _children = _new_children;
29625 }
29626 _children[_n++] = _res;
29627 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029628 }
29629 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029630 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029632 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029633 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29634 if (!_seq) {
29635 PyMem_Free(_children);
29636 p->error_indicator = 1;
29637 PyErr_NoMemory();
29638 D(p->level--);
29639 return NULL;
29640 }
29641 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29642 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029643 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029644 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029645 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029646}
29647
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029648// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080029649static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029650_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029651{
29652 D(p->level++);
29653 if (p->error_indicator) {
29654 D(p->level--);
29655 return NULL;
29656 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029657 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029658 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029659 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029660 if (p->error_indicator) {
29661 D(p->level--);
29662 return NULL;
29663 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029664 D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029665 expr_ty elem;
29666 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029667 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029668 (elem = del_target_rule(p)) // del_target
29669 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029670 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029671 )
29672 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029673 D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029674 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029675 goto done;
29676 }
29677 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029678 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
29679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029680 }
29681 _res = NULL;
29682 done:
29683 D(p->level--);
29684 return _res;
29685}
29686
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029687// _tmp_141: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080029688static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029689_tmp_141_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029690{
29691 D(p->level++);
29692 if (p->error_indicator) {
29693 D(p->level--);
29694 return NULL;
29695 }
29696 void * _res = NULL;
29697 int _mark = p->mark;
29698 { // args
29699 if (p->error_indicator) {
29700 D(p->level--);
29701 return NULL;
29702 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029703 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029704 expr_ty args_var;
29705 if (
29706 (args_var = args_rule(p)) // args
29707 )
29708 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029709 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029710 _res = args_var;
29711 goto done;
29712 }
29713 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029714 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29716 }
29717 { // expression for_if_clauses
29718 if (p->error_indicator) {
29719 D(p->level--);
29720 return NULL;
29721 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029722 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029723 expr_ty expression_var;
29724 asdl_comprehension_seq* for_if_clauses_var;
29725 if (
29726 (expression_var = expression_rule(p)) // expression
29727 &&
29728 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29729 )
29730 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029731 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029732 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29733 goto done;
29734 }
29735 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029736 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29738 }
29739 _res = NULL;
29740 done:
29741 D(p->level--);
29742 return _res;
29743}
29744
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029745// _tmp_142: NAME '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029746static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029747_tmp_142_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029748{
29749 D(p->level++);
29750 if (p->error_indicator) {
29751 D(p->level--);
29752 return NULL;
29753 }
29754 void * _res = NULL;
29755 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029756 { // NAME '='
29757 if (p->error_indicator) {
29758 D(p->level--);
29759 return NULL;
29760 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029761 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029762 Token * _literal;
29763 expr_ty name_var;
29764 if (
29765 (name_var = _PyPegen_name_token(p)) // NAME
29766 &&
29767 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29768 )
29769 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029770 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029771 _res = _PyPegen_dummy_name(p, name_var, _literal);
29772 goto done;
29773 }
29774 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029775 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29777 }
29778 _res = NULL;
29779 done:
29780 D(p->level--);
29781 return _res;
29782}
29783
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029784// _tmp_143: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029785static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029786_tmp_143_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029787{
29788 D(p->level++);
29789 if (p->error_indicator) {
29790 D(p->level--);
29791 return NULL;
29792 }
29793 void * _res = NULL;
29794 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029795 { // NAME STRING
29796 if (p->error_indicator) {
29797 D(p->level--);
29798 return NULL;
29799 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029800 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029801 expr_ty name_var;
29802 expr_ty string_var;
29803 if (
29804 (name_var = _PyPegen_name_token(p)) // NAME
29805 &&
29806 (string_var = _PyPegen_string_token(p)) // STRING
29807 )
29808 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029809 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029810 _res = _PyPegen_dummy_name(p, name_var, string_var);
29811 goto done;
29812 }
29813 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029814 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29816 }
29817 { // SOFT_KEYWORD
29818 if (p->error_indicator) {
29819 D(p->level--);
29820 return NULL;
29821 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029822 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029823 expr_ty soft_keyword_var;
29824 if (
29825 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29826 )
29827 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029828 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029829 _res = soft_keyword_var;
29830 goto done;
29831 }
29832 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029833 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29835 }
29836 _res = NULL;
29837 done:
29838 D(p->level--);
29839 return _res;
29840}
29841
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029842// _tmp_144: 'else' | ':'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029843static void *
29844_tmp_144_rule(Parser *p)
29845{
29846 D(p->level++);
29847 if (p->error_indicator) {
29848 D(p->level--);
29849 return NULL;
29850 }
29851 void * _res = NULL;
29852 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029853 { // 'else'
29854 if (p->error_indicator) {
29855 D(p->level--);
29856 return NULL;
29857 }
29858 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'"));
29859 Token * _keyword;
29860 if (
29861 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
29862 )
29863 {
29864 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'"));
29865 _res = _keyword;
29866 goto done;
29867 }
29868 p->mark = _mark;
29869 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'"));
29871 }
29872 { // ':'
29873 if (p->error_indicator) {
29874 D(p->level--);
29875 return NULL;
29876 }
29877 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
29878 Token * _literal;
29879 if (
29880 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
29881 )
29882 {
29883 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
29884 _res = _literal;
29885 goto done;
29886 }
29887 p->mark = _mark;
29888 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
29890 }
29891 _res = NULL;
29892 done:
29893 D(p->level--);
29894 return _res;
29895}
29896
29897// _tmp_145: '=' | ':='
29898static void *
29899_tmp_145_rule(Parser *p)
29900{
29901 D(p->level++);
29902 if (p->error_indicator) {
29903 D(p->level--);
29904 return NULL;
29905 }
29906 void * _res = NULL;
29907 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029908 { // '='
29909 if (p->error_indicator) {
29910 D(p->level--);
29911 return NULL;
29912 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029913 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029914 Token * _literal;
29915 if (
29916 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29917 )
29918 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029919 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029920 _res = _literal;
29921 goto done;
29922 }
29923 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029924 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29926 }
29927 { // ':='
29928 if (p->error_indicator) {
29929 D(p->level--);
29930 return NULL;
29931 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029932 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029933 Token * _literal;
29934 if (
29935 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29936 )
29937 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029938 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029939 _res = _literal;
29940 goto done;
29941 }
29942 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029943 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29945 }
29946 _res = NULL;
29947 done:
29948 D(p->level--);
29949 return _res;
29950}
29951
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029952// _tmp_146: list | tuple | genexp | 'True' | 'None' | 'False'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029953static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029954_tmp_146_rule(Parser *p)
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029955{
29956 D(p->level++);
29957 if (p->error_indicator) {
29958 D(p->level--);
29959 return NULL;
29960 }
29961 void * _res = NULL;
29962 int _mark = p->mark;
29963 { // list
29964 if (p->error_indicator) {
29965 D(p->level--);
29966 return NULL;
29967 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029968 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029969 expr_ty list_var;
29970 if (
29971 (list_var = list_rule(p)) // list
29972 )
29973 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029974 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029975 _res = list_var;
29976 goto done;
29977 }
29978 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029979 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29981 }
29982 { // tuple
29983 if (p->error_indicator) {
29984 D(p->level--);
29985 return NULL;
29986 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029987 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029988 expr_ty tuple_var;
29989 if (
29990 (tuple_var = tuple_rule(p)) // tuple
29991 )
29992 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029993 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029994 _res = tuple_var;
29995 goto done;
29996 }
29997 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010029998 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
30000 }
30001 { // genexp
30002 if (p->error_indicator) {
30003 D(p->level--);
30004 return NULL;
30005 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030006 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030007 expr_ty genexp_var;
30008 if (
30009 (genexp_var = genexp_rule(p)) // genexp
30010 )
30011 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030012 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030013 _res = genexp_var;
30014 goto done;
30015 }
30016 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030017 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
30019 }
30020 { // 'True'
30021 if (p->error_indicator) {
30022 D(p->level--);
30023 return NULL;
30024 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030025 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030026 Token * _keyword;
30027 if (
30028 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
30029 )
30030 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030031 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030032 _res = _keyword;
30033 goto done;
30034 }
30035 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030036 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
30038 }
30039 { // 'None'
30040 if (p->error_indicator) {
30041 D(p->level--);
30042 return NULL;
30043 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030044 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030045 Token * _keyword;
30046 if (
30047 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
30048 )
30049 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030050 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030051 _res = _keyword;
30052 goto done;
30053 }
30054 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030055 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
30057 }
30058 { // 'False'
30059 if (p->error_indicator) {
30060 D(p->level--);
30061 return NULL;
30062 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030063 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030064 Token * _keyword;
30065 if (
30066 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
30067 )
30068 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030069 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030070 _res = _keyword;
30071 goto done;
30072 }
30073 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030074 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
30076 }
30077 _res = NULL;
30078 done:
30079 D(p->level--);
30080 return _res;
30081}
30082
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030083// _tmp_147: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010030084static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030085_tmp_147_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010030086{
30087 D(p->level++);
30088 if (p->error_indicator) {
30089 D(p->level--);
30090 return NULL;
30091 }
30092 void * _res = NULL;
30093 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030094 { // '='
30095 if (p->error_indicator) {
30096 D(p->level--);
30097 return NULL;
30098 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030099 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030100 Token * _literal;
30101 if (
30102 (_literal = _PyPegen_expect_token(p, 22)) // token='='
30103 )
30104 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030105 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030106 _res = _literal;
30107 goto done;
30108 }
30109 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030110 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
30112 }
30113 { // ':='
30114 if (p->error_indicator) {
30115 D(p->level--);
30116 return NULL;
30117 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030118 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030119 Token * _literal;
30120 if (
30121 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
30122 )
30123 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030124 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030125 _res = _literal;
30126 goto done;
30127 }
30128 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030129 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
30131 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030132 _res = NULL;
30133 done:
30134 D(p->level--);
30135 return _res;
30136}
30137
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030138// _loop0_148: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030139static asdl_seq *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030140_loop0_148_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030141{
30142 D(p->level++);
30143 if (p->error_indicator) {
30144 D(p->level--);
30145 return NULL;
30146 }
30147 void *_res = NULL;
30148 int _mark = p->mark;
30149 int _start_mark = p->mark;
30150 void **_children = PyMem_Malloc(sizeof(void *));
30151 if (!_children) {
30152 p->error_indicator = 1;
30153 PyErr_NoMemory();
30154 D(p->level--);
30155 return NULL;
30156 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030157 Py_ssize_t _children_capacity = 1;
30158 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030159 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030160 if (p->error_indicator) {
30161 D(p->level--);
30162 return NULL;
30163 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030164 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030165 asdl_expr_seq* star_named_expressions_var;
30166 while (
30167 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
30168 )
30169 {
30170 _res = star_named_expressions_var;
30171 if (_n == _children_capacity) {
30172 _children_capacity *= 2;
30173 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30174 if (!_new_children) {
30175 p->error_indicator = 1;
30176 PyErr_NoMemory();
30177 D(p->level--);
30178 return NULL;
30179 }
30180 _children = _new_children;
30181 }
30182 _children[_n++] = _res;
30183 _mark = p->mark;
30184 }
30185 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030186 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030188 }
30189 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30190 if (!_seq) {
30191 PyMem_Free(_children);
30192 p->error_indicator = 1;
30193 PyErr_NoMemory();
30194 D(p->level--);
30195 return NULL;
30196 }
30197 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30198 PyMem_Free(_children);
30199 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
30200 D(p->level--);
30201 return _seq;
30202}
30203
30204// _loop0_149: (star_targets '=')
30205static asdl_seq *
30206_loop0_149_rule(Parser *p)
30207{
30208 D(p->level++);
30209 if (p->error_indicator) {
30210 D(p->level--);
30211 return NULL;
30212 }
30213 void *_res = NULL;
30214 int _mark = p->mark;
30215 int _start_mark = p->mark;
30216 void **_children = PyMem_Malloc(sizeof(void *));
30217 if (!_children) {
30218 p->error_indicator = 1;
30219 PyErr_NoMemory();
30220 D(p->level--);
30221 return NULL;
30222 }
30223 Py_ssize_t _children_capacity = 1;
30224 Py_ssize_t _n = 0;
30225 { // (star_targets '=')
30226 if (p->error_indicator) {
30227 D(p->level--);
30228 return NULL;
30229 }
30230 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030231 void *_tmp_193_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030232 while (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030233 (_tmp_193_var = _tmp_193_rule(p)) // star_targets '='
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030234 )
30235 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030236 _res = _tmp_193_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030237 if (_n == _children_capacity) {
30238 _children_capacity *= 2;
30239 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30240 if (!_new_children) {
30241 p->error_indicator = 1;
30242 PyErr_NoMemory();
30243 D(p->level--);
30244 return NULL;
30245 }
30246 _children = _new_children;
30247 }
30248 _children[_n++] = _res;
30249 _mark = p->mark;
30250 }
30251 p->mark = _mark;
30252 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
30253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30254 }
30255 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30256 if (!_seq) {
30257 PyMem_Free(_children);
30258 p->error_indicator = 1;
30259 PyErr_NoMemory();
30260 D(p->level--);
30261 return NULL;
30262 }
30263 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30264 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010030265 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30266 D(p->level--);
30267 return _seq;
30268}
30269
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030270// _loop0_150: (star_targets '=')
30271static asdl_seq *
30272_loop0_150_rule(Parser *p)
30273{
30274 D(p->level++);
30275 if (p->error_indicator) {
30276 D(p->level--);
30277 return NULL;
30278 }
30279 void *_res = NULL;
30280 int _mark = p->mark;
30281 int _start_mark = p->mark;
30282 void **_children = PyMem_Malloc(sizeof(void *));
30283 if (!_children) {
30284 p->error_indicator = 1;
30285 PyErr_NoMemory();
30286 D(p->level--);
30287 return NULL;
30288 }
30289 Py_ssize_t _children_capacity = 1;
30290 Py_ssize_t _n = 0;
30291 { // (star_targets '=')
30292 if (p->error_indicator) {
30293 D(p->level--);
30294 return NULL;
30295 }
30296 D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
30297 void *_tmp_194_var;
30298 while (
30299 (_tmp_194_var = _tmp_194_rule(p)) // star_targets '='
30300 )
30301 {
30302 _res = _tmp_194_var;
30303 if (_n == _children_capacity) {
30304 _children_capacity *= 2;
30305 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30306 if (!_new_children) {
30307 p->error_indicator = 1;
30308 PyErr_NoMemory();
30309 D(p->level--);
30310 return NULL;
30311 }
30312 _children = _new_children;
30313 }
30314 _children[_n++] = _res;
30315 _mark = p->mark;
30316 }
30317 p->mark = _mark;
30318 D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
30319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30320 }
30321 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30322 if (!_seq) {
30323 PyMem_Free(_children);
30324 p->error_indicator = 1;
30325 PyErr_NoMemory();
30326 D(p->level--);
30327 return NULL;
30328 }
30329 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30330 PyMem_Free(_children);
30331 _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
30332 D(p->level--);
30333 return _seq;
30334}
30335
30336// _tmp_151: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030337static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030338_tmp_151_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030339{
30340 D(p->level++);
30341 if (p->error_indicator) {
30342 D(p->level--);
30343 return NULL;
30344 }
30345 void * _res = NULL;
30346 int _mark = p->mark;
30347 { // yield_expr
30348 if (p->error_indicator) {
30349 D(p->level--);
30350 return NULL;
30351 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030352 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030353 expr_ty yield_expr_var;
30354 if (
30355 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30356 )
30357 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030358 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030359 _res = yield_expr_var;
30360 goto done;
30361 }
30362 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030363 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30365 }
30366 { // star_expressions
30367 if (p->error_indicator) {
30368 D(p->level--);
30369 return NULL;
30370 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030371 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030372 expr_ty star_expressions_var;
30373 if (
30374 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30375 )
30376 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030377 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030378 _res = star_expressions_var;
30379 goto done;
30380 }
30381 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030382 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30384 }
30385 _res = NULL;
30386 done:
30387 D(p->level--);
30388 return _res;
30389}
30390
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030391// _tmp_152: '[' | '(' | '{'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030392static void *
30393_tmp_152_rule(Parser *p)
30394{
30395 D(p->level++);
30396 if (p->error_indicator) {
30397 D(p->level--);
30398 return NULL;
30399 }
30400 void * _res = NULL;
30401 int _mark = p->mark;
30402 { // '['
30403 if (p->error_indicator) {
30404 D(p->level--);
30405 return NULL;
30406 }
30407 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30408 Token * _literal;
30409 if (
30410 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30411 )
30412 {
30413 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30414 _res = _literal;
30415 goto done;
30416 }
30417 p->mark = _mark;
30418 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30420 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030421 { // '('
30422 if (p->error_indicator) {
30423 D(p->level--);
30424 return NULL;
30425 }
30426 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30427 Token * _literal;
30428 if (
30429 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30430 )
30431 {
30432 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30433 _res = _literal;
30434 goto done;
30435 }
30436 p->mark = _mark;
30437 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30439 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030440 { // '{'
30441 if (p->error_indicator) {
30442 D(p->level--);
30443 return NULL;
30444 }
30445 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30446 Token * _literal;
30447 if (
30448 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30449 )
30450 {
30451 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30452 _res = _literal;
30453 goto done;
30454 }
30455 p->mark = _mark;
30456 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30458 }
30459 _res = NULL;
30460 done:
30461 D(p->level--);
30462 return _res;
30463}
30464
30465// _tmp_153: '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030466static void *
30467_tmp_153_rule(Parser *p)
30468{
30469 D(p->level++);
30470 if (p->error_indicator) {
30471 D(p->level--);
30472 return NULL;
30473 }
30474 void * _res = NULL;
30475 int _mark = p->mark;
30476 { // '['
30477 if (p->error_indicator) {
30478 D(p->level--);
30479 return NULL;
30480 }
30481 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30482 Token * _literal;
30483 if (
30484 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30485 )
30486 {
30487 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30488 _res = _literal;
30489 goto done;
30490 }
30491 p->mark = _mark;
30492 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30494 }
30495 { // '{'
30496 if (p->error_indicator) {
30497 D(p->level--);
30498 return NULL;
30499 }
30500 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30501 Token * _literal;
30502 if (
30503 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30504 )
30505 {
30506 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30507 _res = _literal;
30508 goto done;
30509 }
30510 p->mark = _mark;
30511 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30513 }
30514 _res = NULL;
30515 done:
30516 D(p->level--);
30517 return _res;
30518}
30519
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030520// _tmp_154: '[' | '{'
30521static void *
30522_tmp_154_rule(Parser *p)
30523{
30524 D(p->level++);
30525 if (p->error_indicator) {
30526 D(p->level--);
30527 return NULL;
30528 }
30529 void * _res = NULL;
30530 int _mark = p->mark;
30531 { // '['
30532 if (p->error_indicator) {
30533 D(p->level--);
30534 return NULL;
30535 }
30536 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30537 Token * _literal;
30538 if (
30539 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30540 )
30541 {
30542 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30543 _res = _literal;
30544 goto done;
30545 }
30546 p->mark = _mark;
30547 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30549 }
30550 { // '{'
30551 if (p->error_indicator) {
30552 D(p->level--);
30553 return NULL;
30554 }
30555 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30556 Token * _literal;
30557 if (
30558 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30559 )
30560 {
30561 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30562 _res = _literal;
30563 goto done;
30564 }
30565 p->mark = _mark;
30566 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30568 }
30569 _res = NULL;
30570 done:
30571 D(p->level--);
30572 return _res;
30573}
30574
30575// _loop0_155: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030576static asdl_seq *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030577_loop0_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030578{
30579 D(p->level++);
30580 if (p->error_indicator) {
30581 D(p->level--);
30582 return NULL;
30583 }
30584 void *_res = NULL;
30585 int _mark = p->mark;
30586 int _start_mark = p->mark;
30587 void **_children = PyMem_Malloc(sizeof(void *));
30588 if (!_children) {
30589 p->error_indicator = 1;
30590 PyErr_NoMemory();
30591 D(p->level--);
30592 return NULL;
30593 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030594 Py_ssize_t _children_capacity = 1;
30595 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030596 { // param_no_default
30597 if (p->error_indicator) {
30598 D(p->level--);
30599 return NULL;
30600 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030601 D(fprintf(stderr, "%*c> _loop0_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030602 arg_ty param_no_default_var;
30603 while (
30604 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30605 )
30606 {
30607 _res = param_no_default_var;
30608 if (_n == _children_capacity) {
30609 _children_capacity *= 2;
30610 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30611 if (!_new_children) {
30612 p->error_indicator = 1;
30613 PyErr_NoMemory();
30614 D(p->level--);
30615 return NULL;
30616 }
30617 _children = _new_children;
30618 }
30619 _children[_n++] = _res;
30620 _mark = p->mark;
30621 }
30622 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030623 D(fprintf(stderr, "%*c%s _loop0_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30625 }
30626 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30627 if (!_seq) {
30628 PyMem_Free(_children);
30629 p->error_indicator = 1;
30630 PyErr_NoMemory();
30631 D(p->level--);
30632 return NULL;
30633 }
30634 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30635 PyMem_Free(_children);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030636 _PyPegen_insert_memo(p, _start_mark, _loop0_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030637 D(p->level--);
30638 return _seq;
30639}
30640
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030641// _loop1_156: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030642static asdl_seq *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030643_loop1_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030644{
30645 D(p->level++);
30646 if (p->error_indicator) {
30647 D(p->level--);
30648 return NULL;
30649 }
30650 void *_res = NULL;
30651 int _mark = p->mark;
30652 int _start_mark = p->mark;
30653 void **_children = PyMem_Malloc(sizeof(void *));
30654 if (!_children) {
30655 p->error_indicator = 1;
30656 PyErr_NoMemory();
30657 D(p->level--);
30658 return NULL;
30659 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030660 Py_ssize_t _children_capacity = 1;
30661 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030662 { // param_with_default
30663 if (p->error_indicator) {
30664 D(p->level--);
30665 return NULL;
30666 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030667 D(fprintf(stderr, "%*c> _loop1_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030668 NameDefaultPair* param_with_default_var;
30669 while (
30670 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30671 )
30672 {
30673 _res = param_with_default_var;
30674 if (_n == _children_capacity) {
30675 _children_capacity *= 2;
30676 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30677 if (!_new_children) {
30678 p->error_indicator = 1;
30679 PyErr_NoMemory();
30680 D(p->level--);
30681 return NULL;
30682 }
30683 _children = _new_children;
30684 }
30685 _children[_n++] = _res;
30686 _mark = p->mark;
30687 }
30688 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030689 D(fprintf(stderr, "%*c%s _loop1_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30691 }
30692 if (_n == 0 || p->error_indicator) {
30693 PyMem_Free(_children);
30694 D(p->level--);
30695 return NULL;
30696 }
30697 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30698 if (!_seq) {
30699 PyMem_Free(_children);
30700 p->error_indicator = 1;
30701 PyErr_NoMemory();
30702 D(p->level--);
30703 return NULL;
30704 }
30705 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30706 PyMem_Free(_children);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030707 _PyPegen_insert_memo(p, _start_mark, _loop1_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030708 D(p->level--);
30709 return _seq;
30710}
30711
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030712// _loop0_157: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030713static asdl_seq *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030714_loop0_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030715{
30716 D(p->level++);
30717 if (p->error_indicator) {
30718 D(p->level--);
30719 return NULL;
30720 }
30721 void *_res = NULL;
30722 int _mark = p->mark;
30723 int _start_mark = p->mark;
30724 void **_children = PyMem_Malloc(sizeof(void *));
30725 if (!_children) {
30726 p->error_indicator = 1;
30727 PyErr_NoMemory();
30728 D(p->level--);
30729 return NULL;
30730 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030731 Py_ssize_t _children_capacity = 1;
30732 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030733 { // lambda_param_no_default
30734 if (p->error_indicator) {
30735 D(p->level--);
30736 return NULL;
30737 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030738 D(fprintf(stderr, "%*c> _loop0_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030739 arg_ty lambda_param_no_default_var;
30740 while (
30741 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30742 )
30743 {
30744 _res = lambda_param_no_default_var;
30745 if (_n == _children_capacity) {
30746 _children_capacity *= 2;
30747 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30748 if (!_new_children) {
30749 p->error_indicator = 1;
30750 PyErr_NoMemory();
30751 D(p->level--);
30752 return NULL;
30753 }
30754 _children = _new_children;
30755 }
30756 _children[_n++] = _res;
30757 _mark = p->mark;
30758 }
30759 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030760 D(fprintf(stderr, "%*c%s _loop0_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30762 }
30763 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30764 if (!_seq) {
30765 PyMem_Free(_children);
30766 p->error_indicator = 1;
30767 PyErr_NoMemory();
30768 D(p->level--);
30769 return NULL;
30770 }
30771 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30772 PyMem_Free(_children);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030773 _PyPegen_insert_memo(p, _start_mark, _loop0_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030774 D(p->level--);
30775 return _seq;
30776}
30777
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030778// _loop1_158: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030779static asdl_seq *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030780_loop1_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030781{
30782 D(p->level++);
30783 if (p->error_indicator) {
30784 D(p->level--);
30785 return NULL;
30786 }
30787 void *_res = NULL;
30788 int _mark = p->mark;
30789 int _start_mark = p->mark;
30790 void **_children = PyMem_Malloc(sizeof(void *));
30791 if (!_children) {
30792 p->error_indicator = 1;
30793 PyErr_NoMemory();
30794 D(p->level--);
30795 return NULL;
30796 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030797 Py_ssize_t _children_capacity = 1;
30798 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030799 { // lambda_param_with_default
30800 if (p->error_indicator) {
30801 D(p->level--);
30802 return NULL;
30803 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030804 D(fprintf(stderr, "%*c> _loop1_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030805 NameDefaultPair* lambda_param_with_default_var;
30806 while (
30807 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30808 )
30809 {
30810 _res = lambda_param_with_default_var;
30811 if (_n == _children_capacity) {
30812 _children_capacity *= 2;
30813 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30814 if (!_new_children) {
30815 p->error_indicator = 1;
30816 PyErr_NoMemory();
30817 D(p->level--);
30818 return NULL;
30819 }
30820 _children = _new_children;
30821 }
30822 _children[_n++] = _res;
30823 _mark = p->mark;
30824 }
30825 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030826 D(fprintf(stderr, "%*c%s _loop1_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30828 }
30829 if (_n == 0 || p->error_indicator) {
30830 PyMem_Free(_children);
30831 D(p->level--);
30832 return NULL;
30833 }
30834 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30835 if (!_seq) {
30836 PyMem_Free(_children);
30837 p->error_indicator = 1;
30838 PyErr_NoMemory();
30839 D(p->level--);
30840 return NULL;
30841 }
30842 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30843 PyMem_Free(_children);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030844 _PyPegen_insert_memo(p, _start_mark, _loop1_158_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030845 D(p->level--);
30846 return _seq;
30847}
30848
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030849// _tmp_159: ')' | ',' (')' | '**')
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030850static void *
30851_tmp_159_rule(Parser *p)
30852{
30853 D(p->level++);
30854 if (p->error_indicator) {
30855 D(p->level--);
30856 return NULL;
30857 }
30858 void * _res = NULL;
30859 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030860 { // ')'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030861 if (p->error_indicator) {
30862 D(p->level--);
30863 return NULL;
30864 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030865 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030866 Token * _literal;
30867 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030868 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030869 )
30870 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030871 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030872 _res = _literal;
30873 goto done;
30874 }
30875 p->mark = _mark;
30876 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030878 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030879 { // ',' (')' | '**')
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030880 if (p->error_indicator) {
30881 D(p->level--);
30882 return NULL;
30883 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030884 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030885 Token * _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030886 void *_tmp_195_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030887 if (
30888 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30889 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030890 (_tmp_195_var = _tmp_195_rule(p)) // ')' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030891 )
30892 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030893 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070030894 _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030895 goto done;
30896 }
30897 p->mark = _mark;
30898 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030900 }
30901 _res = NULL;
30902 done:
30903 D(p->level--);
30904 return _res;
30905}
30906
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030907// _tmp_160: ':' | ',' (':' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010030908static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030909_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030910{
30911 D(p->level++);
30912 if (p->error_indicator) {
30913 D(p->level--);
30914 return NULL;
30915 }
30916 void * _res = NULL;
30917 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030918 { // ':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030919 if (p->error_indicator) {
30920 D(p->level--);
30921 return NULL;
30922 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030923 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030924 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030925 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030926 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030927 )
30928 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030929 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30930 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030931 goto done;
30932 }
30933 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030934 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30936 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030937 { // ',' (':' | '**')
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030938 if (p->error_indicator) {
30939 D(p->level--);
30940 return NULL;
30941 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030942 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030943 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030944 void *_tmp_196_var;
30945 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030946 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30947 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030948 (_tmp_196_var = _tmp_196_rule(p)) // ':' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030949 )
30950 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030951 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30952 _res = _PyPegen_dummy_name(p, _literal, _tmp_196_var);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030953 goto done;
30954 }
30955 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030956 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030958 }
30959 _res = NULL;
30960 done:
30961 D(p->level--);
30962 return _res;
30963}
30964
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030965// _tmp_161: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030966static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010030967_tmp_161_rule(Parser *p)
30968{
30969 D(p->level++);
30970 if (p->error_indicator) {
30971 D(p->level--);
30972 return NULL;
30973 }
30974 void * _res = NULL;
30975 int _mark = p->mark;
30976 { // ','
30977 if (p->error_indicator) {
30978 D(p->level--);
30979 return NULL;
30980 }
30981 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30982 Token * _literal;
30983 if (
30984 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30985 )
30986 {
30987 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30988 _res = _literal;
30989 goto done;
30990 }
30991 p->mark = _mark;
30992 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
30993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30994 }
30995 { // ')'
30996 if (p->error_indicator) {
30997 D(p->level--);
30998 return NULL;
30999 }
31000 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
31001 Token * _literal;
31002 if (
31003 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
31004 )
31005 {
31006 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
31007 _res = _literal;
31008 goto done;
31009 }
31010 p->mark = _mark;
31011 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
31012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
31013 }
31014 { // ':'
31015 if (p->error_indicator) {
31016 D(p->level--);
31017 return NULL;
31018 }
31019 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
31020 Token * _literal;
31021 if (
31022 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
31023 )
31024 {
31025 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
31026 _res = _literal;
31027 goto done;
31028 }
31029 p->mark = _mark;
31030 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
31031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
31032 }
31033 _res = NULL;
31034 done:
31035 D(p->level--);
31036 return _res;
31037}
31038
31039// _loop0_163: ',' (expression ['as' star_target])
31040static asdl_seq *
31041_loop0_163_rule(Parser *p)
31042{
31043 D(p->level++);
31044 if (p->error_indicator) {
31045 D(p->level--);
31046 return NULL;
31047 }
31048 void *_res = NULL;
31049 int _mark = p->mark;
31050 int _start_mark = p->mark;
31051 void **_children = PyMem_Malloc(sizeof(void *));
31052 if (!_children) {
31053 p->error_indicator = 1;
31054 PyErr_NoMemory();
31055 D(p->level--);
31056 return NULL;
31057 }
31058 Py_ssize_t _children_capacity = 1;
31059 Py_ssize_t _n = 0;
31060 { // ',' (expression ['as' star_target])
31061 if (p->error_indicator) {
31062 D(p->level--);
31063 return NULL;
31064 }
31065 D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31066 Token * _literal;
31067 void *elem;
31068 while (
31069 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31070 &&
31071 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
31072 )
31073 {
31074 _res = elem;
31075 if (_res == NULL && PyErr_Occurred()) {
31076 p->error_indicator = 1;
31077 PyMem_Free(_children);
31078 D(p->level--);
31079 return NULL;
31080 }
31081 if (_n == _children_capacity) {
31082 _children_capacity *= 2;
31083 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31084 if (!_new_children) {
31085 p->error_indicator = 1;
31086 PyErr_NoMemory();
31087 D(p->level--);
31088 return NULL;
31089 }
31090 _children = _new_children;
31091 }
31092 _children[_n++] = _res;
31093 _mark = p->mark;
31094 }
31095 p->mark = _mark;
31096 D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ',
31097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31098 }
31099 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31100 if (!_seq) {
31101 PyMem_Free(_children);
31102 p->error_indicator = 1;
31103 PyErr_NoMemory();
31104 D(p->level--);
31105 return NULL;
31106 }
31107 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31108 PyMem_Free(_children);
31109 _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq);
31110 D(p->level--);
31111 return _seq;
31112}
31113
31114// _gather_162: (expression ['as' star_target]) _loop0_163
31115static asdl_seq *
31116_gather_162_rule(Parser *p)
31117{
31118 D(p->level++);
31119 if (p->error_indicator) {
31120 D(p->level--);
31121 return NULL;
31122 }
31123 asdl_seq * _res = NULL;
31124 int _mark = p->mark;
31125 { // (expression ['as' star_target]) _loop0_163
31126 if (p->error_indicator) {
31127 D(p->level--);
31128 return NULL;
31129 }
31130 D(fprintf(stderr, "%*c> _gather_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163"));
31131 void *elem;
31132 asdl_seq * seq;
31133 if (
31134 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
31135 &&
31136 (seq = _loop0_163_rule(p)) // _loop0_163
31137 )
31138 {
31139 D(fprintf(stderr, "%*c+ _gather_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163"));
31140 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31141 goto done;
31142 }
31143 p->mark = _mark;
31144 D(fprintf(stderr, "%*c%s _gather_162[%d-%d]: %s failed!\n", p->level, ' ',
31145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_163"));
31146 }
31147 _res = NULL;
31148 done:
31149 D(p->level--);
31150 return _res;
31151}
31152
31153// _loop0_165: ',' (expressions ['as' star_target])
31154static asdl_seq *
31155_loop0_165_rule(Parser *p)
31156{
31157 D(p->level++);
31158 if (p->error_indicator) {
31159 D(p->level--);
31160 return NULL;
31161 }
31162 void *_res = NULL;
31163 int _mark = p->mark;
31164 int _start_mark = p->mark;
31165 void **_children = PyMem_Malloc(sizeof(void *));
31166 if (!_children) {
31167 p->error_indicator = 1;
31168 PyErr_NoMemory();
31169 D(p->level--);
31170 return NULL;
31171 }
31172 Py_ssize_t _children_capacity = 1;
31173 Py_ssize_t _n = 0;
31174 { // ',' (expressions ['as' star_target])
31175 if (p->error_indicator) {
31176 D(p->level--);
31177 return NULL;
31178 }
31179 D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31180 Token * _literal;
31181 void *elem;
31182 while (
31183 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31184 &&
31185 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
31186 )
31187 {
31188 _res = elem;
31189 if (_res == NULL && PyErr_Occurred()) {
31190 p->error_indicator = 1;
31191 PyMem_Free(_children);
31192 D(p->level--);
31193 return NULL;
31194 }
31195 if (_n == _children_capacity) {
31196 _children_capacity *= 2;
31197 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31198 if (!_new_children) {
31199 p->error_indicator = 1;
31200 PyErr_NoMemory();
31201 D(p->level--);
31202 return NULL;
31203 }
31204 _children = _new_children;
31205 }
31206 _children[_n++] = _res;
31207 _mark = p->mark;
31208 }
31209 p->mark = _mark;
31210 D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ',
31211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31212 }
31213 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31214 if (!_seq) {
31215 PyMem_Free(_children);
31216 p->error_indicator = 1;
31217 PyErr_NoMemory();
31218 D(p->level--);
31219 return NULL;
31220 }
31221 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31222 PyMem_Free(_children);
31223 _PyPegen_insert_memo(p, _start_mark, _loop0_165_type, _seq);
31224 D(p->level--);
31225 return _seq;
31226}
31227
31228// _gather_164: (expressions ['as' star_target]) _loop0_165
31229static asdl_seq *
31230_gather_164_rule(Parser *p)
31231{
31232 D(p->level++);
31233 if (p->error_indicator) {
31234 D(p->level--);
31235 return NULL;
31236 }
31237 asdl_seq * _res = NULL;
31238 int _mark = p->mark;
31239 { // (expressions ['as' star_target]) _loop0_165
31240 if (p->error_indicator) {
31241 D(p->level--);
31242 return NULL;
31243 }
31244 D(fprintf(stderr, "%*c> _gather_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165"));
31245 void *elem;
31246 asdl_seq * seq;
31247 if (
31248 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
31249 &&
31250 (seq = _loop0_165_rule(p)) // _loop0_165
31251 )
31252 {
31253 D(fprintf(stderr, "%*c+ _gather_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165"));
31254 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31255 goto done;
31256 }
31257 p->mark = _mark;
31258 D(fprintf(stderr, "%*c%s _gather_164[%d-%d]: %s failed!\n", p->level, ' ',
31259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_165"));
31260 }
31261 _res = NULL;
31262 done:
31263 D(p->level--);
31264 return _res;
31265}
31266
31267// _loop0_167: ',' (expression ['as' star_target])
31268static asdl_seq *
31269_loop0_167_rule(Parser *p)
31270{
31271 D(p->level++);
31272 if (p->error_indicator) {
31273 D(p->level--);
31274 return NULL;
31275 }
31276 void *_res = NULL;
31277 int _mark = p->mark;
31278 int _start_mark = p->mark;
31279 void **_children = PyMem_Malloc(sizeof(void *));
31280 if (!_children) {
31281 p->error_indicator = 1;
31282 PyErr_NoMemory();
31283 D(p->level--);
31284 return NULL;
31285 }
31286 Py_ssize_t _children_capacity = 1;
31287 Py_ssize_t _n = 0;
31288 { // ',' (expression ['as' star_target])
31289 if (p->error_indicator) {
31290 D(p->level--);
31291 return NULL;
31292 }
31293 D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31294 Token * _literal;
31295 void *elem;
31296 while (
31297 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31298 &&
31299 (elem = _tmp_199_rule(p)) // expression ['as' star_target]
31300 )
31301 {
31302 _res = elem;
31303 if (_res == NULL && PyErr_Occurred()) {
31304 p->error_indicator = 1;
31305 PyMem_Free(_children);
31306 D(p->level--);
31307 return NULL;
31308 }
31309 if (_n == _children_capacity) {
31310 _children_capacity *= 2;
31311 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31312 if (!_new_children) {
31313 p->error_indicator = 1;
31314 PyErr_NoMemory();
31315 D(p->level--);
31316 return NULL;
31317 }
31318 _children = _new_children;
31319 }
31320 _children[_n++] = _res;
31321 _mark = p->mark;
31322 }
31323 p->mark = _mark;
31324 D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ',
31325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31326 }
31327 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31328 if (!_seq) {
31329 PyMem_Free(_children);
31330 p->error_indicator = 1;
31331 PyErr_NoMemory();
31332 D(p->level--);
31333 return NULL;
31334 }
31335 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31336 PyMem_Free(_children);
31337 _PyPegen_insert_memo(p, _start_mark, _loop0_167_type, _seq);
31338 D(p->level--);
31339 return _seq;
31340}
31341
31342// _gather_166: (expression ['as' star_target]) _loop0_167
31343static asdl_seq *
31344_gather_166_rule(Parser *p)
31345{
31346 D(p->level++);
31347 if (p->error_indicator) {
31348 D(p->level--);
31349 return NULL;
31350 }
31351 asdl_seq * _res = NULL;
31352 int _mark = p->mark;
31353 { // (expression ['as' star_target]) _loop0_167
31354 if (p->error_indicator) {
31355 D(p->level--);
31356 return NULL;
31357 }
31358 D(fprintf(stderr, "%*c> _gather_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167"));
31359 void *elem;
31360 asdl_seq * seq;
31361 if (
31362 (elem = _tmp_199_rule(p)) // expression ['as' star_target]
31363 &&
31364 (seq = _loop0_167_rule(p)) // _loop0_167
31365 )
31366 {
31367 D(fprintf(stderr, "%*c+ _gather_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167"));
31368 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31369 goto done;
31370 }
31371 p->mark = _mark;
31372 D(fprintf(stderr, "%*c%s _gather_166[%d-%d]: %s failed!\n", p->level, ' ',
31373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_167"));
31374 }
31375 _res = NULL;
31376 done:
31377 D(p->level--);
31378 return _res;
31379}
31380
31381// _loop0_169: ',' (expressions ['as' star_target])
31382static asdl_seq *
31383_loop0_169_rule(Parser *p)
31384{
31385 D(p->level++);
31386 if (p->error_indicator) {
31387 D(p->level--);
31388 return NULL;
31389 }
31390 void *_res = NULL;
31391 int _mark = p->mark;
31392 int _start_mark = p->mark;
31393 void **_children = PyMem_Malloc(sizeof(void *));
31394 if (!_children) {
31395 p->error_indicator = 1;
31396 PyErr_NoMemory();
31397 D(p->level--);
31398 return NULL;
31399 }
31400 Py_ssize_t _children_capacity = 1;
31401 Py_ssize_t _n = 0;
31402 { // ',' (expressions ['as' star_target])
31403 if (p->error_indicator) {
31404 D(p->level--);
31405 return NULL;
31406 }
31407 D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31408 Token * _literal;
31409 void *elem;
31410 while (
31411 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31412 &&
31413 (elem = _tmp_200_rule(p)) // expressions ['as' star_target]
31414 )
31415 {
31416 _res = elem;
31417 if (_res == NULL && PyErr_Occurred()) {
31418 p->error_indicator = 1;
31419 PyMem_Free(_children);
31420 D(p->level--);
31421 return NULL;
31422 }
31423 if (_n == _children_capacity) {
31424 _children_capacity *= 2;
31425 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31426 if (!_new_children) {
31427 p->error_indicator = 1;
31428 PyErr_NoMemory();
31429 D(p->level--);
31430 return NULL;
31431 }
31432 _children = _new_children;
31433 }
31434 _children[_n++] = _res;
31435 _mark = p->mark;
31436 }
31437 p->mark = _mark;
31438 D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ',
31439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31440 }
31441 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31442 if (!_seq) {
31443 PyMem_Free(_children);
31444 p->error_indicator = 1;
31445 PyErr_NoMemory();
31446 D(p->level--);
31447 return NULL;
31448 }
31449 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31450 PyMem_Free(_children);
31451 _PyPegen_insert_memo(p, _start_mark, _loop0_169_type, _seq);
31452 D(p->level--);
31453 return _seq;
31454}
31455
31456// _gather_168: (expressions ['as' star_target]) _loop0_169
31457static asdl_seq *
31458_gather_168_rule(Parser *p)
31459{
31460 D(p->level++);
31461 if (p->error_indicator) {
31462 D(p->level--);
31463 return NULL;
31464 }
31465 asdl_seq * _res = NULL;
31466 int _mark = p->mark;
31467 { // (expressions ['as' star_target]) _loop0_169
31468 if (p->error_indicator) {
31469 D(p->level--);
31470 return NULL;
31471 }
31472 D(fprintf(stderr, "%*c> _gather_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169"));
31473 void *elem;
31474 asdl_seq * seq;
31475 if (
31476 (elem = _tmp_200_rule(p)) // expressions ['as' star_target]
31477 &&
31478 (seq = _loop0_169_rule(p)) // _loop0_169
31479 )
31480 {
31481 D(fprintf(stderr, "%*c+ _gather_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169"));
31482 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31483 goto done;
31484 }
31485 p->mark = _mark;
31486 D(fprintf(stderr, "%*c%s _gather_168[%d-%d]: %s failed!\n", p->level, ' ',
31487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_169"));
31488 }
31489 _res = NULL;
31490 done:
31491 D(p->level--);
31492 return _res;
31493}
31494
31495// _tmp_170: 'except' | 'finally'
31496static void *
31497_tmp_170_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031498{
31499 D(p->level++);
31500 if (p->error_indicator) {
31501 D(p->level--);
31502 return NULL;
31503 }
31504 void * _res = NULL;
31505 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031506 { // 'except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031507 if (p->error_indicator) {
31508 D(p->level--);
31509 return NULL;
31510 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031511 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031512 Token * _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031513 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031514 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031515 )
31516 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031517 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031518 _res = _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031519 goto done;
31520 }
31521 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031522 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
31524 }
31525 { // 'finally'
31526 if (p->error_indicator) {
31527 D(p->level--);
31528 return NULL;
31529 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031530 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031531 Token * _keyword;
31532 if (
31533 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
31534 )
31535 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031536 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031537 _res = _keyword;
31538 goto done;
31539 }
31540 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031541 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031543 }
31544 _res = NULL;
31545 done:
31546 D(p->level--);
31547 return _res;
31548}
31549
31550// _tmp_171: 'as' NAME
31551static void *
31552_tmp_171_rule(Parser *p)
31553{
31554 D(p->level++);
31555 if (p->error_indicator) {
31556 D(p->level--);
31557 return NULL;
31558 }
31559 void * _res = NULL;
31560 int _mark = p->mark;
31561 { // 'as' NAME
31562 if (p->error_indicator) {
31563 D(p->level--);
31564 return NULL;
31565 }
31566 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31567 Token * _keyword;
31568 expr_ty name_var;
31569 if (
31570 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31571 &&
31572 (name_var = _PyPegen_name_token(p)) // NAME
31573 )
31574 {
31575 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31576 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31577 goto done;
31578 }
31579 p->mark = _mark;
31580 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31582 }
31583 _res = NULL;
31584 done:
31585 D(p->level--);
31586 return _res;
31587}
31588
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031589// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031590static void *
31591_tmp_172_rule(Parser *p)
31592{
31593 D(p->level++);
31594 if (p->error_indicator) {
31595 D(p->level--);
31596 return NULL;
31597 }
31598 void * _res = NULL;
31599 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031600 { // 'as' NAME
31601 if (p->error_indicator) {
31602 D(p->level--);
31603 return NULL;
31604 }
31605 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31606 Token * _keyword;
31607 expr_ty name_var;
31608 if (
31609 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31610 &&
31611 (name_var = _PyPegen_name_token(p)) // NAME
31612 )
31613 {
31614 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31615 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31616 goto done;
31617 }
31618 p->mark = _mark;
31619 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31621 }
31622 _res = NULL;
31623 done:
31624 D(p->level--);
31625 return _res;
31626}
31627
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031628// _tmp_173: 'as' NAME
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031629static void *
31630_tmp_173_rule(Parser *p)
31631{
31632 D(p->level++);
31633 if (p->error_indicator) {
31634 D(p->level--);
31635 return NULL;
31636 }
31637 void * _res = NULL;
31638 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031639 { // 'as' NAME
31640 if (p->error_indicator) {
31641 D(p->level--);
31642 return NULL;
31643 }
31644 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31645 Token * _keyword;
31646 expr_ty name_var;
31647 if (
31648 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31649 &&
31650 (name_var = _PyPegen_name_token(p)) // NAME
31651 )
31652 {
31653 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31654 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31655 goto done;
31656 }
31657 p->mark = _mark;
31658 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
31659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31660 }
31661 _res = NULL;
31662 done:
31663 D(p->level--);
31664 return _res;
31665}
31666
31667// _tmp_174: positional_patterns ','
31668static void *
31669_tmp_174_rule(Parser *p)
31670{
31671 D(p->level++);
31672 if (p->error_indicator) {
31673 D(p->level--);
31674 return NULL;
31675 }
31676 void * _res = NULL;
31677 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031678 { // positional_patterns ','
31679 if (p->error_indicator) {
31680 D(p->level--);
31681 return NULL;
31682 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031683 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031684 Token * _literal;
31685 asdl_pattern_seq* positional_patterns_var;
31686 if (
31687 (positional_patterns_var = positional_patterns_rule(p)) // positional_patterns
31688 &&
31689 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31690 )
31691 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031692 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031693 _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal);
31694 goto done;
31695 }
31696 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031697 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','"));
31699 }
31700 _res = NULL;
31701 done:
31702 D(p->level--);
31703 return _res;
31704}
31705
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031706// _tmp_175: '->' expression
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031707static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031708_tmp_175_rule(Parser *p)
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070031709{
31710 D(p->level++);
31711 if (p->error_indicator) {
31712 D(p->level--);
31713 return NULL;
31714 }
31715 void * _res = NULL;
31716 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031717 { // '->' expression
31718 if (p->error_indicator) {
31719 D(p->level--);
31720 return NULL;
31721 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031722 D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031723 Token * _literal;
31724 expr_ty expression_var;
31725 if (
31726 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31727 &&
31728 (expression_var = expression_rule(p)) // expression
31729 )
31730 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031731 D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031732 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31733 goto done;
31734 }
31735 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031736 D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31738 }
31739 _res = NULL;
31740 done:
31741 D(p->level--);
31742 return _res;
31743}
31744
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031745// _tmp_176: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031746static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031747_tmp_176_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031748{
31749 D(p->level++);
31750 if (p->error_indicator) {
31751 D(p->level--);
31752 return NULL;
31753 }
31754 void * _res = NULL;
31755 int _mark = p->mark;
31756 { // '(' arguments? ')'
31757 if (p->error_indicator) {
31758 D(p->level--);
31759 return NULL;
31760 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031761 D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031762 Token * _literal;
31763 Token * _literal_1;
31764 void *_opt_var;
31765 UNUSED(_opt_var); // Silence compiler warnings
31766 if (
31767 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31768 &&
31769 (_opt_var = arguments_rule(p), 1) // arguments?
31770 &&
31771 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31772 )
31773 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031774 D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031775 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31776 goto done;
31777 }
31778 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031779 D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31781 }
31782 _res = NULL;
31783 done:
31784 D(p->level--);
31785 return _res;
31786}
31787
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031788// _loop0_178: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031789static asdl_seq *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031790_loop0_178_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031791{
31792 D(p->level++);
31793 if (p->error_indicator) {
31794 D(p->level--);
31795 return NULL;
31796 }
31797 void *_res = NULL;
31798 int _mark = p->mark;
31799 int _start_mark = p->mark;
31800 void **_children = PyMem_Malloc(sizeof(void *));
31801 if (!_children) {
31802 p->error_indicator = 1;
31803 PyErr_NoMemory();
31804 D(p->level--);
31805 return NULL;
31806 }
31807 Py_ssize_t _children_capacity = 1;
31808 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031809 { // ',' double_starred_kvpair
31810 if (p->error_indicator) {
31811 D(p->level--);
31812 return NULL;
31813 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031814 D(fprintf(stderr, "%*c> _loop0_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031815 Token * _literal;
31816 KeyValuePair* elem;
31817 while (
31818 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31819 &&
31820 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31821 )
31822 {
31823 _res = elem;
31824 if (_res == NULL && PyErr_Occurred()) {
31825 p->error_indicator = 1;
31826 PyMem_Free(_children);
31827 D(p->level--);
31828 return NULL;
31829 }
31830 if (_n == _children_capacity) {
31831 _children_capacity *= 2;
31832 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31833 if (!_new_children) {
31834 p->error_indicator = 1;
31835 PyErr_NoMemory();
31836 D(p->level--);
31837 return NULL;
31838 }
31839 _children = _new_children;
31840 }
31841 _children[_n++] = _res;
31842 _mark = p->mark;
31843 }
31844 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031845 D(fprintf(stderr, "%*c%s _loop0_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31847 }
31848 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31849 if (!_seq) {
31850 PyMem_Free(_children);
31851 p->error_indicator = 1;
31852 PyErr_NoMemory();
31853 D(p->level--);
31854 return NULL;
31855 }
31856 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31857 PyMem_Free(_children);
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031858 _PyPegen_insert_memo(p, _start_mark, _loop0_178_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031859 D(p->level--);
31860 return _seq;
31861}
31862
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031863// _gather_177: double_starred_kvpair _loop0_178
Pablo Galindoda743502021-04-15 14:06:39 +010031864static asdl_seq *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031865_gather_177_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031866{
31867 D(p->level++);
31868 if (p->error_indicator) {
31869 D(p->level--);
31870 return NULL;
31871 }
31872 asdl_seq * _res = NULL;
31873 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031874 { // double_starred_kvpair _loop0_178
Pablo Galindoda743502021-04-15 14:06:39 +010031875 if (p->error_indicator) {
31876 D(p->level--);
31877 return NULL;
31878 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031879 D(fprintf(stderr, "%*c> _gather_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178"));
Pablo Galindoda743502021-04-15 14:06:39 +010031880 KeyValuePair* elem;
31881 asdl_seq * seq;
31882 if (
31883 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31884 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031885 (seq = _loop0_178_rule(p)) // _loop0_178
Pablo Galindoda743502021-04-15 14:06:39 +010031886 )
31887 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031888 D(fprintf(stderr, "%*c+ _gather_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178"));
Pablo Galindoda743502021-04-15 14:06:39 +010031889 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31890 goto done;
31891 }
31892 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031893 D(fprintf(stderr, "%*c%s _gather_177[%d-%d]: %s failed!\n", p->level, ' ',
31894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_178"));
Pablo Galindoda743502021-04-15 14:06:39 +010031895 }
31896 _res = NULL;
31897 done:
31898 D(p->level--);
31899 return _res;
31900}
31901
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031902// _tmp_179: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031903static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031904_tmp_179_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031905{
31906 D(p->level++);
31907 if (p->error_indicator) {
31908 D(p->level--);
31909 return NULL;
31910 }
31911 void * _res = NULL;
31912 int _mark = p->mark;
31913 { // '}'
31914 if (p->error_indicator) {
31915 D(p->level--);
31916 return NULL;
31917 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031918 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031919 Token * _literal;
31920 if (
31921 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31922 )
31923 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031924 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031925 _res = _literal;
31926 goto done;
31927 }
31928 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031929 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31931 }
31932 { // ','
31933 if (p->error_indicator) {
31934 D(p->level--);
31935 return NULL;
31936 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031937 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031938 Token * _literal;
31939 if (
31940 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31941 )
31942 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031943 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031944 _res = _literal;
31945 goto done;
31946 }
31947 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031948 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31950 }
31951 _res = NULL;
31952 done:
31953 D(p->level--);
31954 return _res;
31955}
31956
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031957// _tmp_180: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031958static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031959_tmp_180_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031960{
31961 D(p->level++);
31962 if (p->error_indicator) {
31963 D(p->level--);
31964 return NULL;
31965 }
31966 void * _res = NULL;
31967 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031968 { // star_targets '='
31969 if (p->error_indicator) {
31970 D(p->level--);
31971 return NULL;
31972 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031973 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031974 Token * _literal;
31975 expr_ty z;
31976 if (
31977 (z = star_targets_rule(p)) // star_targets
31978 &&
31979 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31980 )
31981 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031982 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031983 _res = z;
31984 if (_res == NULL && PyErr_Occurred()) {
31985 p->error_indicator = 1;
31986 D(p->level--);
31987 return NULL;
31988 }
31989 goto done;
31990 }
31991 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010031992 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31994 }
31995 _res = NULL;
31996 done:
31997 D(p->level--);
31998 return _res;
31999}
32000
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032001// _tmp_181: '.' | '...'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032002static void *
32003_tmp_181_rule(Parser *p)
32004{
32005 D(p->level++);
32006 if (p->error_indicator) {
32007 D(p->level--);
32008 return NULL;
32009 }
32010 void * _res = NULL;
32011 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032012 { // '.'
32013 if (p->error_indicator) {
32014 D(p->level--);
32015 return NULL;
32016 }
32017 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32018 Token * _literal;
32019 if (
32020 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32021 )
32022 {
32023 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32024 _res = _literal;
32025 goto done;
32026 }
32027 p->mark = _mark;
32028 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
32029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32030 }
32031 { // '...'
32032 if (p->error_indicator) {
32033 D(p->level--);
32034 return NULL;
32035 }
32036 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32037 Token * _literal;
32038 if (
32039 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32040 )
32041 {
32042 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32043 _res = _literal;
32044 goto done;
32045 }
32046 p->mark = _mark;
32047 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
32048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32049 }
32050 _res = NULL;
32051 done:
32052 D(p->level--);
32053 return _res;
32054}
32055
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032056// _tmp_182: '.' | '...'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032057static void *
32058_tmp_182_rule(Parser *p)
32059{
32060 D(p->level++);
32061 if (p->error_indicator) {
32062 D(p->level--);
32063 return NULL;
32064 }
32065 void * _res = NULL;
32066 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032067 { // '.'
32068 if (p->error_indicator) {
32069 D(p->level--);
32070 return NULL;
32071 }
32072 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
32073 Token * _literal;
32074 if (
32075 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
32076 )
32077 {
32078 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
32079 _res = _literal;
32080 goto done;
32081 }
32082 p->mark = _mark;
32083 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
32084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
32085 }
32086 { // '...'
32087 if (p->error_indicator) {
32088 D(p->level--);
32089 return NULL;
32090 }
32091 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
32092 Token * _literal;
32093 if (
32094 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
32095 )
32096 {
32097 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
32098 _res = _literal;
32099 goto done;
32100 }
32101 p->mark = _mark;
32102 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
32103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
32104 }
32105 _res = NULL;
32106 done:
32107 D(p->level--);
32108 return _res;
32109}
32110
32111// _tmp_183: '@' named_expression NEWLINE
32112static void *
32113_tmp_183_rule(Parser *p)
32114{
32115 D(p->level++);
32116 if (p->error_indicator) {
32117 D(p->level--);
32118 return NULL;
32119 }
32120 void * _res = NULL;
32121 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032122 { // '@' named_expression NEWLINE
32123 if (p->error_indicator) {
32124 D(p->level--);
32125 return NULL;
32126 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032127 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032128 Token * _literal;
32129 expr_ty f;
32130 Token * newline_var;
32131 if (
32132 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
32133 &&
32134 (f = named_expression_rule(p)) // named_expression
32135 &&
32136 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
32137 )
32138 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032139 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032140 _res = f;
32141 if (_res == NULL && PyErr_Occurred()) {
32142 p->error_indicator = 1;
32143 D(p->level--);
32144 return NULL;
32145 }
32146 goto done;
32147 }
32148 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032149 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
32151 }
32152 _res = NULL;
32153 done:
32154 D(p->level--);
32155 return _res;
32156}
32157
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032158// _tmp_184: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032159static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032160_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032161{
32162 D(p->level++);
32163 if (p->error_indicator) {
32164 D(p->level--);
32165 return NULL;
32166 }
32167 void * _res = NULL;
32168 int _mark = p->mark;
32169 { // ',' star_expression
32170 if (p->error_indicator) {
32171 D(p->level--);
32172 return NULL;
32173 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032174 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032175 Token * _literal;
32176 expr_ty c;
32177 if (
32178 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32179 &&
32180 (c = star_expression_rule(p)) // star_expression
32181 )
32182 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032183 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032184 _res = c;
32185 if (_res == NULL && PyErr_Occurred()) {
32186 p->error_indicator = 1;
32187 D(p->level--);
32188 return NULL;
32189 }
32190 goto done;
32191 }
32192 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032193 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
32195 }
32196 _res = NULL;
32197 done:
32198 D(p->level--);
32199 return _res;
32200}
32201
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032202// _tmp_185: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032203static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032204_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032205{
32206 D(p->level++);
32207 if (p->error_indicator) {
32208 D(p->level--);
32209 return NULL;
32210 }
32211 void * _res = NULL;
32212 int _mark = p->mark;
32213 { // ',' expression
32214 if (p->error_indicator) {
32215 D(p->level--);
32216 return NULL;
32217 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032218 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032219 Token * _literal;
32220 expr_ty c;
32221 if (
32222 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32223 &&
32224 (c = expression_rule(p)) // expression
32225 )
32226 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032227 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032228 _res = c;
32229 if (_res == NULL && PyErr_Occurred()) {
32230 p->error_indicator = 1;
32231 D(p->level--);
32232 return NULL;
32233 }
32234 goto done;
32235 }
32236 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032237 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32239 }
32240 _res = NULL;
32241 done:
32242 D(p->level--);
32243 return _res;
32244}
32245
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032246// _tmp_186: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032247static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032248_tmp_186_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032249{
32250 D(p->level++);
32251 if (p->error_indicator) {
32252 D(p->level--);
32253 return NULL;
32254 }
32255 void * _res = NULL;
32256 int _mark = p->mark;
32257 { // 'or' conjunction
32258 if (p->error_indicator) {
32259 D(p->level--);
32260 return NULL;
32261 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032262 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032263 Token * _keyword;
32264 expr_ty c;
32265 if (
32266 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
32267 &&
32268 (c = conjunction_rule(p)) // conjunction
32269 )
32270 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032271 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032272 _res = c;
32273 if (_res == NULL && PyErr_Occurred()) {
32274 p->error_indicator = 1;
32275 D(p->level--);
32276 return NULL;
32277 }
32278 goto done;
32279 }
32280 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032281 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
32283 }
32284 _res = NULL;
32285 done:
32286 D(p->level--);
32287 return _res;
32288}
32289
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032290// _tmp_187: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032291static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032292_tmp_187_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032293{
32294 D(p->level++);
32295 if (p->error_indicator) {
32296 D(p->level--);
32297 return NULL;
32298 }
32299 void * _res = NULL;
32300 int _mark = p->mark;
32301 { // 'and' inversion
32302 if (p->error_indicator) {
32303 D(p->level--);
32304 return NULL;
32305 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032306 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032307 Token * _keyword;
32308 expr_ty c;
32309 if (
32310 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
32311 &&
32312 (c = inversion_rule(p)) // inversion
32313 )
32314 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032315 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032316 _res = c;
32317 if (_res == NULL && PyErr_Occurred()) {
32318 p->error_indicator = 1;
32319 D(p->level--);
32320 return NULL;
32321 }
32322 goto done;
32323 }
32324 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032325 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032326 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032327 }
32328 _res = NULL;
32329 done:
32330 D(p->level--);
32331 return _res;
32332}
32333
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032334// _tmp_188: 'if' disjunction
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032335static void *
32336_tmp_188_rule(Parser *p)
32337{
32338 D(p->level++);
32339 if (p->error_indicator) {
32340 D(p->level--);
32341 return NULL;
32342 }
32343 void * _res = NULL;
32344 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032345 { // 'if' disjunction
32346 if (p->error_indicator) {
32347 D(p->level--);
32348 return NULL;
32349 }
32350 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32351 Token * _keyword;
32352 expr_ty z;
32353 if (
32354 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32355 &&
32356 (z = disjunction_rule(p)) // disjunction
32357 )
32358 {
32359 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32360 _res = z;
32361 if (_res == NULL && PyErr_Occurred()) {
32362 p->error_indicator = 1;
32363 D(p->level--);
32364 return NULL;
32365 }
32366 goto done;
32367 }
32368 p->mark = _mark;
32369 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
32370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32371 }
32372 _res = NULL;
32373 done:
32374 D(p->level--);
32375 return _res;
32376}
32377
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032378// _tmp_189: 'if' disjunction
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032379static void *
32380_tmp_189_rule(Parser *p)
32381{
32382 D(p->level++);
32383 if (p->error_indicator) {
32384 D(p->level--);
32385 return NULL;
32386 }
32387 void * _res = NULL;
32388 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032389 { // 'if' disjunction
32390 if (p->error_indicator) {
32391 D(p->level--);
32392 return NULL;
32393 }
32394 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32395 Token * _keyword;
32396 expr_ty z;
32397 if (
32398 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32399 &&
32400 (z = disjunction_rule(p)) // disjunction
32401 )
32402 {
32403 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32404 _res = z;
32405 if (_res == NULL && PyErr_Occurred()) {
32406 p->error_indicator = 1;
32407 D(p->level--);
32408 return NULL;
32409 }
32410 goto done;
32411 }
32412 p->mark = _mark;
32413 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
32414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32415 }
32416 _res = NULL;
32417 done:
32418 D(p->level--);
32419 return _res;
32420}
32421
32422// _tmp_190: starred_expression | (assigment_expression | expression !':=') !'='
32423static void *
32424_tmp_190_rule(Parser *p)
32425{
32426 D(p->level++);
32427 if (p->error_indicator) {
32428 D(p->level--);
32429 return NULL;
32430 }
32431 void * _res = NULL;
32432 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032433 { // starred_expression
32434 if (p->error_indicator) {
32435 D(p->level--);
32436 return NULL;
32437 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032438 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032439 expr_ty starred_expression_var;
32440 if (
32441 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32442 )
32443 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032444 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032445 _res = starred_expression_var;
32446 goto done;
32447 }
32448 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032449 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32451 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032452 { // (assigment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032453 if (p->error_indicator) {
32454 D(p->level--);
32455 return NULL;
32456 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032457 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32458 void *_tmp_201_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032459 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032460 (_tmp_201_var = _tmp_201_rule(p)) // assigment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032461 &&
32462 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32463 )
32464 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032465 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32466 _res = _tmp_201_var;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032467 goto done;
32468 }
32469 p->mark = _mark;
32470 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032472 }
32473 _res = NULL;
32474 done:
32475 D(p->level--);
32476 return _res;
32477}
32478
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032479// _tmp_191: ',' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032480static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032481_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032482{
32483 D(p->level++);
32484 if (p->error_indicator) {
32485 D(p->level--);
32486 return NULL;
32487 }
32488 void * _res = NULL;
32489 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032490 { // ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032491 if (p->error_indicator) {
32492 D(p->level--);
32493 return NULL;
32494 }
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032495 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032496 Token * _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032497 expr_ty c;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032498 if (
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032499 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoa77aac42021-04-23 14:27:05 +010032500 &&
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032501 (c = star_target_rule(p)) // star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032502 )
32503 {
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032504 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32505 _res = c;
32506 if (_res == NULL && PyErr_Occurred()) {
32507 p->error_indicator = 1;
32508 D(p->level--);
32509 return NULL;
32510 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032511 goto done;
32512 }
32513 p->mark = _mark;
32514 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032516 }
32517 _res = NULL;
32518 done:
32519 D(p->level--);
32520 return _res;
32521}
32522
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032523// _tmp_192: ',' star_target
Pablo Galindoa77aac42021-04-23 14:27:05 +010032524static void *
32525_tmp_192_rule(Parser *p)
32526{
32527 D(p->level++);
32528 if (p->error_indicator) {
32529 D(p->level--);
32530 return NULL;
32531 }
32532 void * _res = NULL;
32533 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032534 { // ',' star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032535 if (p->error_indicator) {
32536 D(p->level--);
32537 return NULL;
32538 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032539 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032540 Token * _literal;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032541 expr_ty c;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032542 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032543 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032544 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032545 (c = star_target_rule(p)) // star_target
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032546 )
32547 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032548 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32549 _res = c;
32550 if (_res == NULL && PyErr_Occurred()) {
32551 p->error_indicator = 1;
32552 D(p->level--);
32553 return NULL;
32554 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032555 goto done;
32556 }
32557 p->mark = _mark;
32558 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032560 }
32561 _res = NULL;
32562 done:
32563 D(p->level--);
32564 return _res;
32565}
32566
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032567// _tmp_193: star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032568static void *
32569_tmp_193_rule(Parser *p)
32570{
32571 D(p->level++);
32572 if (p->error_indicator) {
32573 D(p->level--);
32574 return NULL;
32575 }
32576 void * _res = NULL;
32577 int _mark = p->mark;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032578 { // star_targets '='
32579 if (p->error_indicator) {
32580 D(p->level--);
32581 return NULL;
32582 }
32583 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32584 Token * _literal;
32585 expr_ty star_targets_var;
32586 if (
32587 (star_targets_var = star_targets_rule(p)) // star_targets
32588 &&
32589 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32590 )
32591 {
32592 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32593 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32594 goto done;
32595 }
32596 p->mark = _mark;
32597 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
32598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32599 }
32600 _res = NULL;
32601 done:
32602 D(p->level--);
32603 return _res;
32604}
32605
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032606// _tmp_194: star_targets '='
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032607static void *
32608_tmp_194_rule(Parser *p)
32609{
32610 D(p->level++);
32611 if (p->error_indicator) {
32612 D(p->level--);
32613 return NULL;
32614 }
32615 void * _res = NULL;
32616 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032617 { // star_targets '='
32618 if (p->error_indicator) {
32619 D(p->level--);
32620 return NULL;
32621 }
32622 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32623 Token * _literal;
32624 expr_ty star_targets_var;
32625 if (
32626 (star_targets_var = star_targets_rule(p)) // star_targets
32627 &&
32628 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32629 )
32630 {
32631 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32632 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32633 goto done;
32634 }
32635 p->mark = _mark;
32636 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
32637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32638 }
32639 _res = NULL;
32640 done:
32641 D(p->level--);
32642 return _res;
32643}
32644
32645// _tmp_195: ')' | '**'
32646static void *
32647_tmp_195_rule(Parser *p)
32648{
32649 D(p->level++);
32650 if (p->error_indicator) {
32651 D(p->level--);
32652 return NULL;
32653 }
32654 void * _res = NULL;
32655 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032656 { // ')'
32657 if (p->error_indicator) {
32658 D(p->level--);
32659 return NULL;
32660 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032661 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032662 Token * _literal;
32663 if (
32664 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32665 )
32666 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032667 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032668 _res = _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032669 goto done;
32670 }
32671 p->mark = _mark;
32672 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032674 }
32675 { // '**'
32676 if (p->error_indicator) {
32677 D(p->level--);
32678 return NULL;
32679 }
32680 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32681 Token * _literal;
32682 if (
32683 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32684 )
32685 {
32686 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32687 _res = _literal;
32688 goto done;
32689 }
32690 p->mark = _mark;
32691 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032693 }
32694 _res = NULL;
32695 done:
32696 D(p->level--);
32697 return _res;
32698}
32699
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032700// _tmp_196: ':' | '**'
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032701static void *
32702_tmp_196_rule(Parser *p)
32703{
32704 D(p->level++);
32705 if (p->error_indicator) {
32706 D(p->level--);
32707 return NULL;
32708 }
32709 void * _res = NULL;
32710 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032711 { // ':'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032712 if (p->error_indicator) {
32713 D(p->level--);
32714 return NULL;
32715 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032716 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32717 Token * _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032718 if (
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032719 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032720 )
32721 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032722 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32723 _res = _literal;
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032724 goto done;
32725 }
32726 p->mark = _mark;
32727 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32729 }
32730 { // '**'
32731 if (p->error_indicator) {
32732 D(p->level--);
32733 return NULL;
32734 }
32735 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32736 Token * _literal;
32737 if (
32738 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32739 )
32740 {
32741 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32742 _res = _literal;
32743 goto done;
32744 }
32745 p->mark = _mark;
32746 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
32747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032748 }
32749 _res = NULL;
32750 done:
32751 D(p->level--);
32752 return _res;
32753}
32754
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032755// _tmp_197: expression ['as' star_target]
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070032756static void *
32757_tmp_197_rule(Parser *p)
32758{
32759 D(p->level++);
32760 if (p->error_indicator) {
32761 D(p->level--);
32762 return NULL;
32763 }
32764 void * _res = NULL;
32765 int _mark = p->mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032766 { // expression ['as' star_target]
32767 if (p->error_indicator) {
32768 D(p->level--);
32769 return NULL;
32770 }
32771 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32772 void *_opt_var;
32773 UNUSED(_opt_var); // Silence compiler warnings
32774 expr_ty expression_var;
32775 if (
32776 (expression_var = expression_rule(p)) // expression
32777 &&
32778 (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target]
32779 )
32780 {
32781 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32782 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32783 goto done;
32784 }
32785 p->mark = _mark;
32786 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
32787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32788 }
32789 _res = NULL;
32790 done:
32791 D(p->level--);
32792 return _res;
32793}
32794
32795// _tmp_198: expressions ['as' star_target]
32796static void *
32797_tmp_198_rule(Parser *p)
32798{
32799 D(p->level++);
32800 if (p->error_indicator) {
32801 D(p->level--);
32802 return NULL;
32803 }
32804 void * _res = NULL;
32805 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032806 { // expressions ['as' star_target]
32807 if (p->error_indicator) {
32808 D(p->level--);
32809 return NULL;
32810 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032811 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032812 void *_opt_var;
32813 UNUSED(_opt_var); // Silence compiler warnings
32814 expr_ty expressions_var;
32815 if (
32816 (expressions_var = expressions_rule(p)) // expressions
32817 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032818 (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target]
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032819 )
32820 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032821 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032822 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32823 goto done;
32824 }
32825 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032826 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
32828 }
32829 _res = NULL;
32830 done:
32831 D(p->level--);
32832 return _res;
32833}
32834
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032835// _tmp_199: expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032836static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032837_tmp_199_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032838{
32839 D(p->level++);
32840 if (p->error_indicator) {
32841 D(p->level--);
32842 return NULL;
32843 }
32844 void * _res = NULL;
32845 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032846 { // expression ['as' star_target]
32847 if (p->error_indicator) {
32848 D(p->level--);
32849 return NULL;
32850 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032851 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032852 void *_opt_var;
32853 UNUSED(_opt_var); // Silence compiler warnings
32854 expr_ty expression_var;
32855 if (
32856 (expression_var = expression_rule(p)) // expression
32857 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032858 (_opt_var = _tmp_204_rule(p), 1) // ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032859 )
32860 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032861 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032862 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32863 goto done;
32864 }
32865 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032866 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32868 }
32869 _res = NULL;
32870 done:
32871 D(p->level--);
32872 return _res;
32873}
32874
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032875// _tmp_200: expressions ['as' star_target]
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032876static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032877_tmp_200_rule(Parser *p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032878{
32879 D(p->level++);
32880 if (p->error_indicator) {
32881 D(p->level--);
32882 return NULL;
32883 }
32884 void * _res = NULL;
32885 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032886 { // expressions ['as' star_target]
32887 if (p->error_indicator) {
32888 D(p->level--);
32889 return NULL;
32890 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032891 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032892 void *_opt_var;
32893 UNUSED(_opt_var); // Silence compiler warnings
32894 expr_ty expressions_var;
32895 if (
32896 (expressions_var = expressions_rule(p)) // expressions
32897 &&
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032898 (_opt_var = _tmp_205_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032899 )
32900 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032901 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032902 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32903 goto done;
32904 }
32905 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032906 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032908 }
32909 _res = NULL;
32910 done:
32911 D(p->level--);
32912 return _res;
32913}
32914
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032915// _tmp_201: assigment_expression | expression !':='
Pablo Galindo58fb1562021-02-02 19:54:22 +000032916static void *
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032917_tmp_201_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032918{
32919 D(p->level++);
32920 if (p->error_indicator) {
32921 D(p->level--);
32922 return NULL;
32923 }
32924 void * _res = NULL;
32925 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032926 { // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032927 if (p->error_indicator) {
32928 D(p->level--);
32929 return NULL;
32930 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032931 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032932 expr_ty assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032933 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032934 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032935 )
32936 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032937 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032938 _res = assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032939 goto done;
32940 }
32941 p->mark = _mark;
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032942 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
32944 }
32945 { // expression !':='
32946 if (p->error_indicator) {
32947 D(p->level--);
32948 return NULL;
32949 }
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032950 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032951 expr_ty expression_var;
32952 if (
32953 (expression_var = expression_rule(p)) // expression
32954 &&
32955 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
32956 )
32957 {
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032958 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032959 _res = expression_var;
32960 goto done;
32961 }
32962 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032963 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010032964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032965 }
32966 _res = NULL;
32967 done:
32968 D(p->level--);
32969 return _res;
32970}
32971
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032972// _tmp_202: 'as' star_target
32973static void *
32974_tmp_202_rule(Parser *p)
32975{
32976 D(p->level++);
32977 if (p->error_indicator) {
32978 D(p->level--);
32979 return NULL;
32980 }
32981 void * _res = NULL;
32982 int _mark = p->mark;
32983 { // 'as' star_target
32984 if (p->error_indicator) {
32985 D(p->level--);
32986 return NULL;
32987 }
32988 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32989 Token * _keyword;
32990 expr_ty star_target_var;
32991 if (
32992 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32993 &&
32994 (star_target_var = star_target_rule(p)) // star_target
32995 )
32996 {
32997 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32998 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32999 goto done;
33000 }
33001 p->mark = _mark;
33002 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
33003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33004 }
33005 _res = NULL;
33006 done:
33007 D(p->level--);
33008 return _res;
33009}
33010
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070033011// _tmp_203: 'as' star_target
33012static void *
33013_tmp_203_rule(Parser *p)
33014{
33015 D(p->level++);
33016 if (p->error_indicator) {
33017 D(p->level--);
33018 return NULL;
33019 }
33020 void * _res = NULL;
33021 int _mark = p->mark;
33022 { // 'as' star_target
33023 if (p->error_indicator) {
33024 D(p->level--);
33025 return NULL;
33026 }
33027 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33028 Token * _keyword;
33029 expr_ty star_target_var;
33030 if (
33031 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33032 &&
33033 (star_target_var = star_target_rule(p)) // star_target
33034 )
33035 {
33036 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33037 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33038 goto done;
33039 }
33040 p->mark = _mark;
33041 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
33042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33043 }
33044 _res = NULL;
33045 done:
33046 D(p->level--);
33047 return _res;
33048}
33049
Miss Islington (bot)11f1a302021-06-24 08:34:28 -070033050// _tmp_204: 'as' star_target
33051static void *
33052_tmp_204_rule(Parser *p)
33053{
33054 D(p->level++);
33055 if (p->error_indicator) {
33056 D(p->level--);
33057 return NULL;
33058 }
33059 void * _res = NULL;
33060 int _mark = p->mark;
33061 { // 'as' star_target
33062 if (p->error_indicator) {
33063 D(p->level--);
33064 return NULL;
33065 }
33066 D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33067 Token * _keyword;
33068 expr_ty star_target_var;
33069 if (
33070 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33071 &&
33072 (star_target_var = star_target_rule(p)) // star_target
33073 )
33074 {
33075 D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33076 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33077 goto done;
33078 }
33079 p->mark = _mark;
33080 D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ',
33081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33082 }
33083 _res = NULL;
33084 done:
33085 D(p->level--);
33086 return _res;
33087}
33088
Pablo Galindo Salgadob1bd16c2021-08-05 19:00:19 +010033089// _tmp_205: 'as' star_target
33090static void *
33091_tmp_205_rule(Parser *p)
33092{
33093 D(p->level++);
33094 if (p->error_indicator) {
33095 D(p->level--);
33096 return NULL;
33097 }
33098 void * _res = NULL;
33099 int _mark = p->mark;
33100 { // 'as' star_target
33101 if (p->error_indicator) {
33102 D(p->level--);
33103 return NULL;
33104 }
33105 D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33106 Token * _keyword;
33107 expr_ty star_target_var;
33108 if (
33109 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
33110 &&
33111 (star_target_var = star_target_rule(p)) // star_target
33112 )
33113 {
33114 D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
33115 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
33116 goto done;
33117 }
33118 p->mark = _mark;
33119 D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ',
33120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
33121 }
33122 _res = NULL;
33123 done:
33124 D(p->level--);
33125 return _res;
33126}
33127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033128void *
33129_PyPegen_parse(Parser *p)
33130{
33131 // Initialize keywords
33132 p->keywords = reserved_keywords;
33133 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010033134 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010033135
33136 // Run parser
33137 void *result = NULL;
33138 if (p->start_rule == Py_file_input) {
33139 result = file_rule(p);
33140 } else if (p->start_rule == Py_single_input) {
33141 result = interactive_rule(p);
33142 } else if (p->start_rule == Py_eval_input) {
33143 result = eval_rule(p);
33144 } else if (p->start_rule == Py_func_type_input) {
33145 result = func_type_rule(p);
33146 } else if (p->start_rule == Py_fstring_input) {
33147 result = fstring_rule(p);
33148 }
33149
33150 return result;
33151}
33152
33153// The end