blob: c0e7f791003fafdea042a05ac2ece869c2902d5f [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Victor Stinner6af528b2021-03-18 09:54:13 +01005# define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00006#else
Victor Stinner6af528b2021-03-18 09:54:13 +01007# define D(x)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00008#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009static const int n_keyword_lists = 9;
10static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010011 (KeywordToken[]) {{NULL, -1}},
12 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013 (KeywordToken[]) {
14 {"if", 510},
15 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080017 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018 {"or", 531},
19 {NULL, -1},
20 },
21 (KeywordToken[]) {
22 {"del", 503},
23 {"try", 511},
24 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080025 {"def", 526},
26 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027 {"and", 532},
28 {NULL, -1},
29 },
30 (KeywordToken[]) {
31 {"pass", 502},
32 {"from", 514},
33 {"elif", 515},
34 {"else", 516},
35 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080036 {"None", 523},
37 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010038 {NULL, -1},
39 },
40 (KeywordToken[]) {
41 {"raise", 501},
42 {"yield", 504},
43 {"break", 506},
44 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080045 {"False", 525},
46 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010047 {NULL, -1},
48 },
49 (KeywordToken[]) {
50 {"return", 500},
51 {"assert", 505},
52 {"global", 508},
53 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030054 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080055 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010056 {NULL, -1},
57 },
58 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030059 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010060 {NULL, -1},
61 },
62 (KeywordToken[]) {
63 {"continue", 507},
64 {"nonlocal", 509},
65 {NULL, -1},
66 },
67};
Pablo Galindob2802482021-04-15 21:38:45 +010068static char *soft_keywords[] = {
69 "_",
70 "case",
71 "match",
72 NULL,
73};
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010074#define file_type 1000
75#define interactive_type 1001
76#define eval_type 1002
77#define func_type_type 1003
78#define fstring_type 1004
79#define type_expressions_type 1005
80#define statements_type 1006
81#define statement_type 1007
82#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000083#define simple_stmts_type 1009
84#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010085#define compound_stmt_type 1011
86#define assignment_type 1012
87#define augassign_type 1013
88#define global_stmt_type 1014
89#define nonlocal_stmt_type 1015
90#define yield_stmt_type 1016
91#define assert_stmt_type 1017
92#define del_stmt_type 1018
93#define import_stmt_type 1019
94#define import_name_type 1020
95#define import_from_type 1021
96#define import_from_targets_type 1022
97#define import_from_as_names_type 1023
98#define import_from_as_name_type 1024
99#define dotted_as_names_type 1025
100#define dotted_as_name_type 1026
101#define dotted_name_type 1027 // Left-recursive
102#define if_stmt_type 1028
103#define elif_stmt_type 1029
104#define else_block_type 1030
105#define while_stmt_type 1031
106#define for_stmt_type 1032
107#define with_stmt_type 1033
108#define with_item_type 1034
109#define try_stmt_type 1035
110#define except_block_type 1036
111#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800112#define match_stmt_type 1038
113#define subject_expr_type 1039
114#define case_block_type 1040
115#define guard_type 1041
116#define patterns_type 1042
117#define pattern_type 1043
118#define as_pattern_type 1044
119#define or_pattern_type 1045
120#define closed_pattern_type 1046
121#define literal_pattern_type 1047
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000122#define literal_expr_type 1048
123#define complex_number_type 1049
124#define signed_number_type 1050
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700125#define signed_real_number_type 1051
126#define real_number_type 1052
127#define imaginary_number_type 1053
128#define capture_pattern_type 1054
129#define pattern_capture_target_type 1055
130#define wildcard_pattern_type 1056
131#define value_pattern_type 1057
132#define attr_type 1058 // Left-recursive
133#define name_or_attr_type 1059 // Left-recursive
134#define group_pattern_type 1060
135#define sequence_pattern_type 1061
136#define open_sequence_pattern_type 1062
137#define maybe_sequence_pattern_type 1063
138#define maybe_star_pattern_type 1064
139#define star_pattern_type 1065
140#define mapping_pattern_type 1066
141#define items_pattern_type 1067
142#define key_value_pattern_type 1068
143#define double_star_pattern_type 1069
144#define class_pattern_type 1070
145#define positional_patterns_type 1071
146#define keyword_patterns_type 1072
147#define keyword_pattern_type 1073
148#define return_stmt_type 1074
149#define raise_stmt_type 1075
150#define function_def_type 1076
151#define function_def_raw_type 1077
152#define func_type_comment_type 1078
153#define params_type 1079
154#define parameters_type 1080
155#define slash_no_default_type 1081
156#define slash_with_default_type 1082
157#define star_etc_type 1083
158#define kwds_type 1084
159#define param_no_default_type 1085
160#define param_with_default_type 1086
161#define param_maybe_default_type 1087
162#define param_type 1088
163#define annotation_type 1089
164#define default_type 1090
165#define decorators_type 1091
166#define class_def_type 1092
167#define class_def_raw_type 1093
168#define block_type 1094
169#define star_expressions_type 1095
170#define star_expression_type 1096
171#define star_named_expressions_type 1097
172#define star_named_expression_type 1098
173#define named_expression_type 1099
174#define direct_named_expression_type 1100
175#define annotated_rhs_type 1101
176#define expressions_type 1102
177#define expression_type 1103
178#define lambdef_type 1104
179#define lambda_params_type 1105
180#define lambda_parameters_type 1106
181#define lambda_slash_no_default_type 1107
182#define lambda_slash_with_default_type 1108
183#define lambda_star_etc_type 1109
184#define lambda_kwds_type 1110
185#define lambda_param_no_default_type 1111
186#define lambda_param_with_default_type 1112
187#define lambda_param_maybe_default_type 1113
188#define lambda_param_type 1114
189#define disjunction_type 1115
190#define conjunction_type 1116
191#define inversion_type 1117
192#define comparison_type 1118
193#define compare_op_bitwise_or_pair_type 1119
194#define eq_bitwise_or_type 1120
195#define noteq_bitwise_or_type 1121
196#define lte_bitwise_or_type 1122
197#define lt_bitwise_or_type 1123
198#define gte_bitwise_or_type 1124
199#define gt_bitwise_or_type 1125
200#define notin_bitwise_or_type 1126
201#define in_bitwise_or_type 1127
202#define isnot_bitwise_or_type 1128
203#define is_bitwise_or_type 1129
204#define bitwise_or_type 1130 // Left-recursive
205#define bitwise_xor_type 1131 // Left-recursive
206#define bitwise_and_type 1132 // Left-recursive
207#define shift_expr_type 1133 // Left-recursive
208#define sum_type 1134 // Left-recursive
209#define term_type 1135 // Left-recursive
210#define factor_type 1136
211#define power_type 1137
212#define await_primary_type 1138
213#define primary_type 1139 // Left-recursive
214#define slices_type 1140
215#define slice_type 1141
216#define atom_type 1142
217#define strings_type 1143
218#define list_type 1144
219#define listcomp_type 1145
220#define tuple_type 1146
221#define group_type 1147
222#define genexp_type 1148
223#define set_type 1149
224#define setcomp_type 1150
225#define dict_type 1151
226#define dictcomp_type 1152
227#define double_starred_kvpairs_type 1153
228#define double_starred_kvpair_type 1154
229#define kvpair_type 1155
230#define for_if_clauses_type 1156
231#define for_if_clause_type 1157
232#define yield_expr_type 1158
233#define arguments_type 1159
234#define args_type 1160
235#define kwargs_type 1161
236#define starred_expression_type 1162
237#define kwarg_or_starred_type 1163
238#define kwarg_or_double_starred_type 1164
239#define star_targets_type 1165
240#define star_targets_list_seq_type 1166
241#define star_targets_tuple_seq_type 1167
242#define star_target_type 1168
243#define target_with_star_atom_type 1169
244#define star_atom_type 1170
245#define single_target_type 1171
246#define single_subscript_attribute_target_type 1172
247#define del_targets_type 1173
248#define del_target_type 1174
249#define del_t_atom_type 1175
250#define targets_type 1176
251#define target_type 1177
252#define t_primary_type 1178 // Left-recursive
253#define t_lookahead_type 1179
254#define t_atom_type 1180
255#define invalid_arguments_type 1181
256#define invalid_kwarg_type 1182
257#define invalid_expression_type 1183
258#define invalid_named_expression_type 1184
259#define invalid_assignment_type 1185
260#define invalid_ann_assign_target_type 1186
261#define invalid_del_stmt_type 1187
262#define invalid_block_type 1188
263#define invalid_primary_type 1189 // Left-recursive
264#define invalid_comprehension_type 1190
265#define invalid_dict_comprehension_type 1191
266#define invalid_parameters_type 1192
267#define invalid_parameters_helper_type 1193
268#define invalid_lambda_parameters_type 1194
269#define invalid_lambda_parameters_helper_type 1195
270#define invalid_star_etc_type 1196
271#define invalid_lambda_star_etc_type 1197
272#define invalid_double_type_comments_type 1198
273#define invalid_with_item_type 1199
274#define invalid_for_target_type 1200
275#define invalid_group_type 1201
276#define invalid_import_from_targets_type 1202
277#define invalid_with_stmt_type 1203
278#define invalid_with_stmt_indent_type 1204
279#define invalid_try_stmt_type 1205
280#define invalid_except_stmt_type 1206
281#define invalid_finally_stmt_type 1207
282#define invalid_except_stmt_indent_type 1208
283#define invalid_match_stmt_type 1209
284#define invalid_case_block_type 1210
285#define invalid_if_stmt_type 1211
286#define invalid_elif_stmt_type 1212
287#define invalid_else_stmt_type 1213
288#define invalid_while_stmt_type 1214
289#define invalid_for_stmt_type 1215
290#define invalid_def_raw_type 1216
291#define invalid_class_def_raw_type 1217
292#define invalid_double_starred_kvpairs_type 1218
293#define invalid_kvpair_type 1219
294#define _loop0_1_type 1220
295#define _loop0_2_type 1221
296#define _loop0_4_type 1222
297#define _gather_3_type 1223
298#define _loop0_6_type 1224
299#define _gather_5_type 1225
300#define _loop0_8_type 1226
301#define _gather_7_type 1227
302#define _loop0_10_type 1228
303#define _gather_9_type 1229
304#define _loop1_11_type 1230
305#define _loop0_13_type 1231
306#define _gather_12_type 1232
307#define _tmp_14_type 1233
308#define _tmp_15_type 1234
309#define _tmp_16_type 1235
310#define _tmp_17_type 1236
311#define _tmp_18_type 1237
312#define _tmp_19_type 1238
313#define _tmp_20_type 1239
314#define _tmp_21_type 1240
315#define _loop1_22_type 1241
316#define _tmp_23_type 1242
317#define _tmp_24_type 1243
318#define _loop0_26_type 1244
319#define _gather_25_type 1245
320#define _loop0_28_type 1246
321#define _gather_27_type 1247
322#define _tmp_29_type 1248
323#define _tmp_30_type 1249
324#define _loop0_31_type 1250
325#define _loop1_32_type 1251
326#define _loop0_34_type 1252
327#define _gather_33_type 1253
328#define _tmp_35_type 1254
329#define _loop0_37_type 1255
330#define _gather_36_type 1256
331#define _tmp_38_type 1257
332#define _loop0_40_type 1258
333#define _gather_39_type 1259
334#define _loop0_42_type 1260
335#define _gather_41_type 1261
336#define _loop0_44_type 1262
337#define _gather_43_type 1263
338#define _loop0_46_type 1264
339#define _gather_45_type 1265
340#define _tmp_47_type 1266
341#define _loop1_48_type 1267
342#define _tmp_49_type 1268
343#define _loop1_50_type 1269
344#define _loop0_52_type 1270
345#define _gather_51_type 1271
346#define _tmp_53_type 1272
347#define _tmp_54_type 1273
348#define _tmp_55_type 1274
349#define _tmp_56_type 1275
350#define _loop0_58_type 1276
351#define _gather_57_type 1277
352#define _loop0_60_type 1278
353#define _gather_59_type 1279
354#define _tmp_61_type 1280
355#define _loop0_63_type 1281
356#define _gather_62_type 1282
357#define _loop0_65_type 1283
358#define _gather_64_type 1284
359#define _tmp_66_type 1285
360#define _tmp_67_type 1286
361#define _tmp_68_type 1287
362#define _tmp_69_type 1288
363#define _loop0_70_type 1289
364#define _loop0_71_type 1290
365#define _loop0_72_type 1291
366#define _loop1_73_type 1292
367#define _loop0_74_type 1293
368#define _loop1_75_type 1294
369#define _loop1_76_type 1295
370#define _loop1_77_type 1296
371#define _loop0_78_type 1297
372#define _loop1_79_type 1298
373#define _loop0_80_type 1299
374#define _loop1_81_type 1300
375#define _loop0_82_type 1301
376#define _loop1_83_type 1302
377#define _loop1_84_type 1303
378#define _tmp_85_type 1304
379#define _loop1_86_type 1305
380#define _loop0_88_type 1306
381#define _gather_87_type 1307
382#define _loop1_89_type 1308
383#define _loop0_90_type 1309
384#define _loop0_91_type 1310
385#define _loop0_92_type 1311
386#define _loop1_93_type 1312
387#define _loop0_94_type 1313
388#define _loop1_95_type 1314
389#define _loop1_96_type 1315
390#define _loop1_97_type 1316
391#define _loop0_98_type 1317
392#define _loop1_99_type 1318
393#define _loop0_100_type 1319
394#define _loop1_101_type 1320
395#define _loop0_102_type 1321
396#define _loop1_103_type 1322
397#define _loop1_104_type 1323
398#define _loop1_105_type 1324
399#define _loop1_106_type 1325
400#define _tmp_107_type 1326
401#define _loop0_109_type 1327
402#define _gather_108_type 1328
403#define _tmp_110_type 1329
404#define _tmp_111_type 1330
405#define _tmp_112_type 1331
406#define _tmp_113_type 1332
407#define _loop1_114_type 1333
408#define _tmp_115_type 1334
409#define _tmp_116_type 1335
410#define _loop0_118_type 1336
411#define _gather_117_type 1337
412#define _loop1_119_type 1338
413#define _loop0_120_type 1339
414#define _loop0_121_type 1340
415#define _loop0_123_type 1341
416#define _gather_122_type 1342
417#define _tmp_124_type 1343
418#define _loop0_126_type 1344
419#define _gather_125_type 1345
420#define _loop0_128_type 1346
421#define _gather_127_type 1347
422#define _loop0_130_type 1348
423#define _gather_129_type 1349
424#define _loop0_132_type 1350
425#define _gather_131_type 1351
426#define _loop0_133_type 1352
427#define _loop0_135_type 1353
428#define _gather_134_type 1354
429#define _loop1_136_type 1355
430#define _tmp_137_type 1356
431#define _loop0_139_type 1357
432#define _gather_138_type 1358
433#define _loop0_141_type 1359
434#define _gather_140_type 1360
435#define _tmp_142_type 1361
436#define _tmp_143_type 1362
437#define _tmp_144_type 1363
438#define _tmp_145_type 1364
439#define _tmp_146_type 1365
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700440#define _tmp_147_type 1366
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700441#define _loop0_148_type 1367
442#define _loop0_149_type 1368
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700443#define _loop0_150_type 1369
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700444#define _tmp_151_type 1370
445#define _tmp_152_type 1371
446#define _tmp_153_type 1372
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700447#define _tmp_154_type 1373
448#define _loop0_155_type 1374
449#define _loop1_156_type 1375
450#define _loop0_157_type 1376
451#define _loop1_158_type 1377
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700452#define _tmp_159_type 1378
453#define _tmp_160_type 1379
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700454#define _tmp_161_type 1380
455#define _loop0_163_type 1381
456#define _gather_162_type 1382
457#define _loop0_165_type 1383
458#define _gather_164_type 1384
459#define _loop0_167_type 1385
460#define _gather_166_type 1386
461#define _loop0_169_type 1387
462#define _gather_168_type 1388
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700463#define _tmp_170_type 1389
464#define _tmp_171_type 1390
465#define _tmp_172_type 1391
466#define _tmp_173_type 1392
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700467#define _tmp_174_type 1393
468#define _loop0_176_type 1394
469#define _gather_175_type 1395
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700470#define _tmp_177_type 1396
471#define _tmp_178_type 1397
472#define _tmp_179_type 1398
473#define _tmp_180_type 1399
474#define _tmp_181_type 1400
475#define _tmp_182_type 1401
476#define _tmp_183_type 1402
477#define _tmp_184_type 1403
478#define _tmp_185_type 1404
479#define _tmp_186_type 1405
480#define _tmp_187_type 1406
481#define _tmp_188_type 1407
482#define _tmp_189_type 1408
483#define _tmp_190_type 1409
484#define _tmp_191_type 1410
485#define _tmp_192_type 1411
486#define _tmp_193_type 1412
487#define _tmp_194_type 1413
488#define _tmp_195_type 1414
489#define _tmp_196_type 1415
490#define _tmp_197_type 1416
491#define _tmp_198_type 1417
492#define _tmp_199_type 1418
493#define _tmp_200_type 1419
494#define _tmp_201_type 1420
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700495#define _tmp_202_type 1421
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100496
497static mod_ty file_rule(Parser *p);
498static mod_ty interactive_rule(Parser *p);
499static mod_ty eval_rule(Parser *p);
500static mod_ty func_type_rule(Parser *p);
501static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100502static asdl_expr_seq* type_expressions_rule(Parser *p);
503static asdl_stmt_seq* statements_rule(Parser *p);
504static asdl_stmt_seq* statement_rule(Parser *p);
505static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000506static asdl_stmt_seq* simple_stmts_rule(Parser *p);
507static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100508static stmt_ty compound_stmt_rule(Parser *p);
509static stmt_ty assignment_rule(Parser *p);
510static AugOperator* augassign_rule(Parser *p);
511static stmt_ty global_stmt_rule(Parser *p);
512static stmt_ty nonlocal_stmt_rule(Parser *p);
513static stmt_ty yield_stmt_rule(Parser *p);
514static stmt_ty assert_stmt_rule(Parser *p);
515static stmt_ty del_stmt_rule(Parser *p);
516static stmt_ty import_stmt_rule(Parser *p);
517static stmt_ty import_name_rule(Parser *p);
518static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100519static asdl_alias_seq* import_from_targets_rule(Parser *p);
520static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100521static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100522static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100523static alias_ty dotted_as_name_rule(Parser *p);
524static expr_ty dotted_name_rule(Parser *p);
525static stmt_ty if_stmt_rule(Parser *p);
526static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100527static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100528static stmt_ty while_stmt_rule(Parser *p);
529static stmt_ty for_stmt_rule(Parser *p);
530static stmt_ty with_stmt_rule(Parser *p);
531static withitem_ty with_item_rule(Parser *p);
532static stmt_ty try_stmt_rule(Parser *p);
533static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100534static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800535static stmt_ty match_stmt_rule(Parser *p);
536static expr_ty subject_expr_rule(Parser *p);
537static match_case_ty case_block_rule(Parser *p);
538static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000539static pattern_ty patterns_rule(Parser *p);
540static pattern_ty pattern_rule(Parser *p);
541static pattern_ty as_pattern_rule(Parser *p);
542static pattern_ty or_pattern_rule(Parser *p);
543static pattern_ty closed_pattern_rule(Parser *p);
544static pattern_ty literal_pattern_rule(Parser *p);
545static expr_ty literal_expr_rule(Parser *p);
546static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800547static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700548static expr_ty signed_real_number_rule(Parser *p);
549static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000550static expr_ty imaginary_number_rule(Parser *p);
551static pattern_ty capture_pattern_rule(Parser *p);
552static expr_ty pattern_capture_target_rule(Parser *p);
553static pattern_ty wildcard_pattern_rule(Parser *p);
554static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800555static expr_ty attr_rule(Parser *p);
556static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000557static pattern_ty group_pattern_rule(Parser *p);
558static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800559static asdl_seq* open_sequence_pattern_rule(Parser *p);
560static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000561static pattern_ty maybe_star_pattern_rule(Parser *p);
562static pattern_ty star_pattern_rule(Parser *p);
563static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800564static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000565static KeyPatternPair* key_value_pattern_rule(Parser *p);
566static expr_ty double_star_pattern_rule(Parser *p);
567static pattern_ty class_pattern_rule(Parser *p);
568static asdl_pattern_seq* positional_patterns_rule(Parser *p);
569static asdl_seq* keyword_patterns_rule(Parser *p);
570static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100571static stmt_ty return_stmt_rule(Parser *p);
572static stmt_ty raise_stmt_rule(Parser *p);
573static stmt_ty function_def_rule(Parser *p);
574static stmt_ty function_def_raw_rule(Parser *p);
575static Token* func_type_comment_rule(Parser *p);
576static arguments_ty params_rule(Parser *p);
577static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100578static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100579static SlashWithDefault* slash_with_default_rule(Parser *p);
580static StarEtc* star_etc_rule(Parser *p);
581static arg_ty kwds_rule(Parser *p);
582static arg_ty param_no_default_rule(Parser *p);
583static NameDefaultPair* param_with_default_rule(Parser *p);
584static NameDefaultPair* param_maybe_default_rule(Parser *p);
585static arg_ty param_rule(Parser *p);
586static expr_ty annotation_rule(Parser *p);
587static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100588static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100589static stmt_ty class_def_rule(Parser *p);
590static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100591static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100592static expr_ty star_expressions_rule(Parser *p);
593static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100594static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100595static expr_ty star_named_expression_rule(Parser *p);
596static expr_ty named_expression_rule(Parser *p);
Pablo Galindod9151cb2021-04-13 02:32:33 +0100597static expr_ty direct_named_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100598static expr_ty annotated_rhs_rule(Parser *p);
599static expr_ty expressions_rule(Parser *p);
600static expr_ty expression_rule(Parser *p);
601static expr_ty lambdef_rule(Parser *p);
602static arguments_ty lambda_params_rule(Parser *p);
603static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100604static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100605static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
606static StarEtc* lambda_star_etc_rule(Parser *p);
607static arg_ty lambda_kwds_rule(Parser *p);
608static arg_ty lambda_param_no_default_rule(Parser *p);
609static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
610static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
611static arg_ty lambda_param_rule(Parser *p);
612static expr_ty disjunction_rule(Parser *p);
613static expr_ty conjunction_rule(Parser *p);
614static expr_ty inversion_rule(Parser *p);
615static expr_ty comparison_rule(Parser *p);
616static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
617static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
618static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
619static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
620static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
621static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
622static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
623static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
624static CmpopExprPair* in_bitwise_or_rule(Parser *p);
625static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
626static CmpopExprPair* is_bitwise_or_rule(Parser *p);
627static expr_ty bitwise_or_rule(Parser *p);
628static expr_ty bitwise_xor_rule(Parser *p);
629static expr_ty bitwise_and_rule(Parser *p);
630static expr_ty shift_expr_rule(Parser *p);
631static expr_ty sum_rule(Parser *p);
632static expr_ty term_rule(Parser *p);
633static expr_ty factor_rule(Parser *p);
634static expr_ty power_rule(Parser *p);
635static expr_ty await_primary_rule(Parser *p);
636static expr_ty primary_rule(Parser *p);
637static expr_ty slices_rule(Parser *p);
638static expr_ty slice_rule(Parser *p);
639static expr_ty atom_rule(Parser *p);
640static expr_ty strings_rule(Parser *p);
641static expr_ty list_rule(Parser *p);
642static expr_ty listcomp_rule(Parser *p);
643static expr_ty tuple_rule(Parser *p);
644static expr_ty group_rule(Parser *p);
645static expr_ty genexp_rule(Parser *p);
646static expr_ty set_rule(Parser *p);
647static expr_ty setcomp_rule(Parser *p);
648static expr_ty dict_rule(Parser *p);
649static expr_ty dictcomp_rule(Parser *p);
650static asdl_seq* double_starred_kvpairs_rule(Parser *p);
651static KeyValuePair* double_starred_kvpair_rule(Parser *p);
652static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100653static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100654static comprehension_ty for_if_clause_rule(Parser *p);
655static expr_ty yield_expr_rule(Parser *p);
656static expr_ty arguments_rule(Parser *p);
657static expr_ty args_rule(Parser *p);
658static asdl_seq* kwargs_rule(Parser *p);
659static expr_ty starred_expression_rule(Parser *p);
660static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
661static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
662static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200663static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
664static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100665static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200666static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100667static expr_ty star_atom_rule(Parser *p);
668static expr_ty single_target_rule(Parser *p);
669static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100670static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100671static expr_ty del_target_rule(Parser *p);
672static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100673static asdl_expr_seq* targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100674static expr_ty target_rule(Parser *p);
675static expr_ty t_primary_rule(Parser *p);
676static void *t_lookahead_rule(Parser *p);
677static expr_ty t_atom_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200678static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100679static void *invalid_kwarg_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100680static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100681static void *invalid_named_expression_rule(Parser *p);
682static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300683static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300684static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100685static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200686static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100687static void *invalid_comprehension_rule(Parser *p);
688static void *invalid_dict_comprehension_rule(Parser *p);
689static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200690static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100691static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200692static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100693static void *invalid_star_etc_rule(Parser *p);
694static void *invalid_lambda_star_etc_rule(Parser *p);
695static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300696static void *invalid_with_item_rule(Parser *p);
697static void *invalid_for_target_rule(Parser *p);
698static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100699static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000700static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100701static void *invalid_with_stmt_indent_rule(Parser *p);
702static void *invalid_try_stmt_rule(Parser *p);
703static void *invalid_except_stmt_rule(Parser *p);
704static void *invalid_finally_stmt_rule(Parser *p);
705static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000706static void *invalid_match_stmt_rule(Parser *p);
707static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100708static void *invalid_if_stmt_rule(Parser *p);
709static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100710static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100711static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100712static void *invalid_for_stmt_rule(Parser *p);
713static void *invalid_def_raw_rule(Parser *p);
714static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100715static void *invalid_double_starred_kvpairs_rule(Parser *p);
716static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100717static asdl_seq *_loop0_1_rule(Parser *p);
718static asdl_seq *_loop0_2_rule(Parser *p);
719static asdl_seq *_loop0_4_rule(Parser *p);
720static asdl_seq *_gather_3_rule(Parser *p);
721static asdl_seq *_loop0_6_rule(Parser *p);
722static asdl_seq *_gather_5_rule(Parser *p);
723static asdl_seq *_loop0_8_rule(Parser *p);
724static asdl_seq *_gather_7_rule(Parser *p);
725static asdl_seq *_loop0_10_rule(Parser *p);
726static asdl_seq *_gather_9_rule(Parser *p);
727static asdl_seq *_loop1_11_rule(Parser *p);
728static asdl_seq *_loop0_13_rule(Parser *p);
729static asdl_seq *_gather_12_rule(Parser *p);
730static void *_tmp_14_rule(Parser *p);
731static void *_tmp_15_rule(Parser *p);
732static void *_tmp_16_rule(Parser *p);
733static void *_tmp_17_rule(Parser *p);
734static void *_tmp_18_rule(Parser *p);
735static void *_tmp_19_rule(Parser *p);
736static void *_tmp_20_rule(Parser *p);
737static void *_tmp_21_rule(Parser *p);
738static asdl_seq *_loop1_22_rule(Parser *p);
739static void *_tmp_23_rule(Parser *p);
740static void *_tmp_24_rule(Parser *p);
741static asdl_seq *_loop0_26_rule(Parser *p);
742static asdl_seq *_gather_25_rule(Parser *p);
743static asdl_seq *_loop0_28_rule(Parser *p);
744static asdl_seq *_gather_27_rule(Parser *p);
745static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300746static void *_tmp_30_rule(Parser *p);
747static asdl_seq *_loop0_31_rule(Parser *p);
748static asdl_seq *_loop1_32_rule(Parser *p);
749static asdl_seq *_loop0_34_rule(Parser *p);
750static asdl_seq *_gather_33_rule(Parser *p);
751static void *_tmp_35_rule(Parser *p);
752static asdl_seq *_loop0_37_rule(Parser *p);
753static asdl_seq *_gather_36_rule(Parser *p);
754static void *_tmp_38_rule(Parser *p);
755static asdl_seq *_loop0_40_rule(Parser *p);
756static asdl_seq *_gather_39_rule(Parser *p);
757static asdl_seq *_loop0_42_rule(Parser *p);
758static asdl_seq *_gather_41_rule(Parser *p);
759static asdl_seq *_loop0_44_rule(Parser *p);
760static asdl_seq *_gather_43_rule(Parser *p);
761static asdl_seq *_loop0_46_rule(Parser *p);
762static asdl_seq *_gather_45_rule(Parser *p);
763static void *_tmp_47_rule(Parser *p);
764static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100765static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800766static asdl_seq *_loop1_50_rule(Parser *p);
767static asdl_seq *_loop0_52_rule(Parser *p);
768static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300769static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800770static void *_tmp_54_rule(Parser *p);
771static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000772static void *_tmp_56_rule(Parser *p);
773static asdl_seq *_loop0_58_rule(Parser *p);
774static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800775static asdl_seq *_loop0_60_rule(Parser *p);
776static asdl_seq *_gather_59_rule(Parser *p);
777static void *_tmp_61_rule(Parser *p);
778static asdl_seq *_loop0_63_rule(Parser *p);
779static asdl_seq *_gather_62_rule(Parser *p);
780static asdl_seq *_loop0_65_rule(Parser *p);
781static asdl_seq *_gather_64_rule(Parser *p);
782static void *_tmp_66_rule(Parser *p);
783static void *_tmp_67_rule(Parser *p);
784static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300785static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800786static asdl_seq *_loop0_70_rule(Parser *p);
787static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000788static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000789static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300790static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800791static asdl_seq *_loop1_75_rule(Parser *p);
792static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000793static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300794static asdl_seq *_loop0_78_rule(Parser *p);
795static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800796static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100797static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000798static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300799static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800800static asdl_seq *_loop1_84_rule(Parser *p);
801static void *_tmp_85_rule(Parser *p);
802static asdl_seq *_loop1_86_rule(Parser *p);
803static asdl_seq *_loop0_88_rule(Parser *p);
804static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100805static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800806static asdl_seq *_loop0_90_rule(Parser *p);
807static asdl_seq *_loop0_91_rule(Parser *p);
808static asdl_seq *_loop0_92_rule(Parser *p);
809static asdl_seq *_loop1_93_rule(Parser *p);
810static asdl_seq *_loop0_94_rule(Parser *p);
811static asdl_seq *_loop1_95_rule(Parser *p);
812static asdl_seq *_loop1_96_rule(Parser *p);
813static asdl_seq *_loop1_97_rule(Parser *p);
814static asdl_seq *_loop0_98_rule(Parser *p);
815static asdl_seq *_loop1_99_rule(Parser *p);
816static asdl_seq *_loop0_100_rule(Parser *p);
817static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000818static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000819static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800820static asdl_seq *_loop1_104_rule(Parser *p);
821static asdl_seq *_loop1_105_rule(Parser *p);
822static asdl_seq *_loop1_106_rule(Parser *p);
823static void *_tmp_107_rule(Parser *p);
824static asdl_seq *_loop0_109_rule(Parser *p);
825static asdl_seq *_gather_108_rule(Parser *p);
826static void *_tmp_110_rule(Parser *p);
827static void *_tmp_111_rule(Parser *p);
828static void *_tmp_112_rule(Parser *p);
829static void *_tmp_113_rule(Parser *p);
830static asdl_seq *_loop1_114_rule(Parser *p);
831static void *_tmp_115_rule(Parser *p);
832static void *_tmp_116_rule(Parser *p);
833static asdl_seq *_loop0_118_rule(Parser *p);
834static asdl_seq *_gather_117_rule(Parser *p);
835static asdl_seq *_loop1_119_rule(Parser *p);
836static asdl_seq *_loop0_120_rule(Parser *p);
837static asdl_seq *_loop0_121_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200838static asdl_seq *_loop0_123_rule(Parser *p);
839static asdl_seq *_gather_122_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800840static void *_tmp_124_rule(Parser *p);
841static asdl_seq *_loop0_126_rule(Parser *p);
842static asdl_seq *_gather_125_rule(Parser *p);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +0300843static asdl_seq *_loop0_128_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800844static asdl_seq *_gather_127_rule(Parser *p);
845static asdl_seq *_loop0_130_rule(Parser *p);
846static asdl_seq *_gather_129_rule(Parser *p);
847static asdl_seq *_loop0_132_rule(Parser *p);
848static asdl_seq *_gather_131_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000849static asdl_seq *_loop0_133_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000850static asdl_seq *_loop0_135_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800851static asdl_seq *_gather_134_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000852static asdl_seq *_loop1_136_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100853static void *_tmp_137_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800854static asdl_seq *_loop0_139_rule(Parser *p);
855static asdl_seq *_gather_138_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000856static asdl_seq *_loop0_141_rule(Parser *p);
857static asdl_seq *_gather_140_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800858static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100859static void *_tmp_143_rule(Parser *p);
860static void *_tmp_144_rule(Parser *p);
861static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100862static void *_tmp_146_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700863static void *_tmp_147_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100864static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100865static asdl_seq *_loop0_149_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700866static asdl_seq *_loop0_150_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100867static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100868static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100869static void *_tmp_153_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700870static void *_tmp_154_rule(Parser *p);
871static asdl_seq *_loop0_155_rule(Parser *p);
872static asdl_seq *_loop1_156_rule(Parser *p);
873static asdl_seq *_loop0_157_rule(Parser *p);
874static asdl_seq *_loop1_158_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100875static void *_tmp_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100876static void *_tmp_160_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700877static void *_tmp_161_rule(Parser *p);
878static asdl_seq *_loop0_163_rule(Parser *p);
879static asdl_seq *_gather_162_rule(Parser *p);
880static asdl_seq *_loop0_165_rule(Parser *p);
881static asdl_seq *_gather_164_rule(Parser *p);
882static asdl_seq *_loop0_167_rule(Parser *p);
883static asdl_seq *_gather_166_rule(Parser *p);
884static asdl_seq *_loop0_169_rule(Parser *p);
885static asdl_seq *_gather_168_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800886static void *_tmp_170_rule(Parser *p);
887static void *_tmp_171_rule(Parser *p);
888static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100889static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700890static void *_tmp_174_rule(Parser *p);
891static asdl_seq *_loop0_176_rule(Parser *p);
892static asdl_seq *_gather_175_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800893static void *_tmp_177_rule(Parser *p);
894static void *_tmp_178_rule(Parser *p);
895static void *_tmp_179_rule(Parser *p);
896static void *_tmp_180_rule(Parser *p);
897static void *_tmp_181_rule(Parser *p);
898static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100899static void *_tmp_183_rule(Parser *p);
900static void *_tmp_184_rule(Parser *p);
901static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100902static void *_tmp_186_rule(Parser *p);
903static void *_tmp_187_rule(Parser *p);
904static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100905static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100906static void *_tmp_190_rule(Parser *p);
907static void *_tmp_191_rule(Parser *p);
908static void *_tmp_192_rule(Parser *p);
909static void *_tmp_193_rule(Parser *p);
910static void *_tmp_194_rule(Parser *p);
911static void *_tmp_195_rule(Parser *p);
912static void *_tmp_196_rule(Parser *p);
913static void *_tmp_197_rule(Parser *p);
914static void *_tmp_198_rule(Parser *p);
915static void *_tmp_199_rule(Parser *p);
916static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100917static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700918static void *_tmp_202_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000919
920
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100921// file: statements? $
922static mod_ty
923file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000924{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100925 D(p->level++);
926 if (p->error_indicator) {
927 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000928 return NULL;
929 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100930 mod_ty _res = NULL;
931 int _mark = p->mark;
932 { // statements? $
933 if (p->error_indicator) {
934 D(p->level--);
935 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000936 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100937 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
938 void *a;
939 Token * endmarker_var;
940 if (
941 (a = statements_rule(p), 1) // statements?
942 &&
943 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
944 )
945 {
946 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
947 _res = _PyPegen_make_module ( p , a );
948 if (_res == NULL && PyErr_Occurred()) {
949 p->error_indicator = 1;
950 D(p->level--);
951 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000952 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100953 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000954 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100955 p->mark = _mark;
956 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000958 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100959 _res = NULL;
960 done:
961 D(p->level--);
962 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000963}
964
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100965// interactive: statement_newline
966static mod_ty
967interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000968{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100969 D(p->level++);
970 if (p->error_indicator) {
971 D(p->level--);
972 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000973 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100974 mod_ty _res = NULL;
975 int _mark = p->mark;
976 { // statement_newline
977 if (p->error_indicator) {
978 D(p->level--);
979 return NULL;
980 }
981 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100982 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100983 if (
984 (a = statement_newline_rule(p)) // statement_newline
985 )
986 {
987 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200988 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100989 if (_res == NULL && PyErr_Occurred()) {
990 p->error_indicator = 1;
991 D(p->level--);
992 return NULL;
993 }
994 goto done;
995 }
996 p->mark = _mark;
997 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
999 }
1000 _res = NULL;
1001 done:
1002 D(p->level--);
1003 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001004}
1005
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001006// eval: expressions NEWLINE* $
1007static mod_ty
1008eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001009{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001010 D(p->level++);
1011 if (p->error_indicator) {
1012 D(p->level--);
1013 return NULL;
1014 }
1015 mod_ty _res = NULL;
1016 int _mark = p->mark;
1017 { // expressions NEWLINE* $
1018 if (p->error_indicator) {
1019 D(p->level--);
1020 return NULL;
1021 }
1022 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1023 asdl_seq * _loop0_1_var;
1024 expr_ty a;
1025 Token * endmarker_var;
1026 if (
1027 (a = expressions_rule(p)) // expressions
1028 &&
1029 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1030 &&
1031 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1032 )
1033 {
1034 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001035 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001036 if (_res == NULL && PyErr_Occurred()) {
1037 p->error_indicator = 1;
1038 D(p->level--);
1039 return NULL;
1040 }
1041 goto done;
1042 }
1043 p->mark = _mark;
1044 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1046 }
1047 _res = NULL;
1048 done:
1049 D(p->level--);
1050 return _res;
1051}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001052
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001053// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1054static mod_ty
1055func_type_rule(Parser *p)
1056{
1057 D(p->level++);
1058 if (p->error_indicator) {
1059 D(p->level--);
1060 return NULL;
1061 }
1062 mod_ty _res = NULL;
1063 int _mark = p->mark;
1064 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1065 if (p->error_indicator) {
1066 D(p->level--);
1067 return NULL;
1068 }
1069 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1070 Token * _literal;
1071 Token * _literal_1;
1072 Token * _literal_2;
1073 asdl_seq * _loop0_2_var;
1074 void *a;
1075 expr_ty b;
1076 Token * endmarker_var;
1077 if (
1078 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1079 &&
1080 (a = type_expressions_rule(p), 1) // type_expressions?
1081 &&
1082 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1083 &&
1084 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1085 &&
1086 (b = expression_rule(p)) // expression
1087 &&
1088 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1089 &&
1090 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1091 )
1092 {
1093 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 +02001094 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001095 if (_res == NULL && PyErr_Occurred()) {
1096 p->error_indicator = 1;
1097 D(p->level--);
1098 return NULL;
1099 }
1100 goto done;
1101 }
1102 p->mark = _mark;
1103 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1105 }
1106 _res = NULL;
1107 done:
1108 D(p->level--);
1109 return _res;
1110}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001111
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001112// fstring: star_expressions
1113static expr_ty
1114fstring_rule(Parser *p)
1115{
1116 D(p->level++);
1117 if (p->error_indicator) {
1118 D(p->level--);
1119 return NULL;
1120 }
1121 expr_ty _res = NULL;
1122 int _mark = p->mark;
1123 { // star_expressions
1124 if (p->error_indicator) {
1125 D(p->level--);
1126 return NULL;
1127 }
1128 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1129 expr_ty star_expressions_var;
1130 if (
1131 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1132 )
1133 {
1134 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1135 _res = star_expressions_var;
1136 goto done;
1137 }
1138 p->mark = _mark;
1139 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1141 }
1142 _res = NULL;
1143 done:
1144 D(p->level--);
1145 return _res;
1146}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001147
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001148// type_expressions:
1149// | ','.expression+ ',' '*' expression ',' '**' expression
1150// | ','.expression+ ',' '*' expression
1151// | ','.expression+ ',' '**' expression
1152// | '*' expression ',' '**' expression
1153// | '*' expression
1154// | '**' expression
1155// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001156static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001157type_expressions_rule(Parser *p)
1158{
1159 D(p->level++);
1160 if (p->error_indicator) {
1161 D(p->level--);
1162 return NULL;
1163 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001164 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001165 int _mark = p->mark;
1166 { // ','.expression+ ',' '*' expression ',' '**' expression
1167 if (p->error_indicator) {
1168 D(p->level--);
1169 return NULL;
1170 }
1171 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1172 Token * _literal;
1173 Token * _literal_1;
1174 Token * _literal_2;
1175 Token * _literal_3;
1176 asdl_seq * a;
1177 expr_ty b;
1178 expr_ty c;
1179 if (
1180 (a = _gather_3_rule(p)) // ','.expression+
1181 &&
1182 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1183 &&
1184 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1185 &&
1186 (b = expression_rule(p)) // expression
1187 &&
1188 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1189 &&
1190 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1191 &&
1192 (c = expression_rule(p)) // expression
1193 )
1194 {
1195 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 +03001196 _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 +01001197 if (_res == NULL && PyErr_Occurred()) {
1198 p->error_indicator = 1;
1199 D(p->level--);
1200 return NULL;
1201 }
1202 goto done;
1203 }
1204 p->mark = _mark;
1205 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1207 }
1208 { // ','.expression+ ',' '*' expression
1209 if (p->error_indicator) {
1210 D(p->level--);
1211 return NULL;
1212 }
1213 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1214 Token * _literal;
1215 Token * _literal_1;
1216 asdl_seq * a;
1217 expr_ty b;
1218 if (
1219 (a = _gather_5_rule(p)) // ','.expression+
1220 &&
1221 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1222 &&
1223 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1224 &&
1225 (b = expression_rule(p)) // expression
1226 )
1227 {
1228 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 +01001229 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001230 if (_res == NULL && PyErr_Occurred()) {
1231 p->error_indicator = 1;
1232 D(p->level--);
1233 return NULL;
1234 }
1235 goto done;
1236 }
1237 p->mark = _mark;
1238 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1240 }
1241 { // ','.expression+ ',' '**' expression
1242 if (p->error_indicator) {
1243 D(p->level--);
1244 return NULL;
1245 }
1246 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1247 Token * _literal;
1248 Token * _literal_1;
1249 asdl_seq * a;
1250 expr_ty b;
1251 if (
1252 (a = _gather_7_rule(p)) // ','.expression+
1253 &&
1254 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1255 &&
1256 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1257 &&
1258 (b = expression_rule(p)) // expression
1259 )
1260 {
1261 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 +01001262 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001263 if (_res == NULL && PyErr_Occurred()) {
1264 p->error_indicator = 1;
1265 D(p->level--);
1266 return NULL;
1267 }
1268 goto done;
1269 }
1270 p->mark = _mark;
1271 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1273 }
1274 { // '*' expression ',' '**' expression
1275 if (p->error_indicator) {
1276 D(p->level--);
1277 return NULL;
1278 }
1279 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1280 Token * _literal;
1281 Token * _literal_1;
1282 Token * _literal_2;
1283 expr_ty a;
1284 expr_ty b;
1285 if (
1286 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1287 &&
1288 (a = expression_rule(p)) // expression
1289 &&
1290 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1291 &&
1292 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1293 &&
1294 (b = expression_rule(p)) // expression
1295 )
1296 {
1297 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 +03001298 _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 +01001299 if (_res == NULL && PyErr_Occurred()) {
1300 p->error_indicator = 1;
1301 D(p->level--);
1302 return NULL;
1303 }
1304 goto done;
1305 }
1306 p->mark = _mark;
1307 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1309 }
1310 { // '*' expression
1311 if (p->error_indicator) {
1312 D(p->level--);
1313 return NULL;
1314 }
1315 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1316 Token * _literal;
1317 expr_ty a;
1318 if (
1319 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1320 &&
1321 (a = expression_rule(p)) // expression
1322 )
1323 {
1324 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001325 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001326 if (_res == NULL && PyErr_Occurred()) {
1327 p->error_indicator = 1;
1328 D(p->level--);
1329 return NULL;
1330 }
1331 goto done;
1332 }
1333 p->mark = _mark;
1334 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1336 }
1337 { // '**' expression
1338 if (p->error_indicator) {
1339 D(p->level--);
1340 return NULL;
1341 }
1342 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1343 Token * _literal;
1344 expr_ty a;
1345 if (
1346 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1347 &&
1348 (a = expression_rule(p)) // expression
1349 )
1350 {
1351 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001352 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001353 if (_res == NULL && PyErr_Occurred()) {
1354 p->error_indicator = 1;
1355 D(p->level--);
1356 return NULL;
1357 }
1358 goto done;
1359 }
1360 p->mark = _mark;
1361 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1363 }
1364 { // ','.expression+
1365 if (p->error_indicator) {
1366 D(p->level--);
1367 return NULL;
1368 }
1369 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001370 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001371 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001372 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001373 )
1374 {
1375 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001376 _res = a;
1377 if (_res == NULL && PyErr_Occurred()) {
1378 p->error_indicator = 1;
1379 D(p->level--);
1380 return NULL;
1381 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001382 goto done;
1383 }
1384 p->mark = _mark;
1385 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1387 }
1388 _res = NULL;
1389 done:
1390 D(p->level--);
1391 return _res;
1392}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001393
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001394// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001395static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001396statements_rule(Parser *p)
1397{
1398 D(p->level++);
1399 if (p->error_indicator) {
1400 D(p->level--);
1401 return NULL;
1402 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001403 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001404 int _mark = p->mark;
1405 { // statement+
1406 if (p->error_indicator) {
1407 D(p->level--);
1408 return NULL;
1409 }
1410 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1411 asdl_seq * a;
1412 if (
1413 (a = _loop1_11_rule(p)) // statement+
1414 )
1415 {
1416 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001417 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001418 if (_res == NULL && PyErr_Occurred()) {
1419 p->error_indicator = 1;
1420 D(p->level--);
1421 return NULL;
1422 }
1423 goto done;
1424 }
1425 p->mark = _mark;
1426 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1428 }
1429 _res = NULL;
1430 done:
1431 D(p->level--);
1432 return _res;
1433}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001434
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001435// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001436static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001437statement_rule(Parser *p)
1438{
1439 D(p->level++);
1440 if (p->error_indicator) {
1441 D(p->level--);
1442 return NULL;
1443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001444 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001445 int _mark = p->mark;
1446 { // compound_stmt
1447 if (p->error_indicator) {
1448 D(p->level--);
1449 return NULL;
1450 }
1451 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1452 stmt_ty a;
1453 if (
1454 (a = compound_stmt_rule(p)) // compound_stmt
1455 )
1456 {
1457 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001458 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001459 if (_res == NULL && PyErr_Occurred()) {
1460 p->error_indicator = 1;
1461 D(p->level--);
1462 return NULL;
1463 }
1464 goto done;
1465 }
1466 p->mark = _mark;
1467 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1469 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001470 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001471 if (p->error_indicator) {
1472 D(p->level--);
1473 return NULL;
1474 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001475 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001476 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001477 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001478 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001479 )
1480 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001481 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001482 _res = a;
1483 if (_res == NULL && PyErr_Occurred()) {
1484 p->error_indicator = 1;
1485 D(p->level--);
1486 return NULL;
1487 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001488 goto done;
1489 }
1490 p->mark = _mark;
1491 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001493 }
1494 _res = NULL;
1495 done:
1496 D(p->level--);
1497 return _res;
1498}
1499
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001500// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001501static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001502statement_newline_rule(Parser *p)
1503{
1504 D(p->level++);
1505 if (p->error_indicator) {
1506 D(p->level--);
1507 return NULL;
1508 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001509 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001510 int _mark = p->mark;
1511 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1512 p->error_indicator = 1;
1513 D(p->level--);
1514 return NULL;
1515 }
1516 int _start_lineno = p->tokens[_mark]->lineno;
1517 UNUSED(_start_lineno); // Only used by EXTRA macro
1518 int _start_col_offset = p->tokens[_mark]->col_offset;
1519 UNUSED(_start_col_offset); // Only used by EXTRA macro
1520 { // compound_stmt NEWLINE
1521 if (p->error_indicator) {
1522 D(p->level--);
1523 return NULL;
1524 }
1525 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1526 stmt_ty a;
1527 Token * newline_var;
1528 if (
1529 (a = compound_stmt_rule(p)) // compound_stmt
1530 &&
1531 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1532 )
1533 {
1534 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 +01001535 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001536 if (_res == NULL && PyErr_Occurred()) {
1537 p->error_indicator = 1;
1538 D(p->level--);
1539 return NULL;
1540 }
1541 goto done;
1542 }
1543 p->mark = _mark;
1544 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1546 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001547 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001548 if (p->error_indicator) {
1549 D(p->level--);
1550 return NULL;
1551 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001552 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1553 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001554 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001555 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001556 )
1557 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001558 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1559 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001560 goto done;
1561 }
1562 p->mark = _mark;
1563 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001565 }
1566 { // NEWLINE
1567 if (p->error_indicator) {
1568 D(p->level--);
1569 return NULL;
1570 }
1571 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1572 Token * newline_var;
1573 if (
1574 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1575 )
1576 {
1577 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1578 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1579 if (_token == NULL) {
1580 D(p->level--);
1581 return NULL;
1582 }
1583 int _end_lineno = _token->end_lineno;
1584 UNUSED(_end_lineno); // Only used by EXTRA macro
1585 int _end_col_offset = _token->end_col_offset;
1586 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001587 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001588 if (_res == NULL && PyErr_Occurred()) {
1589 p->error_indicator = 1;
1590 D(p->level--);
1591 return NULL;
1592 }
1593 goto done;
1594 }
1595 p->mark = _mark;
1596 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1598 }
1599 { // $
1600 if (p->error_indicator) {
1601 D(p->level--);
1602 return NULL;
1603 }
1604 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1605 Token * endmarker_var;
1606 if (
1607 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1608 )
1609 {
1610 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1611 _res = _PyPegen_interactive_exit ( p );
1612 if (_res == NULL && PyErr_Occurred()) {
1613 p->error_indicator = 1;
1614 D(p->level--);
1615 return NULL;
1616 }
1617 goto done;
1618 }
1619 p->mark = _mark;
1620 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1622 }
1623 _res = NULL;
1624 done:
1625 D(p->level--);
1626 return _res;
1627}
1628
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001629// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001630static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001631simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001632{
1633 D(p->level++);
1634 if (p->error_indicator) {
1635 D(p->level--);
1636 return NULL;
1637 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001638 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001639 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001640 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001641 if (p->error_indicator) {
1642 D(p->level--);
1643 return NULL;
1644 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001645 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 +01001646 stmt_ty a;
1647 Token * newline_var;
1648 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001649 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001650 &&
1651 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1652 &&
1653 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1654 )
1655 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001656 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 +01001657 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001658 if (_res == NULL && PyErr_Occurred()) {
1659 p->error_indicator = 1;
1660 D(p->level--);
1661 return NULL;
1662 }
1663 goto done;
1664 }
1665 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001666 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001668 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001669 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001670 if (p->error_indicator) {
1671 D(p->level--);
1672 return NULL;
1673 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001674 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 +01001675 void *_opt_var;
1676 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001677 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001678 Token * newline_var;
1679 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001680 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001681 &&
1682 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1683 &&
1684 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1685 )
1686 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001687 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 +01001688 _res = a;
1689 if (_res == NULL && PyErr_Occurred()) {
1690 p->error_indicator = 1;
1691 D(p->level--);
1692 return NULL;
1693 }
1694 goto done;
1695 }
1696 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001697 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001699 }
1700 _res = NULL;
1701 done:
1702 D(p->level--);
1703 return _res;
1704}
1705
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001706// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001707// | assignment
1708// | star_expressions
1709// | &'return' return_stmt
1710// | &('import' | 'from') import_stmt
1711// | &'raise' raise_stmt
1712// | 'pass'
1713// | &'del' del_stmt
1714// | &'yield' yield_stmt
1715// | &'assert' assert_stmt
1716// | 'break'
1717// | 'continue'
1718// | &'global' global_stmt
1719// | &'nonlocal' nonlocal_stmt
1720static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001721simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001722{
1723 D(p->level++);
1724 if (p->error_indicator) {
1725 D(p->level--);
1726 return NULL;
1727 }
1728 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001729 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001730 D(p->level--);
1731 return _res;
1732 }
1733 int _mark = p->mark;
1734 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1735 p->error_indicator = 1;
1736 D(p->level--);
1737 return NULL;
1738 }
1739 int _start_lineno = p->tokens[_mark]->lineno;
1740 UNUSED(_start_lineno); // Only used by EXTRA macro
1741 int _start_col_offset = p->tokens[_mark]->col_offset;
1742 UNUSED(_start_col_offset); // Only used by EXTRA macro
1743 { // assignment
1744 if (p->error_indicator) {
1745 D(p->level--);
1746 return NULL;
1747 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001748 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001749 stmt_ty assignment_var;
1750 if (
1751 (assignment_var = assignment_rule(p)) // assignment
1752 )
1753 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001754 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001755 _res = assignment_var;
1756 goto done;
1757 }
1758 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001759 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1761 }
1762 { // star_expressions
1763 if (p->error_indicator) {
1764 D(p->level--);
1765 return NULL;
1766 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001767 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001768 expr_ty e;
1769 if (
1770 (e = star_expressions_rule(p)) // star_expressions
1771 )
1772 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001773 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 +01001774 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1775 if (_token == NULL) {
1776 D(p->level--);
1777 return NULL;
1778 }
1779 int _end_lineno = _token->end_lineno;
1780 UNUSED(_end_lineno); // Only used by EXTRA macro
1781 int _end_col_offset = _token->end_col_offset;
1782 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001783 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001784 if (_res == NULL && PyErr_Occurred()) {
1785 p->error_indicator = 1;
1786 D(p->level--);
1787 return NULL;
1788 }
1789 goto done;
1790 }
1791 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001792 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1794 }
1795 { // &'return' return_stmt
1796 if (p->error_indicator) {
1797 D(p->level--);
1798 return NULL;
1799 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001800 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 +01001801 stmt_ty return_stmt_var;
1802 if (
1803 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1804 &&
1805 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1806 )
1807 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001808 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 +01001809 _res = return_stmt_var;
1810 goto done;
1811 }
1812 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001813 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1815 }
1816 { // &('import' | 'from') import_stmt
1817 if (p->error_indicator) {
1818 D(p->level--);
1819 return NULL;
1820 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001821 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 +01001822 stmt_ty import_stmt_var;
1823 if (
1824 _PyPegen_lookahead(1, _tmp_14_rule, p)
1825 &&
1826 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1827 )
1828 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001829 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 +01001830 _res = import_stmt_var;
1831 goto done;
1832 }
1833 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001834 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1836 }
1837 { // &'raise' raise_stmt
1838 if (p->error_indicator) {
1839 D(p->level--);
1840 return NULL;
1841 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001842 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 +01001843 stmt_ty raise_stmt_var;
1844 if (
1845 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1846 &&
1847 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1848 )
1849 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001850 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 +01001851 _res = raise_stmt_var;
1852 goto done;
1853 }
1854 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001855 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1857 }
1858 { // 'pass'
1859 if (p->error_indicator) {
1860 D(p->level--);
1861 return NULL;
1862 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001863 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001864 Token * _keyword;
1865 if (
1866 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1867 )
1868 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001869 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001870 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1871 if (_token == NULL) {
1872 D(p->level--);
1873 return NULL;
1874 }
1875 int _end_lineno = _token->end_lineno;
1876 UNUSED(_end_lineno); // Only used by EXTRA macro
1877 int _end_col_offset = _token->end_col_offset;
1878 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001879 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001880 if (_res == NULL && PyErr_Occurred()) {
1881 p->error_indicator = 1;
1882 D(p->level--);
1883 return NULL;
1884 }
1885 goto done;
1886 }
1887 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001888 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1890 }
1891 { // &'del' del_stmt
1892 if (p->error_indicator) {
1893 D(p->level--);
1894 return NULL;
1895 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001896 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 +01001897 stmt_ty del_stmt_var;
1898 if (
1899 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1900 &&
1901 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1902 )
1903 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001904 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 +01001905 _res = del_stmt_var;
1906 goto done;
1907 }
1908 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001909 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1911 }
1912 { // &'yield' yield_stmt
1913 if (p->error_indicator) {
1914 D(p->level--);
1915 return NULL;
1916 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001917 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 +01001918 stmt_ty yield_stmt_var;
1919 if (
1920 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1921 &&
1922 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1923 )
1924 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001925 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 +01001926 _res = yield_stmt_var;
1927 goto done;
1928 }
1929 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001930 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1932 }
1933 { // &'assert' assert_stmt
1934 if (p->error_indicator) {
1935 D(p->level--);
1936 return NULL;
1937 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001938 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 +01001939 stmt_ty assert_stmt_var;
1940 if (
1941 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1942 &&
1943 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1944 )
1945 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001946 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 +01001947 _res = assert_stmt_var;
1948 goto done;
1949 }
1950 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001951 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1953 }
1954 { // 'break'
1955 if (p->error_indicator) {
1956 D(p->level--);
1957 return NULL;
1958 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001959 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001960 Token * _keyword;
1961 if (
1962 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1963 )
1964 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001965 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001966 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1967 if (_token == NULL) {
1968 D(p->level--);
1969 return NULL;
1970 }
1971 int _end_lineno = _token->end_lineno;
1972 UNUSED(_end_lineno); // Only used by EXTRA macro
1973 int _end_col_offset = _token->end_col_offset;
1974 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001975 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001976 if (_res == NULL && PyErr_Occurred()) {
1977 p->error_indicator = 1;
1978 D(p->level--);
1979 return NULL;
1980 }
1981 goto done;
1982 }
1983 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001984 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1986 }
1987 { // 'continue'
1988 if (p->error_indicator) {
1989 D(p->level--);
1990 return NULL;
1991 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001992 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001993 Token * _keyword;
1994 if (
1995 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1996 )
1997 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001998 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001999 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2000 if (_token == NULL) {
2001 D(p->level--);
2002 return NULL;
2003 }
2004 int _end_lineno = _token->end_lineno;
2005 UNUSED(_end_lineno); // Only used by EXTRA macro
2006 int _end_col_offset = _token->end_col_offset;
2007 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002008 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002009 if (_res == NULL && PyErr_Occurred()) {
2010 p->error_indicator = 1;
2011 D(p->level--);
2012 return NULL;
2013 }
2014 goto done;
2015 }
2016 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002017 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2019 }
2020 { // &'global' global_stmt
2021 if (p->error_indicator) {
2022 D(p->level--);
2023 return NULL;
2024 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002025 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 +01002026 stmt_ty global_stmt_var;
2027 if (
2028 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2029 &&
2030 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2031 )
2032 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002033 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 +01002034 _res = global_stmt_var;
2035 goto done;
2036 }
2037 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002038 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2040 }
2041 { // &'nonlocal' nonlocal_stmt
2042 if (p->error_indicator) {
2043 D(p->level--);
2044 return NULL;
2045 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002046 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 +01002047 stmt_ty nonlocal_stmt_var;
2048 if (
2049 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2050 &&
2051 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2052 )
2053 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002054 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 +01002055 _res = nonlocal_stmt_var;
2056 goto done;
2057 }
2058 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002059 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2061 }
2062 _res = NULL;
2063 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002064 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002065 D(p->level--);
2066 return _res;
2067}
2068
2069// compound_stmt:
2070// | &('def' | '@' | ASYNC) function_def
2071// | &'if' if_stmt
2072// | &('class' | '@') class_def
2073// | &('with' | ASYNC) with_stmt
2074// | &('for' | ASYNC) for_stmt
2075// | &'try' try_stmt
2076// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002077// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002078static stmt_ty
2079compound_stmt_rule(Parser *p)
2080{
2081 D(p->level++);
2082 if (p->error_indicator) {
2083 D(p->level--);
2084 return NULL;
2085 }
2086 stmt_ty _res = NULL;
2087 int _mark = p->mark;
2088 { // &('def' | '@' | ASYNC) function_def
2089 if (p->error_indicator) {
2090 D(p->level--);
2091 return NULL;
2092 }
2093 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2094 stmt_ty function_def_var;
2095 if (
2096 _PyPegen_lookahead(1, _tmp_15_rule, p)
2097 &&
2098 (function_def_var = function_def_rule(p)) // function_def
2099 )
2100 {
2101 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2102 _res = function_def_var;
2103 goto done;
2104 }
2105 p->mark = _mark;
2106 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2108 }
2109 { // &'if' if_stmt
2110 if (p->error_indicator) {
2111 D(p->level--);
2112 return NULL;
2113 }
2114 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2115 stmt_ty if_stmt_var;
2116 if (
2117 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2118 &&
2119 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2120 )
2121 {
2122 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2123 _res = if_stmt_var;
2124 goto done;
2125 }
2126 p->mark = _mark;
2127 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2129 }
2130 { // &('class' | '@') class_def
2131 if (p->error_indicator) {
2132 D(p->level--);
2133 return NULL;
2134 }
2135 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2136 stmt_ty class_def_var;
2137 if (
2138 _PyPegen_lookahead(1, _tmp_16_rule, p)
2139 &&
2140 (class_def_var = class_def_rule(p)) // class_def
2141 )
2142 {
2143 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2144 _res = class_def_var;
2145 goto done;
2146 }
2147 p->mark = _mark;
2148 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2150 }
2151 { // &('with' | ASYNC) with_stmt
2152 if (p->error_indicator) {
2153 D(p->level--);
2154 return NULL;
2155 }
2156 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2157 stmt_ty with_stmt_var;
2158 if (
2159 _PyPegen_lookahead(1, _tmp_17_rule, p)
2160 &&
2161 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2162 )
2163 {
2164 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2165 _res = with_stmt_var;
2166 goto done;
2167 }
2168 p->mark = _mark;
2169 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2171 }
2172 { // &('for' | ASYNC) for_stmt
2173 if (p->error_indicator) {
2174 D(p->level--);
2175 return NULL;
2176 }
2177 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2178 stmt_ty for_stmt_var;
2179 if (
2180 _PyPegen_lookahead(1, _tmp_18_rule, p)
2181 &&
2182 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2183 )
2184 {
2185 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2186 _res = for_stmt_var;
2187 goto done;
2188 }
2189 p->mark = _mark;
2190 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2192 }
2193 { // &'try' try_stmt
2194 if (p->error_indicator) {
2195 D(p->level--);
2196 return NULL;
2197 }
2198 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2199 stmt_ty try_stmt_var;
2200 if (
2201 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2202 &&
2203 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2204 )
2205 {
2206 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2207 _res = try_stmt_var;
2208 goto done;
2209 }
2210 p->mark = _mark;
2211 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2213 }
2214 { // &'while' while_stmt
2215 if (p->error_indicator) {
2216 D(p->level--);
2217 return NULL;
2218 }
2219 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2220 stmt_ty while_stmt_var;
2221 if (
2222 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2223 &&
2224 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2225 )
2226 {
2227 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2228 _res = while_stmt_var;
2229 goto done;
2230 }
2231 p->mark = _mark;
2232 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2234 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002235 { // match_stmt
2236 if (p->error_indicator) {
2237 D(p->level--);
2238 return NULL;
2239 }
2240 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2241 stmt_ty match_stmt_var;
2242 if (
2243 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2244 )
2245 {
2246 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2247 _res = match_stmt_var;
2248 goto done;
2249 }
2250 p->mark = _mark;
2251 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2253 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002254 _res = NULL;
2255 done:
2256 D(p->level--);
2257 return _res;
2258}
2259
2260// assignment:
2261// | NAME ':' expression ['=' annotated_rhs]
2262// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2263// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002264// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002265// | invalid_assignment
2266static stmt_ty
2267assignment_rule(Parser *p)
2268{
2269 D(p->level++);
2270 if (p->error_indicator) {
2271 D(p->level--);
2272 return NULL;
2273 }
2274 stmt_ty _res = NULL;
2275 int _mark = p->mark;
2276 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2277 p->error_indicator = 1;
2278 D(p->level--);
2279 return NULL;
2280 }
2281 int _start_lineno = p->tokens[_mark]->lineno;
2282 UNUSED(_start_lineno); // Only used by EXTRA macro
2283 int _start_col_offset = p->tokens[_mark]->col_offset;
2284 UNUSED(_start_col_offset); // Only used by EXTRA macro
2285 { // NAME ':' expression ['=' annotated_rhs]
2286 if (p->error_indicator) {
2287 D(p->level--);
2288 return NULL;
2289 }
2290 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2291 Token * _literal;
2292 expr_ty a;
2293 expr_ty b;
2294 void *c;
2295 if (
2296 (a = _PyPegen_name_token(p)) // NAME
2297 &&
2298 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2299 &&
2300 (b = expression_rule(p)) // expression
2301 &&
2302 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2303 )
2304 {
2305 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2306 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2307 if (_token == NULL) {
2308 D(p->level--);
2309 return NULL;
2310 }
2311 int _end_lineno = _token->end_lineno;
2312 UNUSED(_end_lineno); // Only used by EXTRA macro
2313 int _end_col_offset = _token->end_col_offset;
2314 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002315 _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 +01002316 if (_res == NULL && PyErr_Occurred()) {
2317 p->error_indicator = 1;
2318 D(p->level--);
2319 return NULL;
2320 }
2321 goto done;
2322 }
2323 p->mark = _mark;
2324 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2326 }
2327 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2328 if (p->error_indicator) {
2329 D(p->level--);
2330 return NULL;
2331 }
2332 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2333 Token * _literal;
2334 void *a;
2335 expr_ty b;
2336 void *c;
2337 if (
2338 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2339 &&
2340 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2341 &&
2342 (b = expression_rule(p)) // expression
2343 &&
2344 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2345 )
2346 {
2347 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2348 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2349 if (_token == NULL) {
2350 D(p->level--);
2351 return NULL;
2352 }
2353 int _end_lineno = _token->end_lineno;
2354 UNUSED(_end_lineno); // Only used by EXTRA macro
2355 int _end_col_offset = _token->end_col_offset;
2356 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002357 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002358 if (_res == NULL && PyErr_Occurred()) {
2359 p->error_indicator = 1;
2360 D(p->level--);
2361 return NULL;
2362 }
2363 goto done;
2364 }
2365 p->mark = _mark;
2366 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2368 }
2369 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2370 if (p->error_indicator) {
2371 D(p->level--);
2372 return NULL;
2373 }
2374 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 +01002375 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002376 void *b;
2377 void *tc;
2378 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002379 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002380 &&
2381 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2382 &&
2383 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2384 &&
2385 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2386 )
2387 {
2388 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2389 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2390 if (_token == NULL) {
2391 D(p->level--);
2392 return NULL;
2393 }
2394 int _end_lineno = _token->end_lineno;
2395 UNUSED(_end_lineno); // Only used by EXTRA macro
2396 int _end_col_offset = _token->end_col_offset;
2397 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002398 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002399 if (_res == NULL && PyErr_Occurred()) {
2400 p->error_indicator = 1;
2401 D(p->level--);
2402 return NULL;
2403 }
2404 goto done;
2405 }
2406 p->mark = _mark;
2407 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2409 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002410 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002411 if (p->error_indicator) {
2412 D(p->level--);
2413 return NULL;
2414 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002415 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2416 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002417 expr_ty a;
2418 AugOperator* b;
2419 void *c;
2420 if (
2421 (a = single_target_rule(p)) // single_target
2422 &&
2423 (b = augassign_rule(p)) // augassign
2424 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002425 (_cut_var = 1)
2426 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002427 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2428 )
2429 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002430 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 +01002431 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2432 if (_token == NULL) {
2433 D(p->level--);
2434 return NULL;
2435 }
2436 int _end_lineno = _token->end_lineno;
2437 UNUSED(_end_lineno); // Only used by EXTRA macro
2438 int _end_col_offset = _token->end_col_offset;
2439 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002440 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002441 if (_res == NULL && PyErr_Occurred()) {
2442 p->error_indicator = 1;
2443 D(p->level--);
2444 return NULL;
2445 }
2446 goto done;
2447 }
2448 p->mark = _mark;
2449 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2451 if (_cut_var) {
2452 D(p->level--);
2453 return NULL;
2454 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002455 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002456 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002457 if (p->error_indicator) {
2458 D(p->level--);
2459 return NULL;
2460 }
2461 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2462 void *invalid_assignment_var;
2463 if (
2464 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2465 )
2466 {
2467 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2468 _res = invalid_assignment_var;
2469 goto done;
2470 }
2471 p->mark = _mark;
2472 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2474 }
2475 _res = NULL;
2476 done:
2477 D(p->level--);
2478 return _res;
2479}
2480
2481// augassign:
2482// | '+='
2483// | '-='
2484// | '*='
2485// | '@='
2486// | '/='
2487// | '%='
2488// | '&='
2489// | '|='
2490// | '^='
2491// | '<<='
2492// | '>>='
2493// | '**='
2494// | '//='
2495static AugOperator*
2496augassign_rule(Parser *p)
2497{
2498 D(p->level++);
2499 if (p->error_indicator) {
2500 D(p->level--);
2501 return NULL;
2502 }
2503 AugOperator* _res = NULL;
2504 int _mark = p->mark;
2505 { // '+='
2506 if (p->error_indicator) {
2507 D(p->level--);
2508 return NULL;
2509 }
2510 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2511 Token * _literal;
2512 if (
2513 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2514 )
2515 {
2516 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2517 _res = _PyPegen_augoperator ( p , Add );
2518 if (_res == NULL && PyErr_Occurred()) {
2519 p->error_indicator = 1;
2520 D(p->level--);
2521 return NULL;
2522 }
2523 goto done;
2524 }
2525 p->mark = _mark;
2526 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2528 }
2529 { // '-='
2530 if (p->error_indicator) {
2531 D(p->level--);
2532 return NULL;
2533 }
2534 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2535 Token * _literal;
2536 if (
2537 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2538 )
2539 {
2540 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2541 _res = _PyPegen_augoperator ( p , Sub );
2542 if (_res == NULL && PyErr_Occurred()) {
2543 p->error_indicator = 1;
2544 D(p->level--);
2545 return NULL;
2546 }
2547 goto done;
2548 }
2549 p->mark = _mark;
2550 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2552 }
2553 { // '*='
2554 if (p->error_indicator) {
2555 D(p->level--);
2556 return NULL;
2557 }
2558 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2559 Token * _literal;
2560 if (
2561 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2562 )
2563 {
2564 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2565 _res = _PyPegen_augoperator ( p , Mult );
2566 if (_res == NULL && PyErr_Occurred()) {
2567 p->error_indicator = 1;
2568 D(p->level--);
2569 return NULL;
2570 }
2571 goto done;
2572 }
2573 p->mark = _mark;
2574 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2576 }
2577 { // '@='
2578 if (p->error_indicator) {
2579 D(p->level--);
2580 return NULL;
2581 }
2582 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2583 Token * _literal;
2584 if (
2585 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2586 )
2587 {
2588 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002589 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002590 if (_res == NULL && PyErr_Occurred()) {
2591 p->error_indicator = 1;
2592 D(p->level--);
2593 return NULL;
2594 }
2595 goto done;
2596 }
2597 p->mark = _mark;
2598 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2600 }
2601 { // '/='
2602 if (p->error_indicator) {
2603 D(p->level--);
2604 return NULL;
2605 }
2606 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2607 Token * _literal;
2608 if (
2609 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2610 )
2611 {
2612 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2613 _res = _PyPegen_augoperator ( p , Div );
2614 if (_res == NULL && PyErr_Occurred()) {
2615 p->error_indicator = 1;
2616 D(p->level--);
2617 return NULL;
2618 }
2619 goto done;
2620 }
2621 p->mark = _mark;
2622 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2624 }
2625 { // '%='
2626 if (p->error_indicator) {
2627 D(p->level--);
2628 return NULL;
2629 }
2630 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2631 Token * _literal;
2632 if (
2633 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2634 )
2635 {
2636 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2637 _res = _PyPegen_augoperator ( p , Mod );
2638 if (_res == NULL && PyErr_Occurred()) {
2639 p->error_indicator = 1;
2640 D(p->level--);
2641 return NULL;
2642 }
2643 goto done;
2644 }
2645 p->mark = _mark;
2646 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2648 }
2649 { // '&='
2650 if (p->error_indicator) {
2651 D(p->level--);
2652 return NULL;
2653 }
2654 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2655 Token * _literal;
2656 if (
2657 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2658 )
2659 {
2660 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2661 _res = _PyPegen_augoperator ( p , BitAnd );
2662 if (_res == NULL && PyErr_Occurred()) {
2663 p->error_indicator = 1;
2664 D(p->level--);
2665 return NULL;
2666 }
2667 goto done;
2668 }
2669 p->mark = _mark;
2670 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2672 }
2673 { // '|='
2674 if (p->error_indicator) {
2675 D(p->level--);
2676 return NULL;
2677 }
2678 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2679 Token * _literal;
2680 if (
2681 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2682 )
2683 {
2684 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2685 _res = _PyPegen_augoperator ( p , BitOr );
2686 if (_res == NULL && PyErr_Occurred()) {
2687 p->error_indicator = 1;
2688 D(p->level--);
2689 return NULL;
2690 }
2691 goto done;
2692 }
2693 p->mark = _mark;
2694 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2696 }
2697 { // '^='
2698 if (p->error_indicator) {
2699 D(p->level--);
2700 return NULL;
2701 }
2702 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2703 Token * _literal;
2704 if (
2705 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2706 )
2707 {
2708 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2709 _res = _PyPegen_augoperator ( p , BitXor );
2710 if (_res == NULL && PyErr_Occurred()) {
2711 p->error_indicator = 1;
2712 D(p->level--);
2713 return NULL;
2714 }
2715 goto done;
2716 }
2717 p->mark = _mark;
2718 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2720 }
2721 { // '<<='
2722 if (p->error_indicator) {
2723 D(p->level--);
2724 return NULL;
2725 }
2726 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2727 Token * _literal;
2728 if (
2729 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2730 )
2731 {
2732 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2733 _res = _PyPegen_augoperator ( p , LShift );
2734 if (_res == NULL && PyErr_Occurred()) {
2735 p->error_indicator = 1;
2736 D(p->level--);
2737 return NULL;
2738 }
2739 goto done;
2740 }
2741 p->mark = _mark;
2742 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2744 }
2745 { // '>>='
2746 if (p->error_indicator) {
2747 D(p->level--);
2748 return NULL;
2749 }
2750 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2751 Token * _literal;
2752 if (
2753 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2754 )
2755 {
2756 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2757 _res = _PyPegen_augoperator ( p , RShift );
2758 if (_res == NULL && PyErr_Occurred()) {
2759 p->error_indicator = 1;
2760 D(p->level--);
2761 return NULL;
2762 }
2763 goto done;
2764 }
2765 p->mark = _mark;
2766 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2768 }
2769 { // '**='
2770 if (p->error_indicator) {
2771 D(p->level--);
2772 return NULL;
2773 }
2774 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2775 Token * _literal;
2776 if (
2777 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2778 )
2779 {
2780 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2781 _res = _PyPegen_augoperator ( p , Pow );
2782 if (_res == NULL && PyErr_Occurred()) {
2783 p->error_indicator = 1;
2784 D(p->level--);
2785 return NULL;
2786 }
2787 goto done;
2788 }
2789 p->mark = _mark;
2790 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2792 }
2793 { // '//='
2794 if (p->error_indicator) {
2795 D(p->level--);
2796 return NULL;
2797 }
2798 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2799 Token * _literal;
2800 if (
2801 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2802 )
2803 {
2804 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2805 _res = _PyPegen_augoperator ( p , FloorDiv );
2806 if (_res == NULL && PyErr_Occurred()) {
2807 p->error_indicator = 1;
2808 D(p->level--);
2809 return NULL;
2810 }
2811 goto done;
2812 }
2813 p->mark = _mark;
2814 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2816 }
2817 _res = NULL;
2818 done:
2819 D(p->level--);
2820 return _res;
2821}
2822
2823// global_stmt: 'global' ','.NAME+
2824static stmt_ty
2825global_stmt_rule(Parser *p)
2826{
2827 D(p->level++);
2828 if (p->error_indicator) {
2829 D(p->level--);
2830 return NULL;
2831 }
2832 stmt_ty _res = NULL;
2833 int _mark = p->mark;
2834 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2835 p->error_indicator = 1;
2836 D(p->level--);
2837 return NULL;
2838 }
2839 int _start_lineno = p->tokens[_mark]->lineno;
2840 UNUSED(_start_lineno); // Only used by EXTRA macro
2841 int _start_col_offset = p->tokens[_mark]->col_offset;
2842 UNUSED(_start_col_offset); // Only used by EXTRA macro
2843 { // 'global' ','.NAME+
2844 if (p->error_indicator) {
2845 D(p->level--);
2846 return NULL;
2847 }
2848 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2849 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002850 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002851 if (
2852 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2853 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002854 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002855 )
2856 {
2857 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2858 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2859 if (_token == NULL) {
2860 D(p->level--);
2861 return NULL;
2862 }
2863 int _end_lineno = _token->end_lineno;
2864 UNUSED(_end_lineno); // Only used by EXTRA macro
2865 int _end_col_offset = _token->end_col_offset;
2866 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002867 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002868 if (_res == NULL && PyErr_Occurred()) {
2869 p->error_indicator = 1;
2870 D(p->level--);
2871 return NULL;
2872 }
2873 goto done;
2874 }
2875 p->mark = _mark;
2876 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2878 }
2879 _res = NULL;
2880 done:
2881 D(p->level--);
2882 return _res;
2883}
2884
2885// nonlocal_stmt: 'nonlocal' ','.NAME+
2886static stmt_ty
2887nonlocal_stmt_rule(Parser *p)
2888{
2889 D(p->level++);
2890 if (p->error_indicator) {
2891 D(p->level--);
2892 return NULL;
2893 }
2894 stmt_ty _res = NULL;
2895 int _mark = p->mark;
2896 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2897 p->error_indicator = 1;
2898 D(p->level--);
2899 return NULL;
2900 }
2901 int _start_lineno = p->tokens[_mark]->lineno;
2902 UNUSED(_start_lineno); // Only used by EXTRA macro
2903 int _start_col_offset = p->tokens[_mark]->col_offset;
2904 UNUSED(_start_col_offset); // Only used by EXTRA macro
2905 { // 'nonlocal' ','.NAME+
2906 if (p->error_indicator) {
2907 D(p->level--);
2908 return NULL;
2909 }
2910 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2911 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002912 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002913 if (
2914 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2915 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002916 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002917 )
2918 {
2919 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2920 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2921 if (_token == NULL) {
2922 D(p->level--);
2923 return NULL;
2924 }
2925 int _end_lineno = _token->end_lineno;
2926 UNUSED(_end_lineno); // Only used by EXTRA macro
2927 int _end_col_offset = _token->end_col_offset;
2928 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002929 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002930 if (_res == NULL && PyErr_Occurred()) {
2931 p->error_indicator = 1;
2932 D(p->level--);
2933 return NULL;
2934 }
2935 goto done;
2936 }
2937 p->mark = _mark;
2938 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2940 }
2941 _res = NULL;
2942 done:
2943 D(p->level--);
2944 return _res;
2945}
2946
2947// yield_stmt: yield_expr
2948static stmt_ty
2949yield_stmt_rule(Parser *p)
2950{
2951 D(p->level++);
2952 if (p->error_indicator) {
2953 D(p->level--);
2954 return NULL;
2955 }
2956 stmt_ty _res = NULL;
2957 int _mark = p->mark;
2958 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2959 p->error_indicator = 1;
2960 D(p->level--);
2961 return NULL;
2962 }
2963 int _start_lineno = p->tokens[_mark]->lineno;
2964 UNUSED(_start_lineno); // Only used by EXTRA macro
2965 int _start_col_offset = p->tokens[_mark]->col_offset;
2966 UNUSED(_start_col_offset); // Only used by EXTRA macro
2967 { // yield_expr
2968 if (p->error_indicator) {
2969 D(p->level--);
2970 return NULL;
2971 }
2972 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2973 expr_ty y;
2974 if (
2975 (y = yield_expr_rule(p)) // yield_expr
2976 )
2977 {
2978 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2979 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2980 if (_token == NULL) {
2981 D(p->level--);
2982 return NULL;
2983 }
2984 int _end_lineno = _token->end_lineno;
2985 UNUSED(_end_lineno); // Only used by EXTRA macro
2986 int _end_col_offset = _token->end_col_offset;
2987 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002988 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002989 if (_res == NULL && PyErr_Occurred()) {
2990 p->error_indicator = 1;
2991 D(p->level--);
2992 return NULL;
2993 }
2994 goto done;
2995 }
2996 p->mark = _mark;
2997 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2999 }
3000 _res = NULL;
3001 done:
3002 D(p->level--);
3003 return _res;
3004}
3005
3006// assert_stmt: 'assert' expression [',' expression]
3007static stmt_ty
3008assert_stmt_rule(Parser *p)
3009{
3010 D(p->level++);
3011 if (p->error_indicator) {
3012 D(p->level--);
3013 return NULL;
3014 }
3015 stmt_ty _res = NULL;
3016 int _mark = p->mark;
3017 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3018 p->error_indicator = 1;
3019 D(p->level--);
3020 return NULL;
3021 }
3022 int _start_lineno = p->tokens[_mark]->lineno;
3023 UNUSED(_start_lineno); // Only used by EXTRA macro
3024 int _start_col_offset = p->tokens[_mark]->col_offset;
3025 UNUSED(_start_col_offset); // Only used by EXTRA macro
3026 { // 'assert' expression [',' expression]
3027 if (p->error_indicator) {
3028 D(p->level--);
3029 return NULL;
3030 }
3031 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3032 Token * _keyword;
3033 expr_ty a;
3034 void *b;
3035 if (
3036 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3037 &&
3038 (a = expression_rule(p)) // expression
3039 &&
3040 (b = _tmp_29_rule(p), 1) // [',' expression]
3041 )
3042 {
3043 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3045 if (_token == NULL) {
3046 D(p->level--);
3047 return NULL;
3048 }
3049 int _end_lineno = _token->end_lineno;
3050 UNUSED(_end_lineno); // Only used by EXTRA macro
3051 int _end_col_offset = _token->end_col_offset;
3052 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003053 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003054 if (_res == NULL && PyErr_Occurred()) {
3055 p->error_indicator = 1;
3056 D(p->level--);
3057 return NULL;
3058 }
3059 goto done;
3060 }
3061 p->mark = _mark;
3062 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3064 }
3065 _res = NULL;
3066 done:
3067 D(p->level--);
3068 return _res;
3069}
3070
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003071// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003072static stmt_ty
3073del_stmt_rule(Parser *p)
3074{
3075 D(p->level++);
3076 if (p->error_indicator) {
3077 D(p->level--);
3078 return NULL;
3079 }
3080 stmt_ty _res = NULL;
3081 int _mark = p->mark;
3082 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3083 p->error_indicator = 1;
3084 D(p->level--);
3085 return NULL;
3086 }
3087 int _start_lineno = p->tokens[_mark]->lineno;
3088 UNUSED(_start_lineno); // Only used by EXTRA macro
3089 int _start_col_offset = p->tokens[_mark]->col_offset;
3090 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003091 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003092 if (p->error_indicator) {
3093 D(p->level--);
3094 return NULL;
3095 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003096 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 +01003097 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003098 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003099 if (
3100 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3101 &&
3102 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003103 &&
3104 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003105 )
3106 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003107 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 +01003108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3109 if (_token == NULL) {
3110 D(p->level--);
3111 return NULL;
3112 }
3113 int _end_lineno = _token->end_lineno;
3114 UNUSED(_end_lineno); // Only used by EXTRA macro
3115 int _end_col_offset = _token->end_col_offset;
3116 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003117 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003118 if (_res == NULL && PyErr_Occurred()) {
3119 p->error_indicator = 1;
3120 D(p->level--);
3121 return NULL;
3122 }
3123 goto done;
3124 }
3125 p->mark = _mark;
3126 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3128 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003129 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003130 if (p->error_indicator) {
3131 D(p->level--);
3132 return NULL;
3133 }
3134 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3135 void *invalid_del_stmt_var;
3136 if (
3137 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3138 )
3139 {
3140 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3141 _res = invalid_del_stmt_var;
3142 goto done;
3143 }
3144 p->mark = _mark;
3145 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003147 }
3148 _res = NULL;
3149 done:
3150 D(p->level--);
3151 return _res;
3152}
3153
3154// import_stmt: import_name | import_from
3155static stmt_ty
3156import_stmt_rule(Parser *p)
3157{
3158 D(p->level++);
3159 if (p->error_indicator) {
3160 D(p->level--);
3161 return NULL;
3162 }
3163 stmt_ty _res = NULL;
3164 int _mark = p->mark;
3165 { // import_name
3166 if (p->error_indicator) {
3167 D(p->level--);
3168 return NULL;
3169 }
3170 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3171 stmt_ty import_name_var;
3172 if (
3173 (import_name_var = import_name_rule(p)) // import_name
3174 )
3175 {
3176 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3177 _res = import_name_var;
3178 goto done;
3179 }
3180 p->mark = _mark;
3181 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3183 }
3184 { // import_from
3185 if (p->error_indicator) {
3186 D(p->level--);
3187 return NULL;
3188 }
3189 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3190 stmt_ty import_from_var;
3191 if (
3192 (import_from_var = import_from_rule(p)) // import_from
3193 )
3194 {
3195 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3196 _res = import_from_var;
3197 goto done;
3198 }
3199 p->mark = _mark;
3200 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3202 }
3203 _res = NULL;
3204 done:
3205 D(p->level--);
3206 return _res;
3207}
3208
3209// import_name: 'import' dotted_as_names
3210static stmt_ty
3211import_name_rule(Parser *p)
3212{
3213 D(p->level++);
3214 if (p->error_indicator) {
3215 D(p->level--);
3216 return NULL;
3217 }
3218 stmt_ty _res = NULL;
3219 int _mark = p->mark;
3220 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3221 p->error_indicator = 1;
3222 D(p->level--);
3223 return NULL;
3224 }
3225 int _start_lineno = p->tokens[_mark]->lineno;
3226 UNUSED(_start_lineno); // Only used by EXTRA macro
3227 int _start_col_offset = p->tokens[_mark]->col_offset;
3228 UNUSED(_start_col_offset); // Only used by EXTRA macro
3229 { // 'import' dotted_as_names
3230 if (p->error_indicator) {
3231 D(p->level--);
3232 return NULL;
3233 }
3234 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3235 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003236 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003237 if (
3238 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3239 &&
3240 (a = dotted_as_names_rule(p)) // dotted_as_names
3241 )
3242 {
3243 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3245 if (_token == NULL) {
3246 D(p->level--);
3247 return NULL;
3248 }
3249 int _end_lineno = _token->end_lineno;
3250 UNUSED(_end_lineno); // Only used by EXTRA macro
3251 int _end_col_offset = _token->end_col_offset;
3252 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003253 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003254 if (_res == NULL && PyErr_Occurred()) {
3255 p->error_indicator = 1;
3256 D(p->level--);
3257 return NULL;
3258 }
3259 goto done;
3260 }
3261 p->mark = _mark;
3262 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3264 }
3265 _res = NULL;
3266 done:
3267 D(p->level--);
3268 return _res;
3269}
3270
3271// import_from:
3272// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3273// | 'from' (('.' | '...'))+ 'import' import_from_targets
3274static stmt_ty
3275import_from_rule(Parser *p)
3276{
3277 D(p->level++);
3278 if (p->error_indicator) {
3279 D(p->level--);
3280 return NULL;
3281 }
3282 stmt_ty _res = NULL;
3283 int _mark = p->mark;
3284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3285 p->error_indicator = 1;
3286 D(p->level--);
3287 return NULL;
3288 }
3289 int _start_lineno = p->tokens[_mark]->lineno;
3290 UNUSED(_start_lineno); // Only used by EXTRA macro
3291 int _start_col_offset = p->tokens[_mark]->col_offset;
3292 UNUSED(_start_col_offset); // Only used by EXTRA macro
3293 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3294 if (p->error_indicator) {
3295 D(p->level--);
3296 return NULL;
3297 }
3298 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3299 Token * _keyword;
3300 Token * _keyword_1;
3301 asdl_seq * a;
3302 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003303 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003304 if (
3305 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3306 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003307 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003308 &&
3309 (b = dotted_name_rule(p)) // dotted_name
3310 &&
3311 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3312 &&
3313 (c = import_from_targets_rule(p)) // import_from_targets
3314 )
3315 {
3316 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3317 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3318 if (_token == NULL) {
3319 D(p->level--);
3320 return NULL;
3321 }
3322 int _end_lineno = _token->end_lineno;
3323 UNUSED(_end_lineno); // Only used by EXTRA macro
3324 int _end_col_offset = _token->end_col_offset;
3325 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003326 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003327 if (_res == NULL && PyErr_Occurred()) {
3328 p->error_indicator = 1;
3329 D(p->level--);
3330 return NULL;
3331 }
3332 goto done;
3333 }
3334 p->mark = _mark;
3335 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3337 }
3338 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3339 if (p->error_indicator) {
3340 D(p->level--);
3341 return NULL;
3342 }
3343 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3344 Token * _keyword;
3345 Token * _keyword_1;
3346 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003347 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003348 if (
3349 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3350 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003351 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003352 &&
3353 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3354 &&
3355 (b = import_from_targets_rule(p)) // import_from_targets
3356 )
3357 {
3358 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3359 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3360 if (_token == NULL) {
3361 D(p->level--);
3362 return NULL;
3363 }
3364 int _end_lineno = _token->end_lineno;
3365 UNUSED(_end_lineno); // Only used by EXTRA macro
3366 int _end_col_offset = _token->end_col_offset;
3367 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003368 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003369 if (_res == NULL && PyErr_Occurred()) {
3370 p->error_indicator = 1;
3371 D(p->level--);
3372 return NULL;
3373 }
3374 goto done;
3375 }
3376 p->mark = _mark;
3377 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3379 }
3380 _res = NULL;
3381 done:
3382 D(p->level--);
3383 return _res;
3384}
3385
3386// import_from_targets:
3387// | '(' import_from_as_names ','? ')'
3388// | import_from_as_names !','
3389// | '*'
3390// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003391static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003392import_from_targets_rule(Parser *p)
3393{
3394 D(p->level++);
3395 if (p->error_indicator) {
3396 D(p->level--);
3397 return NULL;
3398 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003399 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003400 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003401 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3402 p->error_indicator = 1;
3403 D(p->level--);
3404 return NULL;
3405 }
3406 int _start_lineno = p->tokens[_mark]->lineno;
3407 UNUSED(_start_lineno); // Only used by EXTRA macro
3408 int _start_col_offset = p->tokens[_mark]->col_offset;
3409 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003410 { // '(' import_from_as_names ','? ')'
3411 if (p->error_indicator) {
3412 D(p->level--);
3413 return NULL;
3414 }
3415 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3416 Token * _literal;
3417 Token * _literal_1;
3418 void *_opt_var;
3419 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003420 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003421 if (
3422 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3423 &&
3424 (a = import_from_as_names_rule(p)) // import_from_as_names
3425 &&
3426 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3427 &&
3428 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3429 )
3430 {
3431 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3432 _res = a;
3433 if (_res == NULL && PyErr_Occurred()) {
3434 p->error_indicator = 1;
3435 D(p->level--);
3436 return NULL;
3437 }
3438 goto done;
3439 }
3440 p->mark = _mark;
3441 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3443 }
3444 { // import_from_as_names !','
3445 if (p->error_indicator) {
3446 D(p->level--);
3447 return NULL;
3448 }
3449 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 +01003450 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003451 if (
3452 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3453 &&
3454 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3455 )
3456 {
3457 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3458 _res = import_from_as_names_var;
3459 goto done;
3460 }
3461 p->mark = _mark;
3462 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3464 }
3465 { // '*'
3466 if (p->error_indicator) {
3467 D(p->level--);
3468 return NULL;
3469 }
3470 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3471 Token * _literal;
3472 if (
3473 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3474 )
3475 {
3476 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003477 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3478 if (_token == NULL) {
3479 D(p->level--);
3480 return NULL;
3481 }
3482 int _end_lineno = _token->end_lineno;
3483 UNUSED(_end_lineno); // Only used by EXTRA macro
3484 int _end_col_offset = _token->end_col_offset;
3485 UNUSED(_end_col_offset); // Only used by EXTRA macro
3486 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003487 if (_res == NULL && PyErr_Occurred()) {
3488 p->error_indicator = 1;
3489 D(p->level--);
3490 return NULL;
3491 }
3492 goto done;
3493 }
3494 p->mark = _mark;
3495 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3497 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003498 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003499 if (p->error_indicator) {
3500 D(p->level--);
3501 return NULL;
3502 }
3503 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3504 void *invalid_import_from_targets_var;
3505 if (
3506 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3507 )
3508 {
3509 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3510 _res = invalid_import_from_targets_var;
3511 goto done;
3512 }
3513 p->mark = _mark;
3514 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3516 }
3517 _res = NULL;
3518 done:
3519 D(p->level--);
3520 return _res;
3521}
3522
3523// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003524static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003525import_from_as_names_rule(Parser *p)
3526{
3527 D(p->level++);
3528 if (p->error_indicator) {
3529 D(p->level--);
3530 return NULL;
3531 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003532 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003533 int _mark = p->mark;
3534 { // ','.import_from_as_name+
3535 if (p->error_indicator) {
3536 D(p->level--);
3537 return NULL;
3538 }
3539 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 +01003540 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003541 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003542 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003543 )
3544 {
3545 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3546 _res = a;
3547 if (_res == NULL && PyErr_Occurred()) {
3548 p->error_indicator = 1;
3549 D(p->level--);
3550 return NULL;
3551 }
3552 goto done;
3553 }
3554 p->mark = _mark;
3555 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3557 }
3558 _res = NULL;
3559 done:
3560 D(p->level--);
3561 return _res;
3562}
3563
3564// import_from_as_name: NAME ['as' NAME]
3565static alias_ty
3566import_from_as_name_rule(Parser *p)
3567{
3568 D(p->level++);
3569 if (p->error_indicator) {
3570 D(p->level--);
3571 return NULL;
3572 }
3573 alias_ty _res = NULL;
3574 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003575 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3576 p->error_indicator = 1;
3577 D(p->level--);
3578 return NULL;
3579 }
3580 int _start_lineno = p->tokens[_mark]->lineno;
3581 UNUSED(_start_lineno); // Only used by EXTRA macro
3582 int _start_col_offset = p->tokens[_mark]->col_offset;
3583 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003584 { // NAME ['as' NAME]
3585 if (p->error_indicator) {
3586 D(p->level--);
3587 return NULL;
3588 }
3589 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3590 expr_ty a;
3591 void *b;
3592 if (
3593 (a = _PyPegen_name_token(p)) // NAME
3594 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003595 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003596 )
3597 {
3598 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 -04003599 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3600 if (_token == NULL) {
3601 D(p->level--);
3602 return NULL;
3603 }
3604 int _end_lineno = _token->end_lineno;
3605 UNUSED(_end_lineno); // Only used by EXTRA macro
3606 int _end_col_offset = _token->end_col_offset;
3607 UNUSED(_end_col_offset); // Only used by EXTRA macro
3608 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003609 if (_res == NULL && PyErr_Occurred()) {
3610 p->error_indicator = 1;
3611 D(p->level--);
3612 return NULL;
3613 }
3614 goto done;
3615 }
3616 p->mark = _mark;
3617 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3619 }
3620 _res = NULL;
3621 done:
3622 D(p->level--);
3623 return _res;
3624}
3625
3626// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003627static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003628dotted_as_names_rule(Parser *p)
3629{
3630 D(p->level++);
3631 if (p->error_indicator) {
3632 D(p->level--);
3633 return NULL;
3634 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003635 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003636 int _mark = p->mark;
3637 { // ','.dotted_as_name+
3638 if (p->error_indicator) {
3639 D(p->level--);
3640 return NULL;
3641 }
3642 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 +01003643 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003644 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003645 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003646 )
3647 {
3648 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3649 _res = a;
3650 if (_res == NULL && PyErr_Occurred()) {
3651 p->error_indicator = 1;
3652 D(p->level--);
3653 return NULL;
3654 }
3655 goto done;
3656 }
3657 p->mark = _mark;
3658 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3660 }
3661 _res = NULL;
3662 done:
3663 D(p->level--);
3664 return _res;
3665}
3666
3667// dotted_as_name: dotted_name ['as' NAME]
3668static alias_ty
3669dotted_as_name_rule(Parser *p)
3670{
3671 D(p->level++);
3672 if (p->error_indicator) {
3673 D(p->level--);
3674 return NULL;
3675 }
3676 alias_ty _res = NULL;
3677 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003678 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3679 p->error_indicator = 1;
3680 D(p->level--);
3681 return NULL;
3682 }
3683 int _start_lineno = p->tokens[_mark]->lineno;
3684 UNUSED(_start_lineno); // Only used by EXTRA macro
3685 int _start_col_offset = p->tokens[_mark]->col_offset;
3686 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003687 { // dotted_name ['as' NAME]
3688 if (p->error_indicator) {
3689 D(p->level--);
3690 return NULL;
3691 }
3692 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3693 expr_ty a;
3694 void *b;
3695 if (
3696 (a = dotted_name_rule(p)) // dotted_name
3697 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003698 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003699 )
3700 {
3701 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 -04003702 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3703 if (_token == NULL) {
3704 D(p->level--);
3705 return NULL;
3706 }
3707 int _end_lineno = _token->end_lineno;
3708 UNUSED(_end_lineno); // Only used by EXTRA macro
3709 int _end_col_offset = _token->end_col_offset;
3710 UNUSED(_end_col_offset); // Only used by EXTRA macro
3711 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003712 if (_res == NULL && PyErr_Occurred()) {
3713 p->error_indicator = 1;
3714 D(p->level--);
3715 return NULL;
3716 }
3717 goto done;
3718 }
3719 p->mark = _mark;
3720 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3722 }
3723 _res = NULL;
3724 done:
3725 D(p->level--);
3726 return _res;
3727}
3728
3729// Left-recursive
3730// dotted_name: dotted_name '.' NAME | NAME
3731static expr_ty dotted_name_raw(Parser *);
3732static expr_ty
3733dotted_name_rule(Parser *p)
3734{
3735 D(p->level++);
3736 expr_ty _res = NULL;
3737 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3738 D(p->level--);
3739 return _res;
3740 }
3741 int _mark = p->mark;
3742 int _resmark = p->mark;
3743 while (1) {
3744 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3745 if (tmpvar_0) {
3746 D(p->level--);
3747 return _res;
3748 }
3749 p->mark = _mark;
3750 void *_raw = dotted_name_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003751 if (p->error_indicator)
3752 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003753 if (_raw == NULL || p->mark <= _resmark)
3754 break;
3755 _resmark = p->mark;
3756 _res = _raw;
3757 }
3758 p->mark = _resmark;
3759 D(p->level--);
3760 return _res;
3761}
3762static expr_ty
3763dotted_name_raw(Parser *p)
3764{
3765 D(p->level++);
3766 if (p->error_indicator) {
3767 D(p->level--);
3768 return NULL;
3769 }
3770 expr_ty _res = NULL;
3771 int _mark = p->mark;
3772 { // dotted_name '.' NAME
3773 if (p->error_indicator) {
3774 D(p->level--);
3775 return NULL;
3776 }
3777 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3778 Token * _literal;
3779 expr_ty a;
3780 expr_ty b;
3781 if (
3782 (a = dotted_name_rule(p)) // dotted_name
3783 &&
3784 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3785 &&
3786 (b = _PyPegen_name_token(p)) // NAME
3787 )
3788 {
3789 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3790 _res = _PyPegen_join_names_with_dot ( p , a , b );
3791 if (_res == NULL && PyErr_Occurred()) {
3792 p->error_indicator = 1;
3793 D(p->level--);
3794 return NULL;
3795 }
3796 goto done;
3797 }
3798 p->mark = _mark;
3799 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3801 }
3802 { // NAME
3803 if (p->error_indicator) {
3804 D(p->level--);
3805 return NULL;
3806 }
3807 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3808 expr_ty name_var;
3809 if (
3810 (name_var = _PyPegen_name_token(p)) // NAME
3811 )
3812 {
3813 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3814 _res = name_var;
3815 goto done;
3816 }
3817 p->mark = _mark;
3818 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3820 }
3821 _res = NULL;
3822 done:
3823 D(p->level--);
3824 return _res;
3825}
3826
3827// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003828// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003829// | 'if' named_expression ':' block elif_stmt
3830// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003831static stmt_ty
3832if_stmt_rule(Parser *p)
3833{
3834 D(p->level++);
3835 if (p->error_indicator) {
3836 D(p->level--);
3837 return NULL;
3838 }
3839 stmt_ty _res = NULL;
3840 int _mark = p->mark;
3841 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3842 p->error_indicator = 1;
3843 D(p->level--);
3844 return NULL;
3845 }
3846 int _start_lineno = p->tokens[_mark]->lineno;
3847 UNUSED(_start_lineno); // Only used by EXTRA macro
3848 int _start_col_offset = p->tokens[_mark]->col_offset;
3849 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003850 if (p->call_invalid_rules) { // invalid_if_stmt
3851 if (p->error_indicator) {
3852 D(p->level--);
3853 return NULL;
3854 }
3855 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3856 void *invalid_if_stmt_var;
3857 if (
3858 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3859 )
3860 {
3861 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3862 _res = invalid_if_stmt_var;
3863 goto done;
3864 }
3865 p->mark = _mark;
3866 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3868 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003869 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003870 if (p->error_indicator) {
3871 D(p->level--);
3872 return NULL;
3873 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003874 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 +01003875 Token * _keyword;
3876 Token * _literal;
3877 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003878 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003879 stmt_ty c;
3880 if (
3881 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3882 &&
3883 (a = named_expression_rule(p)) // named_expression
3884 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003885 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003886 &&
3887 (b = block_rule(p)) // block
3888 &&
3889 (c = elif_stmt_rule(p)) // elif_stmt
3890 )
3891 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003892 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 +01003893 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3894 if (_token == NULL) {
3895 D(p->level--);
3896 return NULL;
3897 }
3898 int _end_lineno = _token->end_lineno;
3899 UNUSED(_end_lineno); // Only used by EXTRA macro
3900 int _end_col_offset = _token->end_col_offset;
3901 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003902 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003903 if (_res == NULL && PyErr_Occurred()) {
3904 p->error_indicator = 1;
3905 D(p->level--);
3906 return NULL;
3907 }
3908 goto done;
3909 }
3910 p->mark = _mark;
3911 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003913 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003914 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003915 if (p->error_indicator) {
3916 D(p->level--);
3917 return NULL;
3918 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003919 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 +01003920 Token * _keyword;
3921 Token * _literal;
3922 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003923 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003924 void *c;
3925 if (
3926 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3927 &&
3928 (a = named_expression_rule(p)) // named_expression
3929 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003930 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003931 &&
3932 (b = block_rule(p)) // block
3933 &&
3934 (c = else_block_rule(p), 1) // else_block?
3935 )
3936 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003937 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 +01003938 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3939 if (_token == NULL) {
3940 D(p->level--);
3941 return NULL;
3942 }
3943 int _end_lineno = _token->end_lineno;
3944 UNUSED(_end_lineno); // Only used by EXTRA macro
3945 int _end_col_offset = _token->end_col_offset;
3946 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003947 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003948 if (_res == NULL && PyErr_Occurred()) {
3949 p->error_indicator = 1;
3950 D(p->level--);
3951 return NULL;
3952 }
3953 goto done;
3954 }
3955 p->mark = _mark;
3956 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3958 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003959 _res = NULL;
3960 done:
3961 D(p->level--);
3962 return _res;
3963}
3964
3965// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003966// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003967// | 'elif' named_expression ':' block elif_stmt
3968// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003969static stmt_ty
3970elif_stmt_rule(Parser *p)
3971{
3972 D(p->level++);
3973 if (p->error_indicator) {
3974 D(p->level--);
3975 return NULL;
3976 }
3977 stmt_ty _res = NULL;
3978 int _mark = p->mark;
3979 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3980 p->error_indicator = 1;
3981 D(p->level--);
3982 return NULL;
3983 }
3984 int _start_lineno = p->tokens[_mark]->lineno;
3985 UNUSED(_start_lineno); // Only used by EXTRA macro
3986 int _start_col_offset = p->tokens[_mark]->col_offset;
3987 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003988 if (p->call_invalid_rules) { // invalid_elif_stmt
3989 if (p->error_indicator) {
3990 D(p->level--);
3991 return NULL;
3992 }
3993 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3994 void *invalid_elif_stmt_var;
3995 if (
3996 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
3997 )
3998 {
3999 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4000 _res = invalid_elif_stmt_var;
4001 goto done;
4002 }
4003 p->mark = _mark;
4004 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4006 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004007 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004008 if (p->error_indicator) {
4009 D(p->level--);
4010 return NULL;
4011 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004012 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 +01004013 Token * _keyword;
4014 Token * _literal;
4015 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004016 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004017 stmt_ty c;
4018 if (
4019 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4020 &&
4021 (a = named_expression_rule(p)) // named_expression
4022 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004023 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004024 &&
4025 (b = block_rule(p)) // block
4026 &&
4027 (c = elif_stmt_rule(p)) // elif_stmt
4028 )
4029 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004030 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 +01004031 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4032 if (_token == NULL) {
4033 D(p->level--);
4034 return NULL;
4035 }
4036 int _end_lineno = _token->end_lineno;
4037 UNUSED(_end_lineno); // Only used by EXTRA macro
4038 int _end_col_offset = _token->end_col_offset;
4039 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004040 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004041 if (_res == NULL && PyErr_Occurred()) {
4042 p->error_indicator = 1;
4043 D(p->level--);
4044 return NULL;
4045 }
4046 goto done;
4047 }
4048 p->mark = _mark;
4049 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004051 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004052 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004053 if (p->error_indicator) {
4054 D(p->level--);
4055 return NULL;
4056 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004057 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 +01004058 Token * _keyword;
4059 Token * _literal;
4060 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004061 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004062 void *c;
4063 if (
4064 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4065 &&
4066 (a = named_expression_rule(p)) // named_expression
4067 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004068 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004069 &&
4070 (b = block_rule(p)) // block
4071 &&
4072 (c = else_block_rule(p), 1) // else_block?
4073 )
4074 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004075 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 +01004076 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4077 if (_token == NULL) {
4078 D(p->level--);
4079 return NULL;
4080 }
4081 int _end_lineno = _token->end_lineno;
4082 UNUSED(_end_lineno); // Only used by EXTRA macro
4083 int _end_col_offset = _token->end_col_offset;
4084 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004085 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004086 if (_res == NULL && PyErr_Occurred()) {
4087 p->error_indicator = 1;
4088 D(p->level--);
4089 return NULL;
4090 }
4091 goto done;
4092 }
4093 p->mark = _mark;
4094 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4096 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004097 _res = NULL;
4098 done:
4099 D(p->level--);
4100 return _res;
4101}
4102
Pablo Galindo56c95df2021-04-21 15:28:21 +01004103// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004104static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004105else_block_rule(Parser *p)
4106{
4107 D(p->level++);
4108 if (p->error_indicator) {
4109 D(p->level--);
4110 return NULL;
4111 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004112 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004113 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004114 if (p->call_invalid_rules) { // invalid_else_stmt
4115 if (p->error_indicator) {
4116 D(p->level--);
4117 return NULL;
4118 }
4119 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4120 void *invalid_else_stmt_var;
4121 if (
4122 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4123 )
4124 {
4125 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4126 _res = invalid_else_stmt_var;
4127 goto done;
4128 }
4129 p->mark = _mark;
4130 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4132 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004133 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004134 if (p->error_indicator) {
4135 D(p->level--);
4136 return NULL;
4137 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004138 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004139 Token * _keyword;
4140 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004141 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004142 if (
4143 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4144 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004145 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004146 &&
4147 (b = block_rule(p)) // block
4148 )
4149 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004150 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 +01004151 _res = b;
4152 if (_res == NULL && PyErr_Occurred()) {
4153 p->error_indicator = 1;
4154 D(p->level--);
4155 return NULL;
4156 }
4157 goto done;
4158 }
4159 p->mark = _mark;
4160 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004161 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004162 }
4163 _res = NULL;
4164 done:
4165 D(p->level--);
4166 return _res;
4167}
4168
Pablo Galindo56c95df2021-04-21 15:28:21 +01004169// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004170static stmt_ty
4171while_stmt_rule(Parser *p)
4172{
4173 D(p->level++);
4174 if (p->error_indicator) {
4175 D(p->level--);
4176 return NULL;
4177 }
4178 stmt_ty _res = NULL;
4179 int _mark = p->mark;
4180 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4181 p->error_indicator = 1;
4182 D(p->level--);
4183 return NULL;
4184 }
4185 int _start_lineno = p->tokens[_mark]->lineno;
4186 UNUSED(_start_lineno); // Only used by EXTRA macro
4187 int _start_col_offset = p->tokens[_mark]->col_offset;
4188 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004189 if (p->call_invalid_rules) { // invalid_while_stmt
4190 if (p->error_indicator) {
4191 D(p->level--);
4192 return NULL;
4193 }
4194 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4195 void *invalid_while_stmt_var;
4196 if (
4197 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4198 )
4199 {
4200 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4201 _res = invalid_while_stmt_var;
4202 goto done;
4203 }
4204 p->mark = _mark;
4205 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4207 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004208 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004209 if (p->error_indicator) {
4210 D(p->level--);
4211 return NULL;
4212 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004213 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 +01004214 Token * _keyword;
4215 Token * _literal;
4216 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004217 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004218 void *c;
4219 if (
4220 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4221 &&
4222 (a = named_expression_rule(p)) // named_expression
4223 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004224 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004225 &&
4226 (b = block_rule(p)) // block
4227 &&
4228 (c = else_block_rule(p), 1) // else_block?
4229 )
4230 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004231 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 +01004232 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4233 if (_token == NULL) {
4234 D(p->level--);
4235 return NULL;
4236 }
4237 int _end_lineno = _token->end_lineno;
4238 UNUSED(_end_lineno); // Only used by EXTRA macro
4239 int _end_col_offset = _token->end_col_offset;
4240 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004241 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004242 if (_res == NULL && PyErr_Occurred()) {
4243 p->error_indicator = 1;
4244 D(p->level--);
4245 return NULL;
4246 }
4247 goto done;
4248 }
4249 p->mark = _mark;
4250 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4252 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004253 _res = NULL;
4254 done:
4255 D(p->level--);
4256 return _res;
4257}
4258
4259// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004260// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004261// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4262// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004263// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004264static stmt_ty
4265for_stmt_rule(Parser *p)
4266{
4267 D(p->level++);
4268 if (p->error_indicator) {
4269 D(p->level--);
4270 return NULL;
4271 }
4272 stmt_ty _res = NULL;
4273 int _mark = p->mark;
4274 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4275 p->error_indicator = 1;
4276 D(p->level--);
4277 return NULL;
4278 }
4279 int _start_lineno = p->tokens[_mark]->lineno;
4280 UNUSED(_start_lineno); // Only used by EXTRA macro
4281 int _start_col_offset = p->tokens[_mark]->col_offset;
4282 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004283 if (p->call_invalid_rules) { // invalid_for_stmt
4284 if (p->error_indicator) {
4285 D(p->level--);
4286 return NULL;
4287 }
4288 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4289 void *invalid_for_stmt_var;
4290 if (
4291 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4292 )
4293 {
4294 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4295 _res = invalid_for_stmt_var;
4296 goto done;
4297 }
4298 p->mark = _mark;
4299 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4301 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004302 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004303 if (p->error_indicator) {
4304 D(p->level--);
4305 return NULL;
4306 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004307 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 +03004308 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004309 Token * _keyword;
4310 Token * _keyword_1;
4311 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004312 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004313 void *el;
4314 expr_ty ex;
4315 expr_ty t;
4316 void *tc;
4317 if (
4318 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4319 &&
4320 (t = star_targets_rule(p)) // star_targets
4321 &&
4322 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4323 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004324 (_cut_var = 1)
4325 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004326 (ex = star_expressions_rule(p)) // star_expressions
4327 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004328 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004329 &&
4330 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4331 &&
4332 (b = block_rule(p)) // block
4333 &&
4334 (el = else_block_rule(p), 1) // else_block?
4335 )
4336 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004337 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 +01004338 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4339 if (_token == NULL) {
4340 D(p->level--);
4341 return NULL;
4342 }
4343 int _end_lineno = _token->end_lineno;
4344 UNUSED(_end_lineno); // Only used by EXTRA macro
4345 int _end_col_offset = _token->end_col_offset;
4346 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004347 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004348 if (_res == NULL && PyErr_Occurred()) {
4349 p->error_indicator = 1;
4350 D(p->level--);
4351 return NULL;
4352 }
4353 goto done;
4354 }
4355 p->mark = _mark;
4356 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004357 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 +03004358 if (_cut_var) {
4359 D(p->level--);
4360 return NULL;
4361 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004362 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004363 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004364 if (p->error_indicator) {
4365 D(p->level--);
4366 return NULL;
4367 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004368 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 +03004369 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004370 Token * _keyword;
4371 Token * _keyword_1;
4372 Token * _literal;
4373 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004374 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004375 void *el;
4376 expr_ty ex;
4377 expr_ty t;
4378 void *tc;
4379 if (
4380 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4381 &&
4382 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4383 &&
4384 (t = star_targets_rule(p)) // star_targets
4385 &&
4386 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4387 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004388 (_cut_var = 1)
4389 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004390 (ex = star_expressions_rule(p)) // star_expressions
4391 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004392 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004393 &&
4394 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4395 &&
4396 (b = block_rule(p)) // block
4397 &&
4398 (el = else_block_rule(p), 1) // else_block?
4399 )
4400 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004401 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 +01004402 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4403 if (_token == NULL) {
4404 D(p->level--);
4405 return NULL;
4406 }
4407 int _end_lineno = _token->end_lineno;
4408 UNUSED(_end_lineno); // Only used by EXTRA macro
4409 int _end_col_offset = _token->end_col_offset;
4410 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004411 _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 +01004412 if (_res == NULL && PyErr_Occurred()) {
4413 p->error_indicator = 1;
4414 D(p->level--);
4415 return NULL;
4416 }
4417 goto done;
4418 }
4419 p->mark = _mark;
4420 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004421 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 +03004422 if (_cut_var) {
4423 D(p->level--);
4424 return NULL;
4425 }
4426 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004427 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004428 if (p->error_indicator) {
4429 D(p->level--);
4430 return NULL;
4431 }
4432 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4433 void *invalid_for_target_var;
4434 if (
4435 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4436 )
4437 {
4438 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4439 _res = invalid_for_target_var;
4440 goto done;
4441 }
4442 p->mark = _mark;
4443 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004445 }
4446 _res = NULL;
4447 done:
4448 D(p->level--);
4449 return _res;
4450}
4451
4452// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004453// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004454// | 'with' '(' ','.with_item+ ','? ')' ':' block
4455// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4456// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4457// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004458// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004459static stmt_ty
4460with_stmt_rule(Parser *p)
4461{
4462 D(p->level++);
4463 if (p->error_indicator) {
4464 D(p->level--);
4465 return NULL;
4466 }
4467 stmt_ty _res = NULL;
4468 int _mark = p->mark;
4469 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4470 p->error_indicator = 1;
4471 D(p->level--);
4472 return NULL;
4473 }
4474 int _start_lineno = p->tokens[_mark]->lineno;
4475 UNUSED(_start_lineno); // Only used by EXTRA macro
4476 int _start_col_offset = p->tokens[_mark]->col_offset;
4477 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004478 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4479 if (p->error_indicator) {
4480 D(p->level--);
4481 return NULL;
4482 }
4483 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4484 void *invalid_with_stmt_indent_var;
4485 if (
4486 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4487 )
4488 {
4489 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4490 _res = invalid_with_stmt_indent_var;
4491 goto done;
4492 }
4493 p->mark = _mark;
4494 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4496 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004497 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4498 if (p->error_indicator) {
4499 D(p->level--);
4500 return NULL;
4501 }
4502 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4503 Token * _keyword;
4504 Token * _literal;
4505 Token * _literal_1;
4506 Token * _literal_2;
4507 void *_opt_var;
4508 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004509 asdl_withitem_seq* a;
4510 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004511 if (
4512 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4513 &&
4514 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4515 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004516 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004517 &&
4518 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4519 &&
4520 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4521 &&
4522 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4523 &&
4524 (b = block_rule(p)) // block
4525 )
4526 {
4527 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4528 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4529 if (_token == NULL) {
4530 D(p->level--);
4531 return NULL;
4532 }
4533 int _end_lineno = _token->end_lineno;
4534 UNUSED(_end_lineno); // Only used by EXTRA macro
4535 int _end_col_offset = _token->end_col_offset;
4536 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004537 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004538 if (_res == NULL && PyErr_Occurred()) {
4539 p->error_indicator = 1;
4540 D(p->level--);
4541 return NULL;
4542 }
4543 goto done;
4544 }
4545 p->mark = _mark;
4546 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4548 }
4549 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4550 if (p->error_indicator) {
4551 D(p->level--);
4552 return NULL;
4553 }
4554 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4555 Token * _keyword;
4556 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004557 asdl_withitem_seq* a;
4558 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004559 void *tc;
4560 if (
4561 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4562 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004563 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004564 &&
4565 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4566 &&
4567 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4568 &&
4569 (b = block_rule(p)) // block
4570 )
4571 {
4572 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4573 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4574 if (_token == NULL) {
4575 D(p->level--);
4576 return NULL;
4577 }
4578 int _end_lineno = _token->end_lineno;
4579 UNUSED(_end_lineno); // Only used by EXTRA macro
4580 int _end_col_offset = _token->end_col_offset;
4581 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004582 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004583 if (_res == NULL && PyErr_Occurred()) {
4584 p->error_indicator = 1;
4585 D(p->level--);
4586 return NULL;
4587 }
4588 goto done;
4589 }
4590 p->mark = _mark;
4591 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4593 }
4594 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4595 if (p->error_indicator) {
4596 D(p->level--);
4597 return NULL;
4598 }
4599 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4600 Token * _keyword;
4601 Token * _literal;
4602 Token * _literal_1;
4603 Token * _literal_2;
4604 void *_opt_var;
4605 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004606 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004607 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004608 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004609 if (
4610 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4611 &&
4612 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4613 &&
4614 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4615 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004616 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004617 &&
4618 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4619 &&
4620 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4621 &&
4622 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4623 &&
4624 (b = block_rule(p)) // block
4625 )
4626 {
4627 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4629 if (_token == NULL) {
4630 D(p->level--);
4631 return NULL;
4632 }
4633 int _end_lineno = _token->end_lineno;
4634 UNUSED(_end_lineno); // Only used by EXTRA macro
4635 int _end_col_offset = _token->end_col_offset;
4636 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004637 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004638 if (_res == NULL && PyErr_Occurred()) {
4639 p->error_indicator = 1;
4640 D(p->level--);
4641 return NULL;
4642 }
4643 goto done;
4644 }
4645 p->mark = _mark;
4646 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4648 }
4649 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4650 if (p->error_indicator) {
4651 D(p->level--);
4652 return NULL;
4653 }
4654 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4655 Token * _keyword;
4656 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004657 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004658 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004659 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004660 void *tc;
4661 if (
4662 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4663 &&
4664 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4665 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004666 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004667 &&
4668 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4669 &&
4670 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4671 &&
4672 (b = block_rule(p)) // block
4673 )
4674 {
4675 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4676 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4677 if (_token == NULL) {
4678 D(p->level--);
4679 return NULL;
4680 }
4681 int _end_lineno = _token->end_lineno;
4682 UNUSED(_end_lineno); // Only used by EXTRA macro
4683 int _end_col_offset = _token->end_col_offset;
4684 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004685 _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 +01004686 if (_res == NULL && PyErr_Occurred()) {
4687 p->error_indicator = 1;
4688 D(p->level--);
4689 return NULL;
4690 }
4691 goto done;
4692 }
4693 p->mark = _mark;
4694 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4696 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004697 if (p->call_invalid_rules) { // invalid_with_stmt
4698 if (p->error_indicator) {
4699 D(p->level--);
4700 return NULL;
4701 }
4702 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4703 void *invalid_with_stmt_var;
4704 if (
4705 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4706 )
4707 {
4708 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4709 _res = invalid_with_stmt_var;
4710 goto done;
4711 }
4712 p->mark = _mark;
4713 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4715 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004716 _res = NULL;
4717 done:
4718 D(p->level--);
4719 return _res;
4720}
4721
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004722// with_item:
4723// | expression 'as' star_target &(',' | ')' | ':')
4724// | invalid_with_item
4725// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004726static withitem_ty
4727with_item_rule(Parser *p)
4728{
4729 D(p->level++);
4730 if (p->error_indicator) {
4731 D(p->level--);
4732 return NULL;
4733 }
4734 withitem_ty _res = NULL;
4735 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004736 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004737 if (p->error_indicator) {
4738 D(p->level--);
4739 return NULL;
4740 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004741 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 +03004742 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004743 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004744 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004745 if (
4746 (e = expression_rule(p)) // expression
4747 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004748 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4749 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004750 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004751 &&
4752 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004753 )
4754 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004755 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 +02004756 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004757 if (_res == NULL && PyErr_Occurred()) {
4758 p->error_indicator = 1;
4759 D(p->level--);
4760 return NULL;
4761 }
4762 goto done;
4763 }
4764 p->mark = _mark;
4765 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004767 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004768 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004769 if (p->error_indicator) {
4770 D(p->level--);
4771 return NULL;
4772 }
4773 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4774 void *invalid_with_item_var;
4775 if (
4776 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4777 )
4778 {
4779 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4780 _res = invalid_with_item_var;
4781 goto done;
4782 }
4783 p->mark = _mark;
4784 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4786 }
4787 { // expression
4788 if (p->error_indicator) {
4789 D(p->level--);
4790 return NULL;
4791 }
4792 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4793 expr_ty e;
4794 if (
4795 (e = expression_rule(p)) // expression
4796 )
4797 {
4798 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004799 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004800 if (_res == NULL && PyErr_Occurred()) {
4801 p->error_indicator = 1;
4802 D(p->level--);
4803 return NULL;
4804 }
4805 goto done;
4806 }
4807 p->mark = _mark;
4808 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004810 }
4811 _res = NULL;
4812 done:
4813 D(p->level--);
4814 return _res;
4815}
4816
4817// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004818// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004819// | 'try' &&':' block finally_block
4820// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004821static stmt_ty
4822try_stmt_rule(Parser *p)
4823{
4824 D(p->level++);
4825 if (p->error_indicator) {
4826 D(p->level--);
4827 return NULL;
4828 }
4829 stmt_ty _res = NULL;
4830 int _mark = p->mark;
4831 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4832 p->error_indicator = 1;
4833 D(p->level--);
4834 return NULL;
4835 }
4836 int _start_lineno = p->tokens[_mark]->lineno;
4837 UNUSED(_start_lineno); // Only used by EXTRA macro
4838 int _start_col_offset = p->tokens[_mark]->col_offset;
4839 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004840 if (p->call_invalid_rules) { // invalid_try_stmt
4841 if (p->error_indicator) {
4842 D(p->level--);
4843 return NULL;
4844 }
4845 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4846 void *invalid_try_stmt_var;
4847 if (
4848 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4849 )
4850 {
4851 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4852 _res = invalid_try_stmt_var;
4853 goto done;
4854 }
4855 p->mark = _mark;
4856 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4858 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004859 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004860 if (p->error_indicator) {
4861 D(p->level--);
4862 return NULL;
4863 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004864 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 +01004865 Token * _keyword;
4866 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004867 asdl_stmt_seq* b;
4868 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004869 if (
4870 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4871 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004872 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004873 &&
4874 (b = block_rule(p)) // block
4875 &&
4876 (f = finally_block_rule(p)) // finally_block
4877 )
4878 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004879 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 +01004880 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4881 if (_token == NULL) {
4882 D(p->level--);
4883 return NULL;
4884 }
4885 int _end_lineno = _token->end_lineno;
4886 UNUSED(_end_lineno); // Only used by EXTRA macro
4887 int _end_col_offset = _token->end_col_offset;
4888 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004889 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004890 if (_res == NULL && PyErr_Occurred()) {
4891 p->error_indicator = 1;
4892 D(p->level--);
4893 return NULL;
4894 }
4895 goto done;
4896 }
4897 p->mark = _mark;
4898 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004900 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004901 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004902 if (p->error_indicator) {
4903 D(p->level--);
4904 return NULL;
4905 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004906 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 +01004907 Token * _keyword;
4908 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004909 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004910 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004911 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004912 void *f;
4913 if (
4914 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4915 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004916 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004917 &&
4918 (b = block_rule(p)) // block
4919 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004920 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004921 &&
4922 (el = else_block_rule(p), 1) // else_block?
4923 &&
4924 (f = finally_block_rule(p), 1) // finally_block?
4925 )
4926 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004927 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 +01004928 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4929 if (_token == NULL) {
4930 D(p->level--);
4931 return NULL;
4932 }
4933 int _end_lineno = _token->end_lineno;
4934 UNUSED(_end_lineno); // Only used by EXTRA macro
4935 int _end_col_offset = _token->end_col_offset;
4936 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004937 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004938 if (_res == NULL && PyErr_Occurred()) {
4939 p->error_indicator = 1;
4940 D(p->level--);
4941 return NULL;
4942 }
4943 goto done;
4944 }
4945 p->mark = _mark;
4946 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004948 }
4949 _res = NULL;
4950 done:
4951 D(p->level--);
4952 return _res;
4953}
4954
Pablo Galindo206cbda2021-02-07 18:42:21 +00004955// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004956// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004957// | 'except' expression ['as' NAME] ':' block
4958// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004959// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004960static excepthandler_ty
4961except_block_rule(Parser *p)
4962{
4963 D(p->level++);
4964 if (p->error_indicator) {
4965 D(p->level--);
4966 return NULL;
4967 }
4968 excepthandler_ty _res = NULL;
4969 int _mark = p->mark;
4970 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4971 p->error_indicator = 1;
4972 D(p->level--);
4973 return NULL;
4974 }
4975 int _start_lineno = p->tokens[_mark]->lineno;
4976 UNUSED(_start_lineno); // Only used by EXTRA macro
4977 int _start_col_offset = p->tokens[_mark]->col_offset;
4978 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004979 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4980 if (p->error_indicator) {
4981 D(p->level--);
4982 return NULL;
4983 }
4984 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4985 void *invalid_except_stmt_indent_var;
4986 if (
4987 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4988 )
4989 {
4990 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4991 _res = invalid_except_stmt_indent_var;
4992 goto done;
4993 }
4994 p->mark = _mark;
4995 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
4997 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00004998 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004999 if (p->error_indicator) {
5000 D(p->level--);
5001 return NULL;
5002 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005003 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 +01005004 Token * _keyword;
5005 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005006 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005007 expr_ty e;
5008 void *t;
5009 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005010 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005011 &&
5012 (e = expression_rule(p)) // expression
5013 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005014 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005015 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005016 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005017 &&
5018 (b = block_rule(p)) // block
5019 )
5020 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005021 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 +01005022 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5023 if (_token == NULL) {
5024 D(p->level--);
5025 return NULL;
5026 }
5027 int _end_lineno = _token->end_lineno;
5028 UNUSED(_end_lineno); // Only used by EXTRA macro
5029 int _end_col_offset = _token->end_col_offset;
5030 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005031 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005032 if (_res == NULL && PyErr_Occurred()) {
5033 p->error_indicator = 1;
5034 D(p->level--);
5035 return NULL;
5036 }
5037 goto done;
5038 }
5039 p->mark = _mark;
5040 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005042 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005043 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005044 if (p->error_indicator) {
5045 D(p->level--);
5046 return NULL;
5047 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005048 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005049 Token * _keyword;
5050 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005051 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005052 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005053 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005054 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005055 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005056 &&
5057 (b = block_rule(p)) // block
5058 )
5059 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005060 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 +01005061 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5062 if (_token == NULL) {
5063 D(p->level--);
5064 return NULL;
5065 }
5066 int _end_lineno = _token->end_lineno;
5067 UNUSED(_end_lineno); // Only used by EXTRA macro
5068 int _end_col_offset = _token->end_col_offset;
5069 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005070 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005071 if (_res == NULL && PyErr_Occurred()) {
5072 p->error_indicator = 1;
5073 D(p->level--);
5074 return NULL;
5075 }
5076 goto done;
5077 }
5078 p->mark = _mark;
5079 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5081 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005082 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005083 if (p->error_indicator) {
5084 D(p->level--);
5085 return NULL;
5086 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005087 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5088 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005089 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005090 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005091 )
5092 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005093 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5094 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005095 goto done;
5096 }
5097 p->mark = _mark;
5098 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005100 }
5101 _res = NULL;
5102 done:
5103 D(p->level--);
5104 return _res;
5105}
5106
Pablo Galindo56c95df2021-04-21 15:28:21 +01005107// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005108static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005109finally_block_rule(Parser *p)
5110{
5111 D(p->level++);
5112 if (p->error_indicator) {
5113 D(p->level--);
5114 return NULL;
5115 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005116 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005117 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005118 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005119 if (p->error_indicator) {
5120 D(p->level--);
5121 return NULL;
5122 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005123 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5124 void *invalid_finally_stmt_var;
5125 if (
5126 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5127 )
5128 {
5129 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5130 _res = invalid_finally_stmt_var;
5131 goto done;
5132 }
5133 p->mark = _mark;
5134 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5136 }
5137 { // 'finally' &&':' block
5138 if (p->error_indicator) {
5139 D(p->level--);
5140 return NULL;
5141 }
5142 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005143 Token * _keyword;
5144 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005145 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005146 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005147 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005148 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005149 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005150 &&
5151 (a = block_rule(p)) // block
5152 )
5153 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005154 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 +01005155 _res = a;
5156 if (_res == NULL && PyErr_Occurred()) {
5157 p->error_indicator = 1;
5158 D(p->level--);
5159 return NULL;
5160 }
5161 goto done;
5162 }
5163 p->mark = _mark;
5164 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005166 }
5167 _res = NULL;
5168 done:
5169 D(p->level--);
5170 return _res;
5171}
5172
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005173// match_stmt:
5174// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5175// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005176static stmt_ty
5177match_stmt_rule(Parser *p)
5178{
5179 D(p->level++);
5180 if (p->error_indicator) {
5181 D(p->level--);
5182 return NULL;
5183 }
5184 stmt_ty _res = NULL;
5185 int _mark = p->mark;
5186 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5187 p->error_indicator = 1;
5188 D(p->level--);
5189 return NULL;
5190 }
5191 int _start_lineno = p->tokens[_mark]->lineno;
5192 UNUSED(_start_lineno); // Only used by EXTRA macro
5193 int _start_col_offset = p->tokens[_mark]->col_offset;
5194 UNUSED(_start_col_offset); // Only used by EXTRA macro
5195 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5196 if (p->error_indicator) {
5197 D(p->level--);
5198 return NULL;
5199 }
5200 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5201 expr_ty _keyword;
5202 Token * _literal;
5203 asdl_match_case_seq* cases;
5204 Token * dedent_var;
5205 Token * indent_var;
5206 Token * newline_var;
5207 expr_ty subject;
5208 if (
5209 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5210 &&
5211 (subject = subject_expr_rule(p)) // subject_expr
5212 &&
5213 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5214 &&
5215 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5216 &&
5217 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5218 &&
5219 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5220 &&
5221 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5222 )
5223 {
5224 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5225 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5226 if (_token == NULL) {
5227 D(p->level--);
5228 return NULL;
5229 }
5230 int _end_lineno = _token->end_lineno;
5231 UNUSED(_end_lineno); // Only used by EXTRA macro
5232 int _end_col_offset = _token->end_col_offset;
5233 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005234 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005235 if (_res == NULL && PyErr_Occurred()) {
5236 p->error_indicator = 1;
5237 D(p->level--);
5238 return NULL;
5239 }
5240 goto done;
5241 }
5242 p->mark = _mark;
5243 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5245 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005246 if (p->call_invalid_rules) { // invalid_match_stmt
5247 if (p->error_indicator) {
5248 D(p->level--);
5249 return NULL;
5250 }
5251 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5252 void *invalid_match_stmt_var;
5253 if (
5254 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5255 )
5256 {
5257 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5258 _res = invalid_match_stmt_var;
5259 goto done;
5260 }
5261 p->mark = _mark;
5262 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5264 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005265 _res = NULL;
5266 done:
5267 D(p->level--);
5268 return _res;
5269}
5270
5271// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5272static expr_ty
5273subject_expr_rule(Parser *p)
5274{
5275 D(p->level++);
5276 if (p->error_indicator) {
5277 D(p->level--);
5278 return NULL;
5279 }
5280 expr_ty _res = NULL;
5281 int _mark = p->mark;
5282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5283 p->error_indicator = 1;
5284 D(p->level--);
5285 return NULL;
5286 }
5287 int _start_lineno = p->tokens[_mark]->lineno;
5288 UNUSED(_start_lineno); // Only used by EXTRA macro
5289 int _start_col_offset = p->tokens[_mark]->col_offset;
5290 UNUSED(_start_col_offset); // Only used by EXTRA macro
5291 { // star_named_expression ',' star_named_expressions?
5292 if (p->error_indicator) {
5293 D(p->level--);
5294 return NULL;
5295 }
5296 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5297 Token * _literal;
5298 expr_ty value;
5299 void *values;
5300 if (
5301 (value = star_named_expression_rule(p)) // star_named_expression
5302 &&
5303 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5304 &&
5305 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5306 )
5307 {
5308 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5309 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5310 if (_token == NULL) {
5311 D(p->level--);
5312 return NULL;
5313 }
5314 int _end_lineno = _token->end_lineno;
5315 UNUSED(_end_lineno); // Only used by EXTRA macro
5316 int _end_col_offset = _token->end_col_offset;
5317 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005318 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005319 if (_res == NULL && PyErr_Occurred()) {
5320 p->error_indicator = 1;
5321 D(p->level--);
5322 return NULL;
5323 }
5324 goto done;
5325 }
5326 p->mark = _mark;
5327 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5329 }
5330 { // named_expression
5331 if (p->error_indicator) {
5332 D(p->level--);
5333 return NULL;
5334 }
5335 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5336 expr_ty named_expression_var;
5337 if (
5338 (named_expression_var = named_expression_rule(p)) // named_expression
5339 )
5340 {
5341 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5342 _res = named_expression_var;
5343 goto done;
5344 }
5345 p->mark = _mark;
5346 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5348 }
5349 _res = NULL;
5350 done:
5351 D(p->level--);
5352 return _res;
5353}
5354
Pablo Galindo56c95df2021-04-21 15:28:21 +01005355// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005356static match_case_ty
5357case_block_rule(Parser *p)
5358{
5359 D(p->level++);
5360 if (p->error_indicator) {
5361 D(p->level--);
5362 return NULL;
5363 }
5364 match_case_ty _res = NULL;
5365 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005366 if (p->call_invalid_rules) { // invalid_case_block
5367 if (p->error_indicator) {
5368 D(p->level--);
5369 return NULL;
5370 }
5371 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5372 void *invalid_case_block_var;
5373 if (
5374 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5375 )
5376 {
5377 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5378 _res = invalid_case_block_var;
5379 goto done;
5380 }
5381 p->mark = _mark;
5382 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5384 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005385 { // "case" patterns guard? ':' block
5386 if (p->error_indicator) {
5387 D(p->level--);
5388 return NULL;
5389 }
5390 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5391 expr_ty _keyword;
5392 Token * _literal;
5393 asdl_stmt_seq* body;
5394 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005395 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005396 if (
5397 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5398 &&
5399 (pattern = patterns_rule(p)) // patterns
5400 &&
5401 (guard = guard_rule(p), 1) // guard?
5402 &&
5403 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5404 &&
5405 (body = block_rule(p)) // block
5406 )
5407 {
5408 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 +02005409 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005410 if (_res == NULL && PyErr_Occurred()) {
5411 p->error_indicator = 1;
5412 D(p->level--);
5413 return NULL;
5414 }
5415 goto done;
5416 }
5417 p->mark = _mark;
5418 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5420 }
5421 _res = NULL;
5422 done:
5423 D(p->level--);
5424 return _res;
5425}
5426
5427// guard: 'if' named_expression
5428static expr_ty
5429guard_rule(Parser *p)
5430{
5431 D(p->level++);
5432 if (p->error_indicator) {
5433 D(p->level--);
5434 return NULL;
5435 }
5436 expr_ty _res = NULL;
5437 int _mark = p->mark;
5438 { // 'if' named_expression
5439 if (p->error_indicator) {
5440 D(p->level--);
5441 return NULL;
5442 }
5443 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5444 Token * _keyword;
5445 expr_ty guard;
5446 if (
5447 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5448 &&
5449 (guard = named_expression_rule(p)) // named_expression
5450 )
5451 {
5452 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5453 _res = guard;
5454 if (_res == NULL && PyErr_Occurred()) {
5455 p->error_indicator = 1;
5456 D(p->level--);
5457 return NULL;
5458 }
5459 goto done;
5460 }
5461 p->mark = _mark;
5462 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5464 }
5465 _res = NULL;
5466 done:
5467 D(p->level--);
5468 return _res;
5469}
5470
5471// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005472static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005473patterns_rule(Parser *p)
5474{
5475 D(p->level++);
5476 if (p->error_indicator) {
5477 D(p->level--);
5478 return NULL;
5479 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005480 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005481 int _mark = p->mark;
5482 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5483 p->error_indicator = 1;
5484 D(p->level--);
5485 return NULL;
5486 }
5487 int _start_lineno = p->tokens[_mark]->lineno;
5488 UNUSED(_start_lineno); // Only used by EXTRA macro
5489 int _start_col_offset = p->tokens[_mark]->col_offset;
5490 UNUSED(_start_col_offset); // Only used by EXTRA macro
5491 { // open_sequence_pattern
5492 if (p->error_indicator) {
5493 D(p->level--);
5494 return NULL;
5495 }
5496 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005497 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005498 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005499 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005500 )
5501 {
5502 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5503 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5504 if (_token == NULL) {
5505 D(p->level--);
5506 return NULL;
5507 }
5508 int _end_lineno = _token->end_lineno;
5509 UNUSED(_end_lineno); // Only used by EXTRA macro
5510 int _end_col_offset = _token->end_col_offset;
5511 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005512 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005513 if (_res == NULL && PyErr_Occurred()) {
5514 p->error_indicator = 1;
5515 D(p->level--);
5516 return NULL;
5517 }
5518 goto done;
5519 }
5520 p->mark = _mark;
5521 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5523 }
5524 { // pattern
5525 if (p->error_indicator) {
5526 D(p->level--);
5527 return NULL;
5528 }
5529 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005530 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005531 if (
5532 (pattern_var = pattern_rule(p)) // pattern
5533 )
5534 {
5535 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5536 _res = pattern_var;
5537 goto done;
5538 }
5539 p->mark = _mark;
5540 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5542 }
5543 _res = NULL;
5544 done:
5545 D(p->level--);
5546 return _res;
5547}
5548
5549// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005550static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005551pattern_rule(Parser *p)
5552{
5553 D(p->level++);
5554 if (p->error_indicator) {
5555 D(p->level--);
5556 return NULL;
5557 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005558 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005559 int _mark = p->mark;
5560 { // as_pattern
5561 if (p->error_indicator) {
5562 D(p->level--);
5563 return NULL;
5564 }
5565 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005566 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005567 if (
5568 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5569 )
5570 {
5571 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5572 _res = as_pattern_var;
5573 goto done;
5574 }
5575 p->mark = _mark;
5576 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5578 }
5579 { // or_pattern
5580 if (p->error_indicator) {
5581 D(p->level--);
5582 return NULL;
5583 }
5584 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005585 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005586 if (
5587 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5588 )
5589 {
5590 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5591 _res = or_pattern_var;
5592 goto done;
5593 }
5594 p->mark = _mark;
5595 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5597 }
5598 _res = NULL;
5599 done:
5600 D(p->level--);
5601 return _res;
5602}
5603
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005604// as_pattern: or_pattern 'as' pattern_capture_target
5605static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005606as_pattern_rule(Parser *p)
5607{
5608 D(p->level++);
5609 if (p->error_indicator) {
5610 D(p->level--);
5611 return NULL;
5612 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005613 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005614 int _mark = p->mark;
5615 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5616 p->error_indicator = 1;
5617 D(p->level--);
5618 return NULL;
5619 }
5620 int _start_lineno = p->tokens[_mark]->lineno;
5621 UNUSED(_start_lineno); // Only used by EXTRA macro
5622 int _start_col_offset = p->tokens[_mark]->col_offset;
5623 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005624 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005625 if (p->error_indicator) {
5626 D(p->level--);
5627 return NULL;
5628 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005629 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 -08005630 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005631 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005632 expr_ty target;
5633 if (
5634 (pattern = or_pattern_rule(p)) // or_pattern
5635 &&
5636 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5637 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005638 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005639 )
5640 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005641 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 -08005642 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5643 if (_token == NULL) {
5644 D(p->level--);
5645 return NULL;
5646 }
5647 int _end_lineno = _token->end_lineno;
5648 UNUSED(_end_lineno); // Only used by EXTRA macro
5649 int _end_col_offset = _token->end_col_offset;
5650 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005651 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005652 if (_res == NULL && PyErr_Occurred()) {
5653 p->error_indicator = 1;
5654 D(p->level--);
5655 return NULL;
5656 }
5657 goto done;
5658 }
5659 p->mark = _mark;
5660 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005662 }
5663 _res = NULL;
5664 done:
5665 D(p->level--);
5666 return _res;
5667}
5668
5669// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005670static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005671or_pattern_rule(Parser *p)
5672{
5673 D(p->level++);
5674 if (p->error_indicator) {
5675 D(p->level--);
5676 return NULL;
5677 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005678 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005679 int _mark = p->mark;
5680 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5681 p->error_indicator = 1;
5682 D(p->level--);
5683 return NULL;
5684 }
5685 int _start_lineno = p->tokens[_mark]->lineno;
5686 UNUSED(_start_lineno); // Only used by EXTRA macro
5687 int _start_col_offset = p->tokens[_mark]->col_offset;
5688 UNUSED(_start_col_offset); // Only used by EXTRA macro
5689 { // '|'.closed_pattern+
5690 if (p->error_indicator) {
5691 D(p->level--);
5692 return NULL;
5693 }
5694 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005695 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005696 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005697 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005698 )
5699 {
5700 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5701 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5702 if (_token == NULL) {
5703 D(p->level--);
5704 return NULL;
5705 }
5706 int _end_lineno = _token->end_lineno;
5707 UNUSED(_end_lineno); // Only used by EXTRA macro
5708 int _end_col_offset = _token->end_col_offset;
5709 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005710 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005711 if (_res == NULL && PyErr_Occurred()) {
5712 p->error_indicator = 1;
5713 D(p->level--);
5714 return NULL;
5715 }
5716 goto done;
5717 }
5718 p->mark = _mark;
5719 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5720 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5721 }
5722 _res = NULL;
5723 done:
5724 D(p->level--);
5725 return _res;
5726}
5727
5728// closed_pattern:
5729// | literal_pattern
5730// | capture_pattern
5731// | wildcard_pattern
5732// | value_pattern
5733// | group_pattern
5734// | sequence_pattern
5735// | mapping_pattern
5736// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005737static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005738closed_pattern_rule(Parser *p)
5739{
5740 D(p->level++);
5741 if (p->error_indicator) {
5742 D(p->level--);
5743 return NULL;
5744 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005745 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005746 int _mark = p->mark;
5747 { // literal_pattern
5748 if (p->error_indicator) {
5749 D(p->level--);
5750 return NULL;
5751 }
5752 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005753 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005754 if (
5755 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5756 )
5757 {
5758 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5759 _res = literal_pattern_var;
5760 goto done;
5761 }
5762 p->mark = _mark;
5763 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5765 }
5766 { // capture_pattern
5767 if (p->error_indicator) {
5768 D(p->level--);
5769 return NULL;
5770 }
5771 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005772 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005773 if (
5774 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5775 )
5776 {
5777 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5778 _res = capture_pattern_var;
5779 goto done;
5780 }
5781 p->mark = _mark;
5782 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5784 }
5785 { // wildcard_pattern
5786 if (p->error_indicator) {
5787 D(p->level--);
5788 return NULL;
5789 }
5790 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005791 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005792 if (
5793 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5794 )
5795 {
5796 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5797 _res = wildcard_pattern_var;
5798 goto done;
5799 }
5800 p->mark = _mark;
5801 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5803 }
5804 { // value_pattern
5805 if (p->error_indicator) {
5806 D(p->level--);
5807 return NULL;
5808 }
5809 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005810 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005811 if (
5812 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5813 )
5814 {
5815 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5816 _res = value_pattern_var;
5817 goto done;
5818 }
5819 p->mark = _mark;
5820 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5822 }
5823 { // group_pattern
5824 if (p->error_indicator) {
5825 D(p->level--);
5826 return NULL;
5827 }
5828 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005829 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005830 if (
5831 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5832 )
5833 {
5834 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5835 _res = group_pattern_var;
5836 goto done;
5837 }
5838 p->mark = _mark;
5839 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5841 }
5842 { // sequence_pattern
5843 if (p->error_indicator) {
5844 D(p->level--);
5845 return NULL;
5846 }
5847 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005848 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005849 if (
5850 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5851 )
5852 {
5853 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5854 _res = sequence_pattern_var;
5855 goto done;
5856 }
5857 p->mark = _mark;
5858 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5860 }
5861 { // mapping_pattern
5862 if (p->error_indicator) {
5863 D(p->level--);
5864 return NULL;
5865 }
5866 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005867 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005868 if (
5869 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5870 )
5871 {
5872 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5873 _res = mapping_pattern_var;
5874 goto done;
5875 }
5876 p->mark = _mark;
5877 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5879 }
5880 { // class_pattern
5881 if (p->error_indicator) {
5882 D(p->level--);
5883 return NULL;
5884 }
5885 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005886 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005887 if (
5888 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5889 )
5890 {
5891 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5892 _res = class_pattern_var;
5893 goto done;
5894 }
5895 p->mark = _mark;
5896 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5898 }
5899 _res = NULL;
5900 done:
5901 D(p->level--);
5902 return _res;
5903}
5904
5905// literal_pattern:
5906// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005907// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005908// | strings
5909// | 'None'
5910// | 'True'
5911// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005912static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005913literal_pattern_rule(Parser *p)
5914{
5915 D(p->level++);
5916 if (p->error_indicator) {
5917 D(p->level--);
5918 return NULL;
5919 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005920 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005921 int _mark = p->mark;
5922 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5923 p->error_indicator = 1;
5924 D(p->level--);
5925 return NULL;
5926 }
5927 int _start_lineno = p->tokens[_mark]->lineno;
5928 UNUSED(_start_lineno); // Only used by EXTRA macro
5929 int _start_col_offset = p->tokens[_mark]->col_offset;
5930 UNUSED(_start_col_offset); // Only used by EXTRA macro
5931 { // signed_number !('+' | '-')
5932 if (p->error_indicator) {
5933 D(p->level--);
5934 return NULL;
5935 }
5936 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005937 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005938 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005939 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005940 &&
5941 _PyPegen_lookahead(0, _tmp_53_rule, p)
5942 )
5943 {
5944 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 +10005945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5946 if (_token == NULL) {
5947 D(p->level--);
5948 return NULL;
5949 }
5950 int _end_lineno = _token->end_lineno;
5951 UNUSED(_end_lineno); // Only used by EXTRA macro
5952 int _end_col_offset = _token->end_col_offset;
5953 UNUSED(_end_col_offset); // Only used by EXTRA macro
5954 _res = _PyAST_MatchValue ( value , EXTRA );
5955 if (_res == NULL && PyErr_Occurred()) {
5956 p->error_indicator = 1;
5957 D(p->level--);
5958 return NULL;
5959 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005960 goto done;
5961 }
5962 p->mark = _mark;
5963 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5965 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005966 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005967 if (p->error_indicator) {
5968 D(p->level--);
5969 return NULL;
5970 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005971 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
5972 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005973 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005974 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005975 )
5976 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005977 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 -08005978 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5979 if (_token == NULL) {
5980 D(p->level--);
5981 return NULL;
5982 }
5983 int _end_lineno = _token->end_lineno;
5984 UNUSED(_end_lineno); // Only used by EXTRA macro
5985 int _end_col_offset = _token->end_col_offset;
5986 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005987 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005988 if (_res == NULL && PyErr_Occurred()) {
5989 p->error_indicator = 1;
5990 D(p->level--);
5991 return NULL;
5992 }
5993 goto done;
5994 }
5995 p->mark = _mark;
5996 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005998 }
5999 { // strings
6000 if (p->error_indicator) {
6001 D(p->level--);
6002 return NULL;
6003 }
6004 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006005 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006006 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006007 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006008 )
6009 {
6010 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006011 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6012 if (_token == NULL) {
6013 D(p->level--);
6014 return NULL;
6015 }
6016 int _end_lineno = _token->end_lineno;
6017 UNUSED(_end_lineno); // Only used by EXTRA macro
6018 int _end_col_offset = _token->end_col_offset;
6019 UNUSED(_end_col_offset); // Only used by EXTRA macro
6020 _res = _PyAST_MatchValue ( value , EXTRA );
6021 if (_res == NULL && PyErr_Occurred()) {
6022 p->error_indicator = 1;
6023 D(p->level--);
6024 return NULL;
6025 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006026 goto done;
6027 }
6028 p->mark = _mark;
6029 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6031 }
6032 { // 'None'
6033 if (p->error_indicator) {
6034 D(p->level--);
6035 return NULL;
6036 }
6037 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6038 Token * _keyword;
6039 if (
6040 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6041 )
6042 {
6043 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6045 if (_token == NULL) {
6046 D(p->level--);
6047 return NULL;
6048 }
6049 int _end_lineno = _token->end_lineno;
6050 UNUSED(_end_lineno); // Only used by EXTRA macro
6051 int _end_col_offset = _token->end_col_offset;
6052 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006053 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006054 if (_res == NULL && PyErr_Occurred()) {
6055 p->error_indicator = 1;
6056 D(p->level--);
6057 return NULL;
6058 }
6059 goto done;
6060 }
6061 p->mark = _mark;
6062 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6064 }
6065 { // 'True'
6066 if (p->error_indicator) {
6067 D(p->level--);
6068 return NULL;
6069 }
6070 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6071 Token * _keyword;
6072 if (
6073 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6074 )
6075 {
6076 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6077 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6078 if (_token == NULL) {
6079 D(p->level--);
6080 return NULL;
6081 }
6082 int _end_lineno = _token->end_lineno;
6083 UNUSED(_end_lineno); // Only used by EXTRA macro
6084 int _end_col_offset = _token->end_col_offset;
6085 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006086 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006087 if (_res == NULL && PyErr_Occurred()) {
6088 p->error_indicator = 1;
6089 D(p->level--);
6090 return NULL;
6091 }
6092 goto done;
6093 }
6094 p->mark = _mark;
6095 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6097 }
6098 { // 'False'
6099 if (p->error_indicator) {
6100 D(p->level--);
6101 return NULL;
6102 }
6103 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6104 Token * _keyword;
6105 if (
6106 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6107 )
6108 {
6109 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6110 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6111 if (_token == NULL) {
6112 D(p->level--);
6113 return NULL;
6114 }
6115 int _end_lineno = _token->end_lineno;
6116 UNUSED(_end_lineno); // Only used by EXTRA macro
6117 int _end_col_offset = _token->end_col_offset;
6118 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006119 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006120 if (_res == NULL && PyErr_Occurred()) {
6121 p->error_indicator = 1;
6122 D(p->level--);
6123 return NULL;
6124 }
6125 goto done;
6126 }
6127 p->mark = _mark;
6128 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6129 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6130 }
6131 _res = NULL;
6132 done:
6133 D(p->level--);
6134 return _res;
6135}
6136
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006137// literal_expr:
6138// | signed_number !('+' | '-')
6139// | complex_number
6140// | strings
6141// | 'None'
6142// | 'True'
6143// | 'False'
6144static expr_ty
6145literal_expr_rule(Parser *p)
6146{
6147 D(p->level++);
6148 if (p->error_indicator) {
6149 D(p->level--);
6150 return NULL;
6151 }
6152 expr_ty _res = NULL;
6153 int _mark = p->mark;
6154 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6155 p->error_indicator = 1;
6156 D(p->level--);
6157 return NULL;
6158 }
6159 int _start_lineno = p->tokens[_mark]->lineno;
6160 UNUSED(_start_lineno); // Only used by EXTRA macro
6161 int _start_col_offset = p->tokens[_mark]->col_offset;
6162 UNUSED(_start_col_offset); // Only used by EXTRA macro
6163 { // signed_number !('+' | '-')
6164 if (p->error_indicator) {
6165 D(p->level--);
6166 return NULL;
6167 }
6168 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6169 expr_ty signed_number_var;
6170 if (
6171 (signed_number_var = signed_number_rule(p)) // signed_number
6172 &&
6173 _PyPegen_lookahead(0, _tmp_54_rule, p)
6174 )
6175 {
6176 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6177 _res = signed_number_var;
6178 goto done;
6179 }
6180 p->mark = _mark;
6181 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6183 }
6184 { // complex_number
6185 if (p->error_indicator) {
6186 D(p->level--);
6187 return NULL;
6188 }
6189 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6190 expr_ty complex_number_var;
6191 if (
6192 (complex_number_var = complex_number_rule(p)) // complex_number
6193 )
6194 {
6195 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6196 _res = complex_number_var;
6197 goto done;
6198 }
6199 p->mark = _mark;
6200 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6202 }
6203 { // strings
6204 if (p->error_indicator) {
6205 D(p->level--);
6206 return NULL;
6207 }
6208 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6209 expr_ty strings_var;
6210 if (
6211 (strings_var = strings_rule(p)) // strings
6212 )
6213 {
6214 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6215 _res = strings_var;
6216 goto done;
6217 }
6218 p->mark = _mark;
6219 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6221 }
6222 { // 'None'
6223 if (p->error_indicator) {
6224 D(p->level--);
6225 return NULL;
6226 }
6227 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6228 Token * _keyword;
6229 if (
6230 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6231 )
6232 {
6233 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6234 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6235 if (_token == NULL) {
6236 D(p->level--);
6237 return NULL;
6238 }
6239 int _end_lineno = _token->end_lineno;
6240 UNUSED(_end_lineno); // Only used by EXTRA macro
6241 int _end_col_offset = _token->end_col_offset;
6242 UNUSED(_end_col_offset); // Only used by EXTRA macro
6243 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6244 if (_res == NULL && PyErr_Occurred()) {
6245 p->error_indicator = 1;
6246 D(p->level--);
6247 return NULL;
6248 }
6249 goto done;
6250 }
6251 p->mark = _mark;
6252 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6254 }
6255 { // 'True'
6256 if (p->error_indicator) {
6257 D(p->level--);
6258 return NULL;
6259 }
6260 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6261 Token * _keyword;
6262 if (
6263 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6264 )
6265 {
6266 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6267 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6268 if (_token == NULL) {
6269 D(p->level--);
6270 return NULL;
6271 }
6272 int _end_lineno = _token->end_lineno;
6273 UNUSED(_end_lineno); // Only used by EXTRA macro
6274 int _end_col_offset = _token->end_col_offset;
6275 UNUSED(_end_col_offset); // Only used by EXTRA macro
6276 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6277 if (_res == NULL && PyErr_Occurred()) {
6278 p->error_indicator = 1;
6279 D(p->level--);
6280 return NULL;
6281 }
6282 goto done;
6283 }
6284 p->mark = _mark;
6285 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6287 }
6288 { // 'False'
6289 if (p->error_indicator) {
6290 D(p->level--);
6291 return NULL;
6292 }
6293 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6294 Token * _keyword;
6295 if (
6296 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6297 )
6298 {
6299 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6300 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6301 if (_token == NULL) {
6302 D(p->level--);
6303 return NULL;
6304 }
6305 int _end_lineno = _token->end_lineno;
6306 UNUSED(_end_lineno); // Only used by EXTRA macro
6307 int _end_col_offset = _token->end_col_offset;
6308 UNUSED(_end_col_offset); // Only used by EXTRA macro
6309 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6310 if (_res == NULL && PyErr_Occurred()) {
6311 p->error_indicator = 1;
6312 D(p->level--);
6313 return NULL;
6314 }
6315 goto done;
6316 }
6317 p->mark = _mark;
6318 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6320 }
6321 _res = NULL;
6322 done:
6323 D(p->level--);
6324 return _res;
6325}
6326
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006327// complex_number:
6328// | signed_real_number '+' imaginary_number
6329// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006330static expr_ty
6331complex_number_rule(Parser *p)
6332{
6333 D(p->level++);
6334 if (p->error_indicator) {
6335 D(p->level--);
6336 return NULL;
6337 }
6338 expr_ty _res = NULL;
6339 int _mark = p->mark;
6340 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6341 p->error_indicator = 1;
6342 D(p->level--);
6343 return NULL;
6344 }
6345 int _start_lineno = p->tokens[_mark]->lineno;
6346 UNUSED(_start_lineno); // Only used by EXTRA macro
6347 int _start_col_offset = p->tokens[_mark]->col_offset;
6348 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006349 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006350 if (p->error_indicator) {
6351 D(p->level--);
6352 return NULL;
6353 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006354 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 +10006355 Token * _literal;
6356 expr_ty imag;
6357 expr_ty real;
6358 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006359 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006360 &&
6361 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6362 &&
6363 (imag = imaginary_number_rule(p)) // imaginary_number
6364 )
6365 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006366 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 +10006367 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6368 if (_token == NULL) {
6369 D(p->level--);
6370 return NULL;
6371 }
6372 int _end_lineno = _token->end_lineno;
6373 UNUSED(_end_lineno); // Only used by EXTRA macro
6374 int _end_col_offset = _token->end_col_offset;
6375 UNUSED(_end_col_offset); // Only used by EXTRA macro
6376 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6377 if (_res == NULL && PyErr_Occurred()) {
6378 p->error_indicator = 1;
6379 D(p->level--);
6380 return NULL;
6381 }
6382 goto done;
6383 }
6384 p->mark = _mark;
6385 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006387 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006388 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006389 if (p->error_indicator) {
6390 D(p->level--);
6391 return NULL;
6392 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006393 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 +10006394 Token * _literal;
6395 expr_ty imag;
6396 expr_ty real;
6397 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006398 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006399 &&
6400 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6401 &&
6402 (imag = imaginary_number_rule(p)) // imaginary_number
6403 )
6404 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006405 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 +10006406 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6407 if (_token == NULL) {
6408 D(p->level--);
6409 return NULL;
6410 }
6411 int _end_lineno = _token->end_lineno;
6412 UNUSED(_end_lineno); // Only used by EXTRA macro
6413 int _end_col_offset = _token->end_col_offset;
6414 UNUSED(_end_col_offset); // Only used by EXTRA macro
6415 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6416 if (_res == NULL && PyErr_Occurred()) {
6417 p->error_indicator = 1;
6418 D(p->level--);
6419 return NULL;
6420 }
6421 goto done;
6422 }
6423 p->mark = _mark;
6424 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006426 }
6427 _res = NULL;
6428 done:
6429 D(p->level--);
6430 return _res;
6431}
6432
Brandt Bucher145bf262021-02-26 14:51:55 -08006433// signed_number: NUMBER | '-' NUMBER
6434static expr_ty
6435signed_number_rule(Parser *p)
6436{
6437 D(p->level++);
6438 if (p->error_indicator) {
6439 D(p->level--);
6440 return NULL;
6441 }
6442 expr_ty _res = NULL;
6443 int _mark = p->mark;
6444 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6445 p->error_indicator = 1;
6446 D(p->level--);
6447 return NULL;
6448 }
6449 int _start_lineno = p->tokens[_mark]->lineno;
6450 UNUSED(_start_lineno); // Only used by EXTRA macro
6451 int _start_col_offset = p->tokens[_mark]->col_offset;
6452 UNUSED(_start_col_offset); // Only used by EXTRA macro
6453 { // NUMBER
6454 if (p->error_indicator) {
6455 D(p->level--);
6456 return NULL;
6457 }
6458 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6459 expr_ty number_var;
6460 if (
6461 (number_var = _PyPegen_number_token(p)) // NUMBER
6462 )
6463 {
6464 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6465 _res = number_var;
6466 goto done;
6467 }
6468 p->mark = _mark;
6469 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6471 }
6472 { // '-' NUMBER
6473 if (p->error_indicator) {
6474 D(p->level--);
6475 return NULL;
6476 }
6477 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6478 Token * _literal;
6479 expr_ty number;
6480 if (
6481 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6482 &&
6483 (number = _PyPegen_number_token(p)) // NUMBER
6484 )
6485 {
6486 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6487 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6488 if (_token == NULL) {
6489 D(p->level--);
6490 return NULL;
6491 }
6492 int _end_lineno = _token->end_lineno;
6493 UNUSED(_end_lineno); // Only used by EXTRA macro
6494 int _end_col_offset = _token->end_col_offset;
6495 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006496 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006497 if (_res == NULL && PyErr_Occurred()) {
6498 p->error_indicator = 1;
6499 D(p->level--);
6500 return NULL;
6501 }
6502 goto done;
6503 }
6504 p->mark = _mark;
6505 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6507 }
6508 _res = NULL;
6509 done:
6510 D(p->level--);
6511 return _res;
6512}
6513
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006514// signed_real_number: real_number | '-' real_number
6515static expr_ty
6516signed_real_number_rule(Parser *p)
6517{
6518 D(p->level++);
6519 if (p->error_indicator) {
6520 D(p->level--);
6521 return NULL;
6522 }
6523 expr_ty _res = NULL;
6524 int _mark = p->mark;
6525 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6526 p->error_indicator = 1;
6527 D(p->level--);
6528 return NULL;
6529 }
6530 int _start_lineno = p->tokens[_mark]->lineno;
6531 UNUSED(_start_lineno); // Only used by EXTRA macro
6532 int _start_col_offset = p->tokens[_mark]->col_offset;
6533 UNUSED(_start_col_offset); // Only used by EXTRA macro
6534 { // real_number
6535 if (p->error_indicator) {
6536 D(p->level--);
6537 return NULL;
6538 }
6539 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6540 expr_ty real_number_var;
6541 if (
6542 (real_number_var = real_number_rule(p)) // real_number
6543 )
6544 {
6545 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6546 _res = real_number_var;
6547 goto done;
6548 }
6549 p->mark = _mark;
6550 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6552 }
6553 { // '-' real_number
6554 if (p->error_indicator) {
6555 D(p->level--);
6556 return NULL;
6557 }
6558 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6559 Token * _literal;
6560 expr_ty real;
6561 if (
6562 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6563 &&
6564 (real = real_number_rule(p)) // real_number
6565 )
6566 {
6567 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6568 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6569 if (_token == NULL) {
6570 D(p->level--);
6571 return NULL;
6572 }
6573 int _end_lineno = _token->end_lineno;
6574 UNUSED(_end_lineno); // Only used by EXTRA macro
6575 int _end_col_offset = _token->end_col_offset;
6576 UNUSED(_end_col_offset); // Only used by EXTRA macro
6577 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6578 if (_res == NULL && PyErr_Occurred()) {
6579 p->error_indicator = 1;
6580 D(p->level--);
6581 return NULL;
6582 }
6583 goto done;
6584 }
6585 p->mark = _mark;
6586 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6588 }
6589 _res = NULL;
6590 done:
6591 D(p->level--);
6592 return _res;
6593}
6594
6595// real_number: NUMBER
6596static expr_ty
6597real_number_rule(Parser *p)
6598{
6599 D(p->level++);
6600 if (p->error_indicator) {
6601 D(p->level--);
6602 return NULL;
6603 }
6604 expr_ty _res = NULL;
6605 int _mark = p->mark;
6606 { // NUMBER
6607 if (p->error_indicator) {
6608 D(p->level--);
6609 return NULL;
6610 }
6611 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6612 expr_ty real;
6613 if (
6614 (real = _PyPegen_number_token(p)) // NUMBER
6615 )
6616 {
6617 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6618 _res = _PyPegen_ensure_real ( p , real );
6619 if (_res == NULL && PyErr_Occurred()) {
6620 p->error_indicator = 1;
6621 D(p->level--);
6622 return NULL;
6623 }
6624 goto done;
6625 }
6626 p->mark = _mark;
6627 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6629 }
6630 _res = NULL;
6631 done:
6632 D(p->level--);
6633 return _res;
6634}
6635
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006636// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006637static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006638imaginary_number_rule(Parser *p)
6639{
6640 D(p->level++);
6641 if (p->error_indicator) {
6642 D(p->level--);
6643 return NULL;
6644 }
6645 expr_ty _res = NULL;
6646 int _mark = p->mark;
6647 { // NUMBER
6648 if (p->error_indicator) {
6649 D(p->level--);
6650 return NULL;
6651 }
6652 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6653 expr_ty imag;
6654 if (
6655 (imag = _PyPegen_number_token(p)) // NUMBER
6656 )
6657 {
6658 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6659 _res = _PyPegen_ensure_imaginary ( p , imag );
6660 if (_res == NULL && PyErr_Occurred()) {
6661 p->error_indicator = 1;
6662 D(p->level--);
6663 return NULL;
6664 }
6665 goto done;
6666 }
6667 p->mark = _mark;
6668 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6670 }
6671 _res = NULL;
6672 done:
6673 D(p->level--);
6674 return _res;
6675}
6676
6677// capture_pattern: pattern_capture_target
6678static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006679capture_pattern_rule(Parser *p)
6680{
6681 D(p->level++);
6682 if (p->error_indicator) {
6683 D(p->level--);
6684 return NULL;
6685 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006686 pattern_ty _res = NULL;
6687 int _mark = p->mark;
6688 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6689 p->error_indicator = 1;
6690 D(p->level--);
6691 return NULL;
6692 }
6693 int _start_lineno = p->tokens[_mark]->lineno;
6694 UNUSED(_start_lineno); // Only used by EXTRA macro
6695 int _start_col_offset = p->tokens[_mark]->col_offset;
6696 UNUSED(_start_col_offset); // Only used by EXTRA macro
6697 { // pattern_capture_target
6698 if (p->error_indicator) {
6699 D(p->level--);
6700 return NULL;
6701 }
6702 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6703 expr_ty target;
6704 if (
6705 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6706 )
6707 {
6708 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6709 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6710 if (_token == NULL) {
6711 D(p->level--);
6712 return NULL;
6713 }
6714 int _end_lineno = _token->end_lineno;
6715 UNUSED(_end_lineno); // Only used by EXTRA macro
6716 int _end_col_offset = _token->end_col_offset;
6717 UNUSED(_end_col_offset); // Only used by EXTRA macro
6718 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6719 if (_res == NULL && PyErr_Occurred()) {
6720 p->error_indicator = 1;
6721 D(p->level--);
6722 return NULL;
6723 }
6724 goto done;
6725 }
6726 p->mark = _mark;
6727 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6729 }
6730 _res = NULL;
6731 done:
6732 D(p->level--);
6733 return _res;
6734}
6735
6736// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6737static expr_ty
6738pattern_capture_target_rule(Parser *p)
6739{
6740 D(p->level++);
6741 if (p->error_indicator) {
6742 D(p->level--);
6743 return NULL;
6744 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006745 expr_ty _res = NULL;
6746 int _mark = p->mark;
6747 { // !"_" NAME !('.' | '(' | '=')
6748 if (p->error_indicator) {
6749 D(p->level--);
6750 return NULL;
6751 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006752 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006753 expr_ty name;
6754 if (
6755 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6756 &&
6757 (name = _PyPegen_name_token(p)) // NAME
6758 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006759 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006760 )
6761 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006762 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 -08006763 _res = _PyPegen_set_expr_context ( p , name , Store );
6764 if (_res == NULL && PyErr_Occurred()) {
6765 p->error_indicator = 1;
6766 D(p->level--);
6767 return NULL;
6768 }
6769 goto done;
6770 }
6771 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006772 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6774 }
6775 _res = NULL;
6776 done:
6777 D(p->level--);
6778 return _res;
6779}
6780
6781// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006782static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006783wildcard_pattern_rule(Parser *p)
6784{
6785 D(p->level++);
6786 if (p->error_indicator) {
6787 D(p->level--);
6788 return NULL;
6789 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006790 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006791 int _mark = p->mark;
6792 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6793 p->error_indicator = 1;
6794 D(p->level--);
6795 return NULL;
6796 }
6797 int _start_lineno = p->tokens[_mark]->lineno;
6798 UNUSED(_start_lineno); // Only used by EXTRA macro
6799 int _start_col_offset = p->tokens[_mark]->col_offset;
6800 UNUSED(_start_col_offset); // Only used by EXTRA macro
6801 { // "_"
6802 if (p->error_indicator) {
6803 D(p->level--);
6804 return NULL;
6805 }
6806 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6807 expr_ty _keyword;
6808 if (
6809 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6810 )
6811 {
6812 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6813 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6814 if (_token == NULL) {
6815 D(p->level--);
6816 return NULL;
6817 }
6818 int _end_lineno = _token->end_lineno;
6819 UNUSED(_end_lineno); // Only used by EXTRA macro
6820 int _end_col_offset = _token->end_col_offset;
6821 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006822 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006823 if (_res == NULL && PyErr_Occurred()) {
6824 p->error_indicator = 1;
6825 D(p->level--);
6826 return NULL;
6827 }
6828 goto done;
6829 }
6830 p->mark = _mark;
6831 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6833 }
6834 _res = NULL;
6835 done:
6836 D(p->level--);
6837 return _res;
6838}
6839
6840// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006841static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006842value_pattern_rule(Parser *p)
6843{
6844 D(p->level++);
6845 if (p->error_indicator) {
6846 D(p->level--);
6847 return NULL;
6848 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006849 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006850 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006851 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6852 p->error_indicator = 1;
6853 D(p->level--);
6854 return NULL;
6855 }
6856 int _start_lineno = p->tokens[_mark]->lineno;
6857 UNUSED(_start_lineno); // Only used by EXTRA macro
6858 int _start_col_offset = p->tokens[_mark]->col_offset;
6859 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006860 { // attr !('.' | '(' | '=')
6861 if (p->error_indicator) {
6862 D(p->level--);
6863 return NULL;
6864 }
6865 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6866 expr_ty attr;
6867 if (
6868 (attr = attr_rule(p)) // attr
6869 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006870 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006871 )
6872 {
6873 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006874 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6875 if (_token == NULL) {
6876 D(p->level--);
6877 return NULL;
6878 }
6879 int _end_lineno = _token->end_lineno;
6880 UNUSED(_end_lineno); // Only used by EXTRA macro
6881 int _end_col_offset = _token->end_col_offset;
6882 UNUSED(_end_col_offset); // Only used by EXTRA macro
6883 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006884 if (_res == NULL && PyErr_Occurred()) {
6885 p->error_indicator = 1;
6886 D(p->level--);
6887 return NULL;
6888 }
6889 goto done;
6890 }
6891 p->mark = _mark;
6892 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6894 }
6895 _res = NULL;
6896 done:
6897 D(p->level--);
6898 return _res;
6899}
6900
6901// Left-recursive
6902// attr: name_or_attr '.' NAME
6903static expr_ty attr_raw(Parser *);
6904static expr_ty
6905attr_rule(Parser *p)
6906{
6907 D(p->level++);
6908 expr_ty _res = NULL;
6909 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6910 D(p->level--);
6911 return _res;
6912 }
6913 int _mark = p->mark;
6914 int _resmark = p->mark;
6915 while (1) {
6916 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6917 if (tmpvar_1) {
6918 D(p->level--);
6919 return _res;
6920 }
6921 p->mark = _mark;
6922 void *_raw = attr_raw(p);
6923 if (p->error_indicator)
6924 return NULL;
6925 if (_raw == NULL || p->mark <= _resmark)
6926 break;
6927 _resmark = p->mark;
6928 _res = _raw;
6929 }
6930 p->mark = _resmark;
6931 D(p->level--);
6932 return _res;
6933}
6934static expr_ty
6935attr_raw(Parser *p)
6936{
6937 D(p->level++);
6938 if (p->error_indicator) {
6939 D(p->level--);
6940 return NULL;
6941 }
6942 expr_ty _res = NULL;
6943 int _mark = p->mark;
6944 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6945 p->error_indicator = 1;
6946 D(p->level--);
6947 return NULL;
6948 }
6949 int _start_lineno = p->tokens[_mark]->lineno;
6950 UNUSED(_start_lineno); // Only used by EXTRA macro
6951 int _start_col_offset = p->tokens[_mark]->col_offset;
6952 UNUSED(_start_col_offset); // Only used by EXTRA macro
6953 { // name_or_attr '.' NAME
6954 if (p->error_indicator) {
6955 D(p->level--);
6956 return NULL;
6957 }
6958 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6959 Token * _literal;
6960 expr_ty attr;
6961 expr_ty value;
6962 if (
6963 (value = name_or_attr_rule(p)) // name_or_attr
6964 &&
6965 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6966 &&
6967 (attr = _PyPegen_name_token(p)) // NAME
6968 )
6969 {
6970 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6971 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6972 if (_token == NULL) {
6973 D(p->level--);
6974 return NULL;
6975 }
6976 int _end_lineno = _token->end_lineno;
6977 UNUSED(_end_lineno); // Only used by EXTRA macro
6978 int _end_col_offset = _token->end_col_offset;
6979 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006980 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006981 if (_res == NULL && PyErr_Occurred()) {
6982 p->error_indicator = 1;
6983 D(p->level--);
6984 return NULL;
6985 }
6986 goto done;
6987 }
6988 p->mark = _mark;
6989 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6991 }
6992 _res = NULL;
6993 done:
6994 D(p->level--);
6995 return _res;
6996}
6997
6998// Left-recursive
6999// name_or_attr: attr | NAME
7000static expr_ty
7001name_or_attr_rule(Parser *p)
7002{
7003 D(p->level++);
7004 if (p->error_indicator) {
7005 D(p->level--);
7006 return NULL;
7007 }
7008 expr_ty _res = NULL;
7009 int _mark = p->mark;
7010 { // attr
7011 if (p->error_indicator) {
7012 D(p->level--);
7013 return NULL;
7014 }
7015 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7016 expr_ty attr_var;
7017 if (
7018 (attr_var = attr_rule(p)) // attr
7019 )
7020 {
7021 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7022 _res = attr_var;
7023 goto done;
7024 }
7025 p->mark = _mark;
7026 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7028 }
7029 { // NAME
7030 if (p->error_indicator) {
7031 D(p->level--);
7032 return NULL;
7033 }
7034 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7035 expr_ty name_var;
7036 if (
7037 (name_var = _PyPegen_name_token(p)) // NAME
7038 )
7039 {
7040 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7041 _res = name_var;
7042 goto done;
7043 }
7044 p->mark = _mark;
7045 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7047 }
7048 _res = NULL;
7049 done:
7050 D(p->level--);
7051 return _res;
7052}
7053
7054// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007055static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007056group_pattern_rule(Parser *p)
7057{
7058 D(p->level++);
7059 if (p->error_indicator) {
7060 D(p->level--);
7061 return NULL;
7062 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007063 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007064 int _mark = p->mark;
7065 { // '(' pattern ')'
7066 if (p->error_indicator) {
7067 D(p->level--);
7068 return NULL;
7069 }
7070 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7071 Token * _literal;
7072 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007073 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007074 if (
7075 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7076 &&
7077 (pattern = pattern_rule(p)) // pattern
7078 &&
7079 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7080 )
7081 {
7082 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7083 _res = pattern;
7084 if (_res == NULL && PyErr_Occurred()) {
7085 p->error_indicator = 1;
7086 D(p->level--);
7087 return NULL;
7088 }
7089 goto done;
7090 }
7091 p->mark = _mark;
7092 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7094 }
7095 _res = NULL;
7096 done:
7097 D(p->level--);
7098 return _res;
7099}
7100
7101// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007102static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007103sequence_pattern_rule(Parser *p)
7104{
7105 D(p->level++);
7106 if (p->error_indicator) {
7107 D(p->level--);
7108 return NULL;
7109 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007110 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007111 int _mark = p->mark;
7112 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7113 p->error_indicator = 1;
7114 D(p->level--);
7115 return NULL;
7116 }
7117 int _start_lineno = p->tokens[_mark]->lineno;
7118 UNUSED(_start_lineno); // Only used by EXTRA macro
7119 int _start_col_offset = p->tokens[_mark]->col_offset;
7120 UNUSED(_start_col_offset); // Only used by EXTRA macro
7121 { // '[' maybe_sequence_pattern? ']'
7122 if (p->error_indicator) {
7123 D(p->level--);
7124 return NULL;
7125 }
7126 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7127 Token * _literal;
7128 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007129 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007130 if (
7131 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7132 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007133 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007134 &&
7135 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7136 )
7137 {
7138 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7139 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7140 if (_token == NULL) {
7141 D(p->level--);
7142 return NULL;
7143 }
7144 int _end_lineno = _token->end_lineno;
7145 UNUSED(_end_lineno); // Only used by EXTRA macro
7146 int _end_col_offset = _token->end_col_offset;
7147 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007148 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007149 if (_res == NULL && PyErr_Occurred()) {
7150 p->error_indicator = 1;
7151 D(p->level--);
7152 return NULL;
7153 }
7154 goto done;
7155 }
7156 p->mark = _mark;
7157 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7158 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7159 }
7160 { // '(' open_sequence_pattern? ')'
7161 if (p->error_indicator) {
7162 D(p->level--);
7163 return NULL;
7164 }
7165 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7166 Token * _literal;
7167 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007168 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007169 if (
7170 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7171 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007172 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007173 &&
7174 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7175 )
7176 {
7177 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7178 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7179 if (_token == NULL) {
7180 D(p->level--);
7181 return NULL;
7182 }
7183 int _end_lineno = _token->end_lineno;
7184 UNUSED(_end_lineno); // Only used by EXTRA macro
7185 int _end_col_offset = _token->end_col_offset;
7186 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007187 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007188 if (_res == NULL && PyErr_Occurred()) {
7189 p->error_indicator = 1;
7190 D(p->level--);
7191 return NULL;
7192 }
7193 goto done;
7194 }
7195 p->mark = _mark;
7196 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7198 }
7199 _res = NULL;
7200 done:
7201 D(p->level--);
7202 return _res;
7203}
7204
7205// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7206static asdl_seq*
7207open_sequence_pattern_rule(Parser *p)
7208{
7209 D(p->level++);
7210 if (p->error_indicator) {
7211 D(p->level--);
7212 return NULL;
7213 }
7214 asdl_seq* _res = NULL;
7215 int _mark = p->mark;
7216 { // maybe_star_pattern ',' maybe_sequence_pattern?
7217 if (p->error_indicator) {
7218 D(p->level--);
7219 return NULL;
7220 }
7221 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7222 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007223 pattern_ty pattern;
7224 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007225 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007226 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007227 &&
7228 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7229 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007230 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007231 )
7232 {
7233 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 +10007234 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007235 if (_res == NULL && PyErr_Occurred()) {
7236 p->error_indicator = 1;
7237 D(p->level--);
7238 return NULL;
7239 }
7240 goto done;
7241 }
7242 p->mark = _mark;
7243 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7245 }
7246 _res = NULL;
7247 done:
7248 D(p->level--);
7249 return _res;
7250}
7251
7252// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7253static asdl_seq*
7254maybe_sequence_pattern_rule(Parser *p)
7255{
7256 D(p->level++);
7257 if (p->error_indicator) {
7258 D(p->level--);
7259 return NULL;
7260 }
7261 asdl_seq* _res = NULL;
7262 int _mark = p->mark;
7263 { // ','.maybe_star_pattern+ ','?
7264 if (p->error_indicator) {
7265 D(p->level--);
7266 return NULL;
7267 }
7268 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7269 void *_opt_var;
7270 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007271 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007272 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007273 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007274 &&
7275 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7276 )
7277 {
7278 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 +10007279 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007280 if (_res == NULL && PyErr_Occurred()) {
7281 p->error_indicator = 1;
7282 D(p->level--);
7283 return NULL;
7284 }
7285 goto done;
7286 }
7287 p->mark = _mark;
7288 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7290 }
7291 _res = NULL;
7292 done:
7293 D(p->level--);
7294 return _res;
7295}
7296
7297// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007298static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007299maybe_star_pattern_rule(Parser *p)
7300{
7301 D(p->level++);
7302 if (p->error_indicator) {
7303 D(p->level--);
7304 return NULL;
7305 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007306 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007307 int _mark = p->mark;
7308 { // star_pattern
7309 if (p->error_indicator) {
7310 D(p->level--);
7311 return NULL;
7312 }
7313 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 +10007314 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007315 if (
7316 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7317 )
7318 {
7319 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7320 _res = star_pattern_var;
7321 goto done;
7322 }
7323 p->mark = _mark;
7324 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7326 }
7327 { // pattern
7328 if (p->error_indicator) {
7329 D(p->level--);
7330 return NULL;
7331 }
7332 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007333 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007334 if (
7335 (pattern_var = pattern_rule(p)) // pattern
7336 )
7337 {
7338 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7339 _res = pattern_var;
7340 goto done;
7341 }
7342 p->mark = _mark;
7343 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7345 }
7346 _res = NULL;
7347 done:
7348 D(p->level--);
7349 return _res;
7350}
7351
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007352// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7353static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007354star_pattern_rule(Parser *p)
7355{
7356 D(p->level++);
7357 if (p->error_indicator) {
7358 D(p->level--);
7359 return NULL;
7360 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007361 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007362 int _mark = p->mark;
7363 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7364 p->error_indicator = 1;
7365 D(p->level--);
7366 return NULL;
7367 }
7368 int _start_lineno = p->tokens[_mark]->lineno;
7369 UNUSED(_start_lineno); // Only used by EXTRA macro
7370 int _start_col_offset = p->tokens[_mark]->col_offset;
7371 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007372 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007373 if (p->error_indicator) {
7374 D(p->level--);
7375 return NULL;
7376 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007377 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 -08007378 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007379 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007380 if (
7381 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7382 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007383 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007384 )
7385 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007386 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 -08007387 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7388 if (_token == NULL) {
7389 D(p->level--);
7390 return NULL;
7391 }
7392 int _end_lineno = _token->end_lineno;
7393 UNUSED(_end_lineno); // Only used by EXTRA macro
7394 int _end_col_offset = _token->end_col_offset;
7395 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007396 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007397 if (_res == NULL && PyErr_Occurred()) {
7398 p->error_indicator = 1;
7399 D(p->level--);
7400 return NULL;
7401 }
7402 goto done;
7403 }
7404 p->mark = _mark;
7405 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7407 }
7408 { // '*' wildcard_pattern
7409 if (p->error_indicator) {
7410 D(p->level--);
7411 return NULL;
7412 }
7413 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7414 Token * _literal;
7415 pattern_ty wildcard_pattern_var;
7416 if (
7417 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7418 &&
7419 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7420 )
7421 {
7422 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7423 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7424 if (_token == NULL) {
7425 D(p->level--);
7426 return NULL;
7427 }
7428 int _end_lineno = _token->end_lineno;
7429 UNUSED(_end_lineno); // Only used by EXTRA macro
7430 int _end_col_offset = _token->end_col_offset;
7431 UNUSED(_end_col_offset); // Only used by EXTRA macro
7432 _res = _PyAST_MatchStar ( NULL , EXTRA );
7433 if (_res == NULL && PyErr_Occurred()) {
7434 p->error_indicator = 1;
7435 D(p->level--);
7436 return NULL;
7437 }
7438 goto done;
7439 }
7440 p->mark = _mark;
7441 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007443 }
7444 _res = NULL;
7445 done:
7446 D(p->level--);
7447 return _res;
7448}
7449
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007450// mapping_pattern:
7451// | '{' '}'
7452// | '{' double_star_pattern ','? '}'
7453// | '{' items_pattern ',' double_star_pattern ','? '}'
7454// | '{' items_pattern ','? '}'
7455static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007456mapping_pattern_rule(Parser *p)
7457{
7458 D(p->level++);
7459 if (p->error_indicator) {
7460 D(p->level--);
7461 return NULL;
7462 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007463 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007464 int _mark = p->mark;
7465 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7466 p->error_indicator = 1;
7467 D(p->level--);
7468 return NULL;
7469 }
7470 int _start_lineno = p->tokens[_mark]->lineno;
7471 UNUSED(_start_lineno); // Only used by EXTRA macro
7472 int _start_col_offset = p->tokens[_mark]->col_offset;
7473 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007474 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007475 if (p->error_indicator) {
7476 D(p->level--);
7477 return NULL;
7478 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007479 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007480 Token * _literal;
7481 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007482 if (
7483 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7484 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007485 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7486 )
7487 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007488 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007489 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7490 if (_token == NULL) {
7491 D(p->level--);
7492 return NULL;
7493 }
7494 int _end_lineno = _token->end_lineno;
7495 UNUSED(_end_lineno); // Only used by EXTRA macro
7496 int _end_col_offset = _token->end_col_offset;
7497 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007498 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007499 if (_res == NULL && PyErr_Occurred()) {
7500 p->error_indicator = 1;
7501 D(p->level--);
7502 return NULL;
7503 }
7504 goto done;
7505 }
7506 p->mark = _mark;
7507 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7509 }
7510 { // '{' double_star_pattern ','? '}'
7511 if (p->error_indicator) {
7512 D(p->level--);
7513 return NULL;
7514 }
7515 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7516 Token * _literal;
7517 Token * _literal_1;
7518 void *_opt_var;
7519 UNUSED(_opt_var); // Silence compiler warnings
7520 expr_ty rest;
7521 if (
7522 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7523 &&
7524 (rest = double_star_pattern_rule(p)) // double_star_pattern
7525 &&
7526 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7527 &&
7528 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7529 )
7530 {
7531 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7532 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7533 if (_token == NULL) {
7534 D(p->level--);
7535 return NULL;
7536 }
7537 int _end_lineno = _token->end_lineno;
7538 UNUSED(_end_lineno); // Only used by EXTRA macro
7539 int _end_col_offset = _token->end_col_offset;
7540 UNUSED(_end_col_offset); // Only used by EXTRA macro
7541 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7542 if (_res == NULL && PyErr_Occurred()) {
7543 p->error_indicator = 1;
7544 D(p->level--);
7545 return NULL;
7546 }
7547 goto done;
7548 }
7549 p->mark = _mark;
7550 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7552 }
7553 { // '{' items_pattern ',' double_star_pattern ','? '}'
7554 if (p->error_indicator) {
7555 D(p->level--);
7556 return NULL;
7557 }
7558 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7559 Token * _literal;
7560 Token * _literal_1;
7561 Token * _literal_2;
7562 void *_opt_var;
7563 UNUSED(_opt_var); // Silence compiler warnings
7564 asdl_seq* items;
7565 expr_ty rest;
7566 if (
7567 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7568 &&
7569 (items = items_pattern_rule(p)) // items_pattern
7570 &&
7571 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7572 &&
7573 (rest = double_star_pattern_rule(p)) // double_star_pattern
7574 &&
7575 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7576 &&
7577 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7578 )
7579 {
7580 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7581 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7582 if (_token == NULL) {
7583 D(p->level--);
7584 return NULL;
7585 }
7586 int _end_lineno = _token->end_lineno;
7587 UNUSED(_end_lineno); // Only used by EXTRA macro
7588 int _end_col_offset = _token->end_col_offset;
7589 UNUSED(_end_col_offset); // Only used by EXTRA macro
7590 _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 );
7591 if (_res == NULL && PyErr_Occurred()) {
7592 p->error_indicator = 1;
7593 D(p->level--);
7594 return NULL;
7595 }
7596 goto done;
7597 }
7598 p->mark = _mark;
7599 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7601 }
7602 { // '{' items_pattern ','? '}'
7603 if (p->error_indicator) {
7604 D(p->level--);
7605 return NULL;
7606 }
7607 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7608 Token * _literal;
7609 Token * _literal_1;
7610 void *_opt_var;
7611 UNUSED(_opt_var); // Silence compiler warnings
7612 asdl_seq* items;
7613 if (
7614 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7615 &&
7616 (items = items_pattern_rule(p)) // items_pattern
7617 &&
7618 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7619 &&
7620 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7621 )
7622 {
7623 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7624 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7625 if (_token == NULL) {
7626 D(p->level--);
7627 return NULL;
7628 }
7629 int _end_lineno = _token->end_lineno;
7630 UNUSED(_end_lineno); // Only used by EXTRA macro
7631 int _end_col_offset = _token->end_col_offset;
7632 UNUSED(_end_col_offset); // Only used by EXTRA macro
7633 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7634 if (_res == NULL && PyErr_Occurred()) {
7635 p->error_indicator = 1;
7636 D(p->level--);
7637 return NULL;
7638 }
7639 goto done;
7640 }
7641 p->mark = _mark;
7642 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007644 }
7645 _res = NULL;
7646 done:
7647 D(p->level--);
7648 return _res;
7649}
7650
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007651// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007652static asdl_seq*
7653items_pattern_rule(Parser *p)
7654{
7655 D(p->level++);
7656 if (p->error_indicator) {
7657 D(p->level--);
7658 return NULL;
7659 }
7660 asdl_seq* _res = NULL;
7661 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007662 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007663 if (p->error_indicator) {
7664 D(p->level--);
7665 return NULL;
7666 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007667 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 -07007668 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007669 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007670 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007671 )
7672 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007673 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 -07007674 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007675 goto done;
7676 }
7677 p->mark = _mark;
7678 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007680 }
7681 _res = NULL;
7682 done:
7683 D(p->level--);
7684 return _res;
7685}
7686
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007687// key_value_pattern: (literal_expr | attr) ':' pattern
7688static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007689key_value_pattern_rule(Parser *p)
7690{
7691 D(p->level++);
7692 if (p->error_indicator) {
7693 D(p->level--);
7694 return NULL;
7695 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007696 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007697 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007698 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007699 if (p->error_indicator) {
7700 D(p->level--);
7701 return NULL;
7702 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007703 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 -08007704 Token * _literal;
7705 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007706 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007707 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007708 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007709 &&
7710 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7711 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007712 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007713 )
7714 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007715 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7716 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007717 if (_res == NULL && PyErr_Occurred()) {
7718 p->error_indicator = 1;
7719 D(p->level--);
7720 return NULL;
7721 }
7722 goto done;
7723 }
7724 p->mark = _mark;
7725 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007727 }
7728 _res = NULL;
7729 done:
7730 D(p->level--);
7731 return _res;
7732}
7733
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007734// double_star_pattern: '**' pattern_capture_target
7735static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007736double_star_pattern_rule(Parser *p)
7737{
7738 D(p->level++);
7739 if (p->error_indicator) {
7740 D(p->level--);
7741 return NULL;
7742 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007743 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007744 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007745 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007746 if (p->error_indicator) {
7747 D(p->level--);
7748 return NULL;
7749 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007750 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 -08007751 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007752 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007753 if (
7754 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7755 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007756 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007757 )
7758 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007759 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7760 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007761 if (_res == NULL && PyErr_Occurred()) {
7762 p->error_indicator = 1;
7763 D(p->level--);
7764 return NULL;
7765 }
7766 goto done;
7767 }
7768 p->mark = _mark;
7769 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007771 }
7772 _res = NULL;
7773 done:
7774 D(p->level--);
7775 return _res;
7776}
7777
7778// class_pattern:
7779// | name_or_attr '(' ')'
7780// | name_or_attr '(' positional_patterns ','? ')'
7781// | name_or_attr '(' keyword_patterns ','? ')'
7782// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007783static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007784class_pattern_rule(Parser *p)
7785{
7786 D(p->level++);
7787 if (p->error_indicator) {
7788 D(p->level--);
7789 return NULL;
7790 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007791 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007792 int _mark = p->mark;
7793 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7794 p->error_indicator = 1;
7795 D(p->level--);
7796 return NULL;
7797 }
7798 int _start_lineno = p->tokens[_mark]->lineno;
7799 UNUSED(_start_lineno); // Only used by EXTRA macro
7800 int _start_col_offset = p->tokens[_mark]->col_offset;
7801 UNUSED(_start_col_offset); // Only used by EXTRA macro
7802 { // name_or_attr '(' ')'
7803 if (p->error_indicator) {
7804 D(p->level--);
7805 return NULL;
7806 }
7807 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7808 Token * _literal;
7809 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007810 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007811 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007812 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007813 &&
7814 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7815 &&
7816 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7817 )
7818 {
7819 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7820 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7821 if (_token == NULL) {
7822 D(p->level--);
7823 return NULL;
7824 }
7825 int _end_lineno = _token->end_lineno;
7826 UNUSED(_end_lineno); // Only used by EXTRA macro
7827 int _end_col_offset = _token->end_col_offset;
7828 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007829 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007830 if (_res == NULL && PyErr_Occurred()) {
7831 p->error_indicator = 1;
7832 D(p->level--);
7833 return NULL;
7834 }
7835 goto done;
7836 }
7837 p->mark = _mark;
7838 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7839 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7840 }
7841 { // name_or_attr '(' positional_patterns ','? ')'
7842 if (p->error_indicator) {
7843 D(p->level--);
7844 return NULL;
7845 }
7846 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7847 Token * _literal;
7848 Token * _literal_1;
7849 void *_opt_var;
7850 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007851 expr_ty cls;
7852 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007853 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007854 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007855 &&
7856 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7857 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007858 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007859 &&
7860 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7861 &&
7862 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7863 )
7864 {
7865 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7866 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7867 if (_token == NULL) {
7868 D(p->level--);
7869 return NULL;
7870 }
7871 int _end_lineno = _token->end_lineno;
7872 UNUSED(_end_lineno); // Only used by EXTRA macro
7873 int _end_col_offset = _token->end_col_offset;
7874 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007875 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007876 if (_res == NULL && PyErr_Occurred()) {
7877 p->error_indicator = 1;
7878 D(p->level--);
7879 return NULL;
7880 }
7881 goto done;
7882 }
7883 p->mark = _mark;
7884 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7886 }
7887 { // name_or_attr '(' keyword_patterns ','? ')'
7888 if (p->error_indicator) {
7889 D(p->level--);
7890 return NULL;
7891 }
7892 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7893 Token * _literal;
7894 Token * _literal_1;
7895 void *_opt_var;
7896 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007897 expr_ty cls;
7898 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007899 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007900 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007901 &&
7902 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7903 &&
7904 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7905 &&
7906 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7907 &&
7908 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7909 )
7910 {
7911 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7912 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7913 if (_token == NULL) {
7914 D(p->level--);
7915 return NULL;
7916 }
7917 int _end_lineno = _token->end_lineno;
7918 UNUSED(_end_lineno); // Only used by EXTRA macro
7919 int _end_col_offset = _token->end_col_offset;
7920 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007921 _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 -08007922 if (_res == NULL && PyErr_Occurred()) {
7923 p->error_indicator = 1;
7924 D(p->level--);
7925 return NULL;
7926 }
7927 goto done;
7928 }
7929 p->mark = _mark;
7930 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7932 }
7933 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7934 if (p->error_indicator) {
7935 D(p->level--);
7936 return NULL;
7937 }
7938 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7939 Token * _literal;
7940 Token * _literal_1;
7941 Token * _literal_2;
7942 void *_opt_var;
7943 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007944 expr_ty cls;
7945 asdl_seq* keywords;
7946 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007947 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007948 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007949 &&
7950 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7951 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007952 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007953 &&
7954 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7955 &&
7956 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7957 &&
7958 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7959 &&
7960 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7961 )
7962 {
7963 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7964 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7965 if (_token == NULL) {
7966 D(p->level--);
7967 return NULL;
7968 }
7969 int _end_lineno = _token->end_lineno;
7970 UNUSED(_end_lineno); // Only used by EXTRA macro
7971 int _end_col_offset = _token->end_col_offset;
7972 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007973 _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 -08007974 if (_res == NULL && PyErr_Occurred()) {
7975 p->error_indicator = 1;
7976 D(p->level--);
7977 return NULL;
7978 }
7979 goto done;
7980 }
7981 p->mark = _mark;
7982 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7984 }
7985 _res = NULL;
7986 done:
7987 D(p->level--);
7988 return _res;
7989}
7990
7991// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007992static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08007993positional_patterns_rule(Parser *p)
7994{
7995 D(p->level++);
7996 if (p->error_indicator) {
7997 D(p->level--);
7998 return NULL;
7999 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008000 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008001 int _mark = p->mark;
8002 { // ','.pattern+
8003 if (p->error_indicator) {
8004 D(p->level--);
8005 return NULL;
8006 }
8007 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008008 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008009 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008010 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008011 )
8012 {
8013 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8014 _res = args;
8015 if (_res == NULL && PyErr_Occurred()) {
8016 p->error_indicator = 1;
8017 D(p->level--);
8018 return NULL;
8019 }
8020 goto done;
8021 }
8022 p->mark = _mark;
8023 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8024 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8025 }
8026 _res = NULL;
8027 done:
8028 D(p->level--);
8029 return _res;
8030}
8031
8032// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008033static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008034keyword_patterns_rule(Parser *p)
8035{
8036 D(p->level++);
8037 if (p->error_indicator) {
8038 D(p->level--);
8039 return NULL;
8040 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008041 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008042 int _mark = p->mark;
8043 { // ','.keyword_pattern+
8044 if (p->error_indicator) {
8045 D(p->level--);
8046 return NULL;
8047 }
8048 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008049 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008050 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008051 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008052 )
8053 {
8054 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 -07008055 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008056 goto done;
8057 }
8058 p->mark = _mark;
8059 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8061 }
8062 _res = NULL;
8063 done:
8064 D(p->level--);
8065 return _res;
8066}
8067
8068// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008069static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008070keyword_pattern_rule(Parser *p)
8071{
8072 D(p->level++);
8073 if (p->error_indicator) {
8074 D(p->level--);
8075 return NULL;
8076 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008077 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008078 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008079 { // NAME '=' pattern
8080 if (p->error_indicator) {
8081 D(p->level--);
8082 return NULL;
8083 }
8084 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8085 Token * _literal;
8086 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008087 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008088 if (
8089 (arg = _PyPegen_name_token(p)) // NAME
8090 &&
8091 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8092 &&
8093 (value = pattern_rule(p)) // pattern
8094 )
8095 {
8096 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 +10008097 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008098 if (_res == NULL && PyErr_Occurred()) {
8099 p->error_indicator = 1;
8100 D(p->level--);
8101 return NULL;
8102 }
8103 goto done;
8104 }
8105 p->mark = _mark;
8106 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8108 }
8109 _res = NULL;
8110 done:
8111 D(p->level--);
8112 return _res;
8113}
8114
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008115// return_stmt: 'return' star_expressions?
8116static stmt_ty
8117return_stmt_rule(Parser *p)
8118{
8119 D(p->level++);
8120 if (p->error_indicator) {
8121 D(p->level--);
8122 return NULL;
8123 }
8124 stmt_ty _res = NULL;
8125 int _mark = p->mark;
8126 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8127 p->error_indicator = 1;
8128 D(p->level--);
8129 return NULL;
8130 }
8131 int _start_lineno = p->tokens[_mark]->lineno;
8132 UNUSED(_start_lineno); // Only used by EXTRA macro
8133 int _start_col_offset = p->tokens[_mark]->col_offset;
8134 UNUSED(_start_col_offset); // Only used by EXTRA macro
8135 { // 'return' star_expressions?
8136 if (p->error_indicator) {
8137 D(p->level--);
8138 return NULL;
8139 }
8140 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8141 Token * _keyword;
8142 void *a;
8143 if (
8144 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8145 &&
8146 (a = star_expressions_rule(p), 1) // star_expressions?
8147 )
8148 {
8149 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8150 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8151 if (_token == NULL) {
8152 D(p->level--);
8153 return NULL;
8154 }
8155 int _end_lineno = _token->end_lineno;
8156 UNUSED(_end_lineno); // Only used by EXTRA macro
8157 int _end_col_offset = _token->end_col_offset;
8158 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008159 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008160 if (_res == NULL && PyErr_Occurred()) {
8161 p->error_indicator = 1;
8162 D(p->level--);
8163 return NULL;
8164 }
8165 goto done;
8166 }
8167 p->mark = _mark;
8168 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8170 }
8171 _res = NULL;
8172 done:
8173 D(p->level--);
8174 return _res;
8175}
8176
8177// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8178static stmt_ty
8179raise_stmt_rule(Parser *p)
8180{
8181 D(p->level++);
8182 if (p->error_indicator) {
8183 D(p->level--);
8184 return NULL;
8185 }
8186 stmt_ty _res = NULL;
8187 int _mark = p->mark;
8188 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8189 p->error_indicator = 1;
8190 D(p->level--);
8191 return NULL;
8192 }
8193 int _start_lineno = p->tokens[_mark]->lineno;
8194 UNUSED(_start_lineno); // Only used by EXTRA macro
8195 int _start_col_offset = p->tokens[_mark]->col_offset;
8196 UNUSED(_start_col_offset); // Only used by EXTRA macro
8197 { // 'raise' expression ['from' expression]
8198 if (p->error_indicator) {
8199 D(p->level--);
8200 return NULL;
8201 }
8202 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8203 Token * _keyword;
8204 expr_ty a;
8205 void *b;
8206 if (
8207 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8208 &&
8209 (a = expression_rule(p)) // expression
8210 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008211 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008212 )
8213 {
8214 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8215 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8216 if (_token == NULL) {
8217 D(p->level--);
8218 return NULL;
8219 }
8220 int _end_lineno = _token->end_lineno;
8221 UNUSED(_end_lineno); // Only used by EXTRA macro
8222 int _end_col_offset = _token->end_col_offset;
8223 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008224 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008225 if (_res == NULL && PyErr_Occurred()) {
8226 p->error_indicator = 1;
8227 D(p->level--);
8228 return NULL;
8229 }
8230 goto done;
8231 }
8232 p->mark = _mark;
8233 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8235 }
8236 { // 'raise'
8237 if (p->error_indicator) {
8238 D(p->level--);
8239 return NULL;
8240 }
8241 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8242 Token * _keyword;
8243 if (
8244 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8245 )
8246 {
8247 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8248 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8249 if (_token == NULL) {
8250 D(p->level--);
8251 return NULL;
8252 }
8253 int _end_lineno = _token->end_lineno;
8254 UNUSED(_end_lineno); // Only used by EXTRA macro
8255 int _end_col_offset = _token->end_col_offset;
8256 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008257 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008258 if (_res == NULL && PyErr_Occurred()) {
8259 p->error_indicator = 1;
8260 D(p->level--);
8261 return NULL;
8262 }
8263 goto done;
8264 }
8265 p->mark = _mark;
8266 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8268 }
8269 _res = NULL;
8270 done:
8271 D(p->level--);
8272 return _res;
8273}
8274
8275// function_def: decorators function_def_raw | function_def_raw
8276static stmt_ty
8277function_def_rule(Parser *p)
8278{
8279 D(p->level++);
8280 if (p->error_indicator) {
8281 D(p->level--);
8282 return NULL;
8283 }
8284 stmt_ty _res = NULL;
8285 int _mark = p->mark;
8286 { // decorators function_def_raw
8287 if (p->error_indicator) {
8288 D(p->level--);
8289 return NULL;
8290 }
8291 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 +01008292 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008293 stmt_ty f;
8294 if (
8295 (d = decorators_rule(p)) // decorators
8296 &&
8297 (f = function_def_raw_rule(p)) // function_def_raw
8298 )
8299 {
8300 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8301 _res = _PyPegen_function_def_decorators ( p , d , f );
8302 if (_res == NULL && PyErr_Occurred()) {
8303 p->error_indicator = 1;
8304 D(p->level--);
8305 return NULL;
8306 }
8307 goto done;
8308 }
8309 p->mark = _mark;
8310 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8312 }
8313 { // function_def_raw
8314 if (p->error_indicator) {
8315 D(p->level--);
8316 return NULL;
8317 }
8318 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8319 stmt_ty function_def_raw_var;
8320 if (
8321 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8322 )
8323 {
8324 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8325 _res = function_def_raw_var;
8326 goto done;
8327 }
8328 p->mark = _mark;
8329 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8331 }
8332 _res = NULL;
8333 done:
8334 D(p->level--);
8335 return _res;
8336}
8337
8338// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008339// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008340// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8341// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008342static stmt_ty
8343function_def_raw_rule(Parser *p)
8344{
8345 D(p->level++);
8346 if (p->error_indicator) {
8347 D(p->level--);
8348 return NULL;
8349 }
8350 stmt_ty _res = NULL;
8351 int _mark = p->mark;
8352 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8353 p->error_indicator = 1;
8354 D(p->level--);
8355 return NULL;
8356 }
8357 int _start_lineno = p->tokens[_mark]->lineno;
8358 UNUSED(_start_lineno); // Only used by EXTRA macro
8359 int _start_col_offset = p->tokens[_mark]->col_offset;
8360 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008361 if (p->call_invalid_rules) { // invalid_def_raw
8362 if (p->error_indicator) {
8363 D(p->level--);
8364 return NULL;
8365 }
8366 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8367 void *invalid_def_raw_var;
8368 if (
8369 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8370 )
8371 {
8372 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8373 _res = invalid_def_raw_var;
8374 goto done;
8375 }
8376 p->mark = _mark;
8377 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8379 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008380 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008381 if (p->error_indicator) {
8382 D(p->level--);
8383 return NULL;
8384 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008385 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 +01008386 Token * _keyword;
8387 Token * _literal;
8388 Token * _literal_1;
8389 Token * _literal_2;
8390 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008391 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008392 expr_ty n;
8393 void *params;
8394 void *tc;
8395 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008396 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008397 &&
8398 (n = _PyPegen_name_token(p)) // NAME
8399 &&
8400 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8401 &&
8402 (params = params_rule(p), 1) // params?
8403 &&
8404 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8405 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008406 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008407 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008408 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008409 &&
8410 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8411 &&
8412 (b = block_rule(p)) // block
8413 )
8414 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008415 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 +01008416 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8417 if (_token == NULL) {
8418 D(p->level--);
8419 return NULL;
8420 }
8421 int _end_lineno = _token->end_lineno;
8422 UNUSED(_end_lineno); // Only used by EXTRA macro
8423 int _end_col_offset = _token->end_col_offset;
8424 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008425 _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 +01008426 if (_res == NULL && PyErr_Occurred()) {
8427 p->error_indicator = 1;
8428 D(p->level--);
8429 return NULL;
8430 }
8431 goto done;
8432 }
8433 p->mark = _mark;
8434 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008436 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008437 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008438 if (p->error_indicator) {
8439 D(p->level--);
8440 return NULL;
8441 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008442 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 +01008443 Token * _keyword;
8444 Token * _literal;
8445 Token * _literal_1;
8446 Token * _literal_2;
8447 void *a;
8448 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008449 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008450 expr_ty n;
8451 void *params;
8452 void *tc;
8453 if (
8454 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8455 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008456 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008457 &&
8458 (n = _PyPegen_name_token(p)) // NAME
8459 &&
8460 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8461 &&
8462 (params = params_rule(p), 1) // params?
8463 &&
8464 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8465 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008466 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008467 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008468 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008469 &&
8470 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8471 &&
8472 (b = block_rule(p)) // block
8473 )
8474 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008475 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 +01008476 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8477 if (_token == NULL) {
8478 D(p->level--);
8479 return NULL;
8480 }
8481 int _end_lineno = _token->end_lineno;
8482 UNUSED(_end_lineno); // Only used by EXTRA macro
8483 int _end_col_offset = _token->end_col_offset;
8484 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008485 _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 +01008486 if (_res == NULL && PyErr_Occurred()) {
8487 p->error_indicator = 1;
8488 D(p->level--);
8489 return NULL;
8490 }
8491 goto done;
8492 }
8493 p->mark = _mark;
8494 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008496 }
8497 _res = NULL;
8498 done:
8499 D(p->level--);
8500 return _res;
8501}
8502
8503// func_type_comment:
8504// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8505// | invalid_double_type_comments
8506// | TYPE_COMMENT
8507static Token*
8508func_type_comment_rule(Parser *p)
8509{
8510 D(p->level++);
8511 if (p->error_indicator) {
8512 D(p->level--);
8513 return NULL;
8514 }
8515 Token* _res = NULL;
8516 int _mark = p->mark;
8517 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8518 if (p->error_indicator) {
8519 D(p->level--);
8520 return NULL;
8521 }
8522 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8523 Token * newline_var;
8524 Token * t;
8525 if (
8526 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8527 &&
8528 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8529 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008530 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008531 )
8532 {
8533 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8534 _res = t;
8535 if (_res == NULL && PyErr_Occurred()) {
8536 p->error_indicator = 1;
8537 D(p->level--);
8538 return NULL;
8539 }
8540 goto done;
8541 }
8542 p->mark = _mark;
8543 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8545 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008546 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008547 if (p->error_indicator) {
8548 D(p->level--);
8549 return NULL;
8550 }
8551 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8552 void *invalid_double_type_comments_var;
8553 if (
8554 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8555 )
8556 {
8557 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8558 _res = invalid_double_type_comments_var;
8559 goto done;
8560 }
8561 p->mark = _mark;
8562 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8563 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8564 }
8565 { // TYPE_COMMENT
8566 if (p->error_indicator) {
8567 D(p->level--);
8568 return NULL;
8569 }
8570 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8571 Token * type_comment_var;
8572 if (
8573 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8574 )
8575 {
8576 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8577 _res = type_comment_var;
8578 goto done;
8579 }
8580 p->mark = _mark;
8581 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8583 }
8584 _res = NULL;
8585 done:
8586 D(p->level--);
8587 return _res;
8588}
8589
8590// params: invalid_parameters | parameters
8591static arguments_ty
8592params_rule(Parser *p)
8593{
8594 D(p->level++);
8595 if (p->error_indicator) {
8596 D(p->level--);
8597 return NULL;
8598 }
8599 arguments_ty _res = NULL;
8600 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008601 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008602 if (p->error_indicator) {
8603 D(p->level--);
8604 return NULL;
8605 }
8606 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8607 void *invalid_parameters_var;
8608 if (
8609 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8610 )
8611 {
8612 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8613 _res = invalid_parameters_var;
8614 goto done;
8615 }
8616 p->mark = _mark;
8617 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8619 }
8620 { // parameters
8621 if (p->error_indicator) {
8622 D(p->level--);
8623 return NULL;
8624 }
8625 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8626 arguments_ty parameters_var;
8627 if (
8628 (parameters_var = parameters_rule(p)) // parameters
8629 )
8630 {
8631 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8632 _res = parameters_var;
8633 goto done;
8634 }
8635 p->mark = _mark;
8636 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8638 }
8639 _res = NULL;
8640 done:
8641 D(p->level--);
8642 return _res;
8643}
8644
8645// parameters:
8646// | slash_no_default param_no_default* param_with_default* star_etc?
8647// | slash_with_default param_with_default* star_etc?
8648// | param_no_default+ param_with_default* star_etc?
8649// | param_with_default+ star_etc?
8650// | star_etc
8651static arguments_ty
8652parameters_rule(Parser *p)
8653{
8654 D(p->level++);
8655 if (p->error_indicator) {
8656 D(p->level--);
8657 return NULL;
8658 }
8659 arguments_ty _res = NULL;
8660 int _mark = p->mark;
8661 { // slash_no_default param_no_default* param_with_default* star_etc?
8662 if (p->error_indicator) {
8663 D(p->level--);
8664 return NULL;
8665 }
8666 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 +01008667 asdl_arg_seq* a;
8668 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008669 asdl_seq * c;
8670 void *d;
8671 if (
8672 (a = slash_no_default_rule(p)) // slash_no_default
8673 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008674 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008675 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008676 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008677 &&
8678 (d = star_etc_rule(p), 1) // star_etc?
8679 )
8680 {
8681 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?"));
8682 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8683 if (_res == NULL && PyErr_Occurred()) {
8684 p->error_indicator = 1;
8685 D(p->level--);
8686 return NULL;
8687 }
8688 goto done;
8689 }
8690 p->mark = _mark;
8691 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8693 }
8694 { // slash_with_default param_with_default* star_etc?
8695 if (p->error_indicator) {
8696 D(p->level--);
8697 return NULL;
8698 }
8699 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8700 SlashWithDefault* a;
8701 asdl_seq * b;
8702 void *c;
8703 if (
8704 (a = slash_with_default_rule(p)) // slash_with_default
8705 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008706 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008707 &&
8708 (c = star_etc_rule(p), 1) // star_etc?
8709 )
8710 {
8711 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8712 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8713 if (_res == NULL && PyErr_Occurred()) {
8714 p->error_indicator = 1;
8715 D(p->level--);
8716 return NULL;
8717 }
8718 goto done;
8719 }
8720 p->mark = _mark;
8721 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8723 }
8724 { // param_no_default+ param_with_default* star_etc?
8725 if (p->error_indicator) {
8726 D(p->level--);
8727 return NULL;
8728 }
8729 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 +01008730 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008731 asdl_seq * b;
8732 void *c;
8733 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008734 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008735 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008736 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008737 &&
8738 (c = star_etc_rule(p), 1) // star_etc?
8739 )
8740 {
8741 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8742 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8743 if (_res == NULL && PyErr_Occurred()) {
8744 p->error_indicator = 1;
8745 D(p->level--);
8746 return NULL;
8747 }
8748 goto done;
8749 }
8750 p->mark = _mark;
8751 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8753 }
8754 { // param_with_default+ star_etc?
8755 if (p->error_indicator) {
8756 D(p->level--);
8757 return NULL;
8758 }
8759 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8760 asdl_seq * a;
8761 void *b;
8762 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008763 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008764 &&
8765 (b = star_etc_rule(p), 1) // star_etc?
8766 )
8767 {
8768 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8769 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8770 if (_res == NULL && PyErr_Occurred()) {
8771 p->error_indicator = 1;
8772 D(p->level--);
8773 return NULL;
8774 }
8775 goto done;
8776 }
8777 p->mark = _mark;
8778 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8780 }
8781 { // star_etc
8782 if (p->error_indicator) {
8783 D(p->level--);
8784 return NULL;
8785 }
8786 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8787 StarEtc* a;
8788 if (
8789 (a = star_etc_rule(p)) // star_etc
8790 )
8791 {
8792 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8793 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8794 if (_res == NULL && PyErr_Occurred()) {
8795 p->error_indicator = 1;
8796 D(p->level--);
8797 return NULL;
8798 }
8799 goto done;
8800 }
8801 p->mark = _mark;
8802 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8804 }
8805 _res = NULL;
8806 done:
8807 D(p->level--);
8808 return _res;
8809}
8810
8811// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008812static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008813slash_no_default_rule(Parser *p)
8814{
8815 D(p->level++);
8816 if (p->error_indicator) {
8817 D(p->level--);
8818 return NULL;
8819 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008820 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008821 int _mark = p->mark;
8822 { // param_no_default+ '/' ','
8823 if (p->error_indicator) {
8824 D(p->level--);
8825 return NULL;
8826 }
8827 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8828 Token * _literal;
8829 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008830 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008831 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008832 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008833 &&
8834 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8835 &&
8836 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8837 )
8838 {
8839 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8840 _res = a;
8841 if (_res == NULL && PyErr_Occurred()) {
8842 p->error_indicator = 1;
8843 D(p->level--);
8844 return NULL;
8845 }
8846 goto done;
8847 }
8848 p->mark = _mark;
8849 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8851 }
8852 { // param_no_default+ '/' &')'
8853 if (p->error_indicator) {
8854 D(p->level--);
8855 return NULL;
8856 }
8857 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8858 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008859 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008860 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008861 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008862 &&
8863 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8864 &&
8865 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8866 )
8867 {
8868 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8869 _res = a;
8870 if (_res == NULL && PyErr_Occurred()) {
8871 p->error_indicator = 1;
8872 D(p->level--);
8873 return NULL;
8874 }
8875 goto done;
8876 }
8877 p->mark = _mark;
8878 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8880 }
8881 _res = NULL;
8882 done:
8883 D(p->level--);
8884 return _res;
8885}
8886
8887// slash_with_default:
8888// | param_no_default* param_with_default+ '/' ','
8889// | param_no_default* param_with_default+ '/' &')'
8890static SlashWithDefault*
8891slash_with_default_rule(Parser *p)
8892{
8893 D(p->level++);
8894 if (p->error_indicator) {
8895 D(p->level--);
8896 return NULL;
8897 }
8898 SlashWithDefault* _res = NULL;
8899 int _mark = p->mark;
8900 { // param_no_default* param_with_default+ '/' ','
8901 if (p->error_indicator) {
8902 D(p->level--);
8903 return NULL;
8904 }
8905 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8906 Token * _literal;
8907 Token * _literal_1;
8908 asdl_seq * a;
8909 asdl_seq * b;
8910 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008911 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008912 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008913 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008914 &&
8915 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8916 &&
8917 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8918 )
8919 {
8920 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 +01008921 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008922 if (_res == NULL && PyErr_Occurred()) {
8923 p->error_indicator = 1;
8924 D(p->level--);
8925 return NULL;
8926 }
8927 goto done;
8928 }
8929 p->mark = _mark;
8930 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8932 }
8933 { // param_no_default* param_with_default+ '/' &')'
8934 if (p->error_indicator) {
8935 D(p->level--);
8936 return NULL;
8937 }
8938 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8939 Token * _literal;
8940 asdl_seq * a;
8941 asdl_seq * b;
8942 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008943 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008944 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008945 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008946 &&
8947 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8948 &&
8949 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8950 )
8951 {
8952 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 +01008953 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008954 if (_res == NULL && PyErr_Occurred()) {
8955 p->error_indicator = 1;
8956 D(p->level--);
8957 return NULL;
8958 }
8959 goto done;
8960 }
8961 p->mark = _mark;
8962 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8964 }
8965 _res = NULL;
8966 done:
8967 D(p->level--);
8968 return _res;
8969}
8970
8971// star_etc:
8972// | '*' param_no_default param_maybe_default* kwds?
8973// | '*' ',' param_maybe_default+ kwds?
8974// | kwds
8975// | invalid_star_etc
8976static StarEtc*
8977star_etc_rule(Parser *p)
8978{
8979 D(p->level++);
8980 if (p->error_indicator) {
8981 D(p->level--);
8982 return NULL;
8983 }
8984 StarEtc* _res = NULL;
8985 int _mark = p->mark;
8986 { // '*' param_no_default param_maybe_default* kwds?
8987 if (p->error_indicator) {
8988 D(p->level--);
8989 return NULL;
8990 }
8991 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8992 Token * _literal;
8993 arg_ty a;
8994 asdl_seq * b;
8995 void *c;
8996 if (
8997 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
8998 &&
8999 (a = param_no_default_rule(p)) // param_no_default
9000 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009001 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009002 &&
9003 (c = kwds_rule(p), 1) // kwds?
9004 )
9005 {
9006 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9007 _res = _PyPegen_star_etc ( p , a , b , c );
9008 if (_res == NULL && PyErr_Occurred()) {
9009 p->error_indicator = 1;
9010 D(p->level--);
9011 return NULL;
9012 }
9013 goto done;
9014 }
9015 p->mark = _mark;
9016 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9018 }
9019 { // '*' ',' param_maybe_default+ kwds?
9020 if (p->error_indicator) {
9021 D(p->level--);
9022 return NULL;
9023 }
9024 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9025 Token * _literal;
9026 Token * _literal_1;
9027 asdl_seq * b;
9028 void *c;
9029 if (
9030 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9031 &&
9032 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9033 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009034 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009035 &&
9036 (c = kwds_rule(p), 1) // kwds?
9037 )
9038 {
9039 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9040 _res = _PyPegen_star_etc ( p , NULL , b , c );
9041 if (_res == NULL && PyErr_Occurred()) {
9042 p->error_indicator = 1;
9043 D(p->level--);
9044 return NULL;
9045 }
9046 goto done;
9047 }
9048 p->mark = _mark;
9049 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9051 }
9052 { // kwds
9053 if (p->error_indicator) {
9054 D(p->level--);
9055 return NULL;
9056 }
9057 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9058 arg_ty a;
9059 if (
9060 (a = kwds_rule(p)) // kwds
9061 )
9062 {
9063 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9064 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9065 if (_res == NULL && PyErr_Occurred()) {
9066 p->error_indicator = 1;
9067 D(p->level--);
9068 return NULL;
9069 }
9070 goto done;
9071 }
9072 p->mark = _mark;
9073 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9074 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9075 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009076 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009077 if (p->error_indicator) {
9078 D(p->level--);
9079 return NULL;
9080 }
9081 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9082 void *invalid_star_etc_var;
9083 if (
9084 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9085 )
9086 {
9087 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9088 _res = invalid_star_etc_var;
9089 goto done;
9090 }
9091 p->mark = _mark;
9092 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9094 }
9095 _res = NULL;
9096 done:
9097 D(p->level--);
9098 return _res;
9099}
9100
9101// kwds: '**' param_no_default
9102static arg_ty
9103kwds_rule(Parser *p)
9104{
9105 D(p->level++);
9106 if (p->error_indicator) {
9107 D(p->level--);
9108 return NULL;
9109 }
9110 arg_ty _res = NULL;
9111 int _mark = p->mark;
9112 { // '**' param_no_default
9113 if (p->error_indicator) {
9114 D(p->level--);
9115 return NULL;
9116 }
9117 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9118 Token * _literal;
9119 arg_ty a;
9120 if (
9121 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9122 &&
9123 (a = param_no_default_rule(p)) // param_no_default
9124 )
9125 {
9126 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9127 _res = a;
9128 if (_res == NULL && PyErr_Occurred()) {
9129 p->error_indicator = 1;
9130 D(p->level--);
9131 return NULL;
9132 }
9133 goto done;
9134 }
9135 p->mark = _mark;
9136 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9138 }
9139 _res = NULL;
9140 done:
9141 D(p->level--);
9142 return _res;
9143}
9144
9145// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9146static arg_ty
9147param_no_default_rule(Parser *p)
9148{
9149 D(p->level++);
9150 if (p->error_indicator) {
9151 D(p->level--);
9152 return NULL;
9153 }
9154 arg_ty _res = NULL;
9155 int _mark = p->mark;
9156 { // param ',' TYPE_COMMENT?
9157 if (p->error_indicator) {
9158 D(p->level--);
9159 return NULL;
9160 }
9161 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9162 Token * _literal;
9163 arg_ty a;
9164 void *tc;
9165 if (
9166 (a = param_rule(p)) // param
9167 &&
9168 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9169 &&
9170 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9171 )
9172 {
9173 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9174 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9175 if (_res == NULL && PyErr_Occurred()) {
9176 p->error_indicator = 1;
9177 D(p->level--);
9178 return NULL;
9179 }
9180 goto done;
9181 }
9182 p->mark = _mark;
9183 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9185 }
9186 { // param TYPE_COMMENT? &')'
9187 if (p->error_indicator) {
9188 D(p->level--);
9189 return NULL;
9190 }
9191 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9192 arg_ty a;
9193 void *tc;
9194 if (
9195 (a = param_rule(p)) // param
9196 &&
9197 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9198 &&
9199 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9200 )
9201 {
9202 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9203 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9204 if (_res == NULL && PyErr_Occurred()) {
9205 p->error_indicator = 1;
9206 D(p->level--);
9207 return NULL;
9208 }
9209 goto done;
9210 }
9211 p->mark = _mark;
9212 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9214 }
9215 _res = NULL;
9216 done:
9217 D(p->level--);
9218 return _res;
9219}
9220
9221// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9222static NameDefaultPair*
9223param_with_default_rule(Parser *p)
9224{
9225 D(p->level++);
9226 if (p->error_indicator) {
9227 D(p->level--);
9228 return NULL;
9229 }
9230 NameDefaultPair* _res = NULL;
9231 int _mark = p->mark;
9232 { // param default ',' TYPE_COMMENT?
9233 if (p->error_indicator) {
9234 D(p->level--);
9235 return NULL;
9236 }
9237 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9238 Token * _literal;
9239 arg_ty a;
9240 expr_ty c;
9241 void *tc;
9242 if (
9243 (a = param_rule(p)) // param
9244 &&
9245 (c = default_rule(p)) // default
9246 &&
9247 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9248 &&
9249 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9250 )
9251 {
9252 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9253 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9254 if (_res == NULL && PyErr_Occurred()) {
9255 p->error_indicator = 1;
9256 D(p->level--);
9257 return NULL;
9258 }
9259 goto done;
9260 }
9261 p->mark = _mark;
9262 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9264 }
9265 { // param default TYPE_COMMENT? &')'
9266 if (p->error_indicator) {
9267 D(p->level--);
9268 return NULL;
9269 }
9270 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9271 arg_ty a;
9272 expr_ty c;
9273 void *tc;
9274 if (
9275 (a = param_rule(p)) // param
9276 &&
9277 (c = default_rule(p)) // default
9278 &&
9279 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9280 &&
9281 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9282 )
9283 {
9284 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9285 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9286 if (_res == NULL && PyErr_Occurred()) {
9287 p->error_indicator = 1;
9288 D(p->level--);
9289 return NULL;
9290 }
9291 goto done;
9292 }
9293 p->mark = _mark;
9294 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9296 }
9297 _res = NULL;
9298 done:
9299 D(p->level--);
9300 return _res;
9301}
9302
9303// param_maybe_default:
9304// | param default? ',' TYPE_COMMENT?
9305// | param default? TYPE_COMMENT? &')'
9306static NameDefaultPair*
9307param_maybe_default_rule(Parser *p)
9308{
9309 D(p->level++);
9310 if (p->error_indicator) {
9311 D(p->level--);
9312 return NULL;
9313 }
9314 NameDefaultPair* _res = NULL;
9315 int _mark = p->mark;
9316 { // param default? ',' TYPE_COMMENT?
9317 if (p->error_indicator) {
9318 D(p->level--);
9319 return NULL;
9320 }
9321 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9322 Token * _literal;
9323 arg_ty a;
9324 void *c;
9325 void *tc;
9326 if (
9327 (a = param_rule(p)) // param
9328 &&
9329 (c = default_rule(p), 1) // default?
9330 &&
9331 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9332 &&
9333 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9334 )
9335 {
9336 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9337 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9338 if (_res == NULL && PyErr_Occurred()) {
9339 p->error_indicator = 1;
9340 D(p->level--);
9341 return NULL;
9342 }
9343 goto done;
9344 }
9345 p->mark = _mark;
9346 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9348 }
9349 { // param default? TYPE_COMMENT? &')'
9350 if (p->error_indicator) {
9351 D(p->level--);
9352 return NULL;
9353 }
9354 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9355 arg_ty a;
9356 void *c;
9357 void *tc;
9358 if (
9359 (a = param_rule(p)) // param
9360 &&
9361 (c = default_rule(p), 1) // default?
9362 &&
9363 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9364 &&
9365 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9366 )
9367 {
9368 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9369 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9370 if (_res == NULL && PyErr_Occurred()) {
9371 p->error_indicator = 1;
9372 D(p->level--);
9373 return NULL;
9374 }
9375 goto done;
9376 }
9377 p->mark = _mark;
9378 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9380 }
9381 _res = NULL;
9382 done:
9383 D(p->level--);
9384 return _res;
9385}
9386
9387// param: NAME annotation?
9388static arg_ty
9389param_rule(Parser *p)
9390{
9391 D(p->level++);
9392 if (p->error_indicator) {
9393 D(p->level--);
9394 return NULL;
9395 }
9396 arg_ty _res = NULL;
9397 int _mark = p->mark;
9398 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9399 p->error_indicator = 1;
9400 D(p->level--);
9401 return NULL;
9402 }
9403 int _start_lineno = p->tokens[_mark]->lineno;
9404 UNUSED(_start_lineno); // Only used by EXTRA macro
9405 int _start_col_offset = p->tokens[_mark]->col_offset;
9406 UNUSED(_start_col_offset); // Only used by EXTRA macro
9407 { // NAME annotation?
9408 if (p->error_indicator) {
9409 D(p->level--);
9410 return NULL;
9411 }
9412 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9413 expr_ty a;
9414 void *b;
9415 if (
9416 (a = _PyPegen_name_token(p)) // NAME
9417 &&
9418 (b = annotation_rule(p), 1) // annotation?
9419 )
9420 {
9421 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9423 if (_token == NULL) {
9424 D(p->level--);
9425 return NULL;
9426 }
9427 int _end_lineno = _token->end_lineno;
9428 UNUSED(_end_lineno); // Only used by EXTRA macro
9429 int _end_col_offset = _token->end_col_offset;
9430 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009431 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009432 if (_res == NULL && PyErr_Occurred()) {
9433 p->error_indicator = 1;
9434 D(p->level--);
9435 return NULL;
9436 }
9437 goto done;
9438 }
9439 p->mark = _mark;
9440 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9442 }
9443 _res = NULL;
9444 done:
9445 D(p->level--);
9446 return _res;
9447}
9448
9449// annotation: ':' expression
9450static expr_ty
9451annotation_rule(Parser *p)
9452{
9453 D(p->level++);
9454 if (p->error_indicator) {
9455 D(p->level--);
9456 return NULL;
9457 }
9458 expr_ty _res = NULL;
9459 int _mark = p->mark;
9460 { // ':' expression
9461 if (p->error_indicator) {
9462 D(p->level--);
9463 return NULL;
9464 }
9465 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9466 Token * _literal;
9467 expr_ty a;
9468 if (
9469 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9470 &&
9471 (a = expression_rule(p)) // expression
9472 )
9473 {
9474 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9475 _res = a;
9476 if (_res == NULL && PyErr_Occurred()) {
9477 p->error_indicator = 1;
9478 D(p->level--);
9479 return NULL;
9480 }
9481 goto done;
9482 }
9483 p->mark = _mark;
9484 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9486 }
9487 _res = NULL;
9488 done:
9489 D(p->level--);
9490 return _res;
9491}
9492
9493// default: '=' expression
9494static expr_ty
9495default_rule(Parser *p)
9496{
9497 D(p->level++);
9498 if (p->error_indicator) {
9499 D(p->level--);
9500 return NULL;
9501 }
9502 expr_ty _res = NULL;
9503 int _mark = p->mark;
9504 { // '=' expression
9505 if (p->error_indicator) {
9506 D(p->level--);
9507 return NULL;
9508 }
9509 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9510 Token * _literal;
9511 expr_ty a;
9512 if (
9513 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9514 &&
9515 (a = expression_rule(p)) // expression
9516 )
9517 {
9518 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9519 _res = a;
9520 if (_res == NULL && PyErr_Occurred()) {
9521 p->error_indicator = 1;
9522 D(p->level--);
9523 return NULL;
9524 }
9525 goto done;
9526 }
9527 p->mark = _mark;
9528 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9530 }
9531 _res = NULL;
9532 done:
9533 D(p->level--);
9534 return _res;
9535}
9536
9537// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009538static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009539decorators_rule(Parser *p)
9540{
9541 D(p->level++);
9542 if (p->error_indicator) {
9543 D(p->level--);
9544 return NULL;
9545 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009546 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009547 int _mark = p->mark;
9548 { // (('@' named_expression NEWLINE))+
9549 if (p->error_indicator) {
9550 D(p->level--);
9551 return NULL;
9552 }
9553 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009554 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009555 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009556 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009557 )
9558 {
9559 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9560 _res = a;
9561 if (_res == NULL && PyErr_Occurred()) {
9562 p->error_indicator = 1;
9563 D(p->level--);
9564 return NULL;
9565 }
9566 goto done;
9567 }
9568 p->mark = _mark;
9569 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9571 }
9572 _res = NULL;
9573 done:
9574 D(p->level--);
9575 return _res;
9576}
9577
9578// class_def: decorators class_def_raw | class_def_raw
9579static stmt_ty
9580class_def_rule(Parser *p)
9581{
9582 D(p->level++);
9583 if (p->error_indicator) {
9584 D(p->level--);
9585 return NULL;
9586 }
9587 stmt_ty _res = NULL;
9588 int _mark = p->mark;
9589 { // decorators class_def_raw
9590 if (p->error_indicator) {
9591 D(p->level--);
9592 return NULL;
9593 }
9594 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 +01009595 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009596 stmt_ty b;
9597 if (
9598 (a = decorators_rule(p)) // decorators
9599 &&
9600 (b = class_def_raw_rule(p)) // class_def_raw
9601 )
9602 {
9603 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9604 _res = _PyPegen_class_def_decorators ( p , a , b );
9605 if (_res == NULL && PyErr_Occurred()) {
9606 p->error_indicator = 1;
9607 D(p->level--);
9608 return NULL;
9609 }
9610 goto done;
9611 }
9612 p->mark = _mark;
9613 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9615 }
9616 { // class_def_raw
9617 if (p->error_indicator) {
9618 D(p->level--);
9619 return NULL;
9620 }
9621 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9622 stmt_ty class_def_raw_var;
9623 if (
9624 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9625 )
9626 {
9627 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9628 _res = class_def_raw_var;
9629 goto done;
9630 }
9631 p->mark = _mark;
9632 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9634 }
9635 _res = NULL;
9636 done:
9637 D(p->level--);
9638 return _res;
9639}
9640
Pablo Galindo56c95df2021-04-21 15:28:21 +01009641// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009642static stmt_ty
9643class_def_raw_rule(Parser *p)
9644{
9645 D(p->level++);
9646 if (p->error_indicator) {
9647 D(p->level--);
9648 return NULL;
9649 }
9650 stmt_ty _res = NULL;
9651 int _mark = p->mark;
9652 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9653 p->error_indicator = 1;
9654 D(p->level--);
9655 return NULL;
9656 }
9657 int _start_lineno = p->tokens[_mark]->lineno;
9658 UNUSED(_start_lineno); // Only used by EXTRA macro
9659 int _start_col_offset = p->tokens[_mark]->col_offset;
9660 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009661 if (p->call_invalid_rules) { // invalid_class_def_raw
9662 if (p->error_indicator) {
9663 D(p->level--);
9664 return NULL;
9665 }
9666 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9667 void *invalid_class_def_raw_var;
9668 if (
9669 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9670 )
9671 {
9672 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9673 _res = invalid_class_def_raw_var;
9674 goto done;
9675 }
9676 p->mark = _mark;
9677 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9679 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009680 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009681 if (p->error_indicator) {
9682 D(p->level--);
9683 return NULL;
9684 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009685 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 +01009686 Token * _keyword;
9687 Token * _literal;
9688 expr_ty a;
9689 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009690 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009691 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009692 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009693 &&
9694 (a = _PyPegen_name_token(p)) // NAME
9695 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009696 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009697 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009698 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009699 &&
9700 (c = block_rule(p)) // block
9701 )
9702 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009703 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 +01009704 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9705 if (_token == NULL) {
9706 D(p->level--);
9707 return NULL;
9708 }
9709 int _end_lineno = _token->end_lineno;
9710 UNUSED(_end_lineno); // Only used by EXTRA macro
9711 int _end_col_offset = _token->end_col_offset;
9712 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009713 _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 +01009714 if (_res == NULL && PyErr_Occurred()) {
9715 p->error_indicator = 1;
9716 D(p->level--);
9717 return NULL;
9718 }
9719 goto done;
9720 }
9721 p->mark = _mark;
9722 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009724 }
9725 _res = NULL;
9726 done:
9727 D(p->level--);
9728 return _res;
9729}
9730
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009731// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009732static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009733block_rule(Parser *p)
9734{
9735 D(p->level++);
9736 if (p->error_indicator) {
9737 D(p->level--);
9738 return NULL;
9739 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009740 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009741 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9742 D(p->level--);
9743 return _res;
9744 }
9745 int _mark = p->mark;
9746 { // NEWLINE INDENT statements DEDENT
9747 if (p->error_indicator) {
9748 D(p->level--);
9749 return NULL;
9750 }
9751 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 +01009752 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009753 Token * dedent_var;
9754 Token * indent_var;
9755 Token * newline_var;
9756 if (
9757 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9758 &&
9759 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9760 &&
9761 (a = statements_rule(p)) // statements
9762 &&
9763 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9764 )
9765 {
9766 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9767 _res = a;
9768 if (_res == NULL && PyErr_Occurred()) {
9769 p->error_indicator = 1;
9770 D(p->level--);
9771 return NULL;
9772 }
9773 goto done;
9774 }
9775 p->mark = _mark;
9776 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9778 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009779 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009780 if (p->error_indicator) {
9781 D(p->level--);
9782 return NULL;
9783 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009784 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9785 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009786 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009787 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009788 )
9789 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009790 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9791 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009792 goto done;
9793 }
9794 p->mark = _mark;
9795 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009797 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009798 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009799 if (p->error_indicator) {
9800 D(p->level--);
9801 return NULL;
9802 }
9803 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9804 void *invalid_block_var;
9805 if (
9806 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9807 )
9808 {
9809 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9810 _res = invalid_block_var;
9811 goto done;
9812 }
9813 p->mark = _mark;
9814 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9816 }
9817 _res = NULL;
9818 done:
9819 _PyPegen_insert_memo(p, _mark, block_type, _res);
9820 D(p->level--);
9821 return _res;
9822}
9823
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009824// star_expressions:
9825// | star_expression ((',' star_expression))+ ','?
9826// | star_expression ','
9827// | star_expression
9828static expr_ty
9829star_expressions_rule(Parser *p)
9830{
9831 D(p->level++);
9832 if (p->error_indicator) {
9833 D(p->level--);
9834 return NULL;
9835 }
9836 expr_ty _res = NULL;
9837 int _mark = p->mark;
9838 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9839 p->error_indicator = 1;
9840 D(p->level--);
9841 return NULL;
9842 }
9843 int _start_lineno = p->tokens[_mark]->lineno;
9844 UNUSED(_start_lineno); // Only used by EXTRA macro
9845 int _start_col_offset = p->tokens[_mark]->col_offset;
9846 UNUSED(_start_col_offset); // Only used by EXTRA macro
9847 { // star_expression ((',' star_expression))+ ','?
9848 if (p->error_indicator) {
9849 D(p->level--);
9850 return NULL;
9851 }
9852 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9853 void *_opt_var;
9854 UNUSED(_opt_var); // Silence compiler warnings
9855 expr_ty a;
9856 asdl_seq * b;
9857 if (
9858 (a = star_expression_rule(p)) // star_expression
9859 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009860 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009861 &&
9862 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9863 )
9864 {
9865 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9866 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9867 if (_token == NULL) {
9868 D(p->level--);
9869 return NULL;
9870 }
9871 int _end_lineno = _token->end_lineno;
9872 UNUSED(_end_lineno); // Only used by EXTRA macro
9873 int _end_col_offset = _token->end_col_offset;
9874 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009875 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009876 if (_res == NULL && PyErr_Occurred()) {
9877 p->error_indicator = 1;
9878 D(p->level--);
9879 return NULL;
9880 }
9881 goto done;
9882 }
9883 p->mark = _mark;
9884 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9886 }
9887 { // star_expression ','
9888 if (p->error_indicator) {
9889 D(p->level--);
9890 return NULL;
9891 }
9892 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9893 Token * _literal;
9894 expr_ty a;
9895 if (
9896 (a = star_expression_rule(p)) // star_expression
9897 &&
9898 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9899 )
9900 {
9901 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9902 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9903 if (_token == NULL) {
9904 D(p->level--);
9905 return NULL;
9906 }
9907 int _end_lineno = _token->end_lineno;
9908 UNUSED(_end_lineno); // Only used by EXTRA macro
9909 int _end_col_offset = _token->end_col_offset;
9910 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009911 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009912 if (_res == NULL && PyErr_Occurred()) {
9913 p->error_indicator = 1;
9914 D(p->level--);
9915 return NULL;
9916 }
9917 goto done;
9918 }
9919 p->mark = _mark;
9920 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9922 }
9923 { // star_expression
9924 if (p->error_indicator) {
9925 D(p->level--);
9926 return NULL;
9927 }
9928 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9929 expr_ty star_expression_var;
9930 if (
9931 (star_expression_var = star_expression_rule(p)) // star_expression
9932 )
9933 {
9934 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9935 _res = star_expression_var;
9936 goto done;
9937 }
9938 p->mark = _mark;
9939 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9941 }
9942 _res = NULL;
9943 done:
9944 D(p->level--);
9945 return _res;
9946}
9947
9948// star_expression: '*' bitwise_or | expression
9949static expr_ty
9950star_expression_rule(Parser *p)
9951{
9952 D(p->level++);
9953 if (p->error_indicator) {
9954 D(p->level--);
9955 return NULL;
9956 }
9957 expr_ty _res = NULL;
9958 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9959 D(p->level--);
9960 return _res;
9961 }
9962 int _mark = p->mark;
9963 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9964 p->error_indicator = 1;
9965 D(p->level--);
9966 return NULL;
9967 }
9968 int _start_lineno = p->tokens[_mark]->lineno;
9969 UNUSED(_start_lineno); // Only used by EXTRA macro
9970 int _start_col_offset = p->tokens[_mark]->col_offset;
9971 UNUSED(_start_col_offset); // Only used by EXTRA macro
9972 { // '*' bitwise_or
9973 if (p->error_indicator) {
9974 D(p->level--);
9975 return NULL;
9976 }
9977 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9978 Token * _literal;
9979 expr_ty a;
9980 if (
9981 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9982 &&
9983 (a = bitwise_or_rule(p)) // bitwise_or
9984 )
9985 {
9986 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9988 if (_token == NULL) {
9989 D(p->level--);
9990 return NULL;
9991 }
9992 int _end_lineno = _token->end_lineno;
9993 UNUSED(_end_lineno); // Only used by EXTRA macro
9994 int _end_col_offset = _token->end_col_offset;
9995 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009996 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009997 if (_res == NULL && PyErr_Occurred()) {
9998 p->error_indicator = 1;
9999 D(p->level--);
10000 return NULL;
10001 }
10002 goto done;
10003 }
10004 p->mark = _mark;
10005 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10007 }
10008 { // expression
10009 if (p->error_indicator) {
10010 D(p->level--);
10011 return NULL;
10012 }
10013 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10014 expr_ty expression_var;
10015 if (
10016 (expression_var = expression_rule(p)) // expression
10017 )
10018 {
10019 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10020 _res = expression_var;
10021 goto done;
10022 }
10023 p->mark = _mark;
10024 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10026 }
10027 _res = NULL;
10028 done:
10029 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10030 D(p->level--);
10031 return _res;
10032}
10033
10034// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010035static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010036star_named_expressions_rule(Parser *p)
10037{
10038 D(p->level++);
10039 if (p->error_indicator) {
10040 D(p->level--);
10041 return NULL;
10042 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010043 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010044 int _mark = p->mark;
10045 { // ','.star_named_expression+ ','?
10046 if (p->error_indicator) {
10047 D(p->level--);
10048 return NULL;
10049 }
10050 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10051 void *_opt_var;
10052 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010053 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010054 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010055 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010056 &&
10057 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10058 )
10059 {
10060 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10061 _res = a;
10062 if (_res == NULL && PyErr_Occurred()) {
10063 p->error_indicator = 1;
10064 D(p->level--);
10065 return NULL;
10066 }
10067 goto done;
10068 }
10069 p->mark = _mark;
10070 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10072 }
10073 _res = NULL;
10074 done:
10075 D(p->level--);
10076 return _res;
10077}
10078
10079// star_named_expression: '*' bitwise_or | named_expression
10080static expr_ty
10081star_named_expression_rule(Parser *p)
10082{
10083 D(p->level++);
10084 if (p->error_indicator) {
10085 D(p->level--);
10086 return NULL;
10087 }
10088 expr_ty _res = NULL;
10089 int _mark = p->mark;
10090 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10091 p->error_indicator = 1;
10092 D(p->level--);
10093 return NULL;
10094 }
10095 int _start_lineno = p->tokens[_mark]->lineno;
10096 UNUSED(_start_lineno); // Only used by EXTRA macro
10097 int _start_col_offset = p->tokens[_mark]->col_offset;
10098 UNUSED(_start_col_offset); // Only used by EXTRA macro
10099 { // '*' bitwise_or
10100 if (p->error_indicator) {
10101 D(p->level--);
10102 return NULL;
10103 }
10104 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10105 Token * _literal;
10106 expr_ty a;
10107 if (
10108 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10109 &&
10110 (a = bitwise_or_rule(p)) // bitwise_or
10111 )
10112 {
10113 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10115 if (_token == NULL) {
10116 D(p->level--);
10117 return NULL;
10118 }
10119 int _end_lineno = _token->end_lineno;
10120 UNUSED(_end_lineno); // Only used by EXTRA macro
10121 int _end_col_offset = _token->end_col_offset;
10122 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010123 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010124 if (_res == NULL && PyErr_Occurred()) {
10125 p->error_indicator = 1;
10126 D(p->level--);
10127 return NULL;
10128 }
10129 goto done;
10130 }
10131 p->mark = _mark;
10132 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10134 }
10135 { // named_expression
10136 if (p->error_indicator) {
10137 D(p->level--);
10138 return NULL;
10139 }
10140 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10141 expr_ty named_expression_var;
10142 if (
10143 (named_expression_var = named_expression_rule(p)) // named_expression
10144 )
10145 {
10146 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10147 _res = named_expression_var;
10148 goto done;
10149 }
10150 p->mark = _mark;
10151 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10153 }
10154 _res = NULL;
10155 done:
10156 D(p->level--);
10157 return _res;
10158}
10159
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010160// named_expression: NAME ':=' ~ expression | invalid_named_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010161static expr_ty
10162named_expression_rule(Parser *p)
10163{
10164 D(p->level++);
10165 if (p->error_indicator) {
10166 D(p->level--);
10167 return NULL;
10168 }
10169 expr_ty _res = NULL;
10170 int _mark = p->mark;
10171 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10172 p->error_indicator = 1;
10173 D(p->level--);
10174 return NULL;
10175 }
10176 int _start_lineno = p->tokens[_mark]->lineno;
10177 UNUSED(_start_lineno); // Only used by EXTRA macro
10178 int _start_col_offset = p->tokens[_mark]->col_offset;
10179 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010180 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010181 if (p->error_indicator) {
10182 D(p->level--);
10183 return NULL;
10184 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010185 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
10186 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010187 Token * _literal;
10188 expr_ty a;
10189 expr_ty b;
10190 if (
10191 (a = _PyPegen_name_token(p)) // NAME
10192 &&
10193 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10194 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010195 (_cut_var = 1)
10196 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010197 (b = expression_rule(p)) // expression
10198 )
10199 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010200 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010201 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10202 if (_token == NULL) {
10203 D(p->level--);
10204 return NULL;
10205 }
10206 int _end_lineno = _token->end_lineno;
10207 UNUSED(_end_lineno); // Only used by EXTRA macro
10208 int _end_col_offset = _token->end_col_offset;
10209 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010210 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010211 if (_res == NULL && PyErr_Occurred()) {
10212 p->error_indicator = 1;
10213 D(p->level--);
10214 return NULL;
10215 }
10216 goto done;
10217 }
10218 p->mark = _mark;
10219 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10221 if (_cut_var) {
10222 D(p->level--);
10223 return NULL;
10224 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010225 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010226 if (p->call_invalid_rules) { // invalid_named_expression
10227 if (p->error_indicator) {
10228 D(p->level--);
10229 return NULL;
10230 }
10231 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10232 void *invalid_named_expression_var;
10233 if (
10234 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10235 )
10236 {
10237 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10238 _res = invalid_named_expression_var;
10239 goto done;
10240 }
10241 p->mark = _mark;
10242 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10244 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010245 { // expression !':='
10246 if (p->error_indicator) {
10247 D(p->level--);
10248 return NULL;
10249 }
10250 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10251 expr_ty expression_var;
10252 if (
10253 (expression_var = expression_rule(p)) // expression
10254 &&
10255 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10256 )
10257 {
10258 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10259 _res = expression_var;
10260 goto done;
10261 }
10262 p->mark = _mark;
10263 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10265 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010266 _res = NULL;
10267 done:
10268 D(p->level--);
10269 return _res;
10270}
10271
Pablo Galindod9151cb2021-04-13 02:32:33 +010010272// direct_named_expression: NAME ':=' ~ expression | expression !':='
10273static expr_ty
10274direct_named_expression_rule(Parser *p)
10275{
10276 D(p->level++);
10277 if (p->error_indicator) {
10278 D(p->level--);
10279 return NULL;
10280 }
10281 expr_ty _res = NULL;
10282 int _mark = p->mark;
10283 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10284 p->error_indicator = 1;
10285 D(p->level--);
10286 return NULL;
10287 }
10288 int _start_lineno = p->tokens[_mark]->lineno;
10289 UNUSED(_start_lineno); // Only used by EXTRA macro
10290 int _start_col_offset = p->tokens[_mark]->col_offset;
10291 UNUSED(_start_col_offset); // Only used by EXTRA macro
10292 { // NAME ':=' ~ expression
10293 if (p->error_indicator) {
10294 D(p->level--);
10295 return NULL;
10296 }
10297 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
10298 int _cut_var = 0;
10299 Token * _literal;
10300 expr_ty a;
10301 expr_ty b;
10302 if (
10303 (a = _PyPegen_name_token(p)) // NAME
10304 &&
10305 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10306 &&
10307 (_cut_var = 1)
10308 &&
10309 (b = expression_rule(p)) // expression
10310 )
10311 {
10312 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
10313 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10314 if (_token == NULL) {
10315 D(p->level--);
10316 return NULL;
10317 }
10318 int _end_lineno = _token->end_lineno;
10319 UNUSED(_end_lineno); // Only used by EXTRA macro
10320 int _end_col_offset = _token->end_col_offset;
10321 UNUSED(_end_col_offset); // Only used by EXTRA macro
10322 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
10323 if (_res == NULL && PyErr_Occurred()) {
10324 p->error_indicator = 1;
10325 D(p->level--);
10326 return NULL;
10327 }
10328 goto done;
10329 }
10330 p->mark = _mark;
10331 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10333 if (_cut_var) {
10334 D(p->level--);
10335 return NULL;
10336 }
10337 }
10338 { // expression !':='
10339 if (p->error_indicator) {
10340 D(p->level--);
10341 return NULL;
10342 }
10343 D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10344 expr_ty expression_var;
10345 if (
10346 (expression_var = expression_rule(p)) // expression
10347 &&
10348 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10349 )
10350 {
10351 D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10352 _res = expression_var;
10353 goto done;
10354 }
10355 p->mark = _mark;
10356 D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10358 }
10359 _res = NULL;
10360 done:
10361 D(p->level--);
10362 return _res;
10363}
10364
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010365// annotated_rhs: yield_expr | star_expressions
10366static expr_ty
10367annotated_rhs_rule(Parser *p)
10368{
10369 D(p->level++);
10370 if (p->error_indicator) {
10371 D(p->level--);
10372 return NULL;
10373 }
10374 expr_ty _res = NULL;
10375 int _mark = p->mark;
10376 { // yield_expr
10377 if (p->error_indicator) {
10378 D(p->level--);
10379 return NULL;
10380 }
10381 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10382 expr_ty yield_expr_var;
10383 if (
10384 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10385 )
10386 {
10387 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10388 _res = yield_expr_var;
10389 goto done;
10390 }
10391 p->mark = _mark;
10392 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10394 }
10395 { // star_expressions
10396 if (p->error_indicator) {
10397 D(p->level--);
10398 return NULL;
10399 }
10400 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10401 expr_ty star_expressions_var;
10402 if (
10403 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10404 )
10405 {
10406 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10407 _res = star_expressions_var;
10408 goto done;
10409 }
10410 p->mark = _mark;
10411 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10413 }
10414 _res = NULL;
10415 done:
10416 D(p->level--);
10417 return _res;
10418}
10419
10420// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10421static expr_ty
10422expressions_rule(Parser *p)
10423{
10424 D(p->level++);
10425 if (p->error_indicator) {
10426 D(p->level--);
10427 return NULL;
10428 }
10429 expr_ty _res = NULL;
10430 int _mark = p->mark;
10431 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10432 p->error_indicator = 1;
10433 D(p->level--);
10434 return NULL;
10435 }
10436 int _start_lineno = p->tokens[_mark]->lineno;
10437 UNUSED(_start_lineno); // Only used by EXTRA macro
10438 int _start_col_offset = p->tokens[_mark]->col_offset;
10439 UNUSED(_start_col_offset); // Only used by EXTRA macro
10440 { // expression ((',' expression))+ ','?
10441 if (p->error_indicator) {
10442 D(p->level--);
10443 return NULL;
10444 }
10445 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10446 void *_opt_var;
10447 UNUSED(_opt_var); // Silence compiler warnings
10448 expr_ty a;
10449 asdl_seq * b;
10450 if (
10451 (a = expression_rule(p)) // expression
10452 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010453 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010454 &&
10455 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10456 )
10457 {
10458 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10459 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10460 if (_token == NULL) {
10461 D(p->level--);
10462 return NULL;
10463 }
10464 int _end_lineno = _token->end_lineno;
10465 UNUSED(_end_lineno); // Only used by EXTRA macro
10466 int _end_col_offset = _token->end_col_offset;
10467 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010468 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010469 if (_res == NULL && PyErr_Occurred()) {
10470 p->error_indicator = 1;
10471 D(p->level--);
10472 return NULL;
10473 }
10474 goto done;
10475 }
10476 p->mark = _mark;
10477 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10479 }
10480 { // expression ','
10481 if (p->error_indicator) {
10482 D(p->level--);
10483 return NULL;
10484 }
10485 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10486 Token * _literal;
10487 expr_ty a;
10488 if (
10489 (a = expression_rule(p)) // expression
10490 &&
10491 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10492 )
10493 {
10494 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10495 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10496 if (_token == NULL) {
10497 D(p->level--);
10498 return NULL;
10499 }
10500 int _end_lineno = _token->end_lineno;
10501 UNUSED(_end_lineno); // Only used by EXTRA macro
10502 int _end_col_offset = _token->end_col_offset;
10503 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010504 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010505 if (_res == NULL && PyErr_Occurred()) {
10506 p->error_indicator = 1;
10507 D(p->level--);
10508 return NULL;
10509 }
10510 goto done;
10511 }
10512 p->mark = _mark;
10513 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10515 }
10516 { // expression
10517 if (p->error_indicator) {
10518 D(p->level--);
10519 return NULL;
10520 }
10521 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10522 expr_ty expression_var;
10523 if (
10524 (expression_var = expression_rule(p)) // expression
10525 )
10526 {
10527 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10528 _res = expression_var;
10529 goto done;
10530 }
10531 p->mark = _mark;
10532 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10534 }
10535 _res = NULL;
10536 done:
10537 D(p->level--);
10538 return _res;
10539}
10540
Pablo Galindob2802482021-04-15 21:38:45 +010010541// expression:
10542// | invalid_expression
10543// | disjunction 'if' disjunction 'else' expression
10544// | disjunction
10545// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010546static expr_ty
10547expression_rule(Parser *p)
10548{
10549 D(p->level++);
10550 if (p->error_indicator) {
10551 D(p->level--);
10552 return NULL;
10553 }
10554 expr_ty _res = NULL;
10555 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10556 D(p->level--);
10557 return _res;
10558 }
10559 int _mark = p->mark;
10560 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10561 p->error_indicator = 1;
10562 D(p->level--);
10563 return NULL;
10564 }
10565 int _start_lineno = p->tokens[_mark]->lineno;
10566 UNUSED(_start_lineno); // Only used by EXTRA macro
10567 int _start_col_offset = p->tokens[_mark]->col_offset;
10568 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010569 if (p->call_invalid_rules) { // invalid_expression
10570 if (p->error_indicator) {
10571 D(p->level--);
10572 return NULL;
10573 }
10574 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10575 void *invalid_expression_var;
10576 if (
10577 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10578 )
10579 {
10580 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10581 _res = invalid_expression_var;
10582 goto done;
10583 }
10584 p->mark = _mark;
10585 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10587 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010588 { // disjunction 'if' disjunction 'else' expression
10589 if (p->error_indicator) {
10590 D(p->level--);
10591 return NULL;
10592 }
10593 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10594 Token * _keyword;
10595 Token * _keyword_1;
10596 expr_ty a;
10597 expr_ty b;
10598 expr_ty c;
10599 if (
10600 (a = disjunction_rule(p)) // disjunction
10601 &&
10602 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10603 &&
10604 (b = disjunction_rule(p)) // disjunction
10605 &&
10606 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10607 &&
10608 (c = expression_rule(p)) // expression
10609 )
10610 {
10611 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10612 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10613 if (_token == NULL) {
10614 D(p->level--);
10615 return NULL;
10616 }
10617 int _end_lineno = _token->end_lineno;
10618 UNUSED(_end_lineno); // Only used by EXTRA macro
10619 int _end_col_offset = _token->end_col_offset;
10620 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010621 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010622 if (_res == NULL && PyErr_Occurred()) {
10623 p->error_indicator = 1;
10624 D(p->level--);
10625 return NULL;
10626 }
10627 goto done;
10628 }
10629 p->mark = _mark;
10630 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10631 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10632 }
10633 { // disjunction
10634 if (p->error_indicator) {
10635 D(p->level--);
10636 return NULL;
10637 }
10638 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10639 expr_ty disjunction_var;
10640 if (
10641 (disjunction_var = disjunction_rule(p)) // disjunction
10642 )
10643 {
10644 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10645 _res = disjunction_var;
10646 goto done;
10647 }
10648 p->mark = _mark;
10649 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10651 }
10652 { // lambdef
10653 if (p->error_indicator) {
10654 D(p->level--);
10655 return NULL;
10656 }
10657 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10658 expr_ty lambdef_var;
10659 if (
10660 (lambdef_var = lambdef_rule(p)) // lambdef
10661 )
10662 {
10663 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10664 _res = lambdef_var;
10665 goto done;
10666 }
10667 p->mark = _mark;
10668 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10670 }
10671 _res = NULL;
10672 done:
10673 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10674 D(p->level--);
10675 return _res;
10676}
10677
10678// lambdef: 'lambda' lambda_params? ':' expression
10679static expr_ty
10680lambdef_rule(Parser *p)
10681{
10682 D(p->level++);
10683 if (p->error_indicator) {
10684 D(p->level--);
10685 return NULL;
10686 }
10687 expr_ty _res = NULL;
10688 int _mark = p->mark;
10689 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10690 p->error_indicator = 1;
10691 D(p->level--);
10692 return NULL;
10693 }
10694 int _start_lineno = p->tokens[_mark]->lineno;
10695 UNUSED(_start_lineno); // Only used by EXTRA macro
10696 int _start_col_offset = p->tokens[_mark]->col_offset;
10697 UNUSED(_start_col_offset); // Only used by EXTRA macro
10698 { // 'lambda' lambda_params? ':' expression
10699 if (p->error_indicator) {
10700 D(p->level--);
10701 return NULL;
10702 }
10703 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10704 Token * _keyword;
10705 Token * _literal;
10706 void *a;
10707 expr_ty b;
10708 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010709 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010710 &&
10711 (a = lambda_params_rule(p), 1) // lambda_params?
10712 &&
10713 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10714 &&
10715 (b = expression_rule(p)) // expression
10716 )
10717 {
10718 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10719 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10720 if (_token == NULL) {
10721 D(p->level--);
10722 return NULL;
10723 }
10724 int _end_lineno = _token->end_lineno;
10725 UNUSED(_end_lineno); // Only used by EXTRA macro
10726 int _end_col_offset = _token->end_col_offset;
10727 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010728 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010729 if (_res == NULL && PyErr_Occurred()) {
10730 p->error_indicator = 1;
10731 D(p->level--);
10732 return NULL;
10733 }
10734 goto done;
10735 }
10736 p->mark = _mark;
10737 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10739 }
10740 _res = NULL;
10741 done:
10742 D(p->level--);
10743 return _res;
10744}
10745
10746// lambda_params: invalid_lambda_parameters | lambda_parameters
10747static arguments_ty
10748lambda_params_rule(Parser *p)
10749{
10750 D(p->level++);
10751 if (p->error_indicator) {
10752 D(p->level--);
10753 return NULL;
10754 }
10755 arguments_ty _res = NULL;
10756 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010757 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010758 if (p->error_indicator) {
10759 D(p->level--);
10760 return NULL;
10761 }
10762 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10763 void *invalid_lambda_parameters_var;
10764 if (
10765 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10766 )
10767 {
10768 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10769 _res = invalid_lambda_parameters_var;
10770 goto done;
10771 }
10772 p->mark = _mark;
10773 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10775 }
10776 { // lambda_parameters
10777 if (p->error_indicator) {
10778 D(p->level--);
10779 return NULL;
10780 }
10781 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10782 arguments_ty lambda_parameters_var;
10783 if (
10784 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10785 )
10786 {
10787 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10788 _res = lambda_parameters_var;
10789 goto done;
10790 }
10791 p->mark = _mark;
10792 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10794 }
10795 _res = NULL;
10796 done:
10797 D(p->level--);
10798 return _res;
10799}
10800
10801// lambda_parameters:
10802// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10803// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10804// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10805// | lambda_param_with_default+ lambda_star_etc?
10806// | lambda_star_etc
10807static arguments_ty
10808lambda_parameters_rule(Parser *p)
10809{
10810 D(p->level++);
10811 if (p->error_indicator) {
10812 D(p->level--);
10813 return NULL;
10814 }
10815 arguments_ty _res = NULL;
10816 int _mark = p->mark;
10817 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10818 if (p->error_indicator) {
10819 D(p->level--);
10820 return NULL;
10821 }
10822 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 +010010823 asdl_arg_seq* a;
10824 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010825 asdl_seq * c;
10826 void *d;
10827 if (
10828 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10829 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010830 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010831 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010832 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010833 &&
10834 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10835 )
10836 {
10837 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?"));
10838 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10839 if (_res == NULL && PyErr_Occurred()) {
10840 p->error_indicator = 1;
10841 D(p->level--);
10842 return NULL;
10843 }
10844 goto done;
10845 }
10846 p->mark = _mark;
10847 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10848 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10849 }
10850 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10851 if (p->error_indicator) {
10852 D(p->level--);
10853 return NULL;
10854 }
10855 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?"));
10856 SlashWithDefault* a;
10857 asdl_seq * b;
10858 void *c;
10859 if (
10860 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10861 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010862 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010863 &&
10864 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10865 )
10866 {
10867 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?"));
10868 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10869 if (_res == NULL && PyErr_Occurred()) {
10870 p->error_indicator = 1;
10871 D(p->level--);
10872 return NULL;
10873 }
10874 goto done;
10875 }
10876 p->mark = _mark;
10877 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10879 }
10880 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10881 if (p->error_indicator) {
10882 D(p->level--);
10883 return NULL;
10884 }
10885 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 +010010886 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010887 asdl_seq * b;
10888 void *c;
10889 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010890 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010891 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010892 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010893 &&
10894 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10895 )
10896 {
10897 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?"));
10898 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10899 if (_res == NULL && PyErr_Occurred()) {
10900 p->error_indicator = 1;
10901 D(p->level--);
10902 return NULL;
10903 }
10904 goto done;
10905 }
10906 p->mark = _mark;
10907 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10909 }
10910 { // lambda_param_with_default+ lambda_star_etc?
10911 if (p->error_indicator) {
10912 D(p->level--);
10913 return NULL;
10914 }
10915 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10916 asdl_seq * a;
10917 void *b;
10918 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010919 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010920 &&
10921 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10922 )
10923 {
10924 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10925 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10926 if (_res == NULL && PyErr_Occurred()) {
10927 p->error_indicator = 1;
10928 D(p->level--);
10929 return NULL;
10930 }
10931 goto done;
10932 }
10933 p->mark = _mark;
10934 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10936 }
10937 { // lambda_star_etc
10938 if (p->error_indicator) {
10939 D(p->level--);
10940 return NULL;
10941 }
10942 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10943 StarEtc* a;
10944 if (
10945 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10946 )
10947 {
10948 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10949 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10950 if (_res == NULL && PyErr_Occurred()) {
10951 p->error_indicator = 1;
10952 D(p->level--);
10953 return NULL;
10954 }
10955 goto done;
10956 }
10957 p->mark = _mark;
10958 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10960 }
10961 _res = NULL;
10962 done:
10963 D(p->level--);
10964 return _res;
10965}
10966
10967// lambda_slash_no_default:
10968// | lambda_param_no_default+ '/' ','
10969// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010970static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010971lambda_slash_no_default_rule(Parser *p)
10972{
10973 D(p->level++);
10974 if (p->error_indicator) {
10975 D(p->level--);
10976 return NULL;
10977 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010978 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010979 int _mark = p->mark;
10980 { // lambda_param_no_default+ '/' ','
10981 if (p->error_indicator) {
10982 D(p->level--);
10983 return NULL;
10984 }
10985 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10986 Token * _literal;
10987 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010988 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010989 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010990 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010991 &&
10992 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10993 &&
10994 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10995 )
10996 {
10997 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10998 _res = a;
10999 if (_res == NULL && PyErr_Occurred()) {
11000 p->error_indicator = 1;
11001 D(p->level--);
11002 return NULL;
11003 }
11004 goto done;
11005 }
11006 p->mark = _mark;
11007 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
11009 }
11010 { // lambda_param_no_default+ '/' &':'
11011 if (p->error_indicator) {
11012 D(p->level--);
11013 return NULL;
11014 }
11015 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11016 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010011017 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011018 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011019 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011020 &&
11021 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11022 &&
11023 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11024 )
11025 {
11026 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11027 _res = a;
11028 if (_res == NULL && PyErr_Occurred()) {
11029 p->error_indicator = 1;
11030 D(p->level--);
11031 return NULL;
11032 }
11033 goto done;
11034 }
11035 p->mark = _mark;
11036 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11038 }
11039 _res = NULL;
11040 done:
11041 D(p->level--);
11042 return _res;
11043}
11044
11045// lambda_slash_with_default:
11046// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11047// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11048static SlashWithDefault*
11049lambda_slash_with_default_rule(Parser *p)
11050{
11051 D(p->level++);
11052 if (p->error_indicator) {
11053 D(p->level--);
11054 return NULL;
11055 }
11056 SlashWithDefault* _res = NULL;
11057 int _mark = p->mark;
11058 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11059 if (p->error_indicator) {
11060 D(p->level--);
11061 return NULL;
11062 }
11063 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+ '/' ','"));
11064 Token * _literal;
11065 Token * _literal_1;
11066 asdl_seq * a;
11067 asdl_seq * b;
11068 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011069 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011070 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011071 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011072 &&
11073 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11074 &&
11075 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11076 )
11077 {
11078 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 +010011079 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011080 if (_res == NULL && PyErr_Occurred()) {
11081 p->error_indicator = 1;
11082 D(p->level--);
11083 return NULL;
11084 }
11085 goto done;
11086 }
11087 p->mark = _mark;
11088 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11090 }
11091 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11092 if (p->error_indicator) {
11093 D(p->level--);
11094 return NULL;
11095 }
11096 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+ '/' &':'"));
11097 Token * _literal;
11098 asdl_seq * a;
11099 asdl_seq * b;
11100 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011101 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011102 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011103 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011104 &&
11105 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11106 &&
11107 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11108 )
11109 {
11110 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 +010011111 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011112 if (_res == NULL && PyErr_Occurred()) {
11113 p->error_indicator = 1;
11114 D(p->level--);
11115 return NULL;
11116 }
11117 goto done;
11118 }
11119 p->mark = _mark;
11120 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11122 }
11123 _res = NULL;
11124 done:
11125 D(p->level--);
11126 return _res;
11127}
11128
11129// lambda_star_etc:
11130// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11131// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11132// | lambda_kwds
11133// | invalid_lambda_star_etc
11134static StarEtc*
11135lambda_star_etc_rule(Parser *p)
11136{
11137 D(p->level++);
11138 if (p->error_indicator) {
11139 D(p->level--);
11140 return NULL;
11141 }
11142 StarEtc* _res = NULL;
11143 int _mark = p->mark;
11144 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11145 if (p->error_indicator) {
11146 D(p->level--);
11147 return NULL;
11148 }
11149 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?"));
11150 Token * _literal;
11151 arg_ty a;
11152 asdl_seq * b;
11153 void *c;
11154 if (
11155 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11156 &&
11157 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11158 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011159 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011160 &&
11161 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11162 )
11163 {
11164 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?"));
11165 _res = _PyPegen_star_etc ( p , a , b , c );
11166 if (_res == NULL && PyErr_Occurred()) {
11167 p->error_indicator = 1;
11168 D(p->level--);
11169 return NULL;
11170 }
11171 goto done;
11172 }
11173 p->mark = _mark;
11174 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11176 }
11177 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11178 if (p->error_indicator) {
11179 D(p->level--);
11180 return NULL;
11181 }
11182 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11183 Token * _literal;
11184 Token * _literal_1;
11185 asdl_seq * b;
11186 void *c;
11187 if (
11188 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11189 &&
11190 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11191 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011192 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011193 &&
11194 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11195 )
11196 {
11197 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11198 _res = _PyPegen_star_etc ( p , NULL , b , c );
11199 if (_res == NULL && PyErr_Occurred()) {
11200 p->error_indicator = 1;
11201 D(p->level--);
11202 return NULL;
11203 }
11204 goto done;
11205 }
11206 p->mark = _mark;
11207 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11209 }
11210 { // lambda_kwds
11211 if (p->error_indicator) {
11212 D(p->level--);
11213 return NULL;
11214 }
11215 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11216 arg_ty a;
11217 if (
11218 (a = lambda_kwds_rule(p)) // lambda_kwds
11219 )
11220 {
11221 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11222 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11223 if (_res == NULL && PyErr_Occurred()) {
11224 p->error_indicator = 1;
11225 D(p->level--);
11226 return NULL;
11227 }
11228 goto done;
11229 }
11230 p->mark = _mark;
11231 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11233 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011234 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011235 if (p->error_indicator) {
11236 D(p->level--);
11237 return NULL;
11238 }
11239 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11240 void *invalid_lambda_star_etc_var;
11241 if (
11242 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11243 )
11244 {
11245 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11246 _res = invalid_lambda_star_etc_var;
11247 goto done;
11248 }
11249 p->mark = _mark;
11250 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11252 }
11253 _res = NULL;
11254 done:
11255 D(p->level--);
11256 return _res;
11257}
11258
11259// lambda_kwds: '**' lambda_param_no_default
11260static arg_ty
11261lambda_kwds_rule(Parser *p)
11262{
11263 D(p->level++);
11264 if (p->error_indicator) {
11265 D(p->level--);
11266 return NULL;
11267 }
11268 arg_ty _res = NULL;
11269 int _mark = p->mark;
11270 { // '**' lambda_param_no_default
11271 if (p->error_indicator) {
11272 D(p->level--);
11273 return NULL;
11274 }
11275 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11276 Token * _literal;
11277 arg_ty a;
11278 if (
11279 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11280 &&
11281 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11282 )
11283 {
11284 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11285 _res = a;
11286 if (_res == NULL && PyErr_Occurred()) {
11287 p->error_indicator = 1;
11288 D(p->level--);
11289 return NULL;
11290 }
11291 goto done;
11292 }
11293 p->mark = _mark;
11294 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11296 }
11297 _res = NULL;
11298 done:
11299 D(p->level--);
11300 return _res;
11301}
11302
11303// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11304static arg_ty
11305lambda_param_no_default_rule(Parser *p)
11306{
11307 D(p->level++);
11308 if (p->error_indicator) {
11309 D(p->level--);
11310 return NULL;
11311 }
11312 arg_ty _res = NULL;
11313 int _mark = p->mark;
11314 { // lambda_param ','
11315 if (p->error_indicator) {
11316 D(p->level--);
11317 return NULL;
11318 }
11319 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11320 Token * _literal;
11321 arg_ty a;
11322 if (
11323 (a = lambda_param_rule(p)) // lambda_param
11324 &&
11325 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11326 )
11327 {
11328 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11329 _res = a;
11330 if (_res == NULL && PyErr_Occurred()) {
11331 p->error_indicator = 1;
11332 D(p->level--);
11333 return NULL;
11334 }
11335 goto done;
11336 }
11337 p->mark = _mark;
11338 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11340 }
11341 { // lambda_param &':'
11342 if (p->error_indicator) {
11343 D(p->level--);
11344 return NULL;
11345 }
11346 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11347 arg_ty a;
11348 if (
11349 (a = lambda_param_rule(p)) // lambda_param
11350 &&
11351 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11352 )
11353 {
11354 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11355 _res = a;
11356 if (_res == NULL && PyErr_Occurred()) {
11357 p->error_indicator = 1;
11358 D(p->level--);
11359 return NULL;
11360 }
11361 goto done;
11362 }
11363 p->mark = _mark;
11364 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11366 }
11367 _res = NULL;
11368 done:
11369 D(p->level--);
11370 return _res;
11371}
11372
11373// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11374static NameDefaultPair*
11375lambda_param_with_default_rule(Parser *p)
11376{
11377 D(p->level++);
11378 if (p->error_indicator) {
11379 D(p->level--);
11380 return NULL;
11381 }
11382 NameDefaultPair* _res = NULL;
11383 int _mark = p->mark;
11384 { // lambda_param default ','
11385 if (p->error_indicator) {
11386 D(p->level--);
11387 return NULL;
11388 }
11389 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11390 Token * _literal;
11391 arg_ty a;
11392 expr_ty c;
11393 if (
11394 (a = lambda_param_rule(p)) // lambda_param
11395 &&
11396 (c = default_rule(p)) // default
11397 &&
11398 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11399 )
11400 {
11401 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11402 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11403 if (_res == NULL && PyErr_Occurred()) {
11404 p->error_indicator = 1;
11405 D(p->level--);
11406 return NULL;
11407 }
11408 goto done;
11409 }
11410 p->mark = _mark;
11411 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11413 }
11414 { // lambda_param default &':'
11415 if (p->error_indicator) {
11416 D(p->level--);
11417 return NULL;
11418 }
11419 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11420 arg_ty a;
11421 expr_ty c;
11422 if (
11423 (a = lambda_param_rule(p)) // lambda_param
11424 &&
11425 (c = default_rule(p)) // default
11426 &&
11427 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11428 )
11429 {
11430 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11431 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11432 if (_res == NULL && PyErr_Occurred()) {
11433 p->error_indicator = 1;
11434 D(p->level--);
11435 return NULL;
11436 }
11437 goto done;
11438 }
11439 p->mark = _mark;
11440 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11442 }
11443 _res = NULL;
11444 done:
11445 D(p->level--);
11446 return _res;
11447}
11448
11449// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11450static NameDefaultPair*
11451lambda_param_maybe_default_rule(Parser *p)
11452{
11453 D(p->level++);
11454 if (p->error_indicator) {
11455 D(p->level--);
11456 return NULL;
11457 }
11458 NameDefaultPair* _res = NULL;
11459 int _mark = p->mark;
11460 { // lambda_param default? ','
11461 if (p->error_indicator) {
11462 D(p->level--);
11463 return NULL;
11464 }
11465 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11466 Token * _literal;
11467 arg_ty a;
11468 void *c;
11469 if (
11470 (a = lambda_param_rule(p)) // lambda_param
11471 &&
11472 (c = default_rule(p), 1) // default?
11473 &&
11474 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11475 )
11476 {
11477 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11478 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11479 if (_res == NULL && PyErr_Occurred()) {
11480 p->error_indicator = 1;
11481 D(p->level--);
11482 return NULL;
11483 }
11484 goto done;
11485 }
11486 p->mark = _mark;
11487 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11488 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11489 }
11490 { // lambda_param default? &':'
11491 if (p->error_indicator) {
11492 D(p->level--);
11493 return NULL;
11494 }
11495 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11496 arg_ty a;
11497 void *c;
11498 if (
11499 (a = lambda_param_rule(p)) // lambda_param
11500 &&
11501 (c = default_rule(p), 1) // default?
11502 &&
11503 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11504 )
11505 {
11506 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11507 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11508 if (_res == NULL && PyErr_Occurred()) {
11509 p->error_indicator = 1;
11510 D(p->level--);
11511 return NULL;
11512 }
11513 goto done;
11514 }
11515 p->mark = _mark;
11516 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11518 }
11519 _res = NULL;
11520 done:
11521 D(p->level--);
11522 return _res;
11523}
11524
11525// lambda_param: NAME
11526static arg_ty
11527lambda_param_rule(Parser *p)
11528{
11529 D(p->level++);
11530 if (p->error_indicator) {
11531 D(p->level--);
11532 return NULL;
11533 }
11534 arg_ty _res = NULL;
11535 int _mark = p->mark;
11536 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11537 p->error_indicator = 1;
11538 D(p->level--);
11539 return NULL;
11540 }
11541 int _start_lineno = p->tokens[_mark]->lineno;
11542 UNUSED(_start_lineno); // Only used by EXTRA macro
11543 int _start_col_offset = p->tokens[_mark]->col_offset;
11544 UNUSED(_start_col_offset); // Only used by EXTRA macro
11545 { // NAME
11546 if (p->error_indicator) {
11547 D(p->level--);
11548 return NULL;
11549 }
11550 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11551 expr_ty a;
11552 if (
11553 (a = _PyPegen_name_token(p)) // NAME
11554 )
11555 {
11556 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11557 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11558 if (_token == NULL) {
11559 D(p->level--);
11560 return NULL;
11561 }
11562 int _end_lineno = _token->end_lineno;
11563 UNUSED(_end_lineno); // Only used by EXTRA macro
11564 int _end_col_offset = _token->end_col_offset;
11565 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011566 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011567 if (_res == NULL && PyErr_Occurred()) {
11568 p->error_indicator = 1;
11569 D(p->level--);
11570 return NULL;
11571 }
11572 goto done;
11573 }
11574 p->mark = _mark;
11575 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11577 }
11578 _res = NULL;
11579 done:
11580 D(p->level--);
11581 return _res;
11582}
11583
11584// disjunction: conjunction (('or' conjunction))+ | conjunction
11585static expr_ty
11586disjunction_rule(Parser *p)
11587{
11588 D(p->level++);
11589 if (p->error_indicator) {
11590 D(p->level--);
11591 return NULL;
11592 }
11593 expr_ty _res = NULL;
11594 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11595 D(p->level--);
11596 return _res;
11597 }
11598 int _mark = p->mark;
11599 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11600 p->error_indicator = 1;
11601 D(p->level--);
11602 return NULL;
11603 }
11604 int _start_lineno = p->tokens[_mark]->lineno;
11605 UNUSED(_start_lineno); // Only used by EXTRA macro
11606 int _start_col_offset = p->tokens[_mark]->col_offset;
11607 UNUSED(_start_col_offset); // Only used by EXTRA macro
11608 { // conjunction (('or' conjunction))+
11609 if (p->error_indicator) {
11610 D(p->level--);
11611 return NULL;
11612 }
11613 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11614 expr_ty a;
11615 asdl_seq * b;
11616 if (
11617 (a = conjunction_rule(p)) // conjunction
11618 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011619 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011620 )
11621 {
11622 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11623 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11624 if (_token == NULL) {
11625 D(p->level--);
11626 return NULL;
11627 }
11628 int _end_lineno = _token->end_lineno;
11629 UNUSED(_end_lineno); // Only used by EXTRA macro
11630 int _end_col_offset = _token->end_col_offset;
11631 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011632 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011633 if (_res == NULL && PyErr_Occurred()) {
11634 p->error_indicator = 1;
11635 D(p->level--);
11636 return NULL;
11637 }
11638 goto done;
11639 }
11640 p->mark = _mark;
11641 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11642 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11643 }
11644 { // conjunction
11645 if (p->error_indicator) {
11646 D(p->level--);
11647 return NULL;
11648 }
11649 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11650 expr_ty conjunction_var;
11651 if (
11652 (conjunction_var = conjunction_rule(p)) // conjunction
11653 )
11654 {
11655 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11656 _res = conjunction_var;
11657 goto done;
11658 }
11659 p->mark = _mark;
11660 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11662 }
11663 _res = NULL;
11664 done:
11665 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11666 D(p->level--);
11667 return _res;
11668}
11669
11670// conjunction: inversion (('and' inversion))+ | inversion
11671static expr_ty
11672conjunction_rule(Parser *p)
11673{
11674 D(p->level++);
11675 if (p->error_indicator) {
11676 D(p->level--);
11677 return NULL;
11678 }
11679 expr_ty _res = NULL;
11680 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11681 D(p->level--);
11682 return _res;
11683 }
11684 int _mark = p->mark;
11685 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11686 p->error_indicator = 1;
11687 D(p->level--);
11688 return NULL;
11689 }
11690 int _start_lineno = p->tokens[_mark]->lineno;
11691 UNUSED(_start_lineno); // Only used by EXTRA macro
11692 int _start_col_offset = p->tokens[_mark]->col_offset;
11693 UNUSED(_start_col_offset); // Only used by EXTRA macro
11694 { // inversion (('and' inversion))+
11695 if (p->error_indicator) {
11696 D(p->level--);
11697 return NULL;
11698 }
11699 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11700 expr_ty a;
11701 asdl_seq * b;
11702 if (
11703 (a = inversion_rule(p)) // inversion
11704 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011705 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011706 )
11707 {
11708 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11709 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11710 if (_token == NULL) {
11711 D(p->level--);
11712 return NULL;
11713 }
11714 int _end_lineno = _token->end_lineno;
11715 UNUSED(_end_lineno); // Only used by EXTRA macro
11716 int _end_col_offset = _token->end_col_offset;
11717 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011718 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011719 if (_res == NULL && PyErr_Occurred()) {
11720 p->error_indicator = 1;
11721 D(p->level--);
11722 return NULL;
11723 }
11724 goto done;
11725 }
11726 p->mark = _mark;
11727 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11729 }
11730 { // inversion
11731 if (p->error_indicator) {
11732 D(p->level--);
11733 return NULL;
11734 }
11735 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11736 expr_ty inversion_var;
11737 if (
11738 (inversion_var = inversion_rule(p)) // inversion
11739 )
11740 {
11741 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11742 _res = inversion_var;
11743 goto done;
11744 }
11745 p->mark = _mark;
11746 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11747 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11748 }
11749 _res = NULL;
11750 done:
11751 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11752 D(p->level--);
11753 return _res;
11754}
11755
11756// inversion: 'not' inversion | comparison
11757static expr_ty
11758inversion_rule(Parser *p)
11759{
11760 D(p->level++);
11761 if (p->error_indicator) {
11762 D(p->level--);
11763 return NULL;
11764 }
11765 expr_ty _res = NULL;
11766 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11767 D(p->level--);
11768 return _res;
11769 }
11770 int _mark = p->mark;
11771 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11772 p->error_indicator = 1;
11773 D(p->level--);
11774 return NULL;
11775 }
11776 int _start_lineno = p->tokens[_mark]->lineno;
11777 UNUSED(_start_lineno); // Only used by EXTRA macro
11778 int _start_col_offset = p->tokens[_mark]->col_offset;
11779 UNUSED(_start_col_offset); // Only used by EXTRA macro
11780 { // 'not' inversion
11781 if (p->error_indicator) {
11782 D(p->level--);
11783 return NULL;
11784 }
11785 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11786 Token * _keyword;
11787 expr_ty a;
11788 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011789 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011790 &&
11791 (a = inversion_rule(p)) // inversion
11792 )
11793 {
11794 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11795 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11796 if (_token == NULL) {
11797 D(p->level--);
11798 return NULL;
11799 }
11800 int _end_lineno = _token->end_lineno;
11801 UNUSED(_end_lineno); // Only used by EXTRA macro
11802 int _end_col_offset = _token->end_col_offset;
11803 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011804 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011805 if (_res == NULL && PyErr_Occurred()) {
11806 p->error_indicator = 1;
11807 D(p->level--);
11808 return NULL;
11809 }
11810 goto done;
11811 }
11812 p->mark = _mark;
11813 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11815 }
11816 { // comparison
11817 if (p->error_indicator) {
11818 D(p->level--);
11819 return NULL;
11820 }
11821 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11822 expr_ty comparison_var;
11823 if (
11824 (comparison_var = comparison_rule(p)) // comparison
11825 )
11826 {
11827 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11828 _res = comparison_var;
11829 goto done;
11830 }
11831 p->mark = _mark;
11832 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11834 }
11835 _res = NULL;
11836 done:
11837 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11838 D(p->level--);
11839 return _res;
11840}
11841
11842// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11843static expr_ty
11844comparison_rule(Parser *p)
11845{
11846 D(p->level++);
11847 if (p->error_indicator) {
11848 D(p->level--);
11849 return NULL;
11850 }
11851 expr_ty _res = NULL;
11852 int _mark = p->mark;
11853 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11854 p->error_indicator = 1;
11855 D(p->level--);
11856 return NULL;
11857 }
11858 int _start_lineno = p->tokens[_mark]->lineno;
11859 UNUSED(_start_lineno); // Only used by EXTRA macro
11860 int _start_col_offset = p->tokens[_mark]->col_offset;
11861 UNUSED(_start_col_offset); // Only used by EXTRA macro
11862 { // bitwise_or compare_op_bitwise_or_pair+
11863 if (p->error_indicator) {
11864 D(p->level--);
11865 return NULL;
11866 }
11867 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11868 expr_ty a;
11869 asdl_seq * b;
11870 if (
11871 (a = bitwise_or_rule(p)) // bitwise_or
11872 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011873 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011874 )
11875 {
11876 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11877 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11878 if (_token == NULL) {
11879 D(p->level--);
11880 return NULL;
11881 }
11882 int _end_lineno = _token->end_lineno;
11883 UNUSED(_end_lineno); // Only used by EXTRA macro
11884 int _end_col_offset = _token->end_col_offset;
11885 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011886 _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 +010011887 if (_res == NULL && PyErr_Occurred()) {
11888 p->error_indicator = 1;
11889 D(p->level--);
11890 return NULL;
11891 }
11892 goto done;
11893 }
11894 p->mark = _mark;
11895 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11897 }
11898 { // bitwise_or
11899 if (p->error_indicator) {
11900 D(p->level--);
11901 return NULL;
11902 }
11903 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11904 expr_ty bitwise_or_var;
11905 if (
11906 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11907 )
11908 {
11909 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11910 _res = bitwise_or_var;
11911 goto done;
11912 }
11913 p->mark = _mark;
11914 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11916 }
11917 _res = NULL;
11918 done:
11919 D(p->level--);
11920 return _res;
11921}
11922
11923// compare_op_bitwise_or_pair:
11924// | eq_bitwise_or
11925// | noteq_bitwise_or
11926// | lte_bitwise_or
11927// | lt_bitwise_or
11928// | gte_bitwise_or
11929// | gt_bitwise_or
11930// | notin_bitwise_or
11931// | in_bitwise_or
11932// | isnot_bitwise_or
11933// | is_bitwise_or
11934static CmpopExprPair*
11935compare_op_bitwise_or_pair_rule(Parser *p)
11936{
11937 D(p->level++);
11938 if (p->error_indicator) {
11939 D(p->level--);
11940 return NULL;
11941 }
11942 CmpopExprPair* _res = NULL;
11943 int _mark = p->mark;
11944 { // eq_bitwise_or
11945 if (p->error_indicator) {
11946 D(p->level--);
11947 return NULL;
11948 }
11949 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11950 CmpopExprPair* eq_bitwise_or_var;
11951 if (
11952 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11953 )
11954 {
11955 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11956 _res = eq_bitwise_or_var;
11957 goto done;
11958 }
11959 p->mark = _mark;
11960 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11962 }
11963 { // noteq_bitwise_or
11964 if (p->error_indicator) {
11965 D(p->level--);
11966 return NULL;
11967 }
11968 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11969 CmpopExprPair* noteq_bitwise_or_var;
11970 if (
11971 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11972 )
11973 {
11974 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11975 _res = noteq_bitwise_or_var;
11976 goto done;
11977 }
11978 p->mark = _mark;
11979 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11981 }
11982 { // lte_bitwise_or
11983 if (p->error_indicator) {
11984 D(p->level--);
11985 return NULL;
11986 }
11987 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11988 CmpopExprPair* lte_bitwise_or_var;
11989 if (
11990 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11991 )
11992 {
11993 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11994 _res = lte_bitwise_or_var;
11995 goto done;
11996 }
11997 p->mark = _mark;
11998 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
12000 }
12001 { // lt_bitwise_or
12002 if (p->error_indicator) {
12003 D(p->level--);
12004 return NULL;
12005 }
12006 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12007 CmpopExprPair* lt_bitwise_or_var;
12008 if (
12009 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
12010 )
12011 {
12012 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
12013 _res = lt_bitwise_or_var;
12014 goto done;
12015 }
12016 p->mark = _mark;
12017 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
12019 }
12020 { // gte_bitwise_or
12021 if (p->error_indicator) {
12022 D(p->level--);
12023 return NULL;
12024 }
12025 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12026 CmpopExprPair* gte_bitwise_or_var;
12027 if (
12028 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
12029 )
12030 {
12031 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
12032 _res = gte_bitwise_or_var;
12033 goto done;
12034 }
12035 p->mark = _mark;
12036 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
12038 }
12039 { // gt_bitwise_or
12040 if (p->error_indicator) {
12041 D(p->level--);
12042 return NULL;
12043 }
12044 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12045 CmpopExprPair* gt_bitwise_or_var;
12046 if (
12047 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12048 )
12049 {
12050 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12051 _res = gt_bitwise_or_var;
12052 goto done;
12053 }
12054 p->mark = _mark;
12055 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12057 }
12058 { // notin_bitwise_or
12059 if (p->error_indicator) {
12060 D(p->level--);
12061 return NULL;
12062 }
12063 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12064 CmpopExprPair* notin_bitwise_or_var;
12065 if (
12066 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12067 )
12068 {
12069 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12070 _res = notin_bitwise_or_var;
12071 goto done;
12072 }
12073 p->mark = _mark;
12074 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12076 }
12077 { // in_bitwise_or
12078 if (p->error_indicator) {
12079 D(p->level--);
12080 return NULL;
12081 }
12082 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12083 CmpopExprPair* in_bitwise_or_var;
12084 if (
12085 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12086 )
12087 {
12088 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12089 _res = in_bitwise_or_var;
12090 goto done;
12091 }
12092 p->mark = _mark;
12093 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12095 }
12096 { // isnot_bitwise_or
12097 if (p->error_indicator) {
12098 D(p->level--);
12099 return NULL;
12100 }
12101 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12102 CmpopExprPair* isnot_bitwise_or_var;
12103 if (
12104 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12105 )
12106 {
12107 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12108 _res = isnot_bitwise_or_var;
12109 goto done;
12110 }
12111 p->mark = _mark;
12112 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12114 }
12115 { // is_bitwise_or
12116 if (p->error_indicator) {
12117 D(p->level--);
12118 return NULL;
12119 }
12120 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12121 CmpopExprPair* is_bitwise_or_var;
12122 if (
12123 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12124 )
12125 {
12126 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12127 _res = is_bitwise_or_var;
12128 goto done;
12129 }
12130 p->mark = _mark;
12131 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12132 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12133 }
12134 _res = NULL;
12135 done:
12136 D(p->level--);
12137 return _res;
12138}
12139
12140// eq_bitwise_or: '==' bitwise_or
12141static CmpopExprPair*
12142eq_bitwise_or_rule(Parser *p)
12143{
12144 D(p->level++);
12145 if (p->error_indicator) {
12146 D(p->level--);
12147 return NULL;
12148 }
12149 CmpopExprPair* _res = NULL;
12150 int _mark = p->mark;
12151 { // '==' bitwise_or
12152 if (p->error_indicator) {
12153 D(p->level--);
12154 return NULL;
12155 }
12156 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12157 Token * _literal;
12158 expr_ty a;
12159 if (
12160 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12161 &&
12162 (a = bitwise_or_rule(p)) // bitwise_or
12163 )
12164 {
12165 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12166 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12167 if (_res == NULL && PyErr_Occurred()) {
12168 p->error_indicator = 1;
12169 D(p->level--);
12170 return NULL;
12171 }
12172 goto done;
12173 }
12174 p->mark = _mark;
12175 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12177 }
12178 _res = NULL;
12179 done:
12180 D(p->level--);
12181 return _res;
12182}
12183
12184// noteq_bitwise_or: ('!=') bitwise_or
12185static CmpopExprPair*
12186noteq_bitwise_or_rule(Parser *p)
12187{
12188 D(p->level++);
12189 if (p->error_indicator) {
12190 D(p->level--);
12191 return NULL;
12192 }
12193 CmpopExprPair* _res = NULL;
12194 int _mark = p->mark;
12195 { // ('!=') bitwise_or
12196 if (p->error_indicator) {
12197 D(p->level--);
12198 return NULL;
12199 }
12200 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 -080012201 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012202 expr_ty a;
12203 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012204 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012205 &&
12206 (a = bitwise_or_rule(p)) // bitwise_or
12207 )
12208 {
12209 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12210 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12211 if (_res == NULL && PyErr_Occurred()) {
12212 p->error_indicator = 1;
12213 D(p->level--);
12214 return NULL;
12215 }
12216 goto done;
12217 }
12218 p->mark = _mark;
12219 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12221 }
12222 _res = NULL;
12223 done:
12224 D(p->level--);
12225 return _res;
12226}
12227
12228// lte_bitwise_or: '<=' bitwise_or
12229static CmpopExprPair*
12230lte_bitwise_or_rule(Parser *p)
12231{
12232 D(p->level++);
12233 if (p->error_indicator) {
12234 D(p->level--);
12235 return NULL;
12236 }
12237 CmpopExprPair* _res = NULL;
12238 int _mark = p->mark;
12239 { // '<=' bitwise_or
12240 if (p->error_indicator) {
12241 D(p->level--);
12242 return NULL;
12243 }
12244 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12245 Token * _literal;
12246 expr_ty a;
12247 if (
12248 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12249 &&
12250 (a = bitwise_or_rule(p)) // bitwise_or
12251 )
12252 {
12253 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12254 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12255 if (_res == NULL && PyErr_Occurred()) {
12256 p->error_indicator = 1;
12257 D(p->level--);
12258 return NULL;
12259 }
12260 goto done;
12261 }
12262 p->mark = _mark;
12263 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12265 }
12266 _res = NULL;
12267 done:
12268 D(p->level--);
12269 return _res;
12270}
12271
12272// lt_bitwise_or: '<' bitwise_or
12273static CmpopExprPair*
12274lt_bitwise_or_rule(Parser *p)
12275{
12276 D(p->level++);
12277 if (p->error_indicator) {
12278 D(p->level--);
12279 return NULL;
12280 }
12281 CmpopExprPair* _res = NULL;
12282 int _mark = p->mark;
12283 { // '<' bitwise_or
12284 if (p->error_indicator) {
12285 D(p->level--);
12286 return NULL;
12287 }
12288 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12289 Token * _literal;
12290 expr_ty a;
12291 if (
12292 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12293 &&
12294 (a = bitwise_or_rule(p)) // bitwise_or
12295 )
12296 {
12297 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12298 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12299 if (_res == NULL && PyErr_Occurred()) {
12300 p->error_indicator = 1;
12301 D(p->level--);
12302 return NULL;
12303 }
12304 goto done;
12305 }
12306 p->mark = _mark;
12307 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12309 }
12310 _res = NULL;
12311 done:
12312 D(p->level--);
12313 return _res;
12314}
12315
12316// gte_bitwise_or: '>=' bitwise_or
12317static CmpopExprPair*
12318gte_bitwise_or_rule(Parser *p)
12319{
12320 D(p->level++);
12321 if (p->error_indicator) {
12322 D(p->level--);
12323 return NULL;
12324 }
12325 CmpopExprPair* _res = NULL;
12326 int _mark = p->mark;
12327 { // '>=' bitwise_or
12328 if (p->error_indicator) {
12329 D(p->level--);
12330 return NULL;
12331 }
12332 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12333 Token * _literal;
12334 expr_ty a;
12335 if (
12336 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12337 &&
12338 (a = bitwise_or_rule(p)) // bitwise_or
12339 )
12340 {
12341 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12342 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12343 if (_res == NULL && PyErr_Occurred()) {
12344 p->error_indicator = 1;
12345 D(p->level--);
12346 return NULL;
12347 }
12348 goto done;
12349 }
12350 p->mark = _mark;
12351 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12353 }
12354 _res = NULL;
12355 done:
12356 D(p->level--);
12357 return _res;
12358}
12359
12360// gt_bitwise_or: '>' bitwise_or
12361static CmpopExprPair*
12362gt_bitwise_or_rule(Parser *p)
12363{
12364 D(p->level++);
12365 if (p->error_indicator) {
12366 D(p->level--);
12367 return NULL;
12368 }
12369 CmpopExprPair* _res = NULL;
12370 int _mark = p->mark;
12371 { // '>' bitwise_or
12372 if (p->error_indicator) {
12373 D(p->level--);
12374 return NULL;
12375 }
12376 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12377 Token * _literal;
12378 expr_ty a;
12379 if (
12380 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12381 &&
12382 (a = bitwise_or_rule(p)) // bitwise_or
12383 )
12384 {
12385 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12386 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12387 if (_res == NULL && PyErr_Occurred()) {
12388 p->error_indicator = 1;
12389 D(p->level--);
12390 return NULL;
12391 }
12392 goto done;
12393 }
12394 p->mark = _mark;
12395 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12397 }
12398 _res = NULL;
12399 done:
12400 D(p->level--);
12401 return _res;
12402}
12403
12404// notin_bitwise_or: 'not' 'in' bitwise_or
12405static CmpopExprPair*
12406notin_bitwise_or_rule(Parser *p)
12407{
12408 D(p->level++);
12409 if (p->error_indicator) {
12410 D(p->level--);
12411 return NULL;
12412 }
12413 CmpopExprPair* _res = NULL;
12414 int _mark = p->mark;
12415 { // 'not' 'in' bitwise_or
12416 if (p->error_indicator) {
12417 D(p->level--);
12418 return NULL;
12419 }
12420 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12421 Token * _keyword;
12422 Token * _keyword_1;
12423 expr_ty a;
12424 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012425 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012426 &&
12427 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12428 &&
12429 (a = bitwise_or_rule(p)) // bitwise_or
12430 )
12431 {
12432 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12433 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12434 if (_res == NULL && PyErr_Occurred()) {
12435 p->error_indicator = 1;
12436 D(p->level--);
12437 return NULL;
12438 }
12439 goto done;
12440 }
12441 p->mark = _mark;
12442 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12444 }
12445 _res = NULL;
12446 done:
12447 D(p->level--);
12448 return _res;
12449}
12450
12451// in_bitwise_or: 'in' bitwise_or
12452static CmpopExprPair*
12453in_bitwise_or_rule(Parser *p)
12454{
12455 D(p->level++);
12456 if (p->error_indicator) {
12457 D(p->level--);
12458 return NULL;
12459 }
12460 CmpopExprPair* _res = NULL;
12461 int _mark = p->mark;
12462 { // 'in' bitwise_or
12463 if (p->error_indicator) {
12464 D(p->level--);
12465 return NULL;
12466 }
12467 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12468 Token * _keyword;
12469 expr_ty a;
12470 if (
12471 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12472 &&
12473 (a = bitwise_or_rule(p)) // bitwise_or
12474 )
12475 {
12476 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12477 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12478 if (_res == NULL && PyErr_Occurred()) {
12479 p->error_indicator = 1;
12480 D(p->level--);
12481 return NULL;
12482 }
12483 goto done;
12484 }
12485 p->mark = _mark;
12486 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12488 }
12489 _res = NULL;
12490 done:
12491 D(p->level--);
12492 return _res;
12493}
12494
12495// isnot_bitwise_or: 'is' 'not' bitwise_or
12496static CmpopExprPair*
12497isnot_bitwise_or_rule(Parser *p)
12498{
12499 D(p->level++);
12500 if (p->error_indicator) {
12501 D(p->level--);
12502 return NULL;
12503 }
12504 CmpopExprPair* _res = NULL;
12505 int _mark = p->mark;
12506 { // 'is' 'not' bitwise_or
12507 if (p->error_indicator) {
12508 D(p->level--);
12509 return NULL;
12510 }
12511 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12512 Token * _keyword;
12513 Token * _keyword_1;
12514 expr_ty a;
12515 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012516 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012517 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012518 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012519 &&
12520 (a = bitwise_or_rule(p)) // bitwise_or
12521 )
12522 {
12523 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12524 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12525 if (_res == NULL && PyErr_Occurred()) {
12526 p->error_indicator = 1;
12527 D(p->level--);
12528 return NULL;
12529 }
12530 goto done;
12531 }
12532 p->mark = _mark;
12533 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12535 }
12536 _res = NULL;
12537 done:
12538 D(p->level--);
12539 return _res;
12540}
12541
12542// is_bitwise_or: 'is' bitwise_or
12543static CmpopExprPair*
12544is_bitwise_or_rule(Parser *p)
12545{
12546 D(p->level++);
12547 if (p->error_indicator) {
12548 D(p->level--);
12549 return NULL;
12550 }
12551 CmpopExprPair* _res = NULL;
12552 int _mark = p->mark;
12553 { // 'is' bitwise_or
12554 if (p->error_indicator) {
12555 D(p->level--);
12556 return NULL;
12557 }
12558 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12559 Token * _keyword;
12560 expr_ty a;
12561 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012562 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012563 &&
12564 (a = bitwise_or_rule(p)) // bitwise_or
12565 )
12566 {
12567 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12568 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12569 if (_res == NULL && PyErr_Occurred()) {
12570 p->error_indicator = 1;
12571 D(p->level--);
12572 return NULL;
12573 }
12574 goto done;
12575 }
12576 p->mark = _mark;
12577 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12579 }
12580 _res = NULL;
12581 done:
12582 D(p->level--);
12583 return _res;
12584}
12585
12586// Left-recursive
12587// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12588static expr_ty bitwise_or_raw(Parser *);
12589static expr_ty
12590bitwise_or_rule(Parser *p)
12591{
12592 D(p->level++);
12593 expr_ty _res = NULL;
12594 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12595 D(p->level--);
12596 return _res;
12597 }
12598 int _mark = p->mark;
12599 int _resmark = p->mark;
12600 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012601 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12602 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012603 D(p->level--);
12604 return _res;
12605 }
12606 p->mark = _mark;
12607 void *_raw = bitwise_or_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012608 if (p->error_indicator)
12609 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012610 if (_raw == NULL || p->mark <= _resmark)
12611 break;
12612 _resmark = p->mark;
12613 _res = _raw;
12614 }
12615 p->mark = _resmark;
12616 D(p->level--);
12617 return _res;
12618}
12619static expr_ty
12620bitwise_or_raw(Parser *p)
12621{
12622 D(p->level++);
12623 if (p->error_indicator) {
12624 D(p->level--);
12625 return NULL;
12626 }
12627 expr_ty _res = NULL;
12628 int _mark = p->mark;
12629 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12630 p->error_indicator = 1;
12631 D(p->level--);
12632 return NULL;
12633 }
12634 int _start_lineno = p->tokens[_mark]->lineno;
12635 UNUSED(_start_lineno); // Only used by EXTRA macro
12636 int _start_col_offset = p->tokens[_mark]->col_offset;
12637 UNUSED(_start_col_offset); // Only used by EXTRA macro
12638 { // bitwise_or '|' bitwise_xor
12639 if (p->error_indicator) {
12640 D(p->level--);
12641 return NULL;
12642 }
12643 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12644 Token * _literal;
12645 expr_ty a;
12646 expr_ty b;
12647 if (
12648 (a = bitwise_or_rule(p)) // bitwise_or
12649 &&
12650 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12651 &&
12652 (b = bitwise_xor_rule(p)) // bitwise_xor
12653 )
12654 {
12655 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12656 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12657 if (_token == NULL) {
12658 D(p->level--);
12659 return NULL;
12660 }
12661 int _end_lineno = _token->end_lineno;
12662 UNUSED(_end_lineno); // Only used by EXTRA macro
12663 int _end_col_offset = _token->end_col_offset;
12664 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012665 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012666 if (_res == NULL && PyErr_Occurred()) {
12667 p->error_indicator = 1;
12668 D(p->level--);
12669 return NULL;
12670 }
12671 goto done;
12672 }
12673 p->mark = _mark;
12674 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12676 }
12677 { // bitwise_xor
12678 if (p->error_indicator) {
12679 D(p->level--);
12680 return NULL;
12681 }
12682 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12683 expr_ty bitwise_xor_var;
12684 if (
12685 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12686 )
12687 {
12688 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12689 _res = bitwise_xor_var;
12690 goto done;
12691 }
12692 p->mark = _mark;
12693 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12695 }
12696 _res = NULL;
12697 done:
12698 D(p->level--);
12699 return _res;
12700}
12701
12702// Left-recursive
12703// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12704static expr_ty bitwise_xor_raw(Parser *);
12705static expr_ty
12706bitwise_xor_rule(Parser *p)
12707{
12708 D(p->level++);
12709 expr_ty _res = NULL;
12710 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12711 D(p->level--);
12712 return _res;
12713 }
12714 int _mark = p->mark;
12715 int _resmark = p->mark;
12716 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012717 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12718 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012719 D(p->level--);
12720 return _res;
12721 }
12722 p->mark = _mark;
12723 void *_raw = bitwise_xor_raw(p);
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;
12839 void *_raw = bitwise_and_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012840 if (p->error_indicator)
12841 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012842 if (_raw == NULL || p->mark <= _resmark)
12843 break;
12844 _resmark = p->mark;
12845 _res = _raw;
12846 }
12847 p->mark = _resmark;
12848 D(p->level--);
12849 return _res;
12850}
12851static expr_ty
12852bitwise_and_raw(Parser *p)
12853{
12854 D(p->level++);
12855 if (p->error_indicator) {
12856 D(p->level--);
12857 return NULL;
12858 }
12859 expr_ty _res = NULL;
12860 int _mark = p->mark;
12861 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12862 p->error_indicator = 1;
12863 D(p->level--);
12864 return NULL;
12865 }
12866 int _start_lineno = p->tokens[_mark]->lineno;
12867 UNUSED(_start_lineno); // Only used by EXTRA macro
12868 int _start_col_offset = p->tokens[_mark]->col_offset;
12869 UNUSED(_start_col_offset); // Only used by EXTRA macro
12870 { // bitwise_and '&' shift_expr
12871 if (p->error_indicator) {
12872 D(p->level--);
12873 return NULL;
12874 }
12875 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12876 Token * _literal;
12877 expr_ty a;
12878 expr_ty b;
12879 if (
12880 (a = bitwise_and_rule(p)) // bitwise_and
12881 &&
12882 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12883 &&
12884 (b = shift_expr_rule(p)) // shift_expr
12885 )
12886 {
12887 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12889 if (_token == NULL) {
12890 D(p->level--);
12891 return NULL;
12892 }
12893 int _end_lineno = _token->end_lineno;
12894 UNUSED(_end_lineno); // Only used by EXTRA macro
12895 int _end_col_offset = _token->end_col_offset;
12896 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012897 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012898 if (_res == NULL && PyErr_Occurred()) {
12899 p->error_indicator = 1;
12900 D(p->level--);
12901 return NULL;
12902 }
12903 goto done;
12904 }
12905 p->mark = _mark;
12906 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12908 }
12909 { // shift_expr
12910 if (p->error_indicator) {
12911 D(p->level--);
12912 return NULL;
12913 }
12914 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12915 expr_ty shift_expr_var;
12916 if (
12917 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12918 )
12919 {
12920 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12921 _res = shift_expr_var;
12922 goto done;
12923 }
12924 p->mark = _mark;
12925 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12927 }
12928 _res = NULL;
12929 done:
12930 D(p->level--);
12931 return _res;
12932}
12933
12934// Left-recursive
12935// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12936static expr_ty shift_expr_raw(Parser *);
12937static expr_ty
12938shift_expr_rule(Parser *p)
12939{
12940 D(p->level++);
12941 expr_ty _res = NULL;
12942 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12943 D(p->level--);
12944 return _res;
12945 }
12946 int _mark = p->mark;
12947 int _resmark = p->mark;
12948 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012949 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12950 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012951 D(p->level--);
12952 return _res;
12953 }
12954 p->mark = _mark;
12955 void *_raw = shift_expr_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012956 if (p->error_indicator)
12957 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012958 if (_raw == NULL || p->mark <= _resmark)
12959 break;
12960 _resmark = p->mark;
12961 _res = _raw;
12962 }
12963 p->mark = _resmark;
12964 D(p->level--);
12965 return _res;
12966}
12967static expr_ty
12968shift_expr_raw(Parser *p)
12969{
12970 D(p->level++);
12971 if (p->error_indicator) {
12972 D(p->level--);
12973 return NULL;
12974 }
12975 expr_ty _res = NULL;
12976 int _mark = p->mark;
12977 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12978 p->error_indicator = 1;
12979 D(p->level--);
12980 return NULL;
12981 }
12982 int _start_lineno = p->tokens[_mark]->lineno;
12983 UNUSED(_start_lineno); // Only used by EXTRA macro
12984 int _start_col_offset = p->tokens[_mark]->col_offset;
12985 UNUSED(_start_col_offset); // Only used by EXTRA macro
12986 { // shift_expr '<<' sum
12987 if (p->error_indicator) {
12988 D(p->level--);
12989 return NULL;
12990 }
12991 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12992 Token * _literal;
12993 expr_ty a;
12994 expr_ty b;
12995 if (
12996 (a = shift_expr_rule(p)) // shift_expr
12997 &&
12998 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12999 &&
13000 (b = sum_rule(p)) // sum
13001 )
13002 {
13003 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
13004 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13005 if (_token == NULL) {
13006 D(p->level--);
13007 return NULL;
13008 }
13009 int _end_lineno = _token->end_lineno;
13010 UNUSED(_end_lineno); // Only used by EXTRA macro
13011 int _end_col_offset = _token->end_col_offset;
13012 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013013 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013014 if (_res == NULL && PyErr_Occurred()) {
13015 p->error_indicator = 1;
13016 D(p->level--);
13017 return NULL;
13018 }
13019 goto done;
13020 }
13021 p->mark = _mark;
13022 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
13024 }
13025 { // shift_expr '>>' sum
13026 if (p->error_indicator) {
13027 D(p->level--);
13028 return NULL;
13029 }
13030 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13031 Token * _literal;
13032 expr_ty a;
13033 expr_ty b;
13034 if (
13035 (a = shift_expr_rule(p)) // shift_expr
13036 &&
13037 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13038 &&
13039 (b = sum_rule(p)) // sum
13040 )
13041 {
13042 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13044 if (_token == NULL) {
13045 D(p->level--);
13046 return NULL;
13047 }
13048 int _end_lineno = _token->end_lineno;
13049 UNUSED(_end_lineno); // Only used by EXTRA macro
13050 int _end_col_offset = _token->end_col_offset;
13051 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013052 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013053 if (_res == NULL && PyErr_Occurred()) {
13054 p->error_indicator = 1;
13055 D(p->level--);
13056 return NULL;
13057 }
13058 goto done;
13059 }
13060 p->mark = _mark;
13061 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13063 }
13064 { // sum
13065 if (p->error_indicator) {
13066 D(p->level--);
13067 return NULL;
13068 }
13069 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13070 expr_ty sum_var;
13071 if (
13072 (sum_var = sum_rule(p)) // sum
13073 )
13074 {
13075 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13076 _res = sum_var;
13077 goto done;
13078 }
13079 p->mark = _mark;
13080 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13082 }
13083 _res = NULL;
13084 done:
13085 D(p->level--);
13086 return _res;
13087}
13088
13089// Left-recursive
13090// sum: sum '+' term | sum '-' term | term
13091static expr_ty sum_raw(Parser *);
13092static expr_ty
13093sum_rule(Parser *p)
13094{
13095 D(p->level++);
13096 expr_ty _res = NULL;
13097 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13098 D(p->level--);
13099 return _res;
13100 }
13101 int _mark = p->mark;
13102 int _resmark = p->mark;
13103 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013104 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13105 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013106 D(p->level--);
13107 return _res;
13108 }
13109 p->mark = _mark;
13110 void *_raw = sum_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013111 if (p->error_indicator)
13112 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013113 if (_raw == NULL || p->mark <= _resmark)
13114 break;
13115 _resmark = p->mark;
13116 _res = _raw;
13117 }
13118 p->mark = _resmark;
13119 D(p->level--);
13120 return _res;
13121}
13122static expr_ty
13123sum_raw(Parser *p)
13124{
13125 D(p->level++);
13126 if (p->error_indicator) {
13127 D(p->level--);
13128 return NULL;
13129 }
13130 expr_ty _res = NULL;
13131 int _mark = p->mark;
13132 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13133 p->error_indicator = 1;
13134 D(p->level--);
13135 return NULL;
13136 }
13137 int _start_lineno = p->tokens[_mark]->lineno;
13138 UNUSED(_start_lineno); // Only used by EXTRA macro
13139 int _start_col_offset = p->tokens[_mark]->col_offset;
13140 UNUSED(_start_col_offset); // Only used by EXTRA macro
13141 { // sum '+' term
13142 if (p->error_indicator) {
13143 D(p->level--);
13144 return NULL;
13145 }
13146 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13147 Token * _literal;
13148 expr_ty a;
13149 expr_ty b;
13150 if (
13151 (a = sum_rule(p)) // sum
13152 &&
13153 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13154 &&
13155 (b = term_rule(p)) // term
13156 )
13157 {
13158 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13159 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13160 if (_token == NULL) {
13161 D(p->level--);
13162 return NULL;
13163 }
13164 int _end_lineno = _token->end_lineno;
13165 UNUSED(_end_lineno); // Only used by EXTRA macro
13166 int _end_col_offset = _token->end_col_offset;
13167 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013168 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013169 if (_res == NULL && PyErr_Occurred()) {
13170 p->error_indicator = 1;
13171 D(p->level--);
13172 return NULL;
13173 }
13174 goto done;
13175 }
13176 p->mark = _mark;
13177 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13179 }
13180 { // sum '-' term
13181 if (p->error_indicator) {
13182 D(p->level--);
13183 return NULL;
13184 }
13185 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13186 Token * _literal;
13187 expr_ty a;
13188 expr_ty b;
13189 if (
13190 (a = sum_rule(p)) // sum
13191 &&
13192 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13193 &&
13194 (b = term_rule(p)) // term
13195 )
13196 {
13197 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13198 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13199 if (_token == NULL) {
13200 D(p->level--);
13201 return NULL;
13202 }
13203 int _end_lineno = _token->end_lineno;
13204 UNUSED(_end_lineno); // Only used by EXTRA macro
13205 int _end_col_offset = _token->end_col_offset;
13206 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013207 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013208 if (_res == NULL && PyErr_Occurred()) {
13209 p->error_indicator = 1;
13210 D(p->level--);
13211 return NULL;
13212 }
13213 goto done;
13214 }
13215 p->mark = _mark;
13216 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13218 }
13219 { // term
13220 if (p->error_indicator) {
13221 D(p->level--);
13222 return NULL;
13223 }
13224 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13225 expr_ty term_var;
13226 if (
13227 (term_var = term_rule(p)) // term
13228 )
13229 {
13230 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13231 _res = term_var;
13232 goto done;
13233 }
13234 p->mark = _mark;
13235 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13237 }
13238 _res = NULL;
13239 done:
13240 D(p->level--);
13241 return _res;
13242}
13243
13244// Left-recursive
13245// term:
13246// | term '*' factor
13247// | term '/' factor
13248// | term '//' factor
13249// | term '%' factor
13250// | term '@' factor
13251// | factor
13252static expr_ty term_raw(Parser *);
13253static expr_ty
13254term_rule(Parser *p)
13255{
13256 D(p->level++);
13257 expr_ty _res = NULL;
13258 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13259 D(p->level--);
13260 return _res;
13261 }
13262 int _mark = p->mark;
13263 int _resmark = p->mark;
13264 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013265 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13266 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013267 D(p->level--);
13268 return _res;
13269 }
13270 p->mark = _mark;
13271 void *_raw = term_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013272 if (p->error_indicator)
13273 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013274 if (_raw == NULL || p->mark <= _resmark)
13275 break;
13276 _resmark = p->mark;
13277 _res = _raw;
13278 }
13279 p->mark = _resmark;
13280 D(p->level--);
13281 return _res;
13282}
13283static expr_ty
13284term_raw(Parser *p)
13285{
13286 D(p->level++);
13287 if (p->error_indicator) {
13288 D(p->level--);
13289 return NULL;
13290 }
13291 expr_ty _res = NULL;
13292 int _mark = p->mark;
13293 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13294 p->error_indicator = 1;
13295 D(p->level--);
13296 return NULL;
13297 }
13298 int _start_lineno = p->tokens[_mark]->lineno;
13299 UNUSED(_start_lineno); // Only used by EXTRA macro
13300 int _start_col_offset = p->tokens[_mark]->col_offset;
13301 UNUSED(_start_col_offset); // Only used by EXTRA macro
13302 { // term '*' factor
13303 if (p->error_indicator) {
13304 D(p->level--);
13305 return NULL;
13306 }
13307 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13308 Token * _literal;
13309 expr_ty a;
13310 expr_ty b;
13311 if (
13312 (a = term_rule(p)) // term
13313 &&
13314 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13315 &&
13316 (b = factor_rule(p)) // factor
13317 )
13318 {
13319 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13320 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13321 if (_token == NULL) {
13322 D(p->level--);
13323 return NULL;
13324 }
13325 int _end_lineno = _token->end_lineno;
13326 UNUSED(_end_lineno); // Only used by EXTRA macro
13327 int _end_col_offset = _token->end_col_offset;
13328 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013329 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013330 if (_res == NULL && PyErr_Occurred()) {
13331 p->error_indicator = 1;
13332 D(p->level--);
13333 return NULL;
13334 }
13335 goto done;
13336 }
13337 p->mark = _mark;
13338 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13340 }
13341 { // term '/' factor
13342 if (p->error_indicator) {
13343 D(p->level--);
13344 return NULL;
13345 }
13346 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13347 Token * _literal;
13348 expr_ty a;
13349 expr_ty b;
13350 if (
13351 (a = term_rule(p)) // term
13352 &&
13353 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13354 &&
13355 (b = factor_rule(p)) // factor
13356 )
13357 {
13358 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13359 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13360 if (_token == NULL) {
13361 D(p->level--);
13362 return NULL;
13363 }
13364 int _end_lineno = _token->end_lineno;
13365 UNUSED(_end_lineno); // Only used by EXTRA macro
13366 int _end_col_offset = _token->end_col_offset;
13367 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013368 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013369 if (_res == NULL && PyErr_Occurred()) {
13370 p->error_indicator = 1;
13371 D(p->level--);
13372 return NULL;
13373 }
13374 goto done;
13375 }
13376 p->mark = _mark;
13377 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13379 }
13380 { // term '//' factor
13381 if (p->error_indicator) {
13382 D(p->level--);
13383 return NULL;
13384 }
13385 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13386 Token * _literal;
13387 expr_ty a;
13388 expr_ty b;
13389 if (
13390 (a = term_rule(p)) // term
13391 &&
13392 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13393 &&
13394 (b = factor_rule(p)) // factor
13395 )
13396 {
13397 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13398 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13399 if (_token == NULL) {
13400 D(p->level--);
13401 return NULL;
13402 }
13403 int _end_lineno = _token->end_lineno;
13404 UNUSED(_end_lineno); // Only used by EXTRA macro
13405 int _end_col_offset = _token->end_col_offset;
13406 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013407 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013408 if (_res == NULL && PyErr_Occurred()) {
13409 p->error_indicator = 1;
13410 D(p->level--);
13411 return NULL;
13412 }
13413 goto done;
13414 }
13415 p->mark = _mark;
13416 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13418 }
13419 { // term '%' factor
13420 if (p->error_indicator) {
13421 D(p->level--);
13422 return NULL;
13423 }
13424 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13425 Token * _literal;
13426 expr_ty a;
13427 expr_ty b;
13428 if (
13429 (a = term_rule(p)) // term
13430 &&
13431 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13432 &&
13433 (b = factor_rule(p)) // factor
13434 )
13435 {
13436 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13437 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13438 if (_token == NULL) {
13439 D(p->level--);
13440 return NULL;
13441 }
13442 int _end_lineno = _token->end_lineno;
13443 UNUSED(_end_lineno); // Only used by EXTRA macro
13444 int _end_col_offset = _token->end_col_offset;
13445 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013446 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013447 if (_res == NULL && PyErr_Occurred()) {
13448 p->error_indicator = 1;
13449 D(p->level--);
13450 return NULL;
13451 }
13452 goto done;
13453 }
13454 p->mark = _mark;
13455 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13457 }
13458 { // term '@' factor
13459 if (p->error_indicator) {
13460 D(p->level--);
13461 return NULL;
13462 }
13463 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13464 Token * _literal;
13465 expr_ty a;
13466 expr_ty b;
13467 if (
13468 (a = term_rule(p)) // term
13469 &&
13470 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13471 &&
13472 (b = factor_rule(p)) // factor
13473 )
13474 {
13475 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13476 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13477 if (_token == NULL) {
13478 D(p->level--);
13479 return NULL;
13480 }
13481 int _end_lineno = _token->end_lineno;
13482 UNUSED(_end_lineno); // Only used by EXTRA macro
13483 int _end_col_offset = _token->end_col_offset;
13484 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013485 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013486 if (_res == NULL && PyErr_Occurred()) {
13487 p->error_indicator = 1;
13488 D(p->level--);
13489 return NULL;
13490 }
13491 goto done;
13492 }
13493 p->mark = _mark;
13494 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13496 }
13497 { // factor
13498 if (p->error_indicator) {
13499 D(p->level--);
13500 return NULL;
13501 }
13502 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13503 expr_ty factor_var;
13504 if (
13505 (factor_var = factor_rule(p)) // factor
13506 )
13507 {
13508 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13509 _res = factor_var;
13510 goto done;
13511 }
13512 p->mark = _mark;
13513 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13514 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13515 }
13516 _res = NULL;
13517 done:
13518 D(p->level--);
13519 return _res;
13520}
13521
13522// factor: '+' factor | '-' factor | '~' factor | power
13523static expr_ty
13524factor_rule(Parser *p)
13525{
13526 D(p->level++);
13527 if (p->error_indicator) {
13528 D(p->level--);
13529 return NULL;
13530 }
13531 expr_ty _res = NULL;
13532 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13533 D(p->level--);
13534 return _res;
13535 }
13536 int _mark = p->mark;
13537 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13538 p->error_indicator = 1;
13539 D(p->level--);
13540 return NULL;
13541 }
13542 int _start_lineno = p->tokens[_mark]->lineno;
13543 UNUSED(_start_lineno); // Only used by EXTRA macro
13544 int _start_col_offset = p->tokens[_mark]->col_offset;
13545 UNUSED(_start_col_offset); // Only used by EXTRA macro
13546 { // '+' factor
13547 if (p->error_indicator) {
13548 D(p->level--);
13549 return NULL;
13550 }
13551 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13552 Token * _literal;
13553 expr_ty a;
13554 if (
13555 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13556 &&
13557 (a = factor_rule(p)) // factor
13558 )
13559 {
13560 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13561 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13562 if (_token == NULL) {
13563 D(p->level--);
13564 return NULL;
13565 }
13566 int _end_lineno = _token->end_lineno;
13567 UNUSED(_end_lineno); // Only used by EXTRA macro
13568 int _end_col_offset = _token->end_col_offset;
13569 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013570 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013571 if (_res == NULL && PyErr_Occurred()) {
13572 p->error_indicator = 1;
13573 D(p->level--);
13574 return NULL;
13575 }
13576 goto done;
13577 }
13578 p->mark = _mark;
13579 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13580 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13581 }
13582 { // '-' factor
13583 if (p->error_indicator) {
13584 D(p->level--);
13585 return NULL;
13586 }
13587 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13588 Token * _literal;
13589 expr_ty a;
13590 if (
13591 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13592 &&
13593 (a = factor_rule(p)) // factor
13594 )
13595 {
13596 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13597 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13598 if (_token == NULL) {
13599 D(p->level--);
13600 return NULL;
13601 }
13602 int _end_lineno = _token->end_lineno;
13603 UNUSED(_end_lineno); // Only used by EXTRA macro
13604 int _end_col_offset = _token->end_col_offset;
13605 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013606 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013607 if (_res == NULL && PyErr_Occurred()) {
13608 p->error_indicator = 1;
13609 D(p->level--);
13610 return NULL;
13611 }
13612 goto done;
13613 }
13614 p->mark = _mark;
13615 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13617 }
13618 { // '~' factor
13619 if (p->error_indicator) {
13620 D(p->level--);
13621 return NULL;
13622 }
13623 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13624 Token * _literal;
13625 expr_ty a;
13626 if (
13627 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13628 &&
13629 (a = factor_rule(p)) // factor
13630 )
13631 {
13632 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13633 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13634 if (_token == NULL) {
13635 D(p->level--);
13636 return NULL;
13637 }
13638 int _end_lineno = _token->end_lineno;
13639 UNUSED(_end_lineno); // Only used by EXTRA macro
13640 int _end_col_offset = _token->end_col_offset;
13641 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013642 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013643 if (_res == NULL && PyErr_Occurred()) {
13644 p->error_indicator = 1;
13645 D(p->level--);
13646 return NULL;
13647 }
13648 goto done;
13649 }
13650 p->mark = _mark;
13651 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13653 }
13654 { // power
13655 if (p->error_indicator) {
13656 D(p->level--);
13657 return NULL;
13658 }
13659 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13660 expr_ty power_var;
13661 if (
13662 (power_var = power_rule(p)) // power
13663 )
13664 {
13665 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13666 _res = power_var;
13667 goto done;
13668 }
13669 p->mark = _mark;
13670 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13672 }
13673 _res = NULL;
13674 done:
13675 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13676 D(p->level--);
13677 return _res;
13678}
13679
13680// power: await_primary '**' factor | await_primary
13681static expr_ty
13682power_rule(Parser *p)
13683{
13684 D(p->level++);
13685 if (p->error_indicator) {
13686 D(p->level--);
13687 return NULL;
13688 }
13689 expr_ty _res = NULL;
13690 int _mark = p->mark;
13691 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13692 p->error_indicator = 1;
13693 D(p->level--);
13694 return NULL;
13695 }
13696 int _start_lineno = p->tokens[_mark]->lineno;
13697 UNUSED(_start_lineno); // Only used by EXTRA macro
13698 int _start_col_offset = p->tokens[_mark]->col_offset;
13699 UNUSED(_start_col_offset); // Only used by EXTRA macro
13700 { // await_primary '**' factor
13701 if (p->error_indicator) {
13702 D(p->level--);
13703 return NULL;
13704 }
13705 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13706 Token * _literal;
13707 expr_ty a;
13708 expr_ty b;
13709 if (
13710 (a = await_primary_rule(p)) // await_primary
13711 &&
13712 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13713 &&
13714 (b = factor_rule(p)) // factor
13715 )
13716 {
13717 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13718 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13719 if (_token == NULL) {
13720 D(p->level--);
13721 return NULL;
13722 }
13723 int _end_lineno = _token->end_lineno;
13724 UNUSED(_end_lineno); // Only used by EXTRA macro
13725 int _end_col_offset = _token->end_col_offset;
13726 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013727 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013728 if (_res == NULL && PyErr_Occurred()) {
13729 p->error_indicator = 1;
13730 D(p->level--);
13731 return NULL;
13732 }
13733 goto done;
13734 }
13735 p->mark = _mark;
13736 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13738 }
13739 { // await_primary
13740 if (p->error_indicator) {
13741 D(p->level--);
13742 return NULL;
13743 }
13744 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13745 expr_ty await_primary_var;
13746 if (
13747 (await_primary_var = await_primary_rule(p)) // await_primary
13748 )
13749 {
13750 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13751 _res = await_primary_var;
13752 goto done;
13753 }
13754 p->mark = _mark;
13755 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13757 }
13758 _res = NULL;
13759 done:
13760 D(p->level--);
13761 return _res;
13762}
13763
13764// await_primary: AWAIT primary | primary
13765static expr_ty
13766await_primary_rule(Parser *p)
13767{
13768 D(p->level++);
13769 if (p->error_indicator) {
13770 D(p->level--);
13771 return NULL;
13772 }
13773 expr_ty _res = NULL;
13774 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13775 D(p->level--);
13776 return _res;
13777 }
13778 int _mark = p->mark;
13779 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13780 p->error_indicator = 1;
13781 D(p->level--);
13782 return NULL;
13783 }
13784 int _start_lineno = p->tokens[_mark]->lineno;
13785 UNUSED(_start_lineno); // Only used by EXTRA macro
13786 int _start_col_offset = p->tokens[_mark]->col_offset;
13787 UNUSED(_start_col_offset); // Only used by EXTRA macro
13788 { // AWAIT primary
13789 if (p->error_indicator) {
13790 D(p->level--);
13791 return NULL;
13792 }
13793 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13794 expr_ty a;
13795 Token * await_var;
13796 if (
13797 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13798 &&
13799 (a = primary_rule(p)) // primary
13800 )
13801 {
13802 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13803 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13804 if (_token == NULL) {
13805 D(p->level--);
13806 return NULL;
13807 }
13808 int _end_lineno = _token->end_lineno;
13809 UNUSED(_end_lineno); // Only used by EXTRA macro
13810 int _end_col_offset = _token->end_col_offset;
13811 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013812 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013813 if (_res == NULL && PyErr_Occurred()) {
13814 p->error_indicator = 1;
13815 D(p->level--);
13816 return NULL;
13817 }
13818 goto done;
13819 }
13820 p->mark = _mark;
13821 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13823 }
13824 { // primary
13825 if (p->error_indicator) {
13826 D(p->level--);
13827 return NULL;
13828 }
13829 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13830 expr_ty primary_var;
13831 if (
13832 (primary_var = primary_rule(p)) // primary
13833 )
13834 {
13835 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13836 _res = primary_var;
13837 goto done;
13838 }
13839 p->mark = _mark;
13840 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13842 }
13843 _res = NULL;
13844 done:
13845 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13846 D(p->level--);
13847 return _res;
13848}
13849
13850// Left-recursive
13851// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013852// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013853// | primary '.' NAME
13854// | primary genexp
13855// | primary '(' arguments? ')'
13856// | primary '[' slices ']'
13857// | atom
13858static expr_ty primary_raw(Parser *);
13859static expr_ty
13860primary_rule(Parser *p)
13861{
13862 D(p->level++);
13863 expr_ty _res = NULL;
13864 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13865 D(p->level--);
13866 return _res;
13867 }
13868 int _mark = p->mark;
13869 int _resmark = p->mark;
13870 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013871 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13872 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013873 D(p->level--);
13874 return _res;
13875 }
13876 p->mark = _mark;
13877 void *_raw = primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013878 if (p->error_indicator)
13879 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013880 if (_raw == NULL || p->mark <= _resmark)
13881 break;
13882 _resmark = p->mark;
13883 _res = _raw;
13884 }
13885 p->mark = _resmark;
13886 D(p->level--);
13887 return _res;
13888}
13889static expr_ty
13890primary_raw(Parser *p)
13891{
13892 D(p->level++);
13893 if (p->error_indicator) {
13894 D(p->level--);
13895 return NULL;
13896 }
13897 expr_ty _res = NULL;
13898 int _mark = p->mark;
13899 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13900 p->error_indicator = 1;
13901 D(p->level--);
13902 return NULL;
13903 }
13904 int _start_lineno = p->tokens[_mark]->lineno;
13905 UNUSED(_start_lineno); // Only used by EXTRA macro
13906 int _start_col_offset = p->tokens[_mark]->col_offset;
13907 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013908 if (p->call_invalid_rules) { // invalid_primary
13909 if (p->error_indicator) {
13910 D(p->level--);
13911 return NULL;
13912 }
13913 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13914 void *invalid_primary_var;
13915 if (
13916 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13917 )
13918 {
13919 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13920 _res = invalid_primary_var;
13921 goto done;
13922 }
13923 p->mark = _mark;
13924 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13926 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013927 { // primary '.' NAME
13928 if (p->error_indicator) {
13929 D(p->level--);
13930 return NULL;
13931 }
13932 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13933 Token * _literal;
13934 expr_ty a;
13935 expr_ty b;
13936 if (
13937 (a = primary_rule(p)) // primary
13938 &&
13939 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13940 &&
13941 (b = _PyPegen_name_token(p)) // NAME
13942 )
13943 {
13944 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13946 if (_token == NULL) {
13947 D(p->level--);
13948 return NULL;
13949 }
13950 int _end_lineno = _token->end_lineno;
13951 UNUSED(_end_lineno); // Only used by EXTRA macro
13952 int _end_col_offset = _token->end_col_offset;
13953 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013954 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013955 if (_res == NULL && PyErr_Occurred()) {
13956 p->error_indicator = 1;
13957 D(p->level--);
13958 return NULL;
13959 }
13960 goto done;
13961 }
13962 p->mark = _mark;
13963 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13965 }
13966 { // primary genexp
13967 if (p->error_indicator) {
13968 D(p->level--);
13969 return NULL;
13970 }
13971 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13972 expr_ty a;
13973 expr_ty b;
13974 if (
13975 (a = primary_rule(p)) // primary
13976 &&
13977 (b = genexp_rule(p)) // genexp
13978 )
13979 {
13980 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13981 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13982 if (_token == NULL) {
13983 D(p->level--);
13984 return NULL;
13985 }
13986 int _end_lineno = _token->end_lineno;
13987 UNUSED(_end_lineno); // Only used by EXTRA macro
13988 int _end_col_offset = _token->end_col_offset;
13989 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013990 _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 +010013991 if (_res == NULL && PyErr_Occurred()) {
13992 p->error_indicator = 1;
13993 D(p->level--);
13994 return NULL;
13995 }
13996 goto done;
13997 }
13998 p->mark = _mark;
13999 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
14001 }
14002 { // primary '(' arguments? ')'
14003 if (p->error_indicator) {
14004 D(p->level--);
14005 return NULL;
14006 }
14007 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14008 Token * _literal;
14009 Token * _literal_1;
14010 expr_ty a;
14011 void *b;
14012 if (
14013 (a = primary_rule(p)) // primary
14014 &&
14015 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14016 &&
14017 (b = arguments_rule(p), 1) // arguments?
14018 &&
14019 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14020 )
14021 {
14022 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14023 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14024 if (_token == NULL) {
14025 D(p->level--);
14026 return NULL;
14027 }
14028 int _end_lineno = _token->end_lineno;
14029 UNUSED(_end_lineno); // Only used by EXTRA macro
14030 int _end_col_offset = _token->end_col_offset;
14031 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014032 _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 +010014033 if (_res == NULL && PyErr_Occurred()) {
14034 p->error_indicator = 1;
14035 D(p->level--);
14036 return NULL;
14037 }
14038 goto done;
14039 }
14040 p->mark = _mark;
14041 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14043 }
14044 { // primary '[' slices ']'
14045 if (p->error_indicator) {
14046 D(p->level--);
14047 return NULL;
14048 }
14049 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14050 Token * _literal;
14051 Token * _literal_1;
14052 expr_ty a;
14053 expr_ty b;
14054 if (
14055 (a = primary_rule(p)) // primary
14056 &&
14057 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14058 &&
14059 (b = slices_rule(p)) // slices
14060 &&
14061 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14062 )
14063 {
14064 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14065 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14066 if (_token == NULL) {
14067 D(p->level--);
14068 return NULL;
14069 }
14070 int _end_lineno = _token->end_lineno;
14071 UNUSED(_end_lineno); // Only used by EXTRA macro
14072 int _end_col_offset = _token->end_col_offset;
14073 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014074 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014075 if (_res == NULL && PyErr_Occurred()) {
14076 p->error_indicator = 1;
14077 D(p->level--);
14078 return NULL;
14079 }
14080 goto done;
14081 }
14082 p->mark = _mark;
14083 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14085 }
14086 { // atom
14087 if (p->error_indicator) {
14088 D(p->level--);
14089 return NULL;
14090 }
14091 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14092 expr_ty atom_var;
14093 if (
14094 (atom_var = atom_rule(p)) // atom
14095 )
14096 {
14097 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14098 _res = atom_var;
14099 goto done;
14100 }
14101 p->mark = _mark;
14102 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14104 }
14105 _res = NULL;
14106 done:
14107 D(p->level--);
14108 return _res;
14109}
14110
14111// slices: slice !',' | ','.slice+ ','?
14112static expr_ty
14113slices_rule(Parser *p)
14114{
14115 D(p->level++);
14116 if (p->error_indicator) {
14117 D(p->level--);
14118 return NULL;
14119 }
14120 expr_ty _res = NULL;
14121 int _mark = p->mark;
14122 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14123 p->error_indicator = 1;
14124 D(p->level--);
14125 return NULL;
14126 }
14127 int _start_lineno = p->tokens[_mark]->lineno;
14128 UNUSED(_start_lineno); // Only used by EXTRA macro
14129 int _start_col_offset = p->tokens[_mark]->col_offset;
14130 UNUSED(_start_col_offset); // Only used by EXTRA macro
14131 { // slice !','
14132 if (p->error_indicator) {
14133 D(p->level--);
14134 return NULL;
14135 }
14136 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14137 expr_ty a;
14138 if (
14139 (a = slice_rule(p)) // slice
14140 &&
14141 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14142 )
14143 {
14144 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14145 _res = a;
14146 if (_res == NULL && PyErr_Occurred()) {
14147 p->error_indicator = 1;
14148 D(p->level--);
14149 return NULL;
14150 }
14151 goto done;
14152 }
14153 p->mark = _mark;
14154 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14156 }
14157 { // ','.slice+ ','?
14158 if (p->error_indicator) {
14159 D(p->level--);
14160 return NULL;
14161 }
14162 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14163 void *_opt_var;
14164 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014165 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014166 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014167 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014168 &&
14169 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14170 )
14171 {
14172 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14173 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14174 if (_token == NULL) {
14175 D(p->level--);
14176 return NULL;
14177 }
14178 int _end_lineno = _token->end_lineno;
14179 UNUSED(_end_lineno); // Only used by EXTRA macro
14180 int _end_col_offset = _token->end_col_offset;
14181 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014182 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014183 if (_res == NULL && PyErr_Occurred()) {
14184 p->error_indicator = 1;
14185 D(p->level--);
14186 return NULL;
14187 }
14188 goto done;
14189 }
14190 p->mark = _mark;
14191 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14193 }
14194 _res = NULL;
14195 done:
14196 D(p->level--);
14197 return _res;
14198}
14199
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014200// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014201static expr_ty
14202slice_rule(Parser *p)
14203{
14204 D(p->level++);
14205 if (p->error_indicator) {
14206 D(p->level--);
14207 return NULL;
14208 }
14209 expr_ty _res = NULL;
14210 int _mark = p->mark;
14211 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14212 p->error_indicator = 1;
14213 D(p->level--);
14214 return NULL;
14215 }
14216 int _start_lineno = p->tokens[_mark]->lineno;
14217 UNUSED(_start_lineno); // Only used by EXTRA macro
14218 int _start_col_offset = p->tokens[_mark]->col_offset;
14219 UNUSED(_start_col_offset); // Only used by EXTRA macro
14220 { // expression? ':' expression? [':' expression?]
14221 if (p->error_indicator) {
14222 D(p->level--);
14223 return NULL;
14224 }
14225 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14226 Token * _literal;
14227 void *a;
14228 void *b;
14229 void *c;
14230 if (
14231 (a = expression_rule(p), 1) // expression?
14232 &&
14233 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14234 &&
14235 (b = expression_rule(p), 1) // expression?
14236 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014237 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014238 )
14239 {
14240 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14241 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14242 if (_token == NULL) {
14243 D(p->level--);
14244 return NULL;
14245 }
14246 int _end_lineno = _token->end_lineno;
14247 UNUSED(_end_lineno); // Only used by EXTRA macro
14248 int _end_col_offset = _token->end_col_offset;
14249 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014250 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014251 if (_res == NULL && PyErr_Occurred()) {
14252 p->error_indicator = 1;
14253 D(p->level--);
14254 return NULL;
14255 }
14256 goto done;
14257 }
14258 p->mark = _mark;
14259 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14261 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014262 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014263 if (p->error_indicator) {
14264 D(p->level--);
14265 return NULL;
14266 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014267 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014268 expr_ty a;
14269 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014270 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014271 )
14272 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014273 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014274 _res = a;
14275 if (_res == NULL && PyErr_Occurred()) {
14276 p->error_indicator = 1;
14277 D(p->level--);
14278 return NULL;
14279 }
14280 goto done;
14281 }
14282 p->mark = _mark;
14283 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014285 }
14286 _res = NULL;
14287 done:
14288 D(p->level--);
14289 return _res;
14290}
14291
14292// atom:
14293// | NAME
14294// | 'True'
14295// | 'False'
14296// | 'None'
14297// | &STRING strings
14298// | NUMBER
14299// | &'(' (tuple | group | genexp)
14300// | &'[' (list | listcomp)
14301// | &'{' (dict | set | dictcomp | setcomp)
14302// | '...'
14303static expr_ty
14304atom_rule(Parser *p)
14305{
14306 D(p->level++);
14307 if (p->error_indicator) {
14308 D(p->level--);
14309 return NULL;
14310 }
14311 expr_ty _res = NULL;
14312 int _mark = p->mark;
14313 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14314 p->error_indicator = 1;
14315 D(p->level--);
14316 return NULL;
14317 }
14318 int _start_lineno = p->tokens[_mark]->lineno;
14319 UNUSED(_start_lineno); // Only used by EXTRA macro
14320 int _start_col_offset = p->tokens[_mark]->col_offset;
14321 UNUSED(_start_col_offset); // Only used by EXTRA macro
14322 { // NAME
14323 if (p->error_indicator) {
14324 D(p->level--);
14325 return NULL;
14326 }
14327 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14328 expr_ty name_var;
14329 if (
14330 (name_var = _PyPegen_name_token(p)) // NAME
14331 )
14332 {
14333 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14334 _res = name_var;
14335 goto done;
14336 }
14337 p->mark = _mark;
14338 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14340 }
14341 { // 'True'
14342 if (p->error_indicator) {
14343 D(p->level--);
14344 return NULL;
14345 }
14346 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14347 Token * _keyword;
14348 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014349 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014350 )
14351 {
14352 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14353 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14354 if (_token == NULL) {
14355 D(p->level--);
14356 return NULL;
14357 }
14358 int _end_lineno = _token->end_lineno;
14359 UNUSED(_end_lineno); // Only used by EXTRA macro
14360 int _end_col_offset = _token->end_col_offset;
14361 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014362 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014363 if (_res == NULL && PyErr_Occurred()) {
14364 p->error_indicator = 1;
14365 D(p->level--);
14366 return NULL;
14367 }
14368 goto done;
14369 }
14370 p->mark = _mark;
14371 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14373 }
14374 { // 'False'
14375 if (p->error_indicator) {
14376 D(p->level--);
14377 return NULL;
14378 }
14379 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14380 Token * _keyword;
14381 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014382 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014383 )
14384 {
14385 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14386 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14387 if (_token == NULL) {
14388 D(p->level--);
14389 return NULL;
14390 }
14391 int _end_lineno = _token->end_lineno;
14392 UNUSED(_end_lineno); // Only used by EXTRA macro
14393 int _end_col_offset = _token->end_col_offset;
14394 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014395 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014396 if (_res == NULL && PyErr_Occurred()) {
14397 p->error_indicator = 1;
14398 D(p->level--);
14399 return NULL;
14400 }
14401 goto done;
14402 }
14403 p->mark = _mark;
14404 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14406 }
14407 { // 'None'
14408 if (p->error_indicator) {
14409 D(p->level--);
14410 return NULL;
14411 }
14412 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14413 Token * _keyword;
14414 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014415 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014416 )
14417 {
14418 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14419 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14420 if (_token == NULL) {
14421 D(p->level--);
14422 return NULL;
14423 }
14424 int _end_lineno = _token->end_lineno;
14425 UNUSED(_end_lineno); // Only used by EXTRA macro
14426 int _end_col_offset = _token->end_col_offset;
14427 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014428 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014429 if (_res == NULL && PyErr_Occurred()) {
14430 p->error_indicator = 1;
14431 D(p->level--);
14432 return NULL;
14433 }
14434 goto done;
14435 }
14436 p->mark = _mark;
14437 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14439 }
14440 { // &STRING strings
14441 if (p->error_indicator) {
14442 D(p->level--);
14443 return NULL;
14444 }
14445 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14446 expr_ty strings_var;
14447 if (
14448 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14449 &&
14450 (strings_var = strings_rule(p)) // strings
14451 )
14452 {
14453 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14454 _res = strings_var;
14455 goto done;
14456 }
14457 p->mark = _mark;
14458 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14460 }
14461 { // NUMBER
14462 if (p->error_indicator) {
14463 D(p->level--);
14464 return NULL;
14465 }
14466 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14467 expr_ty number_var;
14468 if (
14469 (number_var = _PyPegen_number_token(p)) // NUMBER
14470 )
14471 {
14472 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14473 _res = number_var;
14474 goto done;
14475 }
14476 p->mark = _mark;
14477 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14478 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14479 }
14480 { // &'(' (tuple | group | genexp)
14481 if (p->error_indicator) {
14482 D(p->level--);
14483 return NULL;
14484 }
14485 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014486 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014487 if (
14488 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14489 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014490 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014491 )
14492 {
14493 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 -080014494 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014495 goto done;
14496 }
14497 p->mark = _mark;
14498 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14500 }
14501 { // &'[' (list | listcomp)
14502 if (p->error_indicator) {
14503 D(p->level--);
14504 return NULL;
14505 }
14506 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014507 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014508 if (
14509 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14510 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014511 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014512 )
14513 {
14514 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014515 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014516 goto done;
14517 }
14518 p->mark = _mark;
14519 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14521 }
14522 { // &'{' (dict | set | dictcomp | setcomp)
14523 if (p->error_indicator) {
14524 D(p->level--);
14525 return NULL;
14526 }
14527 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 -080014528 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014529 if (
14530 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14531 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014532 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014533 )
14534 {
14535 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 -080014536 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014537 goto done;
14538 }
14539 p->mark = _mark;
14540 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14542 }
14543 { // '...'
14544 if (p->error_indicator) {
14545 D(p->level--);
14546 return NULL;
14547 }
14548 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14549 Token * _literal;
14550 if (
14551 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14552 )
14553 {
14554 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14555 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14556 if (_token == NULL) {
14557 D(p->level--);
14558 return NULL;
14559 }
14560 int _end_lineno = _token->end_lineno;
14561 UNUSED(_end_lineno); // Only used by EXTRA macro
14562 int _end_col_offset = _token->end_col_offset;
14563 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014564 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014565 if (_res == NULL && PyErr_Occurred()) {
14566 p->error_indicator = 1;
14567 D(p->level--);
14568 return NULL;
14569 }
14570 goto done;
14571 }
14572 p->mark = _mark;
14573 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14575 }
14576 _res = NULL;
14577 done:
14578 D(p->level--);
14579 return _res;
14580}
14581
14582// strings: STRING+
14583static expr_ty
14584strings_rule(Parser *p)
14585{
14586 D(p->level++);
14587 if (p->error_indicator) {
14588 D(p->level--);
14589 return NULL;
14590 }
14591 expr_ty _res = NULL;
14592 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14593 D(p->level--);
14594 return _res;
14595 }
14596 int _mark = p->mark;
14597 { // STRING+
14598 if (p->error_indicator) {
14599 D(p->level--);
14600 return NULL;
14601 }
14602 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14603 asdl_seq * a;
14604 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014605 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014606 )
14607 {
14608 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14609 _res = _PyPegen_concatenate_strings ( p , a );
14610 if (_res == NULL && PyErr_Occurred()) {
14611 p->error_indicator = 1;
14612 D(p->level--);
14613 return NULL;
14614 }
14615 goto done;
14616 }
14617 p->mark = _mark;
14618 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14620 }
14621 _res = NULL;
14622 done:
14623 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14624 D(p->level--);
14625 return _res;
14626}
14627
14628// list: '[' star_named_expressions? ']'
14629static expr_ty
14630list_rule(Parser *p)
14631{
14632 D(p->level++);
14633 if (p->error_indicator) {
14634 D(p->level--);
14635 return NULL;
14636 }
14637 expr_ty _res = NULL;
14638 int _mark = p->mark;
14639 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14640 p->error_indicator = 1;
14641 D(p->level--);
14642 return NULL;
14643 }
14644 int _start_lineno = p->tokens[_mark]->lineno;
14645 UNUSED(_start_lineno); // Only used by EXTRA macro
14646 int _start_col_offset = p->tokens[_mark]->col_offset;
14647 UNUSED(_start_col_offset); // Only used by EXTRA macro
14648 { // '[' star_named_expressions? ']'
14649 if (p->error_indicator) {
14650 D(p->level--);
14651 return NULL;
14652 }
14653 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14654 Token * _literal;
14655 Token * _literal_1;
14656 void *a;
14657 if (
14658 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14659 &&
14660 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14661 &&
14662 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14663 )
14664 {
14665 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14666 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14667 if (_token == NULL) {
14668 D(p->level--);
14669 return NULL;
14670 }
14671 int _end_lineno = _token->end_lineno;
14672 UNUSED(_end_lineno); // Only used by EXTRA macro
14673 int _end_col_offset = _token->end_col_offset;
14674 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014675 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014676 if (_res == NULL && PyErr_Occurred()) {
14677 p->error_indicator = 1;
14678 D(p->level--);
14679 return NULL;
14680 }
14681 goto done;
14682 }
14683 p->mark = _mark;
14684 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14686 }
14687 _res = NULL;
14688 done:
14689 D(p->level--);
14690 return _res;
14691}
14692
Pablo Galindo835f14f2021-01-31 22:52:56 +000014693// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014694static expr_ty
14695listcomp_rule(Parser *p)
14696{
14697 D(p->level++);
14698 if (p->error_indicator) {
14699 D(p->level--);
14700 return NULL;
14701 }
14702 expr_ty _res = NULL;
14703 int _mark = p->mark;
14704 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14705 p->error_indicator = 1;
14706 D(p->level--);
14707 return NULL;
14708 }
14709 int _start_lineno = p->tokens[_mark]->lineno;
14710 UNUSED(_start_lineno); // Only used by EXTRA macro
14711 int _start_col_offset = p->tokens[_mark]->col_offset;
14712 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014713 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014714 if (p->error_indicator) {
14715 D(p->level--);
14716 return NULL;
14717 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014718 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 +010014719 Token * _literal;
14720 Token * _literal_1;
14721 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014722 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014723 if (
14724 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14725 &&
14726 (a = named_expression_rule(p)) // named_expression
14727 &&
14728 (b = for_if_clauses_rule(p)) // for_if_clauses
14729 &&
14730 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14731 )
14732 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014733 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 +010014734 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14735 if (_token == NULL) {
14736 D(p->level--);
14737 return NULL;
14738 }
14739 int _end_lineno = _token->end_lineno;
14740 UNUSED(_end_lineno); // Only used by EXTRA macro
14741 int _end_col_offset = _token->end_col_offset;
14742 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014743 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014744 if (_res == NULL && PyErr_Occurred()) {
14745 p->error_indicator = 1;
14746 D(p->level--);
14747 return NULL;
14748 }
14749 goto done;
14750 }
14751 p->mark = _mark;
14752 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014754 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014755 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014756 if (p->error_indicator) {
14757 D(p->level--);
14758 return NULL;
14759 }
14760 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14761 void *invalid_comprehension_var;
14762 if (
14763 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14764 )
14765 {
14766 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14767 _res = invalid_comprehension_var;
14768 goto done;
14769 }
14770 p->mark = _mark;
14771 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14773 }
14774 _res = NULL;
14775 done:
14776 D(p->level--);
14777 return _res;
14778}
14779
14780// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14781static expr_ty
14782tuple_rule(Parser *p)
14783{
14784 D(p->level++);
14785 if (p->error_indicator) {
14786 D(p->level--);
14787 return NULL;
14788 }
14789 expr_ty _res = NULL;
14790 int _mark = p->mark;
14791 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14792 p->error_indicator = 1;
14793 D(p->level--);
14794 return NULL;
14795 }
14796 int _start_lineno = p->tokens[_mark]->lineno;
14797 UNUSED(_start_lineno); // Only used by EXTRA macro
14798 int _start_col_offset = p->tokens[_mark]->col_offset;
14799 UNUSED(_start_col_offset); // Only used by EXTRA macro
14800 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14801 if (p->error_indicator) {
14802 D(p->level--);
14803 return NULL;
14804 }
14805 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14806 Token * _literal;
14807 Token * _literal_1;
14808 void *a;
14809 if (
14810 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14811 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014812 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014813 &&
14814 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14815 )
14816 {
14817 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14818 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14819 if (_token == NULL) {
14820 D(p->level--);
14821 return NULL;
14822 }
14823 int _end_lineno = _token->end_lineno;
14824 UNUSED(_end_lineno); // Only used by EXTRA macro
14825 int _end_col_offset = _token->end_col_offset;
14826 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014827 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014828 if (_res == NULL && PyErr_Occurred()) {
14829 p->error_indicator = 1;
14830 D(p->level--);
14831 return NULL;
14832 }
14833 goto done;
14834 }
14835 p->mark = _mark;
14836 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14838 }
14839 _res = NULL;
14840 done:
14841 D(p->level--);
14842 return _res;
14843}
14844
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014845// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014846static expr_ty
14847group_rule(Parser *p)
14848{
14849 D(p->level++);
14850 if (p->error_indicator) {
14851 D(p->level--);
14852 return NULL;
14853 }
14854 expr_ty _res = NULL;
14855 int _mark = p->mark;
14856 { // '(' (yield_expr | named_expression) ')'
14857 if (p->error_indicator) {
14858 D(p->level--);
14859 return NULL;
14860 }
14861 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14862 Token * _literal;
14863 Token * _literal_1;
14864 void *a;
14865 if (
14866 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14867 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014868 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014869 &&
14870 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14871 )
14872 {
14873 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14874 _res = a;
14875 if (_res == NULL && PyErr_Occurred()) {
14876 p->error_indicator = 1;
14877 D(p->level--);
14878 return NULL;
14879 }
14880 goto done;
14881 }
14882 p->mark = _mark;
14883 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14885 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014886 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014887 if (p->error_indicator) {
14888 D(p->level--);
14889 return NULL;
14890 }
14891 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14892 void *invalid_group_var;
14893 if (
14894 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14895 )
14896 {
14897 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14898 _res = invalid_group_var;
14899 goto done;
14900 }
14901 p->mark = _mark;
14902 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14904 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014905 _res = NULL;
14906 done:
14907 D(p->level--);
14908 return _res;
14909}
14910
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014911// genexp: '(' direct_named_expression for_if_clauses ')' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014912static expr_ty
14913genexp_rule(Parser *p)
14914{
14915 D(p->level++);
14916 if (p->error_indicator) {
14917 D(p->level--);
14918 return NULL;
14919 }
14920 expr_ty _res = NULL;
14921 int _mark = p->mark;
14922 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14923 p->error_indicator = 1;
14924 D(p->level--);
14925 return NULL;
14926 }
14927 int _start_lineno = p->tokens[_mark]->lineno;
14928 UNUSED(_start_lineno); // Only used by EXTRA macro
14929 int _start_col_offset = p->tokens[_mark]->col_offset;
14930 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014931 { // '(' direct_named_expression for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014932 if (p->error_indicator) {
14933 D(p->level--);
14934 return NULL;
14935 }
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014936 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014937 Token * _literal;
14938 Token * _literal_1;
14939 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014940 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014941 if (
14942 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14943 &&
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014944 (a = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014945 &&
14946 (b = for_if_clauses_rule(p)) // for_if_clauses
14947 &&
14948 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14949 )
14950 {
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014951 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14953 if (_token == NULL) {
14954 D(p->level--);
14955 return NULL;
14956 }
14957 int _end_lineno = _token->end_lineno;
14958 UNUSED(_end_lineno); // Only used by EXTRA macro
14959 int _end_col_offset = _token->end_col_offset;
14960 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014961 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014962 if (_res == NULL && PyErr_Occurred()) {
14963 p->error_indicator = 1;
14964 D(p->level--);
14965 return NULL;
14966 }
14967 goto done;
14968 }
14969 p->mark = _mark;
14970 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo30ed93b2021-04-13 17:51:21 +010014971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' direct_named_expression for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014972 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014973 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014974 if (p->error_indicator) {
14975 D(p->level--);
14976 return NULL;
14977 }
14978 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14979 void *invalid_comprehension_var;
14980 if (
14981 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14982 )
14983 {
14984 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14985 _res = invalid_comprehension_var;
14986 goto done;
14987 }
14988 p->mark = _mark;
14989 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14991 }
14992 _res = NULL;
14993 done:
14994 D(p->level--);
14995 return _res;
14996}
14997
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014998// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014999static expr_ty
15000set_rule(Parser *p)
15001{
15002 D(p->level++);
15003 if (p->error_indicator) {
15004 D(p->level--);
15005 return NULL;
15006 }
15007 expr_ty _res = NULL;
15008 int _mark = p->mark;
15009 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15010 p->error_indicator = 1;
15011 D(p->level--);
15012 return NULL;
15013 }
15014 int _start_lineno = p->tokens[_mark]->lineno;
15015 UNUSED(_start_lineno); // Only used by EXTRA macro
15016 int _start_col_offset = p->tokens[_mark]->col_offset;
15017 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015018 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015019 if (p->error_indicator) {
15020 D(p->level--);
15021 return NULL;
15022 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015023 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015024 Token * _literal;
15025 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015026 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015027 if (
15028 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15029 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015030 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015031 &&
15032 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15033 )
15034 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015035 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 +010015036 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15037 if (_token == NULL) {
15038 D(p->level--);
15039 return NULL;
15040 }
15041 int _end_lineno = _token->end_lineno;
15042 UNUSED(_end_lineno); // Only used by EXTRA macro
15043 int _end_col_offset = _token->end_col_offset;
15044 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015045 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015046 if (_res == NULL && PyErr_Occurred()) {
15047 p->error_indicator = 1;
15048 D(p->level--);
15049 return NULL;
15050 }
15051 goto done;
15052 }
15053 p->mark = _mark;
15054 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015056 }
15057 _res = NULL;
15058 done:
15059 D(p->level--);
15060 return _res;
15061}
15062
Pablo Galindo835f14f2021-01-31 22:52:56 +000015063// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015064static expr_ty
15065setcomp_rule(Parser *p)
15066{
15067 D(p->level++);
15068 if (p->error_indicator) {
15069 D(p->level--);
15070 return NULL;
15071 }
15072 expr_ty _res = NULL;
15073 int _mark = p->mark;
15074 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15075 p->error_indicator = 1;
15076 D(p->level--);
15077 return NULL;
15078 }
15079 int _start_lineno = p->tokens[_mark]->lineno;
15080 UNUSED(_start_lineno); // Only used by EXTRA macro
15081 int _start_col_offset = p->tokens[_mark]->col_offset;
15082 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015083 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015084 if (p->error_indicator) {
15085 D(p->level--);
15086 return NULL;
15087 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015088 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 +010015089 Token * _literal;
15090 Token * _literal_1;
15091 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015092 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015093 if (
15094 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15095 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015096 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015097 &&
15098 (b = for_if_clauses_rule(p)) // for_if_clauses
15099 &&
15100 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15101 )
15102 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015103 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 +010015104 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15105 if (_token == NULL) {
15106 D(p->level--);
15107 return NULL;
15108 }
15109 int _end_lineno = _token->end_lineno;
15110 UNUSED(_end_lineno); // Only used by EXTRA macro
15111 int _end_col_offset = _token->end_col_offset;
15112 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015113 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015114 if (_res == NULL && PyErr_Occurred()) {
15115 p->error_indicator = 1;
15116 D(p->level--);
15117 return NULL;
15118 }
15119 goto done;
15120 }
15121 p->mark = _mark;
15122 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015124 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015125 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015126 if (p->error_indicator) {
15127 D(p->level--);
15128 return NULL;
15129 }
15130 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15131 void *invalid_comprehension_var;
15132 if (
15133 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15134 )
15135 {
15136 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15137 _res = invalid_comprehension_var;
15138 goto done;
15139 }
15140 p->mark = _mark;
15141 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15143 }
15144 _res = NULL;
15145 done:
15146 D(p->level--);
15147 return _res;
15148}
15149
Pablo Galindoda743502021-04-15 14:06:39 +010015150// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015151static expr_ty
15152dict_rule(Parser *p)
15153{
15154 D(p->level++);
15155 if (p->error_indicator) {
15156 D(p->level--);
15157 return NULL;
15158 }
15159 expr_ty _res = NULL;
15160 int _mark = p->mark;
15161 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15162 p->error_indicator = 1;
15163 D(p->level--);
15164 return NULL;
15165 }
15166 int _start_lineno = p->tokens[_mark]->lineno;
15167 UNUSED(_start_lineno); // Only used by EXTRA macro
15168 int _start_col_offset = p->tokens[_mark]->col_offset;
15169 UNUSED(_start_col_offset); // Only used by EXTRA macro
15170 { // '{' double_starred_kvpairs? '}'
15171 if (p->error_indicator) {
15172 D(p->level--);
15173 return NULL;
15174 }
15175 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15176 Token * _literal;
15177 Token * _literal_1;
15178 void *a;
15179 if (
15180 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15181 &&
15182 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15183 &&
15184 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15185 )
15186 {
15187 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15188 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15189 if (_token == NULL) {
15190 D(p->level--);
15191 return NULL;
15192 }
15193 int _end_lineno = _token->end_lineno;
15194 UNUSED(_end_lineno); // Only used by EXTRA macro
15195 int _end_col_offset = _token->end_col_offset;
15196 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015197 _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 +010015198 if (_res == NULL && PyErr_Occurred()) {
15199 p->error_indicator = 1;
15200 D(p->level--);
15201 return NULL;
15202 }
15203 goto done;
15204 }
15205 p->mark = _mark;
15206 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15208 }
Pablo Galindoda743502021-04-15 14:06:39 +010015209 { // '{' invalid_double_starred_kvpairs '}'
15210 if (p->error_indicator) {
15211 D(p->level--);
15212 return NULL;
15213 }
15214 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15215 Token * _literal;
15216 Token * _literal_1;
15217 void *invalid_double_starred_kvpairs_var;
15218 if (
15219 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15220 &&
15221 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15222 &&
15223 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15224 )
15225 {
15226 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15227 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15228 goto done;
15229 }
15230 p->mark = _mark;
15231 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15232 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15233 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015234 _res = NULL;
15235 done:
15236 D(p->level--);
15237 return _res;
15238}
15239
15240// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15241static expr_ty
15242dictcomp_rule(Parser *p)
15243{
15244 D(p->level++);
15245 if (p->error_indicator) {
15246 D(p->level--);
15247 return NULL;
15248 }
15249 expr_ty _res = NULL;
15250 int _mark = p->mark;
15251 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15252 p->error_indicator = 1;
15253 D(p->level--);
15254 return NULL;
15255 }
15256 int _start_lineno = p->tokens[_mark]->lineno;
15257 UNUSED(_start_lineno); // Only used by EXTRA macro
15258 int _start_col_offset = p->tokens[_mark]->col_offset;
15259 UNUSED(_start_col_offset); // Only used by EXTRA macro
15260 { // '{' kvpair for_if_clauses '}'
15261 if (p->error_indicator) {
15262 D(p->level--);
15263 return NULL;
15264 }
15265 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15266 Token * _literal;
15267 Token * _literal_1;
15268 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015269 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015270 if (
15271 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15272 &&
15273 (a = kvpair_rule(p)) // kvpair
15274 &&
15275 (b = for_if_clauses_rule(p)) // for_if_clauses
15276 &&
15277 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15278 )
15279 {
15280 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15281 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15282 if (_token == NULL) {
15283 D(p->level--);
15284 return NULL;
15285 }
15286 int _end_lineno = _token->end_lineno;
15287 UNUSED(_end_lineno); // Only used by EXTRA macro
15288 int _end_col_offset = _token->end_col_offset;
15289 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015290 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015291 if (_res == NULL && PyErr_Occurred()) {
15292 p->error_indicator = 1;
15293 D(p->level--);
15294 return NULL;
15295 }
15296 goto done;
15297 }
15298 p->mark = _mark;
15299 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15301 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015302 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015303 if (p->error_indicator) {
15304 D(p->level--);
15305 return NULL;
15306 }
15307 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15308 void *invalid_dict_comprehension_var;
15309 if (
15310 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15311 )
15312 {
15313 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15314 _res = invalid_dict_comprehension_var;
15315 goto done;
15316 }
15317 p->mark = _mark;
15318 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15320 }
15321 _res = NULL;
15322 done:
15323 D(p->level--);
15324 return _res;
15325}
15326
15327// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15328static asdl_seq*
15329double_starred_kvpairs_rule(Parser *p)
15330{
15331 D(p->level++);
15332 if (p->error_indicator) {
15333 D(p->level--);
15334 return NULL;
15335 }
15336 asdl_seq* _res = NULL;
15337 int _mark = p->mark;
15338 { // ','.double_starred_kvpair+ ','?
15339 if (p->error_indicator) {
15340 D(p->level--);
15341 return NULL;
15342 }
15343 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15344 void *_opt_var;
15345 UNUSED(_opt_var); // Silence compiler warnings
15346 asdl_seq * a;
15347 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015348 (a = _gather_117_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015349 &&
15350 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15351 )
15352 {
15353 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15354 _res = a;
15355 if (_res == NULL && PyErr_Occurred()) {
15356 p->error_indicator = 1;
15357 D(p->level--);
15358 return NULL;
15359 }
15360 goto done;
15361 }
15362 p->mark = _mark;
15363 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15365 }
15366 _res = NULL;
15367 done:
15368 D(p->level--);
15369 return _res;
15370}
15371
15372// double_starred_kvpair: '**' bitwise_or | kvpair
15373static KeyValuePair*
15374double_starred_kvpair_rule(Parser *p)
15375{
15376 D(p->level++);
15377 if (p->error_indicator) {
15378 D(p->level--);
15379 return NULL;
15380 }
15381 KeyValuePair* _res = NULL;
15382 int _mark = p->mark;
15383 { // '**' bitwise_or
15384 if (p->error_indicator) {
15385 D(p->level--);
15386 return NULL;
15387 }
15388 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15389 Token * _literal;
15390 expr_ty a;
15391 if (
15392 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15393 &&
15394 (a = bitwise_or_rule(p)) // bitwise_or
15395 )
15396 {
15397 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15398 _res = _PyPegen_key_value_pair ( p , NULL , a );
15399 if (_res == NULL && PyErr_Occurred()) {
15400 p->error_indicator = 1;
15401 D(p->level--);
15402 return NULL;
15403 }
15404 goto done;
15405 }
15406 p->mark = _mark;
15407 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15409 }
15410 { // kvpair
15411 if (p->error_indicator) {
15412 D(p->level--);
15413 return NULL;
15414 }
15415 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15416 KeyValuePair* kvpair_var;
15417 if (
15418 (kvpair_var = kvpair_rule(p)) // kvpair
15419 )
15420 {
15421 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15422 _res = kvpair_var;
15423 goto done;
15424 }
15425 p->mark = _mark;
15426 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15428 }
15429 _res = NULL;
15430 done:
15431 D(p->level--);
15432 return _res;
15433}
15434
15435// kvpair: expression ':' expression
15436static KeyValuePair*
15437kvpair_rule(Parser *p)
15438{
15439 D(p->level++);
15440 if (p->error_indicator) {
15441 D(p->level--);
15442 return NULL;
15443 }
15444 KeyValuePair* _res = NULL;
15445 int _mark = p->mark;
15446 { // expression ':' expression
15447 if (p->error_indicator) {
15448 D(p->level--);
15449 return NULL;
15450 }
15451 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15452 Token * _literal;
15453 expr_ty a;
15454 expr_ty b;
15455 if (
15456 (a = expression_rule(p)) // expression
15457 &&
15458 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15459 &&
15460 (b = expression_rule(p)) // expression
15461 )
15462 {
15463 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15464 _res = _PyPegen_key_value_pair ( p , a , b );
15465 if (_res == NULL && PyErr_Occurred()) {
15466 p->error_indicator = 1;
15467 D(p->level--);
15468 return NULL;
15469 }
15470 goto done;
15471 }
15472 p->mark = _mark;
15473 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15475 }
15476 _res = NULL;
15477 done:
15478 D(p->level--);
15479 return _res;
15480}
15481
15482// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015483static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015484for_if_clauses_rule(Parser *p)
15485{
15486 D(p->level++);
15487 if (p->error_indicator) {
15488 D(p->level--);
15489 return NULL;
15490 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015491 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015492 int _mark = p->mark;
15493 { // for_if_clause+
15494 if (p->error_indicator) {
15495 D(p->level--);
15496 return NULL;
15497 }
15498 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 +010015499 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015500 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015501 (a = (asdl_comprehension_seq*)_loop1_119_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015502 )
15503 {
15504 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 +010015505 _res = a;
15506 if (_res == NULL && PyErr_Occurred()) {
15507 p->error_indicator = 1;
15508 D(p->level--);
15509 return NULL;
15510 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015511 goto done;
15512 }
15513 p->mark = _mark;
15514 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15516 }
15517 _res = NULL;
15518 done:
15519 D(p->level--);
15520 return _res;
15521}
15522
15523// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015524// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15525// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15526// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015527static comprehension_ty
15528for_if_clause_rule(Parser *p)
15529{
15530 D(p->level++);
15531 if (p->error_indicator) {
15532 D(p->level--);
15533 return NULL;
15534 }
15535 comprehension_ty _res = NULL;
15536 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015537 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015538 if (p->error_indicator) {
15539 D(p->level--);
15540 return NULL;
15541 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015542 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15543 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015544 Token * _keyword;
15545 Token * _keyword_1;
15546 expr_ty a;
15547 Token * async_var;
15548 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015549 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015550 if (
15551 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15552 &&
15553 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15554 &&
15555 (a = star_targets_rule(p)) // star_targets
15556 &&
15557 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15558 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015559 (_cut_var = 1)
15560 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015561 (b = disjunction_rule(p)) // disjunction
15562 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015563 (c = (asdl_expr_seq*)_loop0_120_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015564 )
15565 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015566 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 +020015567 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015568 if (_res == NULL && PyErr_Occurred()) {
15569 p->error_indicator = 1;
15570 D(p->level--);
15571 return NULL;
15572 }
15573 goto done;
15574 }
15575 p->mark = _mark;
15576 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015577 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15578 if (_cut_var) {
15579 D(p->level--);
15580 return NULL;
15581 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015582 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015583 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015584 if (p->error_indicator) {
15585 D(p->level--);
15586 return NULL;
15587 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015588 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15589 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015590 Token * _keyword;
15591 Token * _keyword_1;
15592 expr_ty a;
15593 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015594 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015595 if (
15596 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15597 &&
15598 (a = star_targets_rule(p)) // star_targets
15599 &&
15600 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15601 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015602 (_cut_var = 1)
15603 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015604 (b = disjunction_rule(p)) // disjunction
15605 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015606 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015607 )
15608 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015609 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 +020015610 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015611 if (_res == NULL && PyErr_Occurred()) {
15612 p->error_indicator = 1;
15613 D(p->level--);
15614 return NULL;
15615 }
15616 goto done;
15617 }
15618 p->mark = _mark;
15619 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15621 if (_cut_var) {
15622 D(p->level--);
15623 return NULL;
15624 }
15625 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015626 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015627 if (p->error_indicator) {
15628 D(p->level--);
15629 return NULL;
15630 }
15631 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15632 void *invalid_for_target_var;
15633 if (
15634 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15635 )
15636 {
15637 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15638 _res = invalid_for_target_var;
15639 goto done;
15640 }
15641 p->mark = _mark;
15642 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015644 }
15645 _res = NULL;
15646 done:
15647 D(p->level--);
15648 return _res;
15649}
15650
15651// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15652static expr_ty
15653yield_expr_rule(Parser *p)
15654{
15655 D(p->level++);
15656 if (p->error_indicator) {
15657 D(p->level--);
15658 return NULL;
15659 }
15660 expr_ty _res = NULL;
15661 int _mark = p->mark;
15662 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15663 p->error_indicator = 1;
15664 D(p->level--);
15665 return NULL;
15666 }
15667 int _start_lineno = p->tokens[_mark]->lineno;
15668 UNUSED(_start_lineno); // Only used by EXTRA macro
15669 int _start_col_offset = p->tokens[_mark]->col_offset;
15670 UNUSED(_start_col_offset); // Only used by EXTRA macro
15671 { // 'yield' 'from' expression
15672 if (p->error_indicator) {
15673 D(p->level--);
15674 return NULL;
15675 }
15676 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15677 Token * _keyword;
15678 Token * _keyword_1;
15679 expr_ty a;
15680 if (
15681 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15682 &&
15683 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15684 &&
15685 (a = expression_rule(p)) // expression
15686 )
15687 {
15688 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15689 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15690 if (_token == NULL) {
15691 D(p->level--);
15692 return NULL;
15693 }
15694 int _end_lineno = _token->end_lineno;
15695 UNUSED(_end_lineno); // Only used by EXTRA macro
15696 int _end_col_offset = _token->end_col_offset;
15697 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015698 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015699 if (_res == NULL && PyErr_Occurred()) {
15700 p->error_indicator = 1;
15701 D(p->level--);
15702 return NULL;
15703 }
15704 goto done;
15705 }
15706 p->mark = _mark;
15707 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15709 }
15710 { // 'yield' star_expressions?
15711 if (p->error_indicator) {
15712 D(p->level--);
15713 return NULL;
15714 }
15715 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15716 Token * _keyword;
15717 void *a;
15718 if (
15719 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15720 &&
15721 (a = star_expressions_rule(p), 1) // star_expressions?
15722 )
15723 {
15724 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15725 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15726 if (_token == NULL) {
15727 D(p->level--);
15728 return NULL;
15729 }
15730 int _end_lineno = _token->end_lineno;
15731 UNUSED(_end_lineno); // Only used by EXTRA macro
15732 int _end_col_offset = _token->end_col_offset;
15733 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015734 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015735 if (_res == NULL && PyErr_Occurred()) {
15736 p->error_indicator = 1;
15737 D(p->level--);
15738 return NULL;
15739 }
15740 goto done;
15741 }
15742 p->mark = _mark;
15743 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15745 }
15746 _res = NULL;
15747 done:
15748 D(p->level--);
15749 return _res;
15750}
15751
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015752// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015753static expr_ty
15754arguments_rule(Parser *p)
15755{
15756 D(p->level++);
15757 if (p->error_indicator) {
15758 D(p->level--);
15759 return NULL;
15760 }
15761 expr_ty _res = NULL;
15762 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15763 D(p->level--);
15764 return _res;
15765 }
15766 int _mark = p->mark;
15767 { // args ','? &')'
15768 if (p->error_indicator) {
15769 D(p->level--);
15770 return NULL;
15771 }
15772 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15773 void *_opt_var;
15774 UNUSED(_opt_var); // Silence compiler warnings
15775 expr_ty a;
15776 if (
15777 (a = args_rule(p)) // args
15778 &&
15779 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15780 &&
15781 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15782 )
15783 {
15784 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15785 _res = a;
15786 if (_res == NULL && PyErr_Occurred()) {
15787 p->error_indicator = 1;
15788 D(p->level--);
15789 return NULL;
15790 }
15791 goto done;
15792 }
15793 p->mark = _mark;
15794 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15796 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015797 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015798 if (p->error_indicator) {
15799 D(p->level--);
15800 return NULL;
15801 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015802 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15803 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015804 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015805 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015806 )
15807 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015808 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15809 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015810 goto done;
15811 }
15812 p->mark = _mark;
15813 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015815 }
15816 _res = NULL;
15817 done:
15818 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15819 D(p->level--);
15820 return _res;
15821}
15822
Pablo Galindod9151cb2021-04-13 02:32:33 +010015823// args: ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs] | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015824static expr_ty
15825args_rule(Parser *p)
15826{
15827 D(p->level++);
15828 if (p->error_indicator) {
15829 D(p->level--);
15830 return NULL;
15831 }
15832 expr_ty _res = NULL;
15833 int _mark = p->mark;
15834 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15835 p->error_indicator = 1;
15836 D(p->level--);
15837 return NULL;
15838 }
15839 int _start_lineno = p->tokens[_mark]->lineno;
15840 UNUSED(_start_lineno); // Only used by EXTRA macro
15841 int _start_col_offset = p->tokens[_mark]->col_offset;
15842 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindod9151cb2021-04-13 02:32:33 +010015843 { // ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015844 if (p->error_indicator) {
15845 D(p->level--);
15846 return NULL;
15847 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010015848 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015849 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015850 void *b;
15851 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010015852 (a = (asdl_expr_seq*)_gather_122_rule(p)) // ','.(starred_expression | direct_named_expression !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015853 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015854 (b = _tmp_124_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015855 )
15856 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010015857 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015858 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15859 if (_token == NULL) {
15860 D(p->level--);
15861 return NULL;
15862 }
15863 int _end_lineno = _token->end_lineno;
15864 UNUSED(_end_lineno); // Only used by EXTRA macro
15865 int _end_col_offset = _token->end_col_offset;
15866 UNUSED(_end_col_offset); // Only used by EXTRA macro
15867 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015868 if (_res == NULL && PyErr_Occurred()) {
15869 p->error_indicator = 1;
15870 D(p->level--);
15871 return NULL;
15872 }
15873 goto done;
15874 }
15875 p->mark = _mark;
15876 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010015877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015878 }
15879 { // kwargs
15880 if (p->error_indicator) {
15881 D(p->level--);
15882 return NULL;
15883 }
15884 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15885 asdl_seq* a;
15886 if (
15887 (a = kwargs_rule(p)) // kwargs
15888 )
15889 {
15890 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15891 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15892 if (_token == NULL) {
15893 D(p->level--);
15894 return NULL;
15895 }
15896 int _end_lineno = _token->end_lineno;
15897 UNUSED(_end_lineno); // Only used by EXTRA macro
15898 int _end_col_offset = _token->end_col_offset;
15899 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015900 _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 +010015901 if (_res == NULL && PyErr_Occurred()) {
15902 p->error_indicator = 1;
15903 D(p->level--);
15904 return NULL;
15905 }
15906 goto done;
15907 }
15908 p->mark = _mark;
15909 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15911 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015912 _res = NULL;
15913 done:
15914 D(p->level--);
15915 return _res;
15916}
15917
15918// kwargs:
15919// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15920// | ','.kwarg_or_starred+
15921// | ','.kwarg_or_double_starred+
15922static asdl_seq*
15923kwargs_rule(Parser *p)
15924{
15925 D(p->level++);
15926 if (p->error_indicator) {
15927 D(p->level--);
15928 return NULL;
15929 }
15930 asdl_seq* _res = NULL;
15931 int _mark = p->mark;
15932 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15933 if (p->error_indicator) {
15934 D(p->level--);
15935 return NULL;
15936 }
15937 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15938 Token * _literal;
15939 asdl_seq * a;
15940 asdl_seq * b;
15941 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015942 (a = _gather_125_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015943 &&
15944 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15945 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080015946 (b = _gather_127_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015947 )
15948 {
15949 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15950 _res = _PyPegen_join_sequences ( p , a , b );
15951 if (_res == NULL && PyErr_Occurred()) {
15952 p->error_indicator = 1;
15953 D(p->level--);
15954 return NULL;
15955 }
15956 goto done;
15957 }
15958 p->mark = _mark;
15959 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15961 }
15962 { // ','.kwarg_or_starred+
15963 if (p->error_indicator) {
15964 D(p->level--);
15965 return NULL;
15966 }
15967 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015968 asdl_seq * _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015969 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015970 (_gather_129_var = _gather_129_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015971 )
15972 {
15973 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015974 _res = _gather_129_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015975 goto done;
15976 }
15977 p->mark = _mark;
15978 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15980 }
15981 { // ','.kwarg_or_double_starred+
15982 if (p->error_indicator) {
15983 D(p->level--);
15984 return NULL;
15985 }
15986 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015987 asdl_seq * _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015988 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080015989 (_gather_131_var = _gather_131_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015990 )
15991 {
15992 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Brandt Bucher145bf262021-02-26 14:51:55 -080015993 _res = _gather_131_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015994 goto done;
15995 }
15996 p->mark = _mark;
15997 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15999 }
16000 _res = NULL;
16001 done:
16002 D(p->level--);
16003 return _res;
16004}
16005
16006// starred_expression: '*' expression
16007static expr_ty
16008starred_expression_rule(Parser *p)
16009{
16010 D(p->level++);
16011 if (p->error_indicator) {
16012 D(p->level--);
16013 return NULL;
16014 }
16015 expr_ty _res = NULL;
16016 int _mark = p->mark;
16017 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16018 p->error_indicator = 1;
16019 D(p->level--);
16020 return NULL;
16021 }
16022 int _start_lineno = p->tokens[_mark]->lineno;
16023 UNUSED(_start_lineno); // Only used by EXTRA macro
16024 int _start_col_offset = p->tokens[_mark]->col_offset;
16025 UNUSED(_start_col_offset); // Only used by EXTRA macro
16026 { // '*' expression
16027 if (p->error_indicator) {
16028 D(p->level--);
16029 return NULL;
16030 }
16031 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16032 Token * _literal;
16033 expr_ty a;
16034 if (
16035 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16036 &&
16037 (a = expression_rule(p)) // expression
16038 )
16039 {
16040 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16042 if (_token == NULL) {
16043 D(p->level--);
16044 return NULL;
16045 }
16046 int _end_lineno = _token->end_lineno;
16047 UNUSED(_end_lineno); // Only used by EXTRA macro
16048 int _end_col_offset = _token->end_col_offset;
16049 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016050 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016051 if (_res == NULL && PyErr_Occurred()) {
16052 p->error_indicator = 1;
16053 D(p->level--);
16054 return NULL;
16055 }
16056 goto done;
16057 }
16058 p->mark = _mark;
16059 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16061 }
16062 _res = NULL;
16063 done:
16064 D(p->level--);
16065 return _res;
16066}
16067
16068// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
16069static KeywordOrStarred*
16070kwarg_or_starred_rule(Parser *p)
16071{
16072 D(p->level++);
16073 if (p->error_indicator) {
16074 D(p->level--);
16075 return NULL;
16076 }
16077 KeywordOrStarred* _res = NULL;
16078 int _mark = p->mark;
16079 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16080 p->error_indicator = 1;
16081 D(p->level--);
16082 return NULL;
16083 }
16084 int _start_lineno = p->tokens[_mark]->lineno;
16085 UNUSED(_start_lineno); // Only used by EXTRA macro
16086 int _start_col_offset = p->tokens[_mark]->col_offset;
16087 UNUSED(_start_col_offset); // Only used by EXTRA macro
16088 { // NAME '=' expression
16089 if (p->error_indicator) {
16090 D(p->level--);
16091 return NULL;
16092 }
16093 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16094 Token * _literal;
16095 expr_ty a;
16096 expr_ty b;
16097 if (
16098 (a = _PyPegen_name_token(p)) // NAME
16099 &&
16100 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16101 &&
16102 (b = expression_rule(p)) // expression
16103 )
16104 {
16105 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16106 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16107 if (_token == NULL) {
16108 D(p->level--);
16109 return NULL;
16110 }
16111 int _end_lineno = _token->end_lineno;
16112 UNUSED(_end_lineno); // Only used by EXTRA macro
16113 int _end_col_offset = _token->end_col_offset;
16114 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016115 _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 +010016116 if (_res == NULL && PyErr_Occurred()) {
16117 p->error_indicator = 1;
16118 D(p->level--);
16119 return NULL;
16120 }
16121 goto done;
16122 }
16123 p->mark = _mark;
16124 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16126 }
16127 { // starred_expression
16128 if (p->error_indicator) {
16129 D(p->level--);
16130 return NULL;
16131 }
16132 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16133 expr_ty a;
16134 if (
16135 (a = starred_expression_rule(p)) // starred_expression
16136 )
16137 {
16138 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16139 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16140 if (_res == NULL && PyErr_Occurred()) {
16141 p->error_indicator = 1;
16142 D(p->level--);
16143 return NULL;
16144 }
16145 goto done;
16146 }
16147 p->mark = _mark;
16148 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16150 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016151 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016152 if (p->error_indicator) {
16153 D(p->level--);
16154 return NULL;
16155 }
16156 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16157 void *invalid_kwarg_var;
16158 if (
16159 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16160 )
16161 {
16162 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16163 _res = invalid_kwarg_var;
16164 goto done;
16165 }
16166 p->mark = _mark;
16167 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16169 }
16170 _res = NULL;
16171 done:
16172 D(p->level--);
16173 return _res;
16174}
16175
16176// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
16177static KeywordOrStarred*
16178kwarg_or_double_starred_rule(Parser *p)
16179{
16180 D(p->level++);
16181 if (p->error_indicator) {
16182 D(p->level--);
16183 return NULL;
16184 }
16185 KeywordOrStarred* _res = NULL;
16186 int _mark = p->mark;
16187 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16188 p->error_indicator = 1;
16189 D(p->level--);
16190 return NULL;
16191 }
16192 int _start_lineno = p->tokens[_mark]->lineno;
16193 UNUSED(_start_lineno); // Only used by EXTRA macro
16194 int _start_col_offset = p->tokens[_mark]->col_offset;
16195 UNUSED(_start_col_offset); // Only used by EXTRA macro
16196 { // NAME '=' expression
16197 if (p->error_indicator) {
16198 D(p->level--);
16199 return NULL;
16200 }
16201 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16202 Token * _literal;
16203 expr_ty a;
16204 expr_ty b;
16205 if (
16206 (a = _PyPegen_name_token(p)) // NAME
16207 &&
16208 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16209 &&
16210 (b = expression_rule(p)) // expression
16211 )
16212 {
16213 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16214 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16215 if (_token == NULL) {
16216 D(p->level--);
16217 return NULL;
16218 }
16219 int _end_lineno = _token->end_lineno;
16220 UNUSED(_end_lineno); // Only used by EXTRA macro
16221 int _end_col_offset = _token->end_col_offset;
16222 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016223 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016224 if (_res == NULL && PyErr_Occurred()) {
16225 p->error_indicator = 1;
16226 D(p->level--);
16227 return NULL;
16228 }
16229 goto done;
16230 }
16231 p->mark = _mark;
16232 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16234 }
16235 { // '**' expression
16236 if (p->error_indicator) {
16237 D(p->level--);
16238 return NULL;
16239 }
16240 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16241 Token * _literal;
16242 expr_ty a;
16243 if (
16244 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16245 &&
16246 (a = expression_rule(p)) // expression
16247 )
16248 {
16249 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16250 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16251 if (_token == NULL) {
16252 D(p->level--);
16253 return NULL;
16254 }
16255 int _end_lineno = _token->end_lineno;
16256 UNUSED(_end_lineno); // Only used by EXTRA macro
16257 int _end_col_offset = _token->end_col_offset;
16258 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016259 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016260 if (_res == NULL && PyErr_Occurred()) {
16261 p->error_indicator = 1;
16262 D(p->level--);
16263 return NULL;
16264 }
16265 goto done;
16266 }
16267 p->mark = _mark;
16268 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16270 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020016271 if (p->call_invalid_rules) { // invalid_kwarg
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016272 if (p->error_indicator) {
16273 D(p->level--);
16274 return NULL;
16275 }
16276 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16277 void *invalid_kwarg_var;
16278 if (
16279 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16280 )
16281 {
16282 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16283 _res = invalid_kwarg_var;
16284 goto done;
16285 }
16286 p->mark = _mark;
16287 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16289 }
16290 _res = NULL;
16291 done:
16292 D(p->level--);
16293 return _res;
16294}
16295
16296// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16297static expr_ty
16298star_targets_rule(Parser *p)
16299{
16300 D(p->level++);
16301 if (p->error_indicator) {
16302 D(p->level--);
16303 return NULL;
16304 }
16305 expr_ty _res = NULL;
16306 int _mark = p->mark;
16307 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16308 p->error_indicator = 1;
16309 D(p->level--);
16310 return NULL;
16311 }
16312 int _start_lineno = p->tokens[_mark]->lineno;
16313 UNUSED(_start_lineno); // Only used by EXTRA macro
16314 int _start_col_offset = p->tokens[_mark]->col_offset;
16315 UNUSED(_start_col_offset); // Only used by EXTRA macro
16316 { // star_target !','
16317 if (p->error_indicator) {
16318 D(p->level--);
16319 return NULL;
16320 }
16321 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16322 expr_ty a;
16323 if (
16324 (a = star_target_rule(p)) // star_target
16325 &&
16326 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16327 )
16328 {
16329 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16330 _res = a;
16331 if (_res == NULL && PyErr_Occurred()) {
16332 p->error_indicator = 1;
16333 D(p->level--);
16334 return NULL;
16335 }
16336 goto done;
16337 }
16338 p->mark = _mark;
16339 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16341 }
16342 { // star_target ((',' star_target))* ','?
16343 if (p->error_indicator) {
16344 D(p->level--);
16345 return NULL;
16346 }
16347 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16348 void *_opt_var;
16349 UNUSED(_opt_var); // Silence compiler warnings
16350 expr_ty a;
16351 asdl_seq * b;
16352 if (
16353 (a = star_target_rule(p)) // star_target
16354 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016355 (b = _loop0_133_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016356 &&
16357 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16358 )
16359 {
16360 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16361 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16362 if (_token == NULL) {
16363 D(p->level--);
16364 return NULL;
16365 }
16366 int _end_lineno = _token->end_lineno;
16367 UNUSED(_end_lineno); // Only used by EXTRA macro
16368 int _end_col_offset = _token->end_col_offset;
16369 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016370 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016371 if (_res == NULL && PyErr_Occurred()) {
16372 p->error_indicator = 1;
16373 D(p->level--);
16374 return NULL;
16375 }
16376 goto done;
16377 }
16378 p->mark = _mark;
16379 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16381 }
16382 _res = NULL;
16383 done:
16384 D(p->level--);
16385 return _res;
16386}
16387
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016388// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016389static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016390star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016391{
16392 D(p->level++);
16393 if (p->error_indicator) {
16394 D(p->level--);
16395 return NULL;
16396 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016397 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016398 int _mark = p->mark;
16399 { // ','.star_target+ ','?
16400 if (p->error_indicator) {
16401 D(p->level--);
16402 return NULL;
16403 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016404 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 +010016405 void *_opt_var;
16406 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016407 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016408 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080016409 (a = (asdl_expr_seq*)_gather_134_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016410 &&
16411 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16412 )
16413 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016414 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 +010016415 _res = a;
16416 if (_res == NULL && PyErr_Occurred()) {
16417 p->error_indicator = 1;
16418 D(p->level--);
16419 return NULL;
16420 }
16421 goto done;
16422 }
16423 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016424 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16426 }
16427 _res = NULL;
16428 done:
16429 D(p->level--);
16430 return _res;
16431}
16432
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016433// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16434static asdl_expr_seq*
16435star_targets_tuple_seq_rule(Parser *p)
16436{
16437 D(p->level++);
16438 if (p->error_indicator) {
16439 D(p->level--);
16440 return NULL;
16441 }
16442 asdl_expr_seq* _res = NULL;
16443 int _mark = p->mark;
16444 { // star_target ((',' star_target))+ ','?
16445 if (p->error_indicator) {
16446 D(p->level--);
16447 return NULL;
16448 }
16449 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16450 void *_opt_var;
16451 UNUSED(_opt_var); // Silence compiler warnings
16452 expr_ty a;
16453 asdl_seq * b;
16454 if (
16455 (a = star_target_rule(p)) // star_target
16456 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016457 (b = _loop1_136_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016458 &&
16459 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16460 )
16461 {
16462 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16463 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16464 if (_res == NULL && PyErr_Occurred()) {
16465 p->error_indicator = 1;
16466 D(p->level--);
16467 return NULL;
16468 }
16469 goto done;
16470 }
16471 p->mark = _mark;
16472 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16474 }
16475 { // star_target ','
16476 if (p->error_indicator) {
16477 D(p->level--);
16478 return NULL;
16479 }
16480 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16481 Token * _literal;
16482 expr_ty a;
16483 if (
16484 (a = star_target_rule(p)) // star_target
16485 &&
16486 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16487 )
16488 {
16489 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16490 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16491 if (_res == NULL && PyErr_Occurred()) {
16492 p->error_indicator = 1;
16493 D(p->level--);
16494 return NULL;
16495 }
16496 goto done;
16497 }
16498 p->mark = _mark;
16499 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16501 }
16502 _res = NULL;
16503 done:
16504 D(p->level--);
16505 return _res;
16506}
16507
16508// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016509static expr_ty
16510star_target_rule(Parser *p)
16511{
16512 D(p->level++);
16513 if (p->error_indicator) {
16514 D(p->level--);
16515 return NULL;
16516 }
16517 expr_ty _res = NULL;
16518 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16519 D(p->level--);
16520 return _res;
16521 }
16522 int _mark = p->mark;
16523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16524 p->error_indicator = 1;
16525 D(p->level--);
16526 return NULL;
16527 }
16528 int _start_lineno = p->tokens[_mark]->lineno;
16529 UNUSED(_start_lineno); // Only used by EXTRA macro
16530 int _start_col_offset = p->tokens[_mark]->col_offset;
16531 UNUSED(_start_col_offset); // Only used by EXTRA macro
16532 { // '*' (!'*' star_target)
16533 if (p->error_indicator) {
16534 D(p->level--);
16535 return NULL;
16536 }
16537 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16538 Token * _literal;
16539 void *a;
16540 if (
16541 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16542 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080016543 (a = _tmp_137_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016544 )
16545 {
16546 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16547 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16548 if (_token == NULL) {
16549 D(p->level--);
16550 return NULL;
16551 }
16552 int _end_lineno = _token->end_lineno;
16553 UNUSED(_end_lineno); // Only used by EXTRA macro
16554 int _end_col_offset = _token->end_col_offset;
16555 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016556 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016557 if (_res == NULL && PyErr_Occurred()) {
16558 p->error_indicator = 1;
16559 D(p->level--);
16560 return NULL;
16561 }
16562 goto done;
16563 }
16564 p->mark = _mark;
16565 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16567 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016568 { // target_with_star_atom
16569 if (p->error_indicator) {
16570 D(p->level--);
16571 return NULL;
16572 }
16573 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16574 expr_ty target_with_star_atom_var;
16575 if (
16576 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16577 )
16578 {
16579 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16580 _res = target_with_star_atom_var;
16581 goto done;
16582 }
16583 p->mark = _mark;
16584 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16586 }
16587 _res = NULL;
16588 done:
16589 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16590 D(p->level--);
16591 return _res;
16592}
16593
16594// target_with_star_atom:
16595// | t_primary '.' NAME !t_lookahead
16596// | t_primary '[' slices ']' !t_lookahead
16597// | star_atom
16598static expr_ty
16599target_with_star_atom_rule(Parser *p)
16600{
16601 D(p->level++);
16602 if (p->error_indicator) {
16603 D(p->level--);
16604 return NULL;
16605 }
16606 expr_ty _res = NULL;
16607 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16608 D(p->level--);
16609 return _res;
16610 }
16611 int _mark = p->mark;
16612 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16613 p->error_indicator = 1;
16614 D(p->level--);
16615 return NULL;
16616 }
16617 int _start_lineno = p->tokens[_mark]->lineno;
16618 UNUSED(_start_lineno); // Only used by EXTRA macro
16619 int _start_col_offset = p->tokens[_mark]->col_offset;
16620 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016621 { // t_primary '.' NAME !t_lookahead
16622 if (p->error_indicator) {
16623 D(p->level--);
16624 return NULL;
16625 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016626 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 +010016627 Token * _literal;
16628 expr_ty a;
16629 expr_ty b;
16630 if (
16631 (a = t_primary_rule(p)) // t_primary
16632 &&
16633 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16634 &&
16635 (b = _PyPegen_name_token(p)) // NAME
16636 &&
16637 _PyPegen_lookahead(0, t_lookahead_rule, p)
16638 )
16639 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016640 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 +010016641 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16642 if (_token == NULL) {
16643 D(p->level--);
16644 return NULL;
16645 }
16646 int _end_lineno = _token->end_lineno;
16647 UNUSED(_end_lineno); // Only used by EXTRA macro
16648 int _end_col_offset = _token->end_col_offset;
16649 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016650 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016651 if (_res == NULL && PyErr_Occurred()) {
16652 p->error_indicator = 1;
16653 D(p->level--);
16654 return NULL;
16655 }
16656 goto done;
16657 }
16658 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016659 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16661 }
16662 { // t_primary '[' slices ']' !t_lookahead
16663 if (p->error_indicator) {
16664 D(p->level--);
16665 return NULL;
16666 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016667 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 +010016668 Token * _literal;
16669 Token * _literal_1;
16670 expr_ty a;
16671 expr_ty b;
16672 if (
16673 (a = t_primary_rule(p)) // t_primary
16674 &&
16675 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16676 &&
16677 (b = slices_rule(p)) // slices
16678 &&
16679 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16680 &&
16681 _PyPegen_lookahead(0, t_lookahead_rule, p)
16682 )
16683 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016684 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 +010016685 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16686 if (_token == NULL) {
16687 D(p->level--);
16688 return NULL;
16689 }
16690 int _end_lineno = _token->end_lineno;
16691 UNUSED(_end_lineno); // Only used by EXTRA macro
16692 int _end_col_offset = _token->end_col_offset;
16693 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016694 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016695 if (_res == NULL && PyErr_Occurred()) {
16696 p->error_indicator = 1;
16697 D(p->level--);
16698 return NULL;
16699 }
16700 goto done;
16701 }
16702 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016703 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16705 }
16706 { // star_atom
16707 if (p->error_indicator) {
16708 D(p->level--);
16709 return NULL;
16710 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016711 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 +010016712 expr_ty star_atom_var;
16713 if (
16714 (star_atom_var = star_atom_rule(p)) // star_atom
16715 )
16716 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016717 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 +010016718 _res = star_atom_var;
16719 goto done;
16720 }
16721 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016722 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16724 }
16725 _res = NULL;
16726 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016727 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016728 D(p->level--);
16729 return _res;
16730}
16731
16732// star_atom:
16733// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016734// | '(' target_with_star_atom ')'
16735// | '(' star_targets_tuple_seq? ')'
16736// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016737static expr_ty
16738star_atom_rule(Parser *p)
16739{
16740 D(p->level++);
16741 if (p->error_indicator) {
16742 D(p->level--);
16743 return NULL;
16744 }
16745 expr_ty _res = NULL;
16746 int _mark = p->mark;
16747 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16748 p->error_indicator = 1;
16749 D(p->level--);
16750 return NULL;
16751 }
16752 int _start_lineno = p->tokens[_mark]->lineno;
16753 UNUSED(_start_lineno); // Only used by EXTRA macro
16754 int _start_col_offset = p->tokens[_mark]->col_offset;
16755 UNUSED(_start_col_offset); // Only used by EXTRA macro
16756 { // NAME
16757 if (p->error_indicator) {
16758 D(p->level--);
16759 return NULL;
16760 }
16761 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16762 expr_ty a;
16763 if (
16764 (a = _PyPegen_name_token(p)) // NAME
16765 )
16766 {
16767 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16768 _res = _PyPegen_set_expr_context ( p , a , Store );
16769 if (_res == NULL && PyErr_Occurred()) {
16770 p->error_indicator = 1;
16771 D(p->level--);
16772 return NULL;
16773 }
16774 goto done;
16775 }
16776 p->mark = _mark;
16777 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16779 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016780 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016781 if (p->error_indicator) {
16782 D(p->level--);
16783 return NULL;
16784 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016785 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 +010016786 Token * _literal;
16787 Token * _literal_1;
16788 expr_ty a;
16789 if (
16790 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16791 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016792 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016793 &&
16794 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16795 )
16796 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016797 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 +010016798 _res = _PyPegen_set_expr_context ( p , a , Store );
16799 if (_res == NULL && PyErr_Occurred()) {
16800 p->error_indicator = 1;
16801 D(p->level--);
16802 return NULL;
16803 }
16804 goto done;
16805 }
16806 p->mark = _mark;
16807 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016809 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016810 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016811 if (p->error_indicator) {
16812 D(p->level--);
16813 return NULL;
16814 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016815 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 +010016816 Token * _literal;
16817 Token * _literal_1;
16818 void *a;
16819 if (
16820 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16821 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016822 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016823 &&
16824 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16825 )
16826 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016827 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 +010016828 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16829 if (_token == NULL) {
16830 D(p->level--);
16831 return NULL;
16832 }
16833 int _end_lineno = _token->end_lineno;
16834 UNUSED(_end_lineno); // Only used by EXTRA macro
16835 int _end_col_offset = _token->end_col_offset;
16836 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016837 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016838 if (_res == NULL && PyErr_Occurred()) {
16839 p->error_indicator = 1;
16840 D(p->level--);
16841 return NULL;
16842 }
16843 goto done;
16844 }
16845 p->mark = _mark;
16846 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016848 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016849 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016850 if (p->error_indicator) {
16851 D(p->level--);
16852 return NULL;
16853 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016854 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 +010016855 Token * _literal;
16856 Token * _literal_1;
16857 void *a;
16858 if (
16859 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16860 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016861 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016862 &&
16863 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16864 )
16865 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016866 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 +010016867 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16868 if (_token == NULL) {
16869 D(p->level--);
16870 return NULL;
16871 }
16872 int _end_lineno = _token->end_lineno;
16873 UNUSED(_end_lineno); // Only used by EXTRA macro
16874 int _end_col_offset = _token->end_col_offset;
16875 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016876 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016877 if (_res == NULL && PyErr_Occurred()) {
16878 p->error_indicator = 1;
16879 D(p->level--);
16880 return NULL;
16881 }
16882 goto done;
16883 }
16884 p->mark = _mark;
16885 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016887 }
16888 _res = NULL;
16889 done:
16890 D(p->level--);
16891 return _res;
16892}
16893
16894// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16895static expr_ty
16896single_target_rule(Parser *p)
16897{
16898 D(p->level++);
16899 if (p->error_indicator) {
16900 D(p->level--);
16901 return NULL;
16902 }
16903 expr_ty _res = NULL;
16904 int _mark = p->mark;
16905 { // single_subscript_attribute_target
16906 if (p->error_indicator) {
16907 D(p->level--);
16908 return NULL;
16909 }
16910 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16911 expr_ty single_subscript_attribute_target_var;
16912 if (
16913 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16914 )
16915 {
16916 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16917 _res = single_subscript_attribute_target_var;
16918 goto done;
16919 }
16920 p->mark = _mark;
16921 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16923 }
16924 { // NAME
16925 if (p->error_indicator) {
16926 D(p->level--);
16927 return NULL;
16928 }
16929 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16930 expr_ty a;
16931 if (
16932 (a = _PyPegen_name_token(p)) // NAME
16933 )
16934 {
16935 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16936 _res = _PyPegen_set_expr_context ( p , a , Store );
16937 if (_res == NULL && PyErr_Occurred()) {
16938 p->error_indicator = 1;
16939 D(p->level--);
16940 return NULL;
16941 }
16942 goto done;
16943 }
16944 p->mark = _mark;
16945 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16947 }
16948 { // '(' single_target ')'
16949 if (p->error_indicator) {
16950 D(p->level--);
16951 return NULL;
16952 }
16953 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16954 Token * _literal;
16955 Token * _literal_1;
16956 expr_ty a;
16957 if (
16958 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16959 &&
16960 (a = single_target_rule(p)) // single_target
16961 &&
16962 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16963 )
16964 {
16965 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16966 _res = a;
16967 if (_res == NULL && PyErr_Occurred()) {
16968 p->error_indicator = 1;
16969 D(p->level--);
16970 return NULL;
16971 }
16972 goto done;
16973 }
16974 p->mark = _mark;
16975 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16977 }
16978 _res = NULL;
16979 done:
16980 D(p->level--);
16981 return _res;
16982}
16983
16984// single_subscript_attribute_target:
16985// | t_primary '.' NAME !t_lookahead
16986// | t_primary '[' slices ']' !t_lookahead
16987static expr_ty
16988single_subscript_attribute_target_rule(Parser *p)
16989{
16990 D(p->level++);
16991 if (p->error_indicator) {
16992 D(p->level--);
16993 return NULL;
16994 }
16995 expr_ty _res = NULL;
16996 int _mark = p->mark;
16997 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16998 p->error_indicator = 1;
16999 D(p->level--);
17000 return NULL;
17001 }
17002 int _start_lineno = p->tokens[_mark]->lineno;
17003 UNUSED(_start_lineno); // Only used by EXTRA macro
17004 int _start_col_offset = p->tokens[_mark]->col_offset;
17005 UNUSED(_start_col_offset); // Only used by EXTRA macro
17006 { // t_primary '.' NAME !t_lookahead
17007 if (p->error_indicator) {
17008 D(p->level--);
17009 return NULL;
17010 }
17011 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17012 Token * _literal;
17013 expr_ty a;
17014 expr_ty b;
17015 if (
17016 (a = t_primary_rule(p)) // t_primary
17017 &&
17018 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17019 &&
17020 (b = _PyPegen_name_token(p)) // NAME
17021 &&
17022 _PyPegen_lookahead(0, t_lookahead_rule, p)
17023 )
17024 {
17025 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17026 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17027 if (_token == NULL) {
17028 D(p->level--);
17029 return NULL;
17030 }
17031 int _end_lineno = _token->end_lineno;
17032 UNUSED(_end_lineno); // Only used by EXTRA macro
17033 int _end_col_offset = _token->end_col_offset;
17034 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017035 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017036 if (_res == NULL && PyErr_Occurred()) {
17037 p->error_indicator = 1;
17038 D(p->level--);
17039 return NULL;
17040 }
17041 goto done;
17042 }
17043 p->mark = _mark;
17044 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17046 }
17047 { // t_primary '[' slices ']' !t_lookahead
17048 if (p->error_indicator) {
17049 D(p->level--);
17050 return NULL;
17051 }
17052 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17053 Token * _literal;
17054 Token * _literal_1;
17055 expr_ty a;
17056 expr_ty b;
17057 if (
17058 (a = t_primary_rule(p)) // t_primary
17059 &&
17060 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17061 &&
17062 (b = slices_rule(p)) // slices
17063 &&
17064 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17065 &&
17066 _PyPegen_lookahead(0, t_lookahead_rule, p)
17067 )
17068 {
17069 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17070 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17071 if (_token == NULL) {
17072 D(p->level--);
17073 return NULL;
17074 }
17075 int _end_lineno = _token->end_lineno;
17076 UNUSED(_end_lineno); // Only used by EXTRA macro
17077 int _end_col_offset = _token->end_col_offset;
17078 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017079 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017080 if (_res == NULL && PyErr_Occurred()) {
17081 p->error_indicator = 1;
17082 D(p->level--);
17083 return NULL;
17084 }
17085 goto done;
17086 }
17087 p->mark = _mark;
17088 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17090 }
17091 _res = NULL;
17092 done:
17093 D(p->level--);
17094 return _res;
17095}
17096
17097// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017098static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017099del_targets_rule(Parser *p)
17100{
17101 D(p->level++);
17102 if (p->error_indicator) {
17103 D(p->level--);
17104 return NULL;
17105 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017106 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017107 int _mark = p->mark;
17108 { // ','.del_target+ ','?
17109 if (p->error_indicator) {
17110 D(p->level--);
17111 return NULL;
17112 }
17113 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17114 void *_opt_var;
17115 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017116 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017117 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017118 (a = (asdl_expr_seq*)_gather_138_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017119 &&
17120 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17121 )
17122 {
17123 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17124 _res = a;
17125 if (_res == NULL && PyErr_Occurred()) {
17126 p->error_indicator = 1;
17127 D(p->level--);
17128 return NULL;
17129 }
17130 goto done;
17131 }
17132 p->mark = _mark;
17133 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17135 }
17136 _res = NULL;
17137 done:
17138 D(p->level--);
17139 return _res;
17140}
17141
17142// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017143// | t_primary '.' NAME !t_lookahead
17144// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017145// | del_t_atom
17146static expr_ty
17147del_target_rule(Parser *p)
17148{
17149 D(p->level++);
17150 if (p->error_indicator) {
17151 D(p->level--);
17152 return NULL;
17153 }
17154 expr_ty _res = NULL;
17155 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17156 D(p->level--);
17157 return _res;
17158 }
17159 int _mark = p->mark;
17160 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17161 p->error_indicator = 1;
17162 D(p->level--);
17163 return NULL;
17164 }
17165 int _start_lineno = p->tokens[_mark]->lineno;
17166 UNUSED(_start_lineno); // Only used by EXTRA macro
17167 int _start_col_offset = p->tokens[_mark]->col_offset;
17168 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017169 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017170 if (p->error_indicator) {
17171 D(p->level--);
17172 return NULL;
17173 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017174 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 +010017175 Token * _literal;
17176 expr_ty a;
17177 expr_ty b;
17178 if (
17179 (a = t_primary_rule(p)) // t_primary
17180 &&
17181 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17182 &&
17183 (b = _PyPegen_name_token(p)) // NAME
17184 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017185 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017186 )
17187 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017188 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 +010017189 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17190 if (_token == NULL) {
17191 D(p->level--);
17192 return NULL;
17193 }
17194 int _end_lineno = _token->end_lineno;
17195 UNUSED(_end_lineno); // Only used by EXTRA macro
17196 int _end_col_offset = _token->end_col_offset;
17197 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017198 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017199 if (_res == NULL && PyErr_Occurred()) {
17200 p->error_indicator = 1;
17201 D(p->level--);
17202 return NULL;
17203 }
17204 goto done;
17205 }
17206 p->mark = _mark;
17207 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017209 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017210 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017211 if (p->error_indicator) {
17212 D(p->level--);
17213 return NULL;
17214 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017215 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 +010017216 Token * _literal;
17217 Token * _literal_1;
17218 expr_ty a;
17219 expr_ty b;
17220 if (
17221 (a = t_primary_rule(p)) // t_primary
17222 &&
17223 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17224 &&
17225 (b = slices_rule(p)) // slices
17226 &&
17227 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17228 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017229 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017230 )
17231 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017232 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 +010017233 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17234 if (_token == NULL) {
17235 D(p->level--);
17236 return NULL;
17237 }
17238 int _end_lineno = _token->end_lineno;
17239 UNUSED(_end_lineno); // Only used by EXTRA macro
17240 int _end_col_offset = _token->end_col_offset;
17241 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017242 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017243 if (_res == NULL && PyErr_Occurred()) {
17244 p->error_indicator = 1;
17245 D(p->level--);
17246 return NULL;
17247 }
17248 goto done;
17249 }
17250 p->mark = _mark;
17251 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017253 }
17254 { // del_t_atom
17255 if (p->error_indicator) {
17256 D(p->level--);
17257 return NULL;
17258 }
17259 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17260 expr_ty del_t_atom_var;
17261 if (
17262 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17263 )
17264 {
17265 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17266 _res = del_t_atom_var;
17267 goto done;
17268 }
17269 p->mark = _mark;
17270 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17272 }
17273 _res = NULL;
17274 done:
17275 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17276 D(p->level--);
17277 return _res;
17278}
17279
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017280// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017281static expr_ty
17282del_t_atom_rule(Parser *p)
17283{
17284 D(p->level++);
17285 if (p->error_indicator) {
17286 D(p->level--);
17287 return NULL;
17288 }
17289 expr_ty _res = NULL;
17290 int _mark = p->mark;
17291 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17292 p->error_indicator = 1;
17293 D(p->level--);
17294 return NULL;
17295 }
17296 int _start_lineno = p->tokens[_mark]->lineno;
17297 UNUSED(_start_lineno); // Only used by EXTRA macro
17298 int _start_col_offset = p->tokens[_mark]->col_offset;
17299 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017300 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017301 if (p->error_indicator) {
17302 D(p->level--);
17303 return NULL;
17304 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017305 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017306 expr_ty a;
17307 if (
17308 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017309 )
17310 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017311 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 +010017312 _res = _PyPegen_set_expr_context ( p , a , Del );
17313 if (_res == NULL && PyErr_Occurred()) {
17314 p->error_indicator = 1;
17315 D(p->level--);
17316 return NULL;
17317 }
17318 goto done;
17319 }
17320 p->mark = _mark;
17321 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017323 }
17324 { // '(' del_target ')'
17325 if (p->error_indicator) {
17326 D(p->level--);
17327 return NULL;
17328 }
17329 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17330 Token * _literal;
17331 Token * _literal_1;
17332 expr_ty a;
17333 if (
17334 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17335 &&
17336 (a = del_target_rule(p)) // del_target
17337 &&
17338 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17339 )
17340 {
17341 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17342 _res = _PyPegen_set_expr_context ( p , a , Del );
17343 if (_res == NULL && PyErr_Occurred()) {
17344 p->error_indicator = 1;
17345 D(p->level--);
17346 return NULL;
17347 }
17348 goto done;
17349 }
17350 p->mark = _mark;
17351 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17353 }
17354 { // '(' del_targets? ')'
17355 if (p->error_indicator) {
17356 D(p->level--);
17357 return NULL;
17358 }
17359 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17360 Token * _literal;
17361 Token * _literal_1;
17362 void *a;
17363 if (
17364 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17365 &&
17366 (a = del_targets_rule(p), 1) // del_targets?
17367 &&
17368 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17369 )
17370 {
17371 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17372 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17373 if (_token == NULL) {
17374 D(p->level--);
17375 return NULL;
17376 }
17377 int _end_lineno = _token->end_lineno;
17378 UNUSED(_end_lineno); // Only used by EXTRA macro
17379 int _end_col_offset = _token->end_col_offset;
17380 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017381 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017382 if (_res == NULL && PyErr_Occurred()) {
17383 p->error_indicator = 1;
17384 D(p->level--);
17385 return NULL;
17386 }
17387 goto done;
17388 }
17389 p->mark = _mark;
17390 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17392 }
17393 { // '[' del_targets? ']'
17394 if (p->error_indicator) {
17395 D(p->level--);
17396 return NULL;
17397 }
17398 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17399 Token * _literal;
17400 Token * _literal_1;
17401 void *a;
17402 if (
17403 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17404 &&
17405 (a = del_targets_rule(p), 1) // del_targets?
17406 &&
17407 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17408 )
17409 {
17410 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17411 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17412 if (_token == NULL) {
17413 D(p->level--);
17414 return NULL;
17415 }
17416 int _end_lineno = _token->end_lineno;
17417 UNUSED(_end_lineno); // Only used by EXTRA macro
17418 int _end_col_offset = _token->end_col_offset;
17419 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017420 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017421 if (_res == NULL && PyErr_Occurred()) {
17422 p->error_indicator = 1;
17423 D(p->level--);
17424 return NULL;
17425 }
17426 goto done;
17427 }
17428 p->mark = _mark;
17429 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17430 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17431 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017432 _res = NULL;
17433 done:
17434 D(p->level--);
17435 return _res;
17436}
17437
17438// targets: ','.target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017439static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017440targets_rule(Parser *p)
17441{
17442 D(p->level++);
17443 if (p->error_indicator) {
17444 D(p->level--);
17445 return NULL;
17446 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017447 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017448 int _mark = p->mark;
17449 { // ','.target+ ','?
17450 if (p->error_indicator) {
17451 D(p->level--);
17452 return NULL;
17453 }
17454 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17455 void *_opt_var;
17456 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017457 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017458 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080017459 (a = (asdl_expr_seq*)_gather_140_rule(p)) // ','.target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017460 &&
17461 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17462 )
17463 {
17464 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
17465 _res = a;
17466 if (_res == NULL && PyErr_Occurred()) {
17467 p->error_indicator = 1;
17468 D(p->level--);
17469 return NULL;
17470 }
17471 goto done;
17472 }
17473 p->mark = _mark;
17474 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
17475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
17476 }
17477 _res = NULL;
17478 done:
17479 D(p->level--);
17480 return _res;
17481}
17482
17483// target:
17484// | t_primary '.' NAME !t_lookahead
17485// | t_primary '[' slices ']' !t_lookahead
17486// | t_atom
17487static expr_ty
17488target_rule(Parser *p)
17489{
17490 D(p->level++);
17491 if (p->error_indicator) {
17492 D(p->level--);
17493 return NULL;
17494 }
17495 expr_ty _res = NULL;
17496 if (_PyPegen_is_memoized(p, target_type, &_res)) {
17497 D(p->level--);
17498 return _res;
17499 }
17500 int _mark = p->mark;
17501 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17502 p->error_indicator = 1;
17503 D(p->level--);
17504 return NULL;
17505 }
17506 int _start_lineno = p->tokens[_mark]->lineno;
17507 UNUSED(_start_lineno); // Only used by EXTRA macro
17508 int _start_col_offset = p->tokens[_mark]->col_offset;
17509 UNUSED(_start_col_offset); // Only used by EXTRA macro
17510 { // t_primary '.' NAME !t_lookahead
17511 if (p->error_indicator) {
17512 D(p->level--);
17513 return NULL;
17514 }
17515 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17516 Token * _literal;
17517 expr_ty a;
17518 expr_ty b;
17519 if (
17520 (a = t_primary_rule(p)) // t_primary
17521 &&
17522 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17523 &&
17524 (b = _PyPegen_name_token(p)) // NAME
17525 &&
17526 _PyPegen_lookahead(0, t_lookahead_rule, p)
17527 )
17528 {
17529 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17530 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17531 if (_token == NULL) {
17532 D(p->level--);
17533 return NULL;
17534 }
17535 int _end_lineno = _token->end_lineno;
17536 UNUSED(_end_lineno); // Only used by EXTRA macro
17537 int _end_col_offset = _token->end_col_offset;
17538 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017539 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017540 if (_res == NULL && PyErr_Occurred()) {
17541 p->error_indicator = 1;
17542 D(p->level--);
17543 return NULL;
17544 }
17545 goto done;
17546 }
17547 p->mark = _mark;
17548 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17550 }
17551 { // t_primary '[' slices ']' !t_lookahead
17552 if (p->error_indicator) {
17553 D(p->level--);
17554 return NULL;
17555 }
17556 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17557 Token * _literal;
17558 Token * _literal_1;
17559 expr_ty a;
17560 expr_ty b;
17561 if (
17562 (a = t_primary_rule(p)) // t_primary
17563 &&
17564 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17565 &&
17566 (b = slices_rule(p)) // slices
17567 &&
17568 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17569 &&
17570 _PyPegen_lookahead(0, t_lookahead_rule, p)
17571 )
17572 {
17573 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17574 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17575 if (_token == NULL) {
17576 D(p->level--);
17577 return NULL;
17578 }
17579 int _end_lineno = _token->end_lineno;
17580 UNUSED(_end_lineno); // Only used by EXTRA macro
17581 int _end_col_offset = _token->end_col_offset;
17582 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017583 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017584 if (_res == NULL && PyErr_Occurred()) {
17585 p->error_indicator = 1;
17586 D(p->level--);
17587 return NULL;
17588 }
17589 goto done;
17590 }
17591 p->mark = _mark;
17592 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17594 }
17595 { // t_atom
17596 if (p->error_indicator) {
17597 D(p->level--);
17598 return NULL;
17599 }
17600 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
17601 expr_ty t_atom_var;
17602 if (
17603 (t_atom_var = t_atom_rule(p)) // t_atom
17604 )
17605 {
17606 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
17607 _res = t_atom_var;
17608 goto done;
17609 }
17610 p->mark = _mark;
17611 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
17612 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
17613 }
17614 _res = NULL;
17615 done:
17616 _PyPegen_insert_memo(p, _mark, target_type, _res);
17617 D(p->level--);
17618 return _res;
17619}
17620
17621// Left-recursive
17622// t_primary:
17623// | t_primary '.' NAME &t_lookahead
17624// | t_primary '[' slices ']' &t_lookahead
17625// | t_primary genexp &t_lookahead
17626// | t_primary '(' arguments? ')' &t_lookahead
17627// | atom &t_lookahead
17628static expr_ty t_primary_raw(Parser *);
17629static expr_ty
17630t_primary_rule(Parser *p)
17631{
17632 D(p->level++);
17633 expr_ty _res = NULL;
17634 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17635 D(p->level--);
17636 return _res;
17637 }
17638 int _mark = p->mark;
17639 int _resmark = p->mark;
17640 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017641 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17642 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017643 D(p->level--);
17644 return _res;
17645 }
17646 p->mark = _mark;
17647 void *_raw = t_primary_raw(p);
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017648 if (p->error_indicator)
17649 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017650 if (_raw == NULL || p->mark <= _resmark)
17651 break;
17652 _resmark = p->mark;
17653 _res = _raw;
17654 }
17655 p->mark = _resmark;
17656 D(p->level--);
17657 return _res;
17658}
17659static expr_ty
17660t_primary_raw(Parser *p)
17661{
17662 D(p->level++);
17663 if (p->error_indicator) {
17664 D(p->level--);
17665 return NULL;
17666 }
17667 expr_ty _res = NULL;
17668 int _mark = p->mark;
17669 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17670 p->error_indicator = 1;
17671 D(p->level--);
17672 return NULL;
17673 }
17674 int _start_lineno = p->tokens[_mark]->lineno;
17675 UNUSED(_start_lineno); // Only used by EXTRA macro
17676 int _start_col_offset = p->tokens[_mark]->col_offset;
17677 UNUSED(_start_col_offset); // Only used by EXTRA macro
17678 { // t_primary '.' NAME &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, "t_primary '.' NAME &t_lookahead"));
17684 Token * _literal;
17685 expr_ty a;
17686 expr_ty b;
17687 if (
17688 (a = t_primary_rule(p)) // t_primary
17689 &&
17690 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17691 &&
17692 (b = _PyPegen_name_token(p)) // NAME
17693 &&
17694 _PyPegen_lookahead(1, t_lookahead_rule, p)
17695 )
17696 {
17697 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17698 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17699 if (_token == NULL) {
17700 D(p->level--);
17701 return NULL;
17702 }
17703 int _end_lineno = _token->end_lineno;
17704 UNUSED(_end_lineno); // Only used by EXTRA macro
17705 int _end_col_offset = _token->end_col_offset;
17706 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017707 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017708 if (_res == NULL && PyErr_Occurred()) {
17709 p->error_indicator = 1;
17710 D(p->level--);
17711 return NULL;
17712 }
17713 goto done;
17714 }
17715 p->mark = _mark;
17716 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17718 }
17719 { // t_primary '[' slices ']' &t_lookahead
17720 if (p->error_indicator) {
17721 D(p->level--);
17722 return NULL;
17723 }
17724 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17725 Token * _literal;
17726 Token * _literal_1;
17727 expr_ty a;
17728 expr_ty b;
17729 if (
17730 (a = t_primary_rule(p)) // t_primary
17731 &&
17732 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17733 &&
17734 (b = slices_rule(p)) // slices
17735 &&
17736 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17737 &&
17738 _PyPegen_lookahead(1, t_lookahead_rule, p)
17739 )
17740 {
17741 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17742 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17743 if (_token == NULL) {
17744 D(p->level--);
17745 return NULL;
17746 }
17747 int _end_lineno = _token->end_lineno;
17748 UNUSED(_end_lineno); // Only used by EXTRA macro
17749 int _end_col_offset = _token->end_col_offset;
17750 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017751 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017752 if (_res == NULL && PyErr_Occurred()) {
17753 p->error_indicator = 1;
17754 D(p->level--);
17755 return NULL;
17756 }
17757 goto done;
17758 }
17759 p->mark = _mark;
17760 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17762 }
17763 { // t_primary genexp &t_lookahead
17764 if (p->error_indicator) {
17765 D(p->level--);
17766 return NULL;
17767 }
17768 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17769 expr_ty a;
17770 expr_ty b;
17771 if (
17772 (a = t_primary_rule(p)) // t_primary
17773 &&
17774 (b = genexp_rule(p)) // genexp
17775 &&
17776 _PyPegen_lookahead(1, t_lookahead_rule, p)
17777 )
17778 {
17779 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17780 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17781 if (_token == NULL) {
17782 D(p->level--);
17783 return NULL;
17784 }
17785 int _end_lineno = _token->end_lineno;
17786 UNUSED(_end_lineno); // Only used by EXTRA macro
17787 int _end_col_offset = _token->end_col_offset;
17788 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017789 _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 +010017790 if (_res == NULL && PyErr_Occurred()) {
17791 p->error_indicator = 1;
17792 D(p->level--);
17793 return NULL;
17794 }
17795 goto done;
17796 }
17797 p->mark = _mark;
17798 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17800 }
17801 { // t_primary '(' arguments? ')' &t_lookahead
17802 if (p->error_indicator) {
17803 D(p->level--);
17804 return NULL;
17805 }
17806 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17807 Token * _literal;
17808 Token * _literal_1;
17809 expr_ty a;
17810 void *b;
17811 if (
17812 (a = t_primary_rule(p)) // t_primary
17813 &&
17814 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17815 &&
17816 (b = arguments_rule(p), 1) // arguments?
17817 &&
17818 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17819 &&
17820 _PyPegen_lookahead(1, t_lookahead_rule, p)
17821 )
17822 {
17823 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17824 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17825 if (_token == NULL) {
17826 D(p->level--);
17827 return NULL;
17828 }
17829 int _end_lineno = _token->end_lineno;
17830 UNUSED(_end_lineno); // Only used by EXTRA macro
17831 int _end_col_offset = _token->end_col_offset;
17832 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017833 _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 +010017834 if (_res == NULL && PyErr_Occurred()) {
17835 p->error_indicator = 1;
17836 D(p->level--);
17837 return NULL;
17838 }
17839 goto done;
17840 }
17841 p->mark = _mark;
17842 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17844 }
17845 { // atom &t_lookahead
17846 if (p->error_indicator) {
17847 D(p->level--);
17848 return NULL;
17849 }
17850 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17851 expr_ty a;
17852 if (
17853 (a = atom_rule(p)) // atom
17854 &&
17855 _PyPegen_lookahead(1, t_lookahead_rule, p)
17856 )
17857 {
17858 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17859 _res = a;
17860 if (_res == NULL && PyErr_Occurred()) {
17861 p->error_indicator = 1;
17862 D(p->level--);
17863 return NULL;
17864 }
17865 goto done;
17866 }
17867 p->mark = _mark;
17868 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17870 }
17871 _res = NULL;
17872 done:
17873 D(p->level--);
17874 return _res;
17875}
17876
17877// t_lookahead: '(' | '[' | '.'
17878static void *
17879t_lookahead_rule(Parser *p)
17880{
17881 D(p->level++);
17882 if (p->error_indicator) {
17883 D(p->level--);
17884 return NULL;
17885 }
17886 void * _res = NULL;
17887 int _mark = p->mark;
17888 { // '('
17889 if (p->error_indicator) {
17890 D(p->level--);
17891 return NULL;
17892 }
17893 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17894 Token * _literal;
17895 if (
17896 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17897 )
17898 {
17899 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17900 _res = _literal;
17901 goto done;
17902 }
17903 p->mark = _mark;
17904 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17906 }
17907 { // '['
17908 if (p->error_indicator) {
17909 D(p->level--);
17910 return NULL;
17911 }
17912 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17913 Token * _literal;
17914 if (
17915 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17916 )
17917 {
17918 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17919 _res = _literal;
17920 goto done;
17921 }
17922 p->mark = _mark;
17923 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17925 }
17926 { // '.'
17927 if (p->error_indicator) {
17928 D(p->level--);
17929 return NULL;
17930 }
17931 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17932 Token * _literal;
17933 if (
17934 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17935 )
17936 {
17937 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17938 _res = _literal;
17939 goto done;
17940 }
17941 p->mark = _mark;
17942 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17944 }
17945 _res = NULL;
17946 done:
17947 D(p->level--);
17948 return _res;
17949}
17950
17951// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
17952static expr_ty
17953t_atom_rule(Parser *p)
17954{
17955 D(p->level++);
17956 if (p->error_indicator) {
17957 D(p->level--);
17958 return NULL;
17959 }
17960 expr_ty _res = NULL;
17961 int _mark = p->mark;
17962 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17963 p->error_indicator = 1;
17964 D(p->level--);
17965 return NULL;
17966 }
17967 int _start_lineno = p->tokens[_mark]->lineno;
17968 UNUSED(_start_lineno); // Only used by EXTRA macro
17969 int _start_col_offset = p->tokens[_mark]->col_offset;
17970 UNUSED(_start_col_offset); // Only used by EXTRA macro
17971 { // NAME
17972 if (p->error_indicator) {
17973 D(p->level--);
17974 return NULL;
17975 }
17976 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
17977 expr_ty a;
17978 if (
17979 (a = _PyPegen_name_token(p)) // NAME
17980 )
17981 {
17982 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
17983 _res = _PyPegen_set_expr_context ( p , a , Store );
17984 if (_res == NULL && PyErr_Occurred()) {
17985 p->error_indicator = 1;
17986 D(p->level--);
17987 return NULL;
17988 }
17989 goto done;
17990 }
17991 p->mark = _mark;
17992 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17993 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
17994 }
17995 { // '(' target ')'
17996 if (p->error_indicator) {
17997 D(p->level--);
17998 return NULL;
17999 }
18000 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
18001 Token * _literal;
18002 Token * _literal_1;
18003 expr_ty a;
18004 if (
18005 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18006 &&
18007 (a = target_rule(p)) // target
18008 &&
18009 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18010 )
18011 {
18012 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
18013 _res = _PyPegen_set_expr_context ( p , a , Store );
18014 if (_res == NULL && PyErr_Occurred()) {
18015 p->error_indicator = 1;
18016 D(p->level--);
18017 return NULL;
18018 }
18019 goto done;
18020 }
18021 p->mark = _mark;
18022 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
18024 }
18025 { // '(' targets? ')'
18026 if (p->error_indicator) {
18027 D(p->level--);
18028 return NULL;
18029 }
18030 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
18031 Token * _literal;
18032 Token * _literal_1;
18033 void *b;
18034 if (
18035 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18036 &&
18037 (b = targets_rule(p), 1) // targets?
18038 &&
18039 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18040 )
18041 {
18042 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
18043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18044 if (_token == NULL) {
18045 D(p->level--);
18046 return NULL;
18047 }
18048 int _end_lineno = _token->end_lineno;
18049 UNUSED(_end_lineno); // Only used by EXTRA macro
18050 int _end_col_offset = _token->end_col_offset;
18051 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018052 _res = _PyAST_Tuple ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018053 if (_res == NULL && PyErr_Occurred()) {
18054 p->error_indicator = 1;
18055 D(p->level--);
18056 return NULL;
18057 }
18058 goto done;
18059 }
18060 p->mark = _mark;
18061 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
18063 }
18064 { // '[' targets? ']'
18065 if (p->error_indicator) {
18066 D(p->level--);
18067 return NULL;
18068 }
18069 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
18070 Token * _literal;
18071 Token * _literal_1;
18072 void *b;
18073 if (
18074 (_literal = _PyPegen_expect_token(p, 9)) // token='['
18075 &&
18076 (b = targets_rule(p), 1) // targets?
18077 &&
18078 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
18079 )
18080 {
18081 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
18082 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18083 if (_token == NULL) {
18084 D(p->level--);
18085 return NULL;
18086 }
18087 int _end_lineno = _token->end_lineno;
18088 UNUSED(_end_lineno); // Only used by EXTRA macro
18089 int _end_col_offset = _token->end_col_offset;
18090 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020018091 _res = _PyAST_List ( b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018092 if (_res == NULL && PyErr_Occurred()) {
18093 p->error_indicator = 1;
18094 D(p->level--);
18095 return NULL;
18096 }
18097 goto done;
18098 }
18099 p->mark = _mark;
18100 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
18101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
18102 }
18103 _res = NULL;
18104 done:
18105 D(p->level--);
18106 return _res;
18107}
18108
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018109// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018110// | args ',' '*'
18111// | expression for_if_clauses ',' [args | expression for_if_clauses]
18112// | args for_if_clauses
18113// | args ',' expression for_if_clauses
18114// | args ',' args
18115static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018116invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018117{
18118 D(p->level++);
18119 if (p->error_indicator) {
18120 D(p->level--);
18121 return NULL;
18122 }
18123 void * _res = NULL;
18124 int _mark = p->mark;
18125 { // args ',' '*'
18126 if (p->error_indicator) {
18127 D(p->level--);
18128 return NULL;
18129 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018130 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018131 Token * _literal;
18132 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018133 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018134 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010018135 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018136 &&
18137 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18138 &&
18139 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
18140 )
18141 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018142 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018143 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018144 if (_res == NULL && PyErr_Occurred()) {
18145 p->error_indicator = 1;
18146 D(p->level--);
18147 return NULL;
18148 }
18149 goto done;
18150 }
18151 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018152 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
18154 }
18155 { // expression for_if_clauses ',' [args | expression for_if_clauses]
18156 if (p->error_indicator) {
18157 D(p->level--);
18158 return NULL;
18159 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018160 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 +010018161 Token * _literal;
18162 void *_opt_var;
18163 UNUSED(_opt_var); // Silence compiler warnings
18164 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018165 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018166 if (
18167 (a = expression_rule(p)) // expression
18168 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018169 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018170 &&
18171 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18172 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080018173 (_opt_var = _tmp_142_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018174 )
18175 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018176 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 +010018177 _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 +010018178 if (_res == NULL && PyErr_Occurred()) {
18179 p->error_indicator = 1;
18180 D(p->level--);
18181 return NULL;
18182 }
18183 goto done;
18184 }
18185 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018186 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
18188 }
18189 { // args for_if_clauses
18190 if (p->error_indicator) {
18191 D(p->level--);
18192 return NULL;
18193 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018194 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 +010018195 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018196 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018197 if (
18198 (a = args_rule(p)) // args
18199 &&
18200 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18201 )
18202 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018203 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 +010018204 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
18205 if (_res == NULL && PyErr_Occurred()) {
18206 p->error_indicator = 1;
18207 D(p->level--);
18208 return NULL;
18209 }
18210 goto done;
18211 }
18212 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018213 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
18215 }
18216 { // args ',' expression for_if_clauses
18217 if (p->error_indicator) {
18218 D(p->level--);
18219 return NULL;
18220 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018221 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 +010018222 Token * _literal;
18223 expr_ty a;
18224 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018225 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018226 if (
18227 (args_var = args_rule(p)) // args
18228 &&
18229 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18230 &&
18231 (a = expression_rule(p)) // expression
18232 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018233 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018234 )
18235 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018236 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 +010018237 _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 +010018238 if (_res == NULL && PyErr_Occurred()) {
18239 p->error_indicator = 1;
18240 D(p->level--);
18241 return NULL;
18242 }
18243 goto done;
18244 }
18245 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018246 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
18248 }
18249 { // args ',' args
18250 if (p->error_indicator) {
18251 D(p->level--);
18252 return NULL;
18253 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018254 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018255 Token * _literal;
18256 expr_ty a;
18257 expr_ty args_var;
18258 if (
18259 (a = args_rule(p)) // args
18260 &&
18261 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18262 &&
18263 (args_var = args_rule(p)) // args
18264 )
18265 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018266 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 +010018267 _res = _PyPegen_arguments_parsing_error ( p , a );
18268 if (_res == NULL && PyErr_Occurred()) {
18269 p->error_indicator = 1;
18270 D(p->level--);
18271 return NULL;
18272 }
18273 goto done;
18274 }
18275 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020018276 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
18278 }
18279 _res = NULL;
18280 done:
18281 D(p->level--);
18282 return _res;
18283}
18284
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018285// invalid_kwarg: !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018286static void *
18287invalid_kwarg_rule(Parser *p)
18288{
18289 D(p->level++);
18290 if (p->error_indicator) {
18291 D(p->level--);
18292 return NULL;
18293 }
18294 void * _res = NULL;
18295 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018296 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018297 if (p->error_indicator) {
18298 D(p->level--);
18299 return NULL;
18300 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018301 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018302 expr_ty a;
18303 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018304 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018305 _PyPegen_lookahead(0, _tmp_143_rule, p)
18306 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018307 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018308 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018309 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018310 )
18311 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018312 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 +010018313 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018314 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_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018324 }
18325 _res = NULL;
18326 done:
18327 D(p->level--);
18328 return _res;
18329}
18330
Pablo Galindob2802482021-04-15 21:38:45 +010018331// invalid_expression: !(NAME STRING | SOFT_KEYWORD) disjunction expression
18332static void *
18333invalid_expression_rule(Parser *p)
18334{
18335 D(p->level++);
18336 if (p->error_indicator) {
18337 D(p->level--);
18338 return NULL;
18339 }
18340 void * _res = NULL;
18341 int _mark = p->mark;
18342 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression
18343 if (p->error_indicator) {
18344 D(p->level--);
18345 return NULL;
18346 }
18347 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
18348 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018349 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018350 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018351 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018352 &&
18353 (a = disjunction_rule(p)) // disjunction
18354 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018355 (b = expression_rule(p)) // expression
Pablo Galindob2802482021-04-15 21:38:45 +010018356 )
18357 {
18358 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018359 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018360 if (_res == NULL && PyErr_Occurred()) {
18361 p->error_indicator = 1;
18362 D(p->level--);
18363 return NULL;
18364 }
18365 goto done;
18366 }
18367 p->mark = _mark;
18368 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
18369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression"));
18370 }
18371 _res = NULL;
18372 done:
18373 D(p->level--);
18374 return _res;
18375}
18376
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018377// invalid_named_expression:
18378// | expression ':=' expression
18379// | NAME '=' bitwise_or !('=' | ':=' | ',')
18380// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018381static void *
18382invalid_named_expression_rule(Parser *p)
18383{
18384 D(p->level++);
18385 if (p->error_indicator) {
18386 D(p->level--);
18387 return NULL;
18388 }
18389 void * _res = NULL;
18390 int _mark = p->mark;
18391 { // expression ':=' expression
18392 if (p->error_indicator) {
18393 D(p->level--);
18394 return NULL;
18395 }
18396 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18397 Token * _literal;
18398 expr_ty a;
18399 expr_ty expression_var;
18400 if (
18401 (a = expression_rule(p)) // expression
18402 &&
18403 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18404 &&
18405 (expression_var = expression_rule(p)) // expression
18406 )
18407 {
18408 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18409 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18410 if (_res == NULL && PyErr_Occurred()) {
18411 p->error_indicator = 1;
18412 D(p->level--);
18413 return NULL;
18414 }
18415 goto done;
18416 }
18417 p->mark = _mark;
18418 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18420 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018421 { // NAME '=' bitwise_or !('=' | ':=' | ',')
18422 if (p->error_indicator) {
18423 D(p->level--);
18424 return NULL;
18425 }
18426 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 +010018427 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018428 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018429 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018430 if (
18431 (a = _PyPegen_name_token(p)) // NAME
18432 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018433 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018434 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018435 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018436 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018437 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018438 )
18439 {
18440 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018441 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018442 if (_res == NULL && PyErr_Occurred()) {
18443 p->error_indicator = 1;
18444 D(p->level--);
18445 return NULL;
18446 }
18447 goto done;
18448 }
18449 p->mark = _mark;
18450 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=' | ',')"));
18452 }
18453 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')
18454 if (p->error_indicator) {
18455 D(p->level--);
18456 return NULL;
18457 }
18458 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 !('=' | ':=' | ',')"));
18459 expr_ty a;
18460 Token * b;
18461 expr_ty bitwise_or_var;
18462 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018463 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018464 &&
18465 (a = bitwise_or_rule(p)) // bitwise_or
18466 &&
18467 (b = _PyPegen_expect_token(p, 22)) // token='='
18468 &&
18469 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18470 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018471 _PyPegen_lookahead(0, _tmp_147_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018472 )
18473 {
18474 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018475 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018476 if (_res == NULL && PyErr_Occurred()) {
18477 p->error_indicator = 1;
18478 D(p->level--);
18479 return NULL;
18480 }
18481 goto done;
18482 }
18483 p->mark = _mark;
18484 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=' | ',')"));
18486 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018487 _res = NULL;
18488 done:
18489 D(p->level--);
18490 return _res;
18491}
18492
18493// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018494// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018495// | star_named_expression ',' star_named_expressions* ':' expression
18496// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018497// | ((star_targets '='))* star_expressions '='
18498// | ((star_targets '='))* yield_expr '='
18499// | star_expressions augassign (yield_expr | star_expressions)
18500static void *
18501invalid_assignment_rule(Parser *p)
18502{
18503 D(p->level++);
18504 if (p->error_indicator) {
18505 D(p->level--);
18506 return NULL;
18507 }
18508 void * _res = NULL;
18509 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018510 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018511 if (p->error_indicator) {
18512 D(p->level--);
18513 return NULL;
18514 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018515 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 +010018516 Token * _literal;
18517 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018518 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018519 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018520 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018521 &&
18522 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018523 &&
18524 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018525 )
18526 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018527 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18528 _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 +010018529 if (_res == NULL && PyErr_Occurred()) {
18530 p->error_indicator = 1;
18531 D(p->level--);
18532 return NULL;
18533 }
18534 goto done;
18535 }
18536 p->mark = _mark;
18537 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018539 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018540 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018541 if (p->error_indicator) {
18542 D(p->level--);
18543 return NULL;
18544 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018545 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 +010018546 Token * _literal;
18547 Token * _literal_1;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018548 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018549 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018550 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018551 if (
18552 (a = star_named_expression_rule(p)) // star_named_expression
18553 &&
18554 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18555 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018556 (_loop0_148_var = _loop0_148_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018557 &&
18558 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018559 &&
18560 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018561 )
18562 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018563 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 +010018564 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18565 if (_res == NULL && PyErr_Occurred()) {
18566 p->error_indicator = 1;
18567 D(p->level--);
18568 return NULL;
18569 }
18570 goto done;
18571 }
18572 p->mark = _mark;
18573 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018575 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018576 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018577 if (p->error_indicator) {
18578 D(p->level--);
18579 return NULL;
18580 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018581 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018582 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018583 expr_ty a;
18584 expr_ty expression_var;
18585 if (
18586 (a = expression_rule(p)) // expression
18587 &&
18588 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18589 &&
18590 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018591 )
18592 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018593 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 +010018594 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18595 if (_res == NULL && PyErr_Occurred()) {
18596 p->error_indicator = 1;
18597 D(p->level--);
18598 return NULL;
18599 }
18600 goto done;
18601 }
18602 p->mark = _mark;
18603 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018605 }
18606 { // ((star_targets '='))* star_expressions '='
18607 if (p->error_indicator) {
18608 D(p->level--);
18609 return NULL;
18610 }
18611 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18612 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018613 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018614 expr_ty a;
18615 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018616 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018617 &&
18618 (a = star_expressions_rule(p)) // star_expressions
18619 &&
18620 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18621 )
18622 {
18623 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 +030018624 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018625 if (_res == NULL && PyErr_Occurred()) {
18626 p->error_indicator = 1;
18627 D(p->level--);
18628 return NULL;
18629 }
18630 goto done;
18631 }
18632 p->mark = _mark;
18633 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18635 }
18636 { // ((star_targets '='))* yield_expr '='
18637 if (p->error_indicator) {
18638 D(p->level--);
18639 return NULL;
18640 }
18641 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18642 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018643 asdl_seq * _loop0_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018644 expr_ty a;
18645 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018646 (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018647 &&
18648 (a = yield_expr_rule(p)) // yield_expr
18649 &&
18650 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18651 )
18652 {
18653 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18654 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18655 if (_res == NULL && PyErr_Occurred()) {
18656 p->error_indicator = 1;
18657 D(p->level--);
18658 return NULL;
18659 }
18660 goto done;
18661 }
18662 p->mark = _mark;
18663 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18664 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18665 }
18666 { // star_expressions augassign (yield_expr | star_expressions)
18667 if (p->error_indicator) {
18668 D(p->level--);
18669 return NULL;
18670 }
18671 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018672 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018673 expr_ty a;
18674 AugOperator* augassign_var;
18675 if (
18676 (a = star_expressions_rule(p)) // star_expressions
18677 &&
18678 (augassign_var = augassign_rule(p)) // augassign
18679 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018680 (_tmp_151_var = _tmp_151_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018681 )
18682 {
18683 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18684 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18685 if (_res == NULL && PyErr_Occurred()) {
18686 p->error_indicator = 1;
18687 D(p->level--);
18688 return NULL;
18689 }
18690 goto done;
18691 }
18692 p->mark = _mark;
18693 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18695 }
18696 _res = NULL;
18697 done:
18698 D(p->level--);
18699 return _res;
18700}
18701
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018702// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18703static expr_ty
18704invalid_ann_assign_target_rule(Parser *p)
18705{
18706 D(p->level++);
18707 if (p->error_indicator) {
18708 D(p->level--);
18709 return NULL;
18710 }
18711 expr_ty _res = NULL;
18712 int _mark = p->mark;
18713 { // list
18714 if (p->error_indicator) {
18715 D(p->level--);
18716 return NULL;
18717 }
18718 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18719 expr_ty list_var;
18720 if (
18721 (list_var = list_rule(p)) // list
18722 )
18723 {
18724 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18725 _res = list_var;
18726 goto done;
18727 }
18728 p->mark = _mark;
18729 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18731 }
18732 { // tuple
18733 if (p->error_indicator) {
18734 D(p->level--);
18735 return NULL;
18736 }
18737 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18738 expr_ty tuple_var;
18739 if (
18740 (tuple_var = tuple_rule(p)) // tuple
18741 )
18742 {
18743 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18744 _res = tuple_var;
18745 goto done;
18746 }
18747 p->mark = _mark;
18748 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18750 }
18751 { // '(' invalid_ann_assign_target ')'
18752 if (p->error_indicator) {
18753 D(p->level--);
18754 return NULL;
18755 }
18756 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18757 Token * _literal;
18758 Token * _literal_1;
18759 expr_ty a;
18760 if (
18761 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18762 &&
18763 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18764 &&
18765 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18766 )
18767 {
18768 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18769 _res = a;
18770 if (_res == NULL && PyErr_Occurred()) {
18771 p->error_indicator = 1;
18772 D(p->level--);
18773 return NULL;
18774 }
18775 goto done;
18776 }
18777 p->mark = _mark;
18778 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18780 }
18781 _res = NULL;
18782 done:
18783 D(p->level--);
18784 return _res;
18785}
18786
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018787// invalid_del_stmt: 'del' star_expressions
18788static void *
18789invalid_del_stmt_rule(Parser *p)
18790{
18791 D(p->level++);
18792 if (p->error_indicator) {
18793 D(p->level--);
18794 return NULL;
18795 }
18796 void * _res = NULL;
18797 int _mark = p->mark;
18798 { // 'del' star_expressions
18799 if (p->error_indicator) {
18800 D(p->level--);
18801 return NULL;
18802 }
18803 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18804 Token * _keyword;
18805 expr_ty a;
18806 if (
18807 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18808 &&
18809 (a = star_expressions_rule(p)) // star_expressions
18810 )
18811 {
18812 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 +030018813 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018814 if (_res == NULL && PyErr_Occurred()) {
18815 p->error_indicator = 1;
18816 D(p->level--);
18817 return NULL;
18818 }
18819 goto done;
18820 }
18821 p->mark = _mark;
18822 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18824 }
18825 _res = NULL;
18826 done:
18827 D(p->level--);
18828 return _res;
18829}
18830
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018831// invalid_block: NEWLINE !INDENT
18832static void *
18833invalid_block_rule(Parser *p)
18834{
18835 D(p->level++);
18836 if (p->error_indicator) {
18837 D(p->level--);
18838 return NULL;
18839 }
18840 void * _res = NULL;
18841 int _mark = p->mark;
18842 { // NEWLINE !INDENT
18843 if (p->error_indicator) {
18844 D(p->level--);
18845 return NULL;
18846 }
18847 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18848 Token * newline_var;
18849 if (
18850 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18851 &&
18852 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18853 )
18854 {
18855 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18856 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18857 if (_res == NULL && PyErr_Occurred()) {
18858 p->error_indicator = 1;
18859 D(p->level--);
18860 return NULL;
18861 }
18862 goto done;
18863 }
18864 p->mark = _mark;
18865 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18867 }
18868 _res = NULL;
18869 done:
18870 D(p->level--);
18871 return _res;
18872}
18873
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018874// Left-recursive
18875// invalid_primary: primary '{'
18876static void *
18877invalid_primary_rule(Parser *p)
18878{
18879 D(p->level++);
18880 if (p->error_indicator) {
18881 D(p->level--);
18882 return NULL;
18883 }
18884 void * _res = NULL;
18885 int _mark = p->mark;
18886 { // primary '{'
18887 if (p->error_indicator) {
18888 D(p->level--);
18889 return NULL;
18890 }
18891 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18892 Token * a;
18893 expr_ty primary_var;
18894 if (
18895 (primary_var = primary_rule(p)) // primary
18896 &&
18897 (a = _PyPegen_expect_token(p, 25)) // token='{'
18898 )
18899 {
18900 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18901 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18902 if (_res == NULL && PyErr_Occurred()) {
18903 p->error_indicator = 1;
18904 D(p->level--);
18905 return NULL;
18906 }
18907 goto done;
18908 }
18909 p->mark = _mark;
18910 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18911 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18912 }
18913 _res = NULL;
18914 done:
18915 D(p->level--);
18916 return _res;
18917}
18918
Pablo Galindo835f14f2021-01-31 22:52:56 +000018919// invalid_comprehension:
18920// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018921// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18922// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018923static void *
18924invalid_comprehension_rule(Parser *p)
18925{
18926 D(p->level++);
18927 if (p->error_indicator) {
18928 D(p->level--);
18929 return NULL;
18930 }
18931 void * _res = NULL;
18932 int _mark = p->mark;
18933 { // ('[' | '(' | '{') starred_expression for_if_clauses
18934 if (p->error_indicator) {
18935 D(p->level--);
18936 return NULL;
18937 }
18938 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018939 void *_tmp_152_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018940 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018941 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018942 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018943 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018944 &&
18945 (a = starred_expression_rule(p)) // starred_expression
18946 &&
18947 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18948 )
18949 {
18950 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18951 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18952 if (_res == NULL && PyErr_Occurred()) {
18953 p->error_indicator = 1;
18954 D(p->level--);
18955 return NULL;
18956 }
18957 goto done;
18958 }
18959 p->mark = _mark;
18960 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18962 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018963 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018964 if (p->error_indicator) {
18965 D(p->level--);
18966 return NULL;
18967 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018968 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 +000018969 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018970 void *_tmp_153_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018971 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018972 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018973 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018974 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018975 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018976 &&
18977 (a = star_named_expression_rule(p)) // star_named_expression
18978 &&
18979 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18980 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018981 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018982 &&
18983 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018984 )
18985 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018986 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"));
18987 _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 +000018988 if (_res == NULL && PyErr_Occurred()) {
18989 p->error_indicator = 1;
18990 D(p->level--);
18991 return NULL;
18992 }
18993 goto done;
18994 }
18995 p->mark = _mark;
18996 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18998 }
18999 { // ('[' | '{') star_named_expression ',' for_if_clauses
19000 if (p->error_indicator) {
19001 D(p->level--);
19002 return NULL;
19003 }
19004 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019005 void *_tmp_154_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019006 expr_ty a;
19007 Token * b;
19008 asdl_comprehension_seq* for_if_clauses_var;
19009 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019010 (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010019011 &&
19012 (a = star_named_expression_rule(p)) // star_named_expression
19013 &&
19014 (b = _PyPegen_expect_token(p, 12)) // token=','
19015 &&
19016 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19017 )
19018 {
19019 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
19020 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
19021 if (_res == NULL && PyErr_Occurred()) {
19022 p->error_indicator = 1;
19023 D(p->level--);
19024 return NULL;
19025 }
19026 goto done;
19027 }
19028 p->mark = _mark;
19029 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000019031 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019032 _res = NULL;
19033 done:
19034 D(p->level--);
19035 return _res;
19036}
19037
19038// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
19039static void *
19040invalid_dict_comprehension_rule(Parser *p)
19041{
19042 D(p->level++);
19043 if (p->error_indicator) {
19044 D(p->level--);
19045 return NULL;
19046 }
19047 void * _res = NULL;
19048 int _mark = p->mark;
19049 { // '{' '**' bitwise_or for_if_clauses '}'
19050 if (p->error_indicator) {
19051 D(p->level--);
19052 return NULL;
19053 }
19054 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19055 Token * _literal;
19056 Token * _literal_1;
19057 Token * a;
19058 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019059 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019060 if (
19061 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
19062 &&
19063 (a = _PyPegen_expect_token(p, 35)) // token='**'
19064 &&
19065 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
19066 &&
19067 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
19068 &&
19069 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
19070 )
19071 {
19072 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19073 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
19074 if (_res == NULL && PyErr_Occurred()) {
19075 p->error_indicator = 1;
19076 D(p->level--);
19077 return NULL;
19078 }
19079 goto done;
19080 }
19081 p->mark = _mark;
19082 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
19083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
19084 }
19085 _res = NULL;
19086 done:
19087 D(p->level--);
19088 return _res;
19089}
19090
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019091// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019092static void *
19093invalid_parameters_rule(Parser *p)
19094{
19095 D(p->level++);
19096 if (p->error_indicator) {
19097 D(p->level--);
19098 return NULL;
19099 }
19100 void * _res = NULL;
19101 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019102 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019103 if (p->error_indicator) {
19104 D(p->level--);
19105 return NULL;
19106 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019107 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019108 asdl_seq * _loop0_155_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019109 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019110 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019111 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019112 (_loop0_155_var = _loop0_155_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019113 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019114 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019115 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019116 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019117 )
19118 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019119 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 +010019120 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019121 if (_res == NULL && PyErr_Occurred()) {
19122 p->error_indicator = 1;
19123 D(p->level--);
19124 return NULL;
19125 }
19126 goto done;
19127 }
19128 p->mark = _mark;
19129 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
19131 }
19132 _res = NULL;
19133 done:
19134 D(p->level--);
19135 return _res;
19136}
19137
19138// invalid_parameters_helper: slash_with_default | param_with_default+
19139static void *
19140invalid_parameters_helper_rule(Parser *p)
19141{
19142 D(p->level++);
19143 if (p->error_indicator) {
19144 D(p->level--);
19145 return NULL;
19146 }
19147 void * _res = NULL;
19148 int _mark = p->mark;
19149 { // slash_with_default
19150 if (p->error_indicator) {
19151 D(p->level--);
19152 return NULL;
19153 }
19154 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19155 SlashWithDefault* a;
19156 if (
19157 (a = slash_with_default_rule(p)) // slash_with_default
19158 )
19159 {
19160 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
19161 _res = _PyPegen_singleton_seq ( p , a );
19162 if (_res == NULL && PyErr_Occurred()) {
19163 p->error_indicator = 1;
19164 D(p->level--);
19165 return NULL;
19166 }
19167 goto done;
19168 }
19169 p->mark = _mark;
19170 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
19172 }
19173 { // param_with_default+
19174 if (p->error_indicator) {
19175 D(p->level--);
19176 return NULL;
19177 }
19178 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019179 asdl_seq * _loop1_156_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019180 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019181 (_loop1_156_var = _loop1_156_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019182 )
19183 {
19184 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019185 _res = _loop1_156_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019186 goto done;
19187 }
19188 p->mark = _mark;
19189 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019191 }
19192 _res = NULL;
19193 done:
19194 D(p->level--);
19195 return _res;
19196}
19197
19198// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019199// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019200static void *
19201invalid_lambda_parameters_rule(Parser *p)
19202{
19203 D(p->level++);
19204 if (p->error_indicator) {
19205 D(p->level--);
19206 return NULL;
19207 }
19208 void * _res = NULL;
19209 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019210 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019211 if (p->error_indicator) {
19212 D(p->level--);
19213 return NULL;
19214 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019215 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019216 asdl_seq * _loop0_157_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019217 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019218 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019219 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019220 (_loop0_157_var = _loop0_157_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019221 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019222 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019223 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019224 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019225 )
19226 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019227 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 +010019228 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019229 if (_res == NULL && PyErr_Occurred()) {
19230 p->error_indicator = 1;
19231 D(p->level--);
19232 return NULL;
19233 }
19234 goto done;
19235 }
19236 p->mark = _mark;
19237 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19239 }
19240 _res = NULL;
19241 done:
19242 D(p->level--);
19243 return _res;
19244}
19245
19246// invalid_lambda_parameters_helper:
19247// | lambda_slash_with_default
19248// | lambda_param_with_default+
19249static void *
19250invalid_lambda_parameters_helper_rule(Parser *p)
19251{
19252 D(p->level++);
19253 if (p->error_indicator) {
19254 D(p->level--);
19255 return NULL;
19256 }
19257 void * _res = NULL;
19258 int _mark = p->mark;
19259 { // lambda_slash_with_default
19260 if (p->error_indicator) {
19261 D(p->level--);
19262 return NULL;
19263 }
19264 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19265 SlashWithDefault* a;
19266 if (
19267 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19268 )
19269 {
19270 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19271 _res = _PyPegen_singleton_seq ( p , a );
19272 if (_res == NULL && PyErr_Occurred()) {
19273 p->error_indicator = 1;
19274 D(p->level--);
19275 return NULL;
19276 }
19277 goto done;
19278 }
19279 p->mark = _mark;
19280 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19282 }
19283 { // lambda_param_with_default+
19284 if (p->error_indicator) {
19285 D(p->level--);
19286 return NULL;
19287 }
19288 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019289 asdl_seq * _loop1_158_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019290 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019291 (_loop1_158_var = _loop1_158_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019292 )
19293 {
19294 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019295 _res = _loop1_158_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019296 goto done;
19297 }
19298 p->mark = _mark;
19299 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019301 }
19302 _res = NULL;
19303 done:
19304 D(p->level--);
19305 return _res;
19306}
19307
19308// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19309static void *
19310invalid_star_etc_rule(Parser *p)
19311{
19312 D(p->level++);
19313 if (p->error_indicator) {
19314 D(p->level--);
19315 return NULL;
19316 }
19317 void * _res = NULL;
19318 int _mark = p->mark;
19319 { // '*' (')' | ',' (')' | '**'))
19320 if (p->error_indicator) {
19321 D(p->level--);
19322 return NULL;
19323 }
19324 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019325 void *_tmp_159_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019326 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019327 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019328 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019329 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019330 (_tmp_159_var = _tmp_159_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019331 )
19332 {
19333 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019334 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019335 if (_res == NULL && PyErr_Occurred()) {
19336 p->error_indicator = 1;
19337 D(p->level--);
19338 return NULL;
19339 }
19340 goto done;
19341 }
19342 p->mark = _mark;
19343 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19345 }
19346 { // '*' ',' TYPE_COMMENT
19347 if (p->error_indicator) {
19348 D(p->level--);
19349 return NULL;
19350 }
19351 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19352 Token * _literal;
19353 Token * _literal_1;
19354 Token * type_comment_var;
19355 if (
19356 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19357 &&
19358 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19359 &&
19360 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19361 )
19362 {
19363 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19364 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19365 if (_res == NULL && PyErr_Occurred()) {
19366 p->error_indicator = 1;
19367 D(p->level--);
19368 return NULL;
19369 }
19370 goto done;
19371 }
19372 p->mark = _mark;
19373 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19375 }
19376 _res = NULL;
19377 done:
19378 D(p->level--);
19379 return _res;
19380}
19381
19382// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19383static void *
19384invalid_lambda_star_etc_rule(Parser *p)
19385{
19386 D(p->level++);
19387 if (p->error_indicator) {
19388 D(p->level--);
19389 return NULL;
19390 }
19391 void * _res = NULL;
19392 int _mark = p->mark;
19393 { // '*' (':' | ',' (':' | '**'))
19394 if (p->error_indicator) {
19395 D(p->level--);
19396 return NULL;
19397 }
19398 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19399 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019400 void *_tmp_160_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019401 if (
19402 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19403 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019404 (_tmp_160_var = _tmp_160_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019405 )
19406 {
19407 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19408 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19409 if (_res == NULL && PyErr_Occurred()) {
19410 p->error_indicator = 1;
19411 D(p->level--);
19412 return NULL;
19413 }
19414 goto done;
19415 }
19416 p->mark = _mark;
19417 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19419 }
19420 _res = NULL;
19421 done:
19422 D(p->level--);
19423 return _res;
19424}
19425
19426// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19427static void *
19428invalid_double_type_comments_rule(Parser *p)
19429{
19430 D(p->level++);
19431 if (p->error_indicator) {
19432 D(p->level--);
19433 return NULL;
19434 }
19435 void * _res = NULL;
19436 int _mark = p->mark;
19437 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19438 if (p->error_indicator) {
19439 D(p->level--);
19440 return NULL;
19441 }
19442 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19443 Token * indent_var;
19444 Token * newline_var;
19445 Token * newline_var_1;
19446 Token * type_comment_var;
19447 Token * type_comment_var_1;
19448 if (
19449 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19450 &&
19451 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19452 &&
19453 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19454 &&
19455 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19456 &&
19457 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19458 )
19459 {
19460 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"));
19461 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19462 if (_res == NULL && PyErr_Occurred()) {
19463 p->error_indicator = 1;
19464 D(p->level--);
19465 return NULL;
19466 }
19467 goto done;
19468 }
19469 p->mark = _mark;
19470 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19472 }
19473 _res = NULL;
19474 done:
19475 D(p->level--);
19476 return _res;
19477}
19478
Pablo Galindo58fb1562021-02-02 19:54:22 +000019479// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019480static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019481invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019482{
19483 D(p->level++);
19484 if (p->error_indicator) {
19485 D(p->level--);
19486 return NULL;
19487 }
19488 void * _res = NULL;
19489 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019490 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019491 if (p->error_indicator) {
19492 D(p->level--);
19493 return NULL;
19494 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019495 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 +030019496 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019497 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019498 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019499 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019500 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019501 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019502 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19503 &&
19504 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019505 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019506 _PyPegen_lookahead(1, _tmp_161_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019507 )
19508 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019509 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 +030019510 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019511 if (_res == NULL && PyErr_Occurred()) {
19512 p->error_indicator = 1;
19513 D(p->level--);
19514 return NULL;
19515 }
19516 goto done;
19517 }
19518 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019519 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019521 }
19522 _res = NULL;
19523 done:
19524 D(p->level--);
19525 return _res;
19526}
19527
19528// invalid_for_target: ASYNC? 'for' star_expressions
19529static void *
19530invalid_for_target_rule(Parser *p)
19531{
19532 D(p->level++);
19533 if (p->error_indicator) {
19534 D(p->level--);
19535 return NULL;
19536 }
19537 void * _res = NULL;
19538 int _mark = p->mark;
19539 { // ASYNC? 'for' star_expressions
19540 if (p->error_indicator) {
19541 D(p->level--);
19542 return NULL;
19543 }
19544 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19545 Token * _keyword;
19546 void *_opt_var;
19547 UNUSED(_opt_var); // Silence compiler warnings
19548 expr_ty a;
19549 if (
19550 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19551 &&
19552 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19553 &&
19554 (a = star_expressions_rule(p)) // star_expressions
19555 )
19556 {
19557 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 +030019558 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019559 if (_res == NULL && PyErr_Occurred()) {
19560 p->error_indicator = 1;
19561 D(p->level--);
19562 return NULL;
19563 }
19564 goto done;
19565 }
19566 p->mark = _mark;
19567 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19569 }
19570 _res = NULL;
19571 done:
19572 D(p->level--);
19573 return _res;
19574}
19575
Pablo Galindo8efad612021-03-24 19:34:17 +000019576// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019577static void *
19578invalid_group_rule(Parser *p)
19579{
19580 D(p->level++);
19581 if (p->error_indicator) {
19582 D(p->level--);
19583 return NULL;
19584 }
19585 void * _res = NULL;
19586 int _mark = p->mark;
19587 { // '(' starred_expression ')'
19588 if (p->error_indicator) {
19589 D(p->level--);
19590 return NULL;
19591 }
19592 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19593 Token * _literal;
19594 Token * _literal_1;
19595 expr_ty a;
19596 if (
19597 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19598 &&
19599 (a = starred_expression_rule(p)) // starred_expression
19600 &&
19601 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19602 )
19603 {
19604 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 +010019605 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019606 if (_res == NULL && PyErr_Occurred()) {
19607 p->error_indicator = 1;
19608 D(p->level--);
19609 return NULL;
19610 }
19611 goto done;
19612 }
19613 p->mark = _mark;
19614 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019616 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019617 { // '(' '**' expression ')'
19618 if (p->error_indicator) {
19619 D(p->level--);
19620 return NULL;
19621 }
19622 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19623 Token * _literal;
19624 Token * _literal_1;
19625 Token * a;
19626 expr_ty expression_var;
19627 if (
19628 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19629 &&
19630 (a = _PyPegen_expect_token(p, 35)) // token='**'
19631 &&
19632 (expression_var = expression_rule(p)) // expression
19633 &&
19634 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19635 )
19636 {
19637 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019638 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019639 if (_res == NULL && PyErr_Occurred()) {
19640 p->error_indicator = 1;
19641 D(p->level--);
19642 return NULL;
19643 }
19644 goto done;
19645 }
19646 p->mark = _mark;
19647 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19649 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019650 _res = NULL;
19651 done:
19652 D(p->level--);
19653 return _res;
19654}
19655
19656// invalid_import_from_targets: import_from_as_names ','
19657static void *
19658invalid_import_from_targets_rule(Parser *p)
19659{
19660 D(p->level++);
19661 if (p->error_indicator) {
19662 D(p->level--);
19663 return NULL;
19664 }
19665 void * _res = NULL;
19666 int _mark = p->mark;
19667 { // import_from_as_names ','
19668 if (p->error_indicator) {
19669 D(p->level--);
19670 return NULL;
19671 }
19672 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19673 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019674 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019675 if (
19676 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19677 &&
19678 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19679 )
19680 {
19681 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19682 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19683 if (_res == NULL && PyErr_Occurred()) {
19684 p->error_indicator = 1;
19685 D(p->level--);
19686 return NULL;
19687 }
19688 goto done;
19689 }
19690 p->mark = _mark;
19691 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19693 }
19694 _res = NULL;
19695 done:
19696 D(p->level--);
19697 return _res;
19698}
19699
Pablo Galindo58fb1562021-02-02 19:54:22 +000019700// invalid_with_stmt:
19701// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19702// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19703static void *
19704invalid_with_stmt_rule(Parser *p)
19705{
19706 D(p->level++);
19707 if (p->error_indicator) {
19708 D(p->level--);
19709 return NULL;
19710 }
19711 void * _res = NULL;
19712 int _mark = p->mark;
19713 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19714 if (p->error_indicator) {
19715 D(p->level--);
19716 return NULL;
19717 }
19718 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019719 asdl_seq * _gather_162_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019720 Token * _keyword;
19721 Token * _literal;
19722 void *_opt_var;
19723 UNUSED(_opt_var); // Silence compiler warnings
19724 if (
19725 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19726 &&
19727 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19728 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019729 (_gather_162_var = _gather_162_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019730 &&
19731 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19732 )
19733 {
19734 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019735 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_162_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019736 goto done;
19737 }
19738 p->mark = _mark;
19739 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19741 }
19742 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19743 if (p->error_indicator) {
19744 D(p->level--);
19745 return NULL;
19746 }
19747 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019748 asdl_seq * _gather_164_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019749 Token * _keyword;
19750 Token * _literal;
19751 Token * _literal_1;
19752 Token * _literal_2;
19753 void *_opt_var;
19754 UNUSED(_opt_var); // Silence compiler warnings
19755 void *_opt_var_1;
19756 UNUSED(_opt_var_1); // Silence compiler warnings
19757 if (
19758 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19759 &&
19760 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19761 &&
19762 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19763 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019764 (_gather_164_var = _gather_164_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019765 &&
19766 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19767 &&
19768 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19769 &&
19770 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19771 )
19772 {
19773 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019774 _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 +000019775 goto done;
19776 }
19777 p->mark = _mark;
19778 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19780 }
19781 _res = NULL;
19782 done:
19783 D(p->level--);
19784 return _res;
19785}
19786
Pablo Galindo56c95df2021-04-21 15:28:21 +010019787// invalid_with_stmt_indent:
19788// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19789// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019790static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019791invalid_with_stmt_indent_rule(Parser *p)
19792{
19793 D(p->level++);
19794 if (p->error_indicator) {
19795 D(p->level--);
19796 return NULL;
19797 }
19798 void * _res = NULL;
19799 int _mark = p->mark;
19800 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19801 if (p->error_indicator) {
19802 D(p->level--);
19803 return NULL;
19804 }
19805 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019806 asdl_seq * _gather_166_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019807 Token * _literal;
19808 void *_opt_var;
19809 UNUSED(_opt_var); // 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 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019817 (_gather_166_var = _gather_166_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019818 &&
19819 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19820 &&
19821 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19822 &&
19823 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19824 )
19825 {
19826 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"));
19827 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19828 if (_res == NULL && PyErr_Occurred()) {
19829 p->error_indicator = 1;
19830 D(p->level--);
19831 return NULL;
19832 }
19833 goto done;
19834 }
19835 p->mark = _mark;
19836 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19838 }
19839 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19840 if (p->error_indicator) {
19841 D(p->level--);
19842 return NULL;
19843 }
19844 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019845 asdl_seq * _gather_168_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019846 Token * _literal;
19847 Token * _literal_1;
19848 Token * _literal_2;
19849 void *_opt_var;
19850 UNUSED(_opt_var); // Silence compiler warnings
19851 void *_opt_var_1;
19852 UNUSED(_opt_var_1); // Silence compiler warnings
19853 Token * a;
19854 Token * newline_var;
19855 if (
19856 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19857 &&
19858 (a = _PyPegen_expect_token(p, 519)) // token='with'
19859 &&
19860 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19861 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019862 (_gather_168_var = _gather_168_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019863 &&
19864 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19865 &&
19866 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19867 &&
19868 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19869 &&
19870 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19871 &&
19872 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19873 )
19874 {
19875 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"));
19876 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19877 if (_res == NULL && PyErr_Occurred()) {
19878 p->error_indicator = 1;
19879 D(p->level--);
19880 return NULL;
19881 }
19882 goto done;
19883 }
19884 p->mark = _mark;
19885 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19887 }
19888 _res = NULL;
19889 done:
19890 D(p->level--);
19891 return _res;
19892}
19893
19894// invalid_try_stmt: 'try' ':' NEWLINE !INDENT
19895static void *
19896invalid_try_stmt_rule(Parser *p)
19897{
19898 D(p->level++);
19899 if (p->error_indicator) {
19900 D(p->level--);
19901 return NULL;
19902 }
19903 void * _res = NULL;
19904 int _mark = p->mark;
19905 { // 'try' ':' NEWLINE !INDENT
19906 if (p->error_indicator) {
19907 D(p->level--);
19908 return NULL;
19909 }
19910 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19911 Token * _literal;
19912 Token * a;
19913 Token * newline_var;
19914 if (
19915 (a = _PyPegen_expect_token(p, 511)) // token='try'
19916 &&
19917 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19918 &&
19919 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19920 &&
19921 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19922 )
19923 {
19924 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19925 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19926 if (_res == NULL && PyErr_Occurred()) {
19927 p->error_indicator = 1;
19928 D(p->level--);
19929 return NULL;
19930 }
19931 goto done;
19932 }
19933 p->mark = _mark;
19934 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19936 }
19937 _res = NULL;
19938 done:
19939 D(p->level--);
19940 return _res;
19941}
19942
19943// invalid_except_stmt:
19944// | 'except' expression ',' expressions ['as' NAME] ':'
19945// | 'except' expression ['as' NAME] NEWLINE
19946// | 'except' NEWLINE
19947static void *
19948invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019949{
19950 D(p->level++);
19951 if (p->error_indicator) {
19952 D(p->level--);
19953 return NULL;
19954 }
19955 void * _res = NULL;
19956 int _mark = p->mark;
19957 { // 'except' expression ',' expressions ['as' NAME] ':'
19958 if (p->error_indicator) {
19959 D(p->level--);
19960 return NULL;
19961 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019962 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 +000019963 Token * _keyword;
19964 Token * _literal;
19965 Token * _literal_1;
19966 void *_opt_var;
19967 UNUSED(_opt_var); // Silence compiler warnings
19968 expr_ty a;
19969 expr_ty expressions_var;
19970 if (
19971 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19972 &&
19973 (a = expression_rule(p)) // expression
19974 &&
19975 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19976 &&
19977 (expressions_var = expressions_rule(p)) // expressions
19978 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070019979 (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019980 &&
19981 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19982 )
19983 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019984 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 -070019985 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019986 if (_res == NULL && PyErr_Occurred()) {
19987 p->error_indicator = 1;
19988 D(p->level--);
19989 return NULL;
19990 }
19991 goto done;
19992 }
19993 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019994 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19996 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019997 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019998 if (p->error_indicator) {
19999 D(p->level--);
20000 return NULL;
20001 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020002 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 +000020003 void *_opt_var;
20004 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010020005 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020006 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020007 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020008 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020009 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020010 &&
20011 (expression_var = expression_rule(p)) // expression
20012 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070020013 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000020014 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020015 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020016 )
20017 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020018 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
20019 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20020 if (_res == NULL && PyErr_Occurred()) {
20021 p->error_indicator = 1;
20022 D(p->level--);
20023 return NULL;
20024 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020025 goto done;
20026 }
20027 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020028 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020030 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020031 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000020032 if (p->error_indicator) {
20033 D(p->level--);
20034 return NULL;
20035 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020036 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20037 Token * a;
20038 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000020039 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010020040 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020041 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010020042 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000020043 )
20044 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010020045 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
20046 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20047 if (_res == NULL && PyErr_Occurred()) {
20048 p->error_indicator = 1;
20049 D(p->level--);
20050 return NULL;
20051 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000020052 goto done;
20053 }
20054 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020055 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000020057 }
20058 _res = NULL;
20059 done:
20060 D(p->level--);
20061 return _res;
20062}
20063
Pablo Galindo56c95df2021-04-21 15:28:21 +010020064// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
20065static void *
20066invalid_finally_stmt_rule(Parser *p)
20067{
20068 D(p->level++);
20069 if (p->error_indicator) {
20070 D(p->level--);
20071 return NULL;
20072 }
20073 void * _res = NULL;
20074 int _mark = p->mark;
20075 { // 'finally' ':' NEWLINE !INDENT
20076 if (p->error_indicator) {
20077 D(p->level--);
20078 return NULL;
20079 }
20080 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20081 Token * _literal;
20082 Token * a;
20083 Token * newline_var;
20084 if (
20085 (a = _PyPegen_expect_token(p, 522)) // token='finally'
20086 &&
20087 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20088 &&
20089 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20090 &&
20091 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20092 )
20093 {
20094 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20095 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
20096 if (_res == NULL && PyErr_Occurred()) {
20097 p->error_indicator = 1;
20098 D(p->level--);
20099 return NULL;
20100 }
20101 goto done;
20102 }
20103 p->mark = _mark;
20104 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
20106 }
20107 _res = NULL;
20108 done:
20109 D(p->level--);
20110 return _res;
20111}
20112
20113// invalid_except_stmt_indent:
20114// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20115// | 'except' ':' NEWLINE !INDENT
20116static void *
20117invalid_except_stmt_indent_rule(Parser *p)
20118{
20119 D(p->level++);
20120 if (p->error_indicator) {
20121 D(p->level--);
20122 return NULL;
20123 }
20124 void * _res = NULL;
20125 int _mark = p->mark;
20126 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
20127 if (p->error_indicator) {
20128 D(p->level--);
20129 return NULL;
20130 }
20131 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20132 Token * _literal;
20133 void *_opt_var;
20134 UNUSED(_opt_var); // Silence compiler warnings
20135 Token * a;
20136 expr_ty expression_var;
20137 Token * newline_var;
20138 if (
20139 (a = _PyPegen_expect_token(p, 521)) // token='except'
20140 &&
20141 (expression_var = expression_rule(p)) // expression
20142 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070020143 (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020144 &&
20145 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20146 &&
20147 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20148 &&
20149 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20150 )
20151 {
20152 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20153 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20154 if (_res == NULL && PyErr_Occurred()) {
20155 p->error_indicator = 1;
20156 D(p->level--);
20157 return NULL;
20158 }
20159 goto done;
20160 }
20161 p->mark = _mark;
20162 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20164 }
20165 { // 'except' ':' NEWLINE !INDENT
20166 if (p->error_indicator) {
20167 D(p->level--);
20168 return NULL;
20169 }
20170 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20171 Token * _literal;
20172 Token * a;
20173 Token * newline_var;
20174 if (
20175 (a = _PyPegen_expect_token(p, 521)) // token='except'
20176 &&
20177 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20178 &&
20179 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20180 &&
20181 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20182 )
20183 {
20184 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20185 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20186 if (_res == NULL && PyErr_Occurred()) {
20187 p->error_indicator = 1;
20188 D(p->level--);
20189 return NULL;
20190 }
20191 goto done;
20192 }
20193 p->mark = _mark;
20194 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20196 }
20197 _res = NULL;
20198 done:
20199 D(p->level--);
20200 return _res;
20201}
20202
20203// invalid_match_stmt:
20204// | "match" subject_expr !':'
20205// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020206static void *
20207invalid_match_stmt_rule(Parser *p)
20208{
20209 D(p->level++);
20210 if (p->error_indicator) {
20211 D(p->level--);
20212 return NULL;
20213 }
20214 void * _res = NULL;
20215 int _mark = p->mark;
20216 { // "match" subject_expr !':'
20217 if (p->error_indicator) {
20218 D(p->level--);
20219 return NULL;
20220 }
20221 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20222 expr_ty _keyword;
20223 expr_ty subject_expr_var;
20224 if (
20225 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20226 &&
20227 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20228 &&
20229 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20230 )
20231 {
20232 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20233 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20234 if (_res == NULL && PyErr_Occurred()) {
20235 p->error_indicator = 1;
20236 D(p->level--);
20237 return NULL;
20238 }
20239 goto done;
20240 }
20241 p->mark = _mark;
20242 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20244 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020245 { // "match" subject_expr ':' NEWLINE !INDENT
20246 if (p->error_indicator) {
20247 D(p->level--);
20248 return NULL;
20249 }
20250 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20251 Token * _literal;
20252 expr_ty a;
20253 Token * newline_var;
20254 expr_ty subject;
20255 if (
20256 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20257 &&
20258 (subject = subject_expr_rule(p)) // subject_expr
20259 &&
20260 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20261 &&
20262 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20263 &&
20264 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20265 )
20266 {
20267 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20268 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20269 if (_res == NULL && PyErr_Occurred()) {
20270 p->error_indicator = 1;
20271 D(p->level--);
20272 return NULL;
20273 }
20274 goto done;
20275 }
20276 p->mark = _mark;
20277 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20279 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020280 _res = NULL;
20281 done:
20282 D(p->level--);
20283 return _res;
20284}
20285
Pablo Galindo56c95df2021-04-21 15:28:21 +010020286// invalid_case_block:
20287// | "case" patterns guard? !':'
20288// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020289static void *
20290invalid_case_block_rule(Parser *p)
20291{
20292 D(p->level++);
20293 if (p->error_indicator) {
20294 D(p->level--);
20295 return NULL;
20296 }
20297 void * _res = NULL;
20298 int _mark = p->mark;
20299 { // "case" patterns guard? !':'
20300 if (p->error_indicator) {
20301 D(p->level--);
20302 return NULL;
20303 }
20304 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20305 expr_ty _keyword;
20306 void *_opt_var;
20307 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020308 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020309 if (
20310 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20311 &&
20312 (patterns_var = patterns_rule(p)) // patterns
20313 &&
20314 (_opt_var = guard_rule(p), 1) // guard?
20315 &&
20316 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20317 )
20318 {
20319 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20320 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20321 if (_res == NULL && PyErr_Occurred()) {
20322 p->error_indicator = 1;
20323 D(p->level--);
20324 return NULL;
20325 }
20326 goto done;
20327 }
20328 p->mark = _mark;
20329 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20331 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020332 { // "case" patterns guard? ':' NEWLINE !INDENT
20333 if (p->error_indicator) {
20334 D(p->level--);
20335 return NULL;
20336 }
20337 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20338 Token * _literal;
20339 void *_opt_var;
20340 UNUSED(_opt_var); // Silence compiler warnings
20341 expr_ty a;
20342 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020343 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020344 if (
20345 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20346 &&
20347 (patterns_var = patterns_rule(p)) // patterns
20348 &&
20349 (_opt_var = guard_rule(p), 1) // guard?
20350 &&
20351 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20352 &&
20353 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20354 &&
20355 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20356 )
20357 {
20358 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20359 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20360 if (_res == NULL && PyErr_Occurred()) {
20361 p->error_indicator = 1;
20362 D(p->level--);
20363 return NULL;
20364 }
20365 goto done;
20366 }
20367 p->mark = _mark;
20368 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20370 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020371 _res = NULL;
20372 done:
20373 D(p->level--);
20374 return _res;
20375}
20376
Pablo Galindo56c95df2021-04-21 15:28:21 +010020377// invalid_if_stmt:
20378// | 'if' named_expression NEWLINE
20379// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020380static void *
20381invalid_if_stmt_rule(Parser *p)
20382{
20383 D(p->level++);
20384 if (p->error_indicator) {
20385 D(p->level--);
20386 return NULL;
20387 }
20388 void * _res = NULL;
20389 int _mark = p->mark;
20390 { // 'if' named_expression NEWLINE
20391 if (p->error_indicator) {
20392 D(p->level--);
20393 return NULL;
20394 }
20395 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20396 Token * _keyword;
20397 expr_ty named_expression_var;
20398 Token * newline_var;
20399 if (
20400 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20401 &&
20402 (named_expression_var = named_expression_rule(p)) // named_expression
20403 &&
20404 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20405 )
20406 {
20407 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20408 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20409 if (_res == NULL && PyErr_Occurred()) {
20410 p->error_indicator = 1;
20411 D(p->level--);
20412 return NULL;
20413 }
20414 goto done;
20415 }
20416 p->mark = _mark;
20417 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20419 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020420 { // 'if' named_expression ':' NEWLINE !INDENT
20421 if (p->error_indicator) {
20422 D(p->level--);
20423 return NULL;
20424 }
20425 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20426 Token * _literal;
20427 Token * a;
20428 expr_ty a_1;
20429 Token * newline_var;
20430 if (
20431 (a = _PyPegen_expect_token(p, 510)) // token='if'
20432 &&
20433 (a_1 = named_expression_rule(p)) // named_expression
20434 &&
20435 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20436 &&
20437 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20438 &&
20439 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20440 )
20441 {
20442 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20443 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20444 if (_res == NULL && PyErr_Occurred()) {
20445 p->error_indicator = 1;
20446 D(p->level--);
20447 return NULL;
20448 }
20449 goto done;
20450 }
20451 p->mark = _mark;
20452 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20454 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020455 _res = NULL;
20456 done:
20457 D(p->level--);
20458 return _res;
20459}
20460
Pablo Galindo56c95df2021-04-21 15:28:21 +010020461// invalid_elif_stmt:
20462// | 'elif' named_expression NEWLINE
20463// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020464static void *
20465invalid_elif_stmt_rule(Parser *p)
20466{
20467 D(p->level++);
20468 if (p->error_indicator) {
20469 D(p->level--);
20470 return NULL;
20471 }
20472 void * _res = NULL;
20473 int _mark = p->mark;
20474 { // 'elif' named_expression NEWLINE
20475 if (p->error_indicator) {
20476 D(p->level--);
20477 return NULL;
20478 }
20479 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20480 Token * _keyword;
20481 expr_ty named_expression_var;
20482 Token * newline_var;
20483 if (
20484 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20485 &&
20486 (named_expression_var = named_expression_rule(p)) // named_expression
20487 &&
20488 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20489 )
20490 {
20491 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20492 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20493 if (_res == NULL && PyErr_Occurred()) {
20494 p->error_indicator = 1;
20495 D(p->level--);
20496 return NULL;
20497 }
20498 goto done;
20499 }
20500 p->mark = _mark;
20501 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20503 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020504 { // 'elif' named_expression ':' NEWLINE !INDENT
20505 if (p->error_indicator) {
20506 D(p->level--);
20507 return NULL;
20508 }
20509 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20510 Token * _literal;
20511 Token * a;
20512 expr_ty named_expression_var;
20513 Token * newline_var;
20514 if (
20515 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20516 &&
20517 (named_expression_var = named_expression_rule(p)) // named_expression
20518 &&
20519 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20520 &&
20521 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20522 &&
20523 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20524 )
20525 {
20526 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20527 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20528 if (_res == NULL && PyErr_Occurred()) {
20529 p->error_indicator = 1;
20530 D(p->level--);
20531 return NULL;
20532 }
20533 goto done;
20534 }
20535 p->mark = _mark;
20536 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20538 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020539 _res = NULL;
20540 done:
20541 D(p->level--);
20542 return _res;
20543}
20544
Pablo Galindo56c95df2021-04-21 15:28:21 +010020545// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20546static void *
20547invalid_else_stmt_rule(Parser *p)
20548{
20549 D(p->level++);
20550 if (p->error_indicator) {
20551 D(p->level--);
20552 return NULL;
20553 }
20554 void * _res = NULL;
20555 int _mark = p->mark;
20556 { // 'else' ':' NEWLINE !INDENT
20557 if (p->error_indicator) {
20558 D(p->level--);
20559 return NULL;
20560 }
20561 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20562 Token * _literal;
20563 Token * a;
20564 Token * newline_var;
20565 if (
20566 (a = _PyPegen_expect_token(p, 516)) // token='else'
20567 &&
20568 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20569 &&
20570 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20571 &&
20572 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20573 )
20574 {
20575 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20576 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20577 if (_res == NULL && PyErr_Occurred()) {
20578 p->error_indicator = 1;
20579 D(p->level--);
20580 return NULL;
20581 }
20582 goto done;
20583 }
20584 p->mark = _mark;
20585 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20587 }
20588 _res = NULL;
20589 done:
20590 D(p->level--);
20591 return _res;
20592}
20593
20594// invalid_while_stmt:
20595// | 'while' named_expression NEWLINE
20596// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020597static void *
20598invalid_while_stmt_rule(Parser *p)
20599{
20600 D(p->level++);
20601 if (p->error_indicator) {
20602 D(p->level--);
20603 return NULL;
20604 }
20605 void * _res = NULL;
20606 int _mark = p->mark;
20607 { // 'while' named_expression NEWLINE
20608 if (p->error_indicator) {
20609 D(p->level--);
20610 return NULL;
20611 }
20612 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20613 Token * _keyword;
20614 expr_ty named_expression_var;
20615 Token * newline_var;
20616 if (
20617 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20618 &&
20619 (named_expression_var = named_expression_rule(p)) // named_expression
20620 &&
20621 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20622 )
20623 {
20624 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20625 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20626 if (_res == NULL && PyErr_Occurred()) {
20627 p->error_indicator = 1;
20628 D(p->level--);
20629 return NULL;
20630 }
20631 goto done;
20632 }
20633 p->mark = _mark;
20634 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20636 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020637 { // 'while' named_expression ':' NEWLINE !INDENT
20638 if (p->error_indicator) {
20639 D(p->level--);
20640 return NULL;
20641 }
20642 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20643 Token * _literal;
20644 Token * a;
20645 expr_ty named_expression_var;
20646 Token * newline_var;
20647 if (
20648 (a = _PyPegen_expect_token(p, 512)) // token='while'
20649 &&
20650 (named_expression_var = named_expression_rule(p)) // named_expression
20651 &&
20652 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20653 &&
20654 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20655 &&
20656 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20657 )
20658 {
20659 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20660 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20661 if (_res == NULL && PyErr_Occurred()) {
20662 p->error_indicator = 1;
20663 D(p->level--);
20664 return NULL;
20665 }
20666 goto done;
20667 }
20668 p->mark = _mark;
20669 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20671 }
20672 _res = NULL;
20673 done:
20674 D(p->level--);
20675 return _res;
20676}
20677
20678// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20679static void *
20680invalid_for_stmt_rule(Parser *p)
20681{
20682 D(p->level++);
20683 if (p->error_indicator) {
20684 D(p->level--);
20685 return NULL;
20686 }
20687 void * _res = NULL;
20688 int _mark = p->mark;
20689 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20690 if (p->error_indicator) {
20691 D(p->level--);
20692 return NULL;
20693 }
20694 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"));
20695 Token * _keyword;
20696 Token * _literal;
20697 void *_opt_var;
20698 UNUSED(_opt_var); // Silence compiler warnings
20699 Token * a;
20700 Token * newline_var;
20701 expr_ty star_expressions_var;
20702 expr_ty star_targets_var;
20703 if (
20704 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20705 &&
20706 (a = _PyPegen_expect_token(p, 517)) // token='for'
20707 &&
20708 (star_targets_var = star_targets_rule(p)) // star_targets
20709 &&
20710 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20711 &&
20712 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20713 &&
20714 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20715 &&
20716 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20717 &&
20718 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20719 )
20720 {
20721 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"));
20722 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20723 if (_res == NULL && PyErr_Occurred()) {
20724 p->error_indicator = 1;
20725 D(p->level--);
20726 return NULL;
20727 }
20728 goto done;
20729 }
20730 p->mark = _mark;
20731 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20733 }
20734 _res = NULL;
20735 done:
20736 D(p->level--);
20737 return _res;
20738}
20739
20740// invalid_def_raw:
20741// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20742static void *
20743invalid_def_raw_rule(Parser *p)
20744{
20745 D(p->level++);
20746 if (p->error_indicator) {
20747 D(p->level--);
20748 return NULL;
20749 }
20750 void * _res = NULL;
20751 int _mark = p->mark;
20752 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20753 if (p->error_indicator) {
20754 D(p->level--);
20755 return NULL;
20756 }
20757 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20758 Token * _literal;
20759 Token * _literal_1;
20760 Token * _literal_2;
20761 void *_opt_var;
20762 UNUSED(_opt_var); // Silence compiler warnings
20763 void *_opt_var_1;
20764 UNUSED(_opt_var_1); // Silence compiler warnings
20765 void *_opt_var_2;
20766 UNUSED(_opt_var_2); // Silence compiler warnings
20767 Token * a;
20768 expr_ty name_var;
20769 Token * newline_var;
20770 if (
20771 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20772 &&
20773 (a = _PyPegen_expect_token(p, 526)) // token='def'
20774 &&
20775 (name_var = _PyPegen_name_token(p)) // NAME
20776 &&
20777 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20778 &&
20779 (_opt_var_1 = params_rule(p), 1) // params?
20780 &&
20781 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20782 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070020783 (_opt_var_2 = _tmp_173_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020784 &&
20785 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20786 &&
20787 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20788 &&
20789 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20790 )
20791 {
20792 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20793 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20794 if (_res == NULL && PyErr_Occurred()) {
20795 p->error_indicator = 1;
20796 D(p->level--);
20797 return NULL;
20798 }
20799 goto done;
20800 }
20801 p->mark = _mark;
20802 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20804 }
20805 _res = NULL;
20806 done:
20807 D(p->level--);
20808 return _res;
20809}
20810
20811// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20812static void *
20813invalid_class_def_raw_rule(Parser *p)
20814{
20815 D(p->level++);
20816 if (p->error_indicator) {
20817 D(p->level--);
20818 return NULL;
20819 }
20820 void * _res = NULL;
20821 int _mark = p->mark;
20822 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20823 if (p->error_indicator) {
20824 D(p->level--);
20825 return NULL;
20826 }
20827 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20828 Token * _literal;
20829 void *_opt_var;
20830 UNUSED(_opt_var); // Silence compiler warnings
20831 Token * a;
20832 expr_ty name_var;
20833 Token * newline_var;
20834 if (
20835 (a = _PyPegen_expect_token(p, 527)) // token='class'
20836 &&
20837 (name_var = _PyPegen_name_token(p)) // NAME
20838 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070020839 (_opt_var = _tmp_174_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010020840 &&
20841 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20842 &&
20843 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20844 &&
20845 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20846 )
20847 {
20848 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20849 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
20850 if (_res == NULL && PyErr_Occurred()) {
20851 p->error_indicator = 1;
20852 D(p->level--);
20853 return NULL;
20854 }
20855 goto done;
20856 }
20857 p->mark = _mark;
20858 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20860 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020861 _res = NULL;
20862 done:
20863 D(p->level--);
20864 return _res;
20865}
20866
Pablo Galindoda743502021-04-15 14:06:39 +010020867// invalid_double_starred_kvpairs:
20868// | ','.double_starred_kvpair+ ',' invalid_kvpair
20869// | expression ':' '*' bitwise_or
20870// | expression ':' &('}' | ',')
20871static void *
20872invalid_double_starred_kvpairs_rule(Parser *p)
20873{
20874 D(p->level++);
20875 if (p->error_indicator) {
20876 D(p->level--);
20877 return NULL;
20878 }
20879 void * _res = NULL;
20880 int _mark = p->mark;
20881 { // ','.double_starred_kvpair+ ',' invalid_kvpair
20882 if (p->error_indicator) {
20883 D(p->level--);
20884 return NULL;
20885 }
20886 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070020887 asdl_seq * _gather_175_var;
Pablo Galindoda743502021-04-15 14:06:39 +010020888 Token * _literal;
20889 void *invalid_kvpair_var;
20890 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070020891 (_gather_175_var = _gather_175_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010020892 &&
20893 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20894 &&
20895 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
20896 )
20897 {
20898 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070020899 _res = _PyPegen_dummy_name(p, _gather_175_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010020900 goto done;
20901 }
20902 p->mark = _mark;
20903 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
20905 }
20906 { // expression ':' '*' bitwise_or
20907 if (p->error_indicator) {
20908 D(p->level--);
20909 return NULL;
20910 }
20911 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20912 Token * _literal;
20913 Token * a;
20914 expr_ty bitwise_or_var;
20915 expr_ty expression_var;
20916 if (
20917 (expression_var = expression_rule(p)) // expression
20918 &&
20919 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20920 &&
20921 (a = _PyPegen_expect_token(p, 16)) // token='*'
20922 &&
20923 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20924 )
20925 {
20926 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 +010020927 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020928 if (_res == NULL && PyErr_Occurred()) {
20929 p->error_indicator = 1;
20930 D(p->level--);
20931 return NULL;
20932 }
20933 goto done;
20934 }
20935 p->mark = _mark;
20936 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20938 }
20939 { // expression ':' &('}' | ',')
20940 if (p->error_indicator) {
20941 D(p->level--);
20942 return NULL;
20943 }
20944 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20945 Token * a;
20946 expr_ty expression_var;
20947 if (
20948 (expression_var = expression_rule(p)) // expression
20949 &&
20950 (a = _PyPegen_expect_token(p, 11)) // token=':'
20951 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070020952 _PyPegen_lookahead(1, _tmp_177_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010020953 )
20954 {
20955 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20956 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20957 if (_res == NULL && PyErr_Occurred()) {
20958 p->error_indicator = 1;
20959 D(p->level--);
20960 return NULL;
20961 }
20962 goto done;
20963 }
20964 p->mark = _mark;
20965 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
20967 }
20968 _res = NULL;
20969 done:
20970 D(p->level--);
20971 return _res;
20972}
20973
20974// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
20975static void *
20976invalid_kvpair_rule(Parser *p)
20977{
20978 D(p->level++);
20979 if (p->error_indicator) {
20980 D(p->level--);
20981 return NULL;
20982 }
20983 void * _res = NULL;
20984 int _mark = p->mark;
20985 { // expression !(':')
20986 if (p->error_indicator) {
20987 D(p->level--);
20988 return NULL;
20989 }
20990 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
20991 expr_ty a;
20992 if (
20993 (a = expression_rule(p)) // expression
20994 &&
20995 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
20996 )
20997 {
20998 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020999 _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 +010021000 if (_res == NULL && PyErr_Occurred()) {
21001 p->error_indicator = 1;
21002 D(p->level--);
21003 return NULL;
21004 }
21005 goto done;
21006 }
21007 p->mark = _mark;
21008 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
21010 }
21011 { // expression ':' '*' bitwise_or
21012 if (p->error_indicator) {
21013 D(p->level--);
21014 return NULL;
21015 }
21016 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
21017 Token * _literal;
21018 Token * a;
21019 expr_ty bitwise_or_var;
21020 expr_ty expression_var;
21021 if (
21022 (expression_var = expression_rule(p)) // expression
21023 &&
21024 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
21025 &&
21026 (a = _PyPegen_expect_token(p, 16)) // token='*'
21027 &&
21028 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
21029 )
21030 {
21031 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 +010021032 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010021033 if (_res == NULL && PyErr_Occurred()) {
21034 p->error_indicator = 1;
21035 D(p->level--);
21036 return NULL;
21037 }
21038 goto done;
21039 }
21040 p->mark = _mark;
21041 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
21043 }
21044 { // expression ':'
21045 if (p->error_indicator) {
21046 D(p->level--);
21047 return NULL;
21048 }
21049 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21050 Token * a;
21051 expr_ty expression_var;
21052 if (
21053 (expression_var = expression_rule(p)) // expression
21054 &&
21055 (a = _PyPegen_expect_token(p, 11)) // token=':'
21056 )
21057 {
21058 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
21059 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
21060 if (_res == NULL && PyErr_Occurred()) {
21061 p->error_indicator = 1;
21062 D(p->level--);
21063 return NULL;
21064 }
21065 goto done;
21066 }
21067 p->mark = _mark;
21068 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21070 }
21071 _res = NULL;
21072 done:
21073 D(p->level--);
21074 return _res;
21075}
21076
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021077// _loop0_1: NEWLINE
21078static asdl_seq *
21079_loop0_1_rule(Parser *p)
21080{
21081 D(p->level++);
21082 if (p->error_indicator) {
21083 D(p->level--);
21084 return NULL;
21085 }
21086 void *_res = NULL;
21087 int _mark = p->mark;
21088 int _start_mark = p->mark;
21089 void **_children = PyMem_Malloc(sizeof(void *));
21090 if (!_children) {
21091 p->error_indicator = 1;
21092 PyErr_NoMemory();
21093 D(p->level--);
21094 return NULL;
21095 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021096 Py_ssize_t _children_capacity = 1;
21097 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021098 { // NEWLINE
21099 if (p->error_indicator) {
21100 D(p->level--);
21101 return NULL;
21102 }
21103 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21104 Token * newline_var;
21105 while (
21106 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21107 )
21108 {
21109 _res = newline_var;
21110 if (_n == _children_capacity) {
21111 _children_capacity *= 2;
21112 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21113 if (!_new_children) {
21114 p->error_indicator = 1;
21115 PyErr_NoMemory();
21116 D(p->level--);
21117 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021118 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021119 _children = _new_children;
21120 }
21121 _children[_n++] = _res;
21122 _mark = p->mark;
21123 }
21124 p->mark = _mark;
21125 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21127 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021128 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021129 if (!_seq) {
21130 PyMem_Free(_children);
21131 p->error_indicator = 1;
21132 PyErr_NoMemory();
21133 D(p->level--);
21134 return NULL;
21135 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021136 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021137 PyMem_Free(_children);
21138 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21139 D(p->level--);
21140 return _seq;
21141}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021142
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021143// _loop0_2: NEWLINE
21144static asdl_seq *
21145_loop0_2_rule(Parser *p)
21146{
21147 D(p->level++);
21148 if (p->error_indicator) {
21149 D(p->level--);
21150 return NULL;
21151 }
21152 void *_res = NULL;
21153 int _mark = p->mark;
21154 int _start_mark = p->mark;
21155 void **_children = PyMem_Malloc(sizeof(void *));
21156 if (!_children) {
21157 p->error_indicator = 1;
21158 PyErr_NoMemory();
21159 D(p->level--);
21160 return NULL;
21161 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021162 Py_ssize_t _children_capacity = 1;
21163 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021164 { // NEWLINE
21165 if (p->error_indicator) {
21166 D(p->level--);
21167 return NULL;
21168 }
21169 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21170 Token * newline_var;
21171 while (
21172 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21173 )
21174 {
21175 _res = newline_var;
21176 if (_n == _children_capacity) {
21177 _children_capacity *= 2;
21178 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21179 if (!_new_children) {
21180 p->error_indicator = 1;
21181 PyErr_NoMemory();
21182 D(p->level--);
21183 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021184 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021185 _children = _new_children;
21186 }
21187 _children[_n++] = _res;
21188 _mark = p->mark;
21189 }
21190 p->mark = _mark;
21191 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21193 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021194 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021195 if (!_seq) {
21196 PyMem_Free(_children);
21197 p->error_indicator = 1;
21198 PyErr_NoMemory();
21199 D(p->level--);
21200 return NULL;
21201 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021202 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021203 PyMem_Free(_children);
21204 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21205 D(p->level--);
21206 return _seq;
21207}
21208
21209// _loop0_4: ',' expression
21210static asdl_seq *
21211_loop0_4_rule(Parser *p)
21212{
21213 D(p->level++);
21214 if (p->error_indicator) {
21215 D(p->level--);
21216 return NULL;
21217 }
21218 void *_res = NULL;
21219 int _mark = p->mark;
21220 int _start_mark = p->mark;
21221 void **_children = PyMem_Malloc(sizeof(void *));
21222 if (!_children) {
21223 p->error_indicator = 1;
21224 PyErr_NoMemory();
21225 D(p->level--);
21226 return NULL;
21227 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021228 Py_ssize_t _children_capacity = 1;
21229 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021230 { // ',' expression
21231 if (p->error_indicator) {
21232 D(p->level--);
21233 return NULL;
21234 }
21235 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21236 Token * _literal;
21237 expr_ty elem;
21238 while (
21239 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21240 &&
21241 (elem = expression_rule(p)) // expression
21242 )
21243 {
21244 _res = elem;
21245 if (_res == NULL && PyErr_Occurred()) {
21246 p->error_indicator = 1;
21247 PyMem_Free(_children);
21248 D(p->level--);
21249 return NULL;
21250 }
21251 if (_n == _children_capacity) {
21252 _children_capacity *= 2;
21253 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21254 if (!_new_children) {
21255 p->error_indicator = 1;
21256 PyErr_NoMemory();
21257 D(p->level--);
21258 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021259 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021260 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021261 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021262 _children[_n++] = _res;
21263 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021264 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021265 p->mark = _mark;
21266 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021268 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021269 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021270 if (!_seq) {
21271 PyMem_Free(_children);
21272 p->error_indicator = 1;
21273 PyErr_NoMemory();
21274 D(p->level--);
21275 return NULL;
21276 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021277 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021278 PyMem_Free(_children);
21279 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21280 D(p->level--);
21281 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021282}
21283
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021284// _gather_3: expression _loop0_4
21285static asdl_seq *
21286_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021287{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021288 D(p->level++);
21289 if (p->error_indicator) {
21290 D(p->level--);
21291 return NULL;
21292 }
21293 asdl_seq * _res = NULL;
21294 int _mark = p->mark;
21295 { // expression _loop0_4
21296 if (p->error_indicator) {
21297 D(p->level--);
21298 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021299 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021300 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21301 expr_ty elem;
21302 asdl_seq * seq;
21303 if (
21304 (elem = expression_rule(p)) // expression
21305 &&
21306 (seq = _loop0_4_rule(p)) // _loop0_4
21307 )
21308 {
21309 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21310 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21311 goto done;
21312 }
21313 p->mark = _mark;
21314 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021316 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021317 _res = NULL;
21318 done:
21319 D(p->level--);
21320 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021321}
21322
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021323// _loop0_6: ',' expression
21324static asdl_seq *
21325_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021326{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021327 D(p->level++);
21328 if (p->error_indicator) {
21329 D(p->level--);
21330 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021331 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021332 void *_res = NULL;
21333 int _mark = p->mark;
21334 int _start_mark = p->mark;
21335 void **_children = PyMem_Malloc(sizeof(void *));
21336 if (!_children) {
21337 p->error_indicator = 1;
21338 PyErr_NoMemory();
21339 D(p->level--);
21340 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021341 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021342 Py_ssize_t _children_capacity = 1;
21343 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021344 { // ',' expression
21345 if (p->error_indicator) {
21346 D(p->level--);
21347 return NULL;
21348 }
21349 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21350 Token * _literal;
21351 expr_ty elem;
21352 while (
21353 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21354 &&
21355 (elem = expression_rule(p)) // expression
21356 )
21357 {
21358 _res = elem;
21359 if (_res == NULL && PyErr_Occurred()) {
21360 p->error_indicator = 1;
21361 PyMem_Free(_children);
21362 D(p->level--);
21363 return NULL;
21364 }
21365 if (_n == _children_capacity) {
21366 _children_capacity *= 2;
21367 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21368 if (!_new_children) {
21369 p->error_indicator = 1;
21370 PyErr_NoMemory();
21371 D(p->level--);
21372 return NULL;
21373 }
21374 _children = _new_children;
21375 }
21376 _children[_n++] = _res;
21377 _mark = p->mark;
21378 }
21379 p->mark = _mark;
21380 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21382 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021383 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021384 if (!_seq) {
21385 PyMem_Free(_children);
21386 p->error_indicator = 1;
21387 PyErr_NoMemory();
21388 D(p->level--);
21389 return NULL;
21390 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021391 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021392 PyMem_Free(_children);
21393 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21394 D(p->level--);
21395 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021396}
21397
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021398// _gather_5: expression _loop0_6
21399static asdl_seq *
21400_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021401{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021402 D(p->level++);
21403 if (p->error_indicator) {
21404 D(p->level--);
21405 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021406 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021407 asdl_seq * _res = NULL;
21408 int _mark = p->mark;
21409 { // expression _loop0_6
21410 if (p->error_indicator) {
21411 D(p->level--);
21412 return NULL;
21413 }
21414 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21415 expr_ty elem;
21416 asdl_seq * seq;
21417 if (
21418 (elem = expression_rule(p)) // expression
21419 &&
21420 (seq = _loop0_6_rule(p)) // _loop0_6
21421 )
21422 {
21423 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21424 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21425 goto done;
21426 }
21427 p->mark = _mark;
21428 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21430 }
21431 _res = NULL;
21432 done:
21433 D(p->level--);
21434 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021435}
21436
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021437// _loop0_8: ',' expression
21438static asdl_seq *
21439_loop0_8_rule(Parser *p)
21440{
21441 D(p->level++);
21442 if (p->error_indicator) {
21443 D(p->level--);
21444 return NULL;
21445 }
21446 void *_res = NULL;
21447 int _mark = p->mark;
21448 int _start_mark = p->mark;
21449 void **_children = PyMem_Malloc(sizeof(void *));
21450 if (!_children) {
21451 p->error_indicator = 1;
21452 PyErr_NoMemory();
21453 D(p->level--);
21454 return NULL;
21455 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021456 Py_ssize_t _children_capacity = 1;
21457 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021458 { // ',' expression
21459 if (p->error_indicator) {
21460 D(p->level--);
21461 return NULL;
21462 }
21463 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21464 Token * _literal;
21465 expr_ty elem;
21466 while (
21467 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21468 &&
21469 (elem = expression_rule(p)) // expression
21470 )
21471 {
21472 _res = elem;
21473 if (_res == NULL && PyErr_Occurred()) {
21474 p->error_indicator = 1;
21475 PyMem_Free(_children);
21476 D(p->level--);
21477 return NULL;
21478 }
21479 if (_n == _children_capacity) {
21480 _children_capacity *= 2;
21481 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21482 if (!_new_children) {
21483 p->error_indicator = 1;
21484 PyErr_NoMemory();
21485 D(p->level--);
21486 return NULL;
21487 }
21488 _children = _new_children;
21489 }
21490 _children[_n++] = _res;
21491 _mark = p->mark;
21492 }
21493 p->mark = _mark;
21494 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21496 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021497 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021498 if (!_seq) {
21499 PyMem_Free(_children);
21500 p->error_indicator = 1;
21501 PyErr_NoMemory();
21502 D(p->level--);
21503 return NULL;
21504 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021505 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021506 PyMem_Free(_children);
21507 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21508 D(p->level--);
21509 return _seq;
21510}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021511
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021512// _gather_7: expression _loop0_8
21513static asdl_seq *
21514_gather_7_rule(Parser *p)
21515{
21516 D(p->level++);
21517 if (p->error_indicator) {
21518 D(p->level--);
21519 return NULL;
21520 }
21521 asdl_seq * _res = NULL;
21522 int _mark = p->mark;
21523 { // expression _loop0_8
21524 if (p->error_indicator) {
21525 D(p->level--);
21526 return NULL;
21527 }
21528 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21529 expr_ty elem;
21530 asdl_seq * seq;
21531 if (
21532 (elem = expression_rule(p)) // expression
21533 &&
21534 (seq = _loop0_8_rule(p)) // _loop0_8
21535 )
21536 {
21537 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21538 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21539 goto done;
21540 }
21541 p->mark = _mark;
21542 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21544 }
21545 _res = NULL;
21546 done:
21547 D(p->level--);
21548 return _res;
21549}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021550
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021551// _loop0_10: ',' expression
21552static asdl_seq *
21553_loop0_10_rule(Parser *p)
21554{
21555 D(p->level++);
21556 if (p->error_indicator) {
21557 D(p->level--);
21558 return NULL;
21559 }
21560 void *_res = NULL;
21561 int _mark = p->mark;
21562 int _start_mark = p->mark;
21563 void **_children = PyMem_Malloc(sizeof(void *));
21564 if (!_children) {
21565 p->error_indicator = 1;
21566 PyErr_NoMemory();
21567 D(p->level--);
21568 return NULL;
21569 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021570 Py_ssize_t _children_capacity = 1;
21571 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021572 { // ',' expression
21573 if (p->error_indicator) {
21574 D(p->level--);
21575 return NULL;
21576 }
21577 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21578 Token * _literal;
21579 expr_ty elem;
21580 while (
21581 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21582 &&
21583 (elem = expression_rule(p)) // expression
21584 )
21585 {
21586 _res = elem;
21587 if (_res == NULL && PyErr_Occurred()) {
21588 p->error_indicator = 1;
21589 PyMem_Free(_children);
21590 D(p->level--);
21591 return NULL;
21592 }
21593 if (_n == _children_capacity) {
21594 _children_capacity *= 2;
21595 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21596 if (!_new_children) {
21597 p->error_indicator = 1;
21598 PyErr_NoMemory();
21599 D(p->level--);
21600 return NULL;
21601 }
21602 _children = _new_children;
21603 }
21604 _children[_n++] = _res;
21605 _mark = p->mark;
21606 }
21607 p->mark = _mark;
21608 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21610 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021611 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021612 if (!_seq) {
21613 PyMem_Free(_children);
21614 p->error_indicator = 1;
21615 PyErr_NoMemory();
21616 D(p->level--);
21617 return NULL;
21618 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021619 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021620 PyMem_Free(_children);
21621 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21622 D(p->level--);
21623 return _seq;
21624}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021625
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021626// _gather_9: expression _loop0_10
21627static asdl_seq *
21628_gather_9_rule(Parser *p)
21629{
21630 D(p->level++);
21631 if (p->error_indicator) {
21632 D(p->level--);
21633 return NULL;
21634 }
21635 asdl_seq * _res = NULL;
21636 int _mark = p->mark;
21637 { // expression _loop0_10
21638 if (p->error_indicator) {
21639 D(p->level--);
21640 return NULL;
21641 }
21642 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21643 expr_ty elem;
21644 asdl_seq * seq;
21645 if (
21646 (elem = expression_rule(p)) // expression
21647 &&
21648 (seq = _loop0_10_rule(p)) // _loop0_10
21649 )
21650 {
21651 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21652 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21653 goto done;
21654 }
21655 p->mark = _mark;
21656 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21658 }
21659 _res = NULL;
21660 done:
21661 D(p->level--);
21662 return _res;
21663}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021664
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021665// _loop1_11: statement
21666static asdl_seq *
21667_loop1_11_rule(Parser *p)
21668{
21669 D(p->level++);
21670 if (p->error_indicator) {
21671 D(p->level--);
21672 return NULL;
21673 }
21674 void *_res = NULL;
21675 int _mark = p->mark;
21676 int _start_mark = p->mark;
21677 void **_children = PyMem_Malloc(sizeof(void *));
21678 if (!_children) {
21679 p->error_indicator = 1;
21680 PyErr_NoMemory();
21681 D(p->level--);
21682 return NULL;
21683 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021684 Py_ssize_t _children_capacity = 1;
21685 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021686 { // statement
21687 if (p->error_indicator) {
21688 D(p->level--);
21689 return NULL;
21690 }
21691 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021692 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021693 while (
21694 (statement_var = statement_rule(p)) // statement
21695 )
21696 {
21697 _res = statement_var;
21698 if (_n == _children_capacity) {
21699 _children_capacity *= 2;
21700 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21701 if (!_new_children) {
21702 p->error_indicator = 1;
21703 PyErr_NoMemory();
21704 D(p->level--);
21705 return NULL;
21706 }
21707 _children = _new_children;
21708 }
21709 _children[_n++] = _res;
21710 _mark = p->mark;
21711 }
21712 p->mark = _mark;
21713 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21715 }
21716 if (_n == 0 || p->error_indicator) {
21717 PyMem_Free(_children);
21718 D(p->level--);
21719 return NULL;
21720 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021721 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021722 if (!_seq) {
21723 PyMem_Free(_children);
21724 p->error_indicator = 1;
21725 PyErr_NoMemory();
21726 D(p->level--);
21727 return NULL;
21728 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021729 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021730 PyMem_Free(_children);
21731 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21732 D(p->level--);
21733 return _seq;
21734}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021735
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021736// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021737static asdl_seq *
21738_loop0_13_rule(Parser *p)
21739{
21740 D(p->level++);
21741 if (p->error_indicator) {
21742 D(p->level--);
21743 return NULL;
21744 }
21745 void *_res = NULL;
21746 int _mark = p->mark;
21747 int _start_mark = p->mark;
21748 void **_children = PyMem_Malloc(sizeof(void *));
21749 if (!_children) {
21750 p->error_indicator = 1;
21751 PyErr_NoMemory();
21752 D(p->level--);
21753 return NULL;
21754 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021755 Py_ssize_t _children_capacity = 1;
21756 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021757 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021758 if (p->error_indicator) {
21759 D(p->level--);
21760 return NULL;
21761 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021762 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021763 Token * _literal;
21764 stmt_ty elem;
21765 while (
21766 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21767 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021768 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021769 )
21770 {
21771 _res = elem;
21772 if (_res == NULL && PyErr_Occurred()) {
21773 p->error_indicator = 1;
21774 PyMem_Free(_children);
21775 D(p->level--);
21776 return NULL;
21777 }
21778 if (_n == _children_capacity) {
21779 _children_capacity *= 2;
21780 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21781 if (!_new_children) {
21782 p->error_indicator = 1;
21783 PyErr_NoMemory();
21784 D(p->level--);
21785 return NULL;
21786 }
21787 _children = _new_children;
21788 }
21789 _children[_n++] = _res;
21790 _mark = p->mark;
21791 }
21792 p->mark = _mark;
21793 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021795 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021796 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021797 if (!_seq) {
21798 PyMem_Free(_children);
21799 p->error_indicator = 1;
21800 PyErr_NoMemory();
21801 D(p->level--);
21802 return NULL;
21803 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021804 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021805 PyMem_Free(_children);
21806 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21807 D(p->level--);
21808 return _seq;
21809}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021810
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021811// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021812static asdl_seq *
21813_gather_12_rule(Parser *p)
21814{
21815 D(p->level++);
21816 if (p->error_indicator) {
21817 D(p->level--);
21818 return NULL;
21819 }
21820 asdl_seq * _res = NULL;
21821 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021822 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021823 if (p->error_indicator) {
21824 D(p->level--);
21825 return NULL;
21826 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021827 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 +010021828 stmt_ty elem;
21829 asdl_seq * seq;
21830 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021831 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021832 &&
21833 (seq = _loop0_13_rule(p)) // _loop0_13
21834 )
21835 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021836 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 +010021837 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21838 goto done;
21839 }
21840 p->mark = _mark;
21841 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021843 }
21844 _res = NULL;
21845 done:
21846 D(p->level--);
21847 return _res;
21848}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021849
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021850// _tmp_14: 'import' | 'from'
21851static void *
21852_tmp_14_rule(Parser *p)
21853{
21854 D(p->level++);
21855 if (p->error_indicator) {
21856 D(p->level--);
21857 return NULL;
21858 }
21859 void * _res = NULL;
21860 int _mark = p->mark;
21861 { // 'import'
21862 if (p->error_indicator) {
21863 D(p->level--);
21864 return NULL;
21865 }
21866 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
21867 Token * _keyword;
21868 if (
21869 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
21870 )
21871 {
21872 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
21873 _res = _keyword;
21874 goto done;
21875 }
21876 p->mark = _mark;
21877 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
21879 }
21880 { // 'from'
21881 if (p->error_indicator) {
21882 D(p->level--);
21883 return NULL;
21884 }
21885 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
21886 Token * _keyword;
21887 if (
21888 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
21889 )
21890 {
21891 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
21892 _res = _keyword;
21893 goto done;
21894 }
21895 p->mark = _mark;
21896 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
21898 }
21899 _res = NULL;
21900 done:
21901 D(p->level--);
21902 return _res;
21903}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021904
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021905// _tmp_15: 'def' | '@' | ASYNC
21906static void *
21907_tmp_15_rule(Parser *p)
21908{
21909 D(p->level++);
21910 if (p->error_indicator) {
21911 D(p->level--);
21912 return NULL;
21913 }
21914 void * _res = NULL;
21915 int _mark = p->mark;
21916 { // 'def'
21917 if (p->error_indicator) {
21918 D(p->level--);
21919 return NULL;
21920 }
21921 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
21922 Token * _keyword;
21923 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021924 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021925 )
21926 {
21927 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
21928 _res = _keyword;
21929 goto done;
21930 }
21931 p->mark = _mark;
21932 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
21934 }
21935 { // '@'
21936 if (p->error_indicator) {
21937 D(p->level--);
21938 return NULL;
21939 }
21940 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21941 Token * _literal;
21942 if (
21943 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21944 )
21945 {
21946 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21947 _res = _literal;
21948 goto done;
21949 }
21950 p->mark = _mark;
21951 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21953 }
21954 { // ASYNC
21955 if (p->error_indicator) {
21956 D(p->level--);
21957 return NULL;
21958 }
21959 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21960 Token * async_var;
21961 if (
21962 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21963 )
21964 {
21965 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21966 _res = async_var;
21967 goto done;
21968 }
21969 p->mark = _mark;
21970 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21972 }
21973 _res = NULL;
21974 done:
21975 D(p->level--);
21976 return _res;
21977}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021978
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021979// _tmp_16: 'class' | '@'
21980static void *
21981_tmp_16_rule(Parser *p)
21982{
21983 D(p->level++);
21984 if (p->error_indicator) {
21985 D(p->level--);
21986 return NULL;
21987 }
21988 void * _res = NULL;
21989 int _mark = p->mark;
21990 { // 'class'
21991 if (p->error_indicator) {
21992 D(p->level--);
21993 return NULL;
21994 }
21995 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
21996 Token * _keyword;
21997 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021998 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021999 )
22000 {
22001 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
22002 _res = _keyword;
22003 goto done;
22004 }
22005 p->mark = _mark;
22006 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
22008 }
22009 { // '@'
22010 if (p->error_indicator) {
22011 D(p->level--);
22012 return NULL;
22013 }
22014 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
22015 Token * _literal;
22016 if (
22017 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
22018 )
22019 {
22020 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
22021 _res = _literal;
22022 goto done;
22023 }
22024 p->mark = _mark;
22025 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
22026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
22027 }
22028 _res = NULL;
22029 done:
22030 D(p->level--);
22031 return _res;
22032}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022033
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022034// _tmp_17: 'with' | ASYNC
22035static void *
22036_tmp_17_rule(Parser *p)
22037{
22038 D(p->level++);
22039 if (p->error_indicator) {
22040 D(p->level--);
22041 return NULL;
22042 }
22043 void * _res = NULL;
22044 int _mark = p->mark;
22045 { // 'with'
22046 if (p->error_indicator) {
22047 D(p->level--);
22048 return NULL;
22049 }
22050 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
22051 Token * _keyword;
22052 if (
22053 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
22054 )
22055 {
22056 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
22057 _res = _keyword;
22058 goto done;
22059 }
22060 p->mark = _mark;
22061 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
22063 }
22064 { // ASYNC
22065 if (p->error_indicator) {
22066 D(p->level--);
22067 return NULL;
22068 }
22069 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22070 Token * async_var;
22071 if (
22072 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22073 )
22074 {
22075 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22076 _res = async_var;
22077 goto done;
22078 }
22079 p->mark = _mark;
22080 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22082 }
22083 _res = NULL;
22084 done:
22085 D(p->level--);
22086 return _res;
22087}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022088
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022089// _tmp_18: 'for' | ASYNC
22090static void *
22091_tmp_18_rule(Parser *p)
22092{
22093 D(p->level++);
22094 if (p->error_indicator) {
22095 D(p->level--);
22096 return NULL;
22097 }
22098 void * _res = NULL;
22099 int _mark = p->mark;
22100 { // 'for'
22101 if (p->error_indicator) {
22102 D(p->level--);
22103 return NULL;
22104 }
22105 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22106 Token * _keyword;
22107 if (
22108 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22109 )
22110 {
22111 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22112 _res = _keyword;
22113 goto done;
22114 }
22115 p->mark = _mark;
22116 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22118 }
22119 { // ASYNC
22120 if (p->error_indicator) {
22121 D(p->level--);
22122 return NULL;
22123 }
22124 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22125 Token * async_var;
22126 if (
22127 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22128 )
22129 {
22130 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22131 _res = async_var;
22132 goto done;
22133 }
22134 p->mark = _mark;
22135 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22137 }
22138 _res = NULL;
22139 done:
22140 D(p->level--);
22141 return _res;
22142}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022143
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022144// _tmp_19: '=' annotated_rhs
22145static void *
22146_tmp_19_rule(Parser *p)
22147{
22148 D(p->level++);
22149 if (p->error_indicator) {
22150 D(p->level--);
22151 return NULL;
22152 }
22153 void * _res = NULL;
22154 int _mark = p->mark;
22155 { // '=' annotated_rhs
22156 if (p->error_indicator) {
22157 D(p->level--);
22158 return NULL;
22159 }
22160 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22161 Token * _literal;
22162 expr_ty d;
22163 if (
22164 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22165 &&
22166 (d = annotated_rhs_rule(p)) // annotated_rhs
22167 )
22168 {
22169 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22170 _res = d;
22171 if (_res == NULL && PyErr_Occurred()) {
22172 p->error_indicator = 1;
22173 D(p->level--);
22174 return NULL;
22175 }
22176 goto done;
22177 }
22178 p->mark = _mark;
22179 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22181 }
22182 _res = NULL;
22183 done:
22184 D(p->level--);
22185 return _res;
22186}
22187
22188// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22189static void *
22190_tmp_20_rule(Parser *p)
22191{
22192 D(p->level++);
22193 if (p->error_indicator) {
22194 D(p->level--);
22195 return NULL;
22196 }
22197 void * _res = NULL;
22198 int _mark = p->mark;
22199 { // '(' single_target ')'
22200 if (p->error_indicator) {
22201 D(p->level--);
22202 return NULL;
22203 }
22204 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22205 Token * _literal;
22206 Token * _literal_1;
22207 expr_ty b;
22208 if (
22209 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22210 &&
22211 (b = single_target_rule(p)) // single_target
22212 &&
22213 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22214 )
22215 {
22216 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22217 _res = b;
22218 if (_res == NULL && PyErr_Occurred()) {
22219 p->error_indicator = 1;
22220 D(p->level--);
22221 return NULL;
22222 }
22223 goto done;
22224 }
22225 p->mark = _mark;
22226 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22228 }
22229 { // single_subscript_attribute_target
22230 if (p->error_indicator) {
22231 D(p->level--);
22232 return NULL;
22233 }
22234 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22235 expr_ty single_subscript_attribute_target_var;
22236 if (
22237 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22238 )
22239 {
22240 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22241 _res = single_subscript_attribute_target_var;
22242 goto done;
22243 }
22244 p->mark = _mark;
22245 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22247 }
22248 _res = NULL;
22249 done:
22250 D(p->level--);
22251 return _res;
22252}
22253
22254// _tmp_21: '=' annotated_rhs
22255static void *
22256_tmp_21_rule(Parser *p)
22257{
22258 D(p->level++);
22259 if (p->error_indicator) {
22260 D(p->level--);
22261 return NULL;
22262 }
22263 void * _res = NULL;
22264 int _mark = p->mark;
22265 { // '=' annotated_rhs
22266 if (p->error_indicator) {
22267 D(p->level--);
22268 return NULL;
22269 }
22270 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22271 Token * _literal;
22272 expr_ty d;
22273 if (
22274 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22275 &&
22276 (d = annotated_rhs_rule(p)) // annotated_rhs
22277 )
22278 {
22279 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22280 _res = d;
22281 if (_res == NULL && PyErr_Occurred()) {
22282 p->error_indicator = 1;
22283 D(p->level--);
22284 return NULL;
22285 }
22286 goto done;
22287 }
22288 p->mark = _mark;
22289 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22291 }
22292 _res = NULL;
22293 done:
22294 D(p->level--);
22295 return _res;
22296}
22297
22298// _loop1_22: (star_targets '=')
22299static asdl_seq *
22300_loop1_22_rule(Parser *p)
22301{
22302 D(p->level++);
22303 if (p->error_indicator) {
22304 D(p->level--);
22305 return NULL;
22306 }
22307 void *_res = NULL;
22308 int _mark = p->mark;
22309 int _start_mark = p->mark;
22310 void **_children = PyMem_Malloc(sizeof(void *));
22311 if (!_children) {
22312 p->error_indicator = 1;
22313 PyErr_NoMemory();
22314 D(p->level--);
22315 return NULL;
22316 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022317 Py_ssize_t _children_capacity = 1;
22318 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022319 { // (star_targets '=')
22320 if (p->error_indicator) {
22321 D(p->level--);
22322 return NULL;
22323 }
22324 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070022325 void *_tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022326 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070022327 (_tmp_178_var = _tmp_178_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022328 )
22329 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070022330 _res = _tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022331 if (_n == _children_capacity) {
22332 _children_capacity *= 2;
22333 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22334 if (!_new_children) {
22335 p->error_indicator = 1;
22336 PyErr_NoMemory();
22337 D(p->level--);
22338 return NULL;
22339 }
22340 _children = _new_children;
22341 }
22342 _children[_n++] = _res;
22343 _mark = p->mark;
22344 }
22345 p->mark = _mark;
22346 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22348 }
22349 if (_n == 0 || p->error_indicator) {
22350 PyMem_Free(_children);
22351 D(p->level--);
22352 return NULL;
22353 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022354 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022355 if (!_seq) {
22356 PyMem_Free(_children);
22357 p->error_indicator = 1;
22358 PyErr_NoMemory();
22359 D(p->level--);
22360 return NULL;
22361 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022362 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022363 PyMem_Free(_children);
22364 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22365 D(p->level--);
22366 return _seq;
22367}
22368
22369// _tmp_23: yield_expr | star_expressions
22370static void *
22371_tmp_23_rule(Parser *p)
22372{
22373 D(p->level++);
22374 if (p->error_indicator) {
22375 D(p->level--);
22376 return NULL;
22377 }
22378 void * _res = NULL;
22379 int _mark = p->mark;
22380 { // yield_expr
22381 if (p->error_indicator) {
22382 D(p->level--);
22383 return NULL;
22384 }
22385 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22386 expr_ty yield_expr_var;
22387 if (
22388 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22389 )
22390 {
22391 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22392 _res = yield_expr_var;
22393 goto done;
22394 }
22395 p->mark = _mark;
22396 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22398 }
22399 { // star_expressions
22400 if (p->error_indicator) {
22401 D(p->level--);
22402 return NULL;
22403 }
22404 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22405 expr_ty star_expressions_var;
22406 if (
22407 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22408 )
22409 {
22410 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22411 _res = star_expressions_var;
22412 goto done;
22413 }
22414 p->mark = _mark;
22415 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22417 }
22418 _res = NULL;
22419 done:
22420 D(p->level--);
22421 return _res;
22422}
22423
22424// _tmp_24: yield_expr | star_expressions
22425static void *
22426_tmp_24_rule(Parser *p)
22427{
22428 D(p->level++);
22429 if (p->error_indicator) {
22430 D(p->level--);
22431 return NULL;
22432 }
22433 void * _res = NULL;
22434 int _mark = p->mark;
22435 { // yield_expr
22436 if (p->error_indicator) {
22437 D(p->level--);
22438 return NULL;
22439 }
22440 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22441 expr_ty yield_expr_var;
22442 if (
22443 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22444 )
22445 {
22446 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22447 _res = yield_expr_var;
22448 goto done;
22449 }
22450 p->mark = _mark;
22451 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22453 }
22454 { // star_expressions
22455 if (p->error_indicator) {
22456 D(p->level--);
22457 return NULL;
22458 }
22459 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22460 expr_ty star_expressions_var;
22461 if (
22462 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22463 )
22464 {
22465 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22466 _res = star_expressions_var;
22467 goto done;
22468 }
22469 p->mark = _mark;
22470 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22472 }
22473 _res = NULL;
22474 done:
22475 D(p->level--);
22476 return _res;
22477}
22478
22479// _loop0_26: ',' NAME
22480static asdl_seq *
22481_loop0_26_rule(Parser *p)
22482{
22483 D(p->level++);
22484 if (p->error_indicator) {
22485 D(p->level--);
22486 return NULL;
22487 }
22488 void *_res = NULL;
22489 int _mark = p->mark;
22490 int _start_mark = p->mark;
22491 void **_children = PyMem_Malloc(sizeof(void *));
22492 if (!_children) {
22493 p->error_indicator = 1;
22494 PyErr_NoMemory();
22495 D(p->level--);
22496 return NULL;
22497 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022498 Py_ssize_t _children_capacity = 1;
22499 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022500 { // ',' NAME
22501 if (p->error_indicator) {
22502 D(p->level--);
22503 return NULL;
22504 }
22505 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22506 Token * _literal;
22507 expr_ty elem;
22508 while (
22509 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22510 &&
22511 (elem = _PyPegen_name_token(p)) // NAME
22512 )
22513 {
22514 _res = elem;
22515 if (_res == NULL && PyErr_Occurred()) {
22516 p->error_indicator = 1;
22517 PyMem_Free(_children);
22518 D(p->level--);
22519 return NULL;
22520 }
22521 if (_n == _children_capacity) {
22522 _children_capacity *= 2;
22523 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22524 if (!_new_children) {
22525 p->error_indicator = 1;
22526 PyErr_NoMemory();
22527 D(p->level--);
22528 return NULL;
22529 }
22530 _children = _new_children;
22531 }
22532 _children[_n++] = _res;
22533 _mark = p->mark;
22534 }
22535 p->mark = _mark;
22536 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22538 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022539 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022540 if (!_seq) {
22541 PyMem_Free(_children);
22542 p->error_indicator = 1;
22543 PyErr_NoMemory();
22544 D(p->level--);
22545 return NULL;
22546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022547 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022548 PyMem_Free(_children);
22549 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22550 D(p->level--);
22551 return _seq;
22552}
22553
22554// _gather_25: NAME _loop0_26
22555static asdl_seq *
22556_gather_25_rule(Parser *p)
22557{
22558 D(p->level++);
22559 if (p->error_indicator) {
22560 D(p->level--);
22561 return NULL;
22562 }
22563 asdl_seq * _res = NULL;
22564 int _mark = p->mark;
22565 { // NAME _loop0_26
22566 if (p->error_indicator) {
22567 D(p->level--);
22568 return NULL;
22569 }
22570 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22571 expr_ty elem;
22572 asdl_seq * seq;
22573 if (
22574 (elem = _PyPegen_name_token(p)) // NAME
22575 &&
22576 (seq = _loop0_26_rule(p)) // _loop0_26
22577 )
22578 {
22579 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22580 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22581 goto done;
22582 }
22583 p->mark = _mark;
22584 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22585 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22586 }
22587 _res = NULL;
22588 done:
22589 D(p->level--);
22590 return _res;
22591}
22592
22593// _loop0_28: ',' NAME
22594static asdl_seq *
22595_loop0_28_rule(Parser *p)
22596{
22597 D(p->level++);
22598 if (p->error_indicator) {
22599 D(p->level--);
22600 return NULL;
22601 }
22602 void *_res = NULL;
22603 int _mark = p->mark;
22604 int _start_mark = p->mark;
22605 void **_children = PyMem_Malloc(sizeof(void *));
22606 if (!_children) {
22607 p->error_indicator = 1;
22608 PyErr_NoMemory();
22609 D(p->level--);
22610 return NULL;
22611 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022612 Py_ssize_t _children_capacity = 1;
22613 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022614 { // ',' NAME
22615 if (p->error_indicator) {
22616 D(p->level--);
22617 return NULL;
22618 }
22619 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22620 Token * _literal;
22621 expr_ty elem;
22622 while (
22623 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22624 &&
22625 (elem = _PyPegen_name_token(p)) // NAME
22626 )
22627 {
22628 _res = elem;
22629 if (_res == NULL && PyErr_Occurred()) {
22630 p->error_indicator = 1;
22631 PyMem_Free(_children);
22632 D(p->level--);
22633 return NULL;
22634 }
22635 if (_n == _children_capacity) {
22636 _children_capacity *= 2;
22637 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22638 if (!_new_children) {
22639 p->error_indicator = 1;
22640 PyErr_NoMemory();
22641 D(p->level--);
22642 return NULL;
22643 }
22644 _children = _new_children;
22645 }
22646 _children[_n++] = _res;
22647 _mark = p->mark;
22648 }
22649 p->mark = _mark;
22650 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22652 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022653 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022654 if (!_seq) {
22655 PyMem_Free(_children);
22656 p->error_indicator = 1;
22657 PyErr_NoMemory();
22658 D(p->level--);
22659 return NULL;
22660 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022661 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022662 PyMem_Free(_children);
22663 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22664 D(p->level--);
22665 return _seq;
22666}
22667
22668// _gather_27: NAME _loop0_28
22669static asdl_seq *
22670_gather_27_rule(Parser *p)
22671{
22672 D(p->level++);
22673 if (p->error_indicator) {
22674 D(p->level--);
22675 return NULL;
22676 }
22677 asdl_seq * _res = NULL;
22678 int _mark = p->mark;
22679 { // NAME _loop0_28
22680 if (p->error_indicator) {
22681 D(p->level--);
22682 return NULL;
22683 }
22684 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22685 expr_ty elem;
22686 asdl_seq * seq;
22687 if (
22688 (elem = _PyPegen_name_token(p)) // NAME
22689 &&
22690 (seq = _loop0_28_rule(p)) // _loop0_28
22691 )
22692 {
22693 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22694 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22695 goto done;
22696 }
22697 p->mark = _mark;
22698 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22700 }
22701 _res = NULL;
22702 done:
22703 D(p->level--);
22704 return _res;
22705}
22706
22707// _tmp_29: ',' expression
22708static void *
22709_tmp_29_rule(Parser *p)
22710{
22711 D(p->level++);
22712 if (p->error_indicator) {
22713 D(p->level--);
22714 return NULL;
22715 }
22716 void * _res = NULL;
22717 int _mark = p->mark;
22718 { // ',' expression
22719 if (p->error_indicator) {
22720 D(p->level--);
22721 return NULL;
22722 }
22723 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22724 Token * _literal;
22725 expr_ty z;
22726 if (
22727 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22728 &&
22729 (z = expression_rule(p)) // expression
22730 )
22731 {
22732 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22733 _res = z;
22734 if (_res == NULL && PyErr_Occurred()) {
22735 p->error_indicator = 1;
22736 D(p->level--);
22737 return NULL;
22738 }
22739 goto done;
22740 }
22741 p->mark = _mark;
22742 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22744 }
22745 _res = NULL;
22746 done:
22747 D(p->level--);
22748 return _res;
22749}
22750
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022751// _tmp_30: ';' | NEWLINE
22752static void *
22753_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022754{
22755 D(p->level++);
22756 if (p->error_indicator) {
22757 D(p->level--);
22758 return NULL;
22759 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022760 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022761 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022762 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022763 if (p->error_indicator) {
22764 D(p->level--);
22765 return NULL;
22766 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022767 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22768 Token * _literal;
22769 if (
22770 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022771 )
22772 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022773 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22774 _res = _literal;
22775 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022776 }
22777 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022778 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022780 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022781 { // NEWLINE
22782 if (p->error_indicator) {
22783 D(p->level--);
22784 return NULL;
22785 }
22786 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22787 Token * newline_var;
22788 if (
22789 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22790 )
22791 {
22792 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22793 _res = newline_var;
22794 goto done;
22795 }
22796 p->mark = _mark;
22797 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022799 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022800 _res = NULL;
22801 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022802 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022803 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022804}
22805
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022806// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022807static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022808_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022809{
22810 D(p->level++);
22811 if (p->error_indicator) {
22812 D(p->level--);
22813 return NULL;
22814 }
22815 void *_res = NULL;
22816 int _mark = p->mark;
22817 int _start_mark = p->mark;
22818 void **_children = PyMem_Malloc(sizeof(void *));
22819 if (!_children) {
22820 p->error_indicator = 1;
22821 PyErr_NoMemory();
22822 D(p->level--);
22823 return NULL;
22824 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022825 Py_ssize_t _children_capacity = 1;
22826 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022827 { // ('.' | '...')
22828 if (p->error_indicator) {
22829 D(p->level--);
22830 return NULL;
22831 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022832 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070022833 void *_tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022834 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070022835 (_tmp_179_var = _tmp_179_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022836 )
22837 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070022838 _res = _tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022839 if (_n == _children_capacity) {
22840 _children_capacity *= 2;
22841 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22842 if (!_new_children) {
22843 p->error_indicator = 1;
22844 PyErr_NoMemory();
22845 D(p->level--);
22846 return NULL;
22847 }
22848 _children = _new_children;
22849 }
22850 _children[_n++] = _res;
22851 _mark = p->mark;
22852 }
22853 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022854 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
22855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22856 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022857 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022858 if (!_seq) {
22859 PyMem_Free(_children);
22860 p->error_indicator = 1;
22861 PyErr_NoMemory();
22862 D(p->level--);
22863 return NULL;
22864 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022865 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022866 PyMem_Free(_children);
22867 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
22868 D(p->level--);
22869 return _seq;
22870}
22871
22872// _loop1_32: ('.' | '...')
22873static asdl_seq *
22874_loop1_32_rule(Parser *p)
22875{
22876 D(p->level++);
22877 if (p->error_indicator) {
22878 D(p->level--);
22879 return NULL;
22880 }
22881 void *_res = NULL;
22882 int _mark = p->mark;
22883 int _start_mark = p->mark;
22884 void **_children = PyMem_Malloc(sizeof(void *));
22885 if (!_children) {
22886 p->error_indicator = 1;
22887 PyErr_NoMemory();
22888 D(p->level--);
22889 return NULL;
22890 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022891 Py_ssize_t _children_capacity = 1;
22892 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022893 { // ('.' | '...')
22894 if (p->error_indicator) {
22895 D(p->level--);
22896 return NULL;
22897 }
22898 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070022899 void *_tmp_180_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022900 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070022901 (_tmp_180_var = _tmp_180_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022902 )
22903 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070022904 _res = _tmp_180_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022905 if (_n == _children_capacity) {
22906 _children_capacity *= 2;
22907 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22908 if (!_new_children) {
22909 p->error_indicator = 1;
22910 PyErr_NoMemory();
22911 D(p->level--);
22912 return NULL;
22913 }
22914 _children = _new_children;
22915 }
22916 _children[_n++] = _res;
22917 _mark = p->mark;
22918 }
22919 p->mark = _mark;
22920 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022921 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22922 }
22923 if (_n == 0 || p->error_indicator) {
22924 PyMem_Free(_children);
22925 D(p->level--);
22926 return NULL;
22927 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022928 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022929 if (!_seq) {
22930 PyMem_Free(_children);
22931 p->error_indicator = 1;
22932 PyErr_NoMemory();
22933 D(p->level--);
22934 return NULL;
22935 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022936 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022937 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022938 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022939 D(p->level--);
22940 return _seq;
22941}
22942
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022943// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022944static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022945_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022946{
22947 D(p->level++);
22948 if (p->error_indicator) {
22949 D(p->level--);
22950 return NULL;
22951 }
22952 void *_res = NULL;
22953 int _mark = p->mark;
22954 int _start_mark = p->mark;
22955 void **_children = PyMem_Malloc(sizeof(void *));
22956 if (!_children) {
22957 p->error_indicator = 1;
22958 PyErr_NoMemory();
22959 D(p->level--);
22960 return NULL;
22961 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022962 Py_ssize_t _children_capacity = 1;
22963 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022964 { // ',' import_from_as_name
22965 if (p->error_indicator) {
22966 D(p->level--);
22967 return NULL;
22968 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022969 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 +010022970 Token * _literal;
22971 alias_ty elem;
22972 while (
22973 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22974 &&
22975 (elem = import_from_as_name_rule(p)) // import_from_as_name
22976 )
22977 {
22978 _res = elem;
22979 if (_res == NULL && PyErr_Occurred()) {
22980 p->error_indicator = 1;
22981 PyMem_Free(_children);
22982 D(p->level--);
22983 return NULL;
22984 }
22985 if (_n == _children_capacity) {
22986 _children_capacity *= 2;
22987 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22988 if (!_new_children) {
22989 p->error_indicator = 1;
22990 PyErr_NoMemory();
22991 D(p->level--);
22992 return NULL;
22993 }
22994 _children = _new_children;
22995 }
22996 _children[_n++] = _res;
22997 _mark = p->mark;
22998 }
22999 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023000 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
23002 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023003 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023004 if (!_seq) {
23005 PyMem_Free(_children);
23006 p->error_indicator = 1;
23007 PyErr_NoMemory();
23008 D(p->level--);
23009 return NULL;
23010 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023011 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023012 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023013 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023014 D(p->level--);
23015 return _seq;
23016}
23017
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023018// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023019static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023020_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023021{
23022 D(p->level++);
23023 if (p->error_indicator) {
23024 D(p->level--);
23025 return NULL;
23026 }
23027 asdl_seq * _res = NULL;
23028 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023029 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023030 if (p->error_indicator) {
23031 D(p->level--);
23032 return NULL;
23033 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023034 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 +010023035 alias_ty elem;
23036 asdl_seq * seq;
23037 if (
23038 (elem = import_from_as_name_rule(p)) // import_from_as_name
23039 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023040 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023041 )
23042 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023043 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 +010023044 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23045 goto done;
23046 }
23047 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023048 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
23049 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023050 }
23051 _res = NULL;
23052 done:
23053 D(p->level--);
23054 return _res;
23055}
23056
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023057// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023058static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023059_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023060{
23061 D(p->level++);
23062 if (p->error_indicator) {
23063 D(p->level--);
23064 return NULL;
23065 }
23066 void * _res = NULL;
23067 int _mark = p->mark;
23068 { // 'as' NAME
23069 if (p->error_indicator) {
23070 D(p->level--);
23071 return NULL;
23072 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023073 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023074 Token * _keyword;
23075 expr_ty z;
23076 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023077 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023078 &&
23079 (z = _PyPegen_name_token(p)) // NAME
23080 )
23081 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023082 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 +010023083 _res = z;
23084 if (_res == NULL && PyErr_Occurred()) {
23085 p->error_indicator = 1;
23086 D(p->level--);
23087 return NULL;
23088 }
23089 goto done;
23090 }
23091 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023092 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23094 }
23095 _res = NULL;
23096 done:
23097 D(p->level--);
23098 return _res;
23099}
23100
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023101// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023102static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023103_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023104{
23105 D(p->level++);
23106 if (p->error_indicator) {
23107 D(p->level--);
23108 return NULL;
23109 }
23110 void *_res = NULL;
23111 int _mark = p->mark;
23112 int _start_mark = p->mark;
23113 void **_children = PyMem_Malloc(sizeof(void *));
23114 if (!_children) {
23115 p->error_indicator = 1;
23116 PyErr_NoMemory();
23117 D(p->level--);
23118 return NULL;
23119 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023120 Py_ssize_t _children_capacity = 1;
23121 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023122 { // ',' dotted_as_name
23123 if (p->error_indicator) {
23124 D(p->level--);
23125 return NULL;
23126 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023127 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 +010023128 Token * _literal;
23129 alias_ty elem;
23130 while (
23131 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23132 &&
23133 (elem = dotted_as_name_rule(p)) // dotted_as_name
23134 )
23135 {
23136 _res = elem;
23137 if (_res == NULL && PyErr_Occurred()) {
23138 p->error_indicator = 1;
23139 PyMem_Free(_children);
23140 D(p->level--);
23141 return NULL;
23142 }
23143 if (_n == _children_capacity) {
23144 _children_capacity *= 2;
23145 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23146 if (!_new_children) {
23147 p->error_indicator = 1;
23148 PyErr_NoMemory();
23149 D(p->level--);
23150 return NULL;
23151 }
23152 _children = _new_children;
23153 }
23154 _children[_n++] = _res;
23155 _mark = p->mark;
23156 }
23157 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023158 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023159 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23160 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023161 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023162 if (!_seq) {
23163 PyMem_Free(_children);
23164 p->error_indicator = 1;
23165 PyErr_NoMemory();
23166 D(p->level--);
23167 return NULL;
23168 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023169 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023170 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023171 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023172 D(p->level--);
23173 return _seq;
23174}
23175
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023176// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023177static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023178_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023179{
23180 D(p->level++);
23181 if (p->error_indicator) {
23182 D(p->level--);
23183 return NULL;
23184 }
23185 asdl_seq * _res = NULL;
23186 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023187 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023188 if (p->error_indicator) {
23189 D(p->level--);
23190 return NULL;
23191 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023192 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 +010023193 alias_ty elem;
23194 asdl_seq * seq;
23195 if (
23196 (elem = dotted_as_name_rule(p)) // dotted_as_name
23197 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023198 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023199 )
23200 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023201 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 +010023202 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23203 goto done;
23204 }
23205 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023206 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023208 }
23209 _res = NULL;
23210 done:
23211 D(p->level--);
23212 return _res;
23213}
23214
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023215// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023216static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023217_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023218{
23219 D(p->level++);
23220 if (p->error_indicator) {
23221 D(p->level--);
23222 return NULL;
23223 }
23224 void * _res = NULL;
23225 int _mark = p->mark;
23226 { // 'as' NAME
23227 if (p->error_indicator) {
23228 D(p->level--);
23229 return NULL;
23230 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023231 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023232 Token * _keyword;
23233 expr_ty z;
23234 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023235 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023236 &&
23237 (z = _PyPegen_name_token(p)) // NAME
23238 )
23239 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023240 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 +010023241 _res = z;
23242 if (_res == NULL && PyErr_Occurred()) {
23243 p->error_indicator = 1;
23244 D(p->level--);
23245 return NULL;
23246 }
23247 goto done;
23248 }
23249 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023250 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23252 }
23253 _res = NULL;
23254 done:
23255 D(p->level--);
23256 return _res;
23257}
23258
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023259// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023260static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023261_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023262{
23263 D(p->level++);
23264 if (p->error_indicator) {
23265 D(p->level--);
23266 return NULL;
23267 }
23268 void *_res = NULL;
23269 int _mark = p->mark;
23270 int _start_mark = p->mark;
23271 void **_children = PyMem_Malloc(sizeof(void *));
23272 if (!_children) {
23273 p->error_indicator = 1;
23274 PyErr_NoMemory();
23275 D(p->level--);
23276 return NULL;
23277 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023278 Py_ssize_t _children_capacity = 1;
23279 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023280 { // ',' with_item
23281 if (p->error_indicator) {
23282 D(p->level--);
23283 return NULL;
23284 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023285 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023286 Token * _literal;
23287 withitem_ty elem;
23288 while (
23289 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23290 &&
23291 (elem = with_item_rule(p)) // with_item
23292 )
23293 {
23294 _res = elem;
23295 if (_res == NULL && PyErr_Occurred()) {
23296 p->error_indicator = 1;
23297 PyMem_Free(_children);
23298 D(p->level--);
23299 return NULL;
23300 }
23301 if (_n == _children_capacity) {
23302 _children_capacity *= 2;
23303 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23304 if (!_new_children) {
23305 p->error_indicator = 1;
23306 PyErr_NoMemory();
23307 D(p->level--);
23308 return NULL;
23309 }
23310 _children = _new_children;
23311 }
23312 _children[_n++] = _res;
23313 _mark = p->mark;
23314 }
23315 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023316 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23318 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023319 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023320 if (!_seq) {
23321 PyMem_Free(_children);
23322 p->error_indicator = 1;
23323 PyErr_NoMemory();
23324 D(p->level--);
23325 return NULL;
23326 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023327 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023328 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023329 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023330 D(p->level--);
23331 return _seq;
23332}
23333
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023334// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023335static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023336_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023337{
23338 D(p->level++);
23339 if (p->error_indicator) {
23340 D(p->level--);
23341 return NULL;
23342 }
23343 asdl_seq * _res = NULL;
23344 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023345 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023346 if (p->error_indicator) {
23347 D(p->level--);
23348 return NULL;
23349 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023350 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 +010023351 withitem_ty elem;
23352 asdl_seq * seq;
23353 if (
23354 (elem = with_item_rule(p)) // with_item
23355 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023356 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023357 )
23358 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023359 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 +010023360 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23361 goto done;
23362 }
23363 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023364 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023366 }
23367 _res = NULL;
23368 done:
23369 D(p->level--);
23370 return _res;
23371}
23372
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023373// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023374static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023375_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023376{
23377 D(p->level++);
23378 if (p->error_indicator) {
23379 D(p->level--);
23380 return NULL;
23381 }
23382 void *_res = NULL;
23383 int _mark = p->mark;
23384 int _start_mark = p->mark;
23385 void **_children = PyMem_Malloc(sizeof(void *));
23386 if (!_children) {
23387 p->error_indicator = 1;
23388 PyErr_NoMemory();
23389 D(p->level--);
23390 return NULL;
23391 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023392 Py_ssize_t _children_capacity = 1;
23393 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023394 { // ',' with_item
23395 if (p->error_indicator) {
23396 D(p->level--);
23397 return NULL;
23398 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023399 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023400 Token * _literal;
23401 withitem_ty elem;
23402 while (
23403 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23404 &&
23405 (elem = with_item_rule(p)) // with_item
23406 )
23407 {
23408 _res = elem;
23409 if (_res == NULL && PyErr_Occurred()) {
23410 p->error_indicator = 1;
23411 PyMem_Free(_children);
23412 D(p->level--);
23413 return NULL;
23414 }
23415 if (_n == _children_capacity) {
23416 _children_capacity *= 2;
23417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23418 if (!_new_children) {
23419 p->error_indicator = 1;
23420 PyErr_NoMemory();
23421 D(p->level--);
23422 return NULL;
23423 }
23424 _children = _new_children;
23425 }
23426 _children[_n++] = _res;
23427 _mark = p->mark;
23428 }
23429 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023430 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23432 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023433 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023434 if (!_seq) {
23435 PyMem_Free(_children);
23436 p->error_indicator = 1;
23437 PyErr_NoMemory();
23438 D(p->level--);
23439 return NULL;
23440 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023441 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023442 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023443 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023444 D(p->level--);
23445 return _seq;
23446}
23447
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023448// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023449static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023450_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023451{
23452 D(p->level++);
23453 if (p->error_indicator) {
23454 D(p->level--);
23455 return NULL;
23456 }
23457 asdl_seq * _res = NULL;
23458 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023459 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023460 if (p->error_indicator) {
23461 D(p->level--);
23462 return NULL;
23463 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023464 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 +010023465 withitem_ty elem;
23466 asdl_seq * seq;
23467 if (
23468 (elem = with_item_rule(p)) // with_item
23469 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023470 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023471 )
23472 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023473 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 +010023474 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23475 goto done;
23476 }
23477 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023478 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023480 }
23481 _res = NULL;
23482 done:
23483 D(p->level--);
23484 return _res;
23485}
23486
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023487// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023488static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023489_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023490{
23491 D(p->level++);
23492 if (p->error_indicator) {
23493 D(p->level--);
23494 return NULL;
23495 }
23496 void *_res = NULL;
23497 int _mark = p->mark;
23498 int _start_mark = p->mark;
23499 void **_children = PyMem_Malloc(sizeof(void *));
23500 if (!_children) {
23501 p->error_indicator = 1;
23502 PyErr_NoMemory();
23503 D(p->level--);
23504 return NULL;
23505 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023506 Py_ssize_t _children_capacity = 1;
23507 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023508 { // ',' with_item
23509 if (p->error_indicator) {
23510 D(p->level--);
23511 return NULL;
23512 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023513 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023514 Token * _literal;
23515 withitem_ty elem;
23516 while (
23517 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23518 &&
23519 (elem = with_item_rule(p)) // with_item
23520 )
23521 {
23522 _res = elem;
23523 if (_res == NULL && PyErr_Occurred()) {
23524 p->error_indicator = 1;
23525 PyMem_Free(_children);
23526 D(p->level--);
23527 return NULL;
23528 }
23529 if (_n == _children_capacity) {
23530 _children_capacity *= 2;
23531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23532 if (!_new_children) {
23533 p->error_indicator = 1;
23534 PyErr_NoMemory();
23535 D(p->level--);
23536 return NULL;
23537 }
23538 _children = _new_children;
23539 }
23540 _children[_n++] = _res;
23541 _mark = p->mark;
23542 }
23543 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023544 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023547 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023548 if (!_seq) {
23549 PyMem_Free(_children);
23550 p->error_indicator = 1;
23551 PyErr_NoMemory();
23552 D(p->level--);
23553 return NULL;
23554 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023555 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023556 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023557 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023558 D(p->level--);
23559 return _seq;
23560}
23561
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023562// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023563static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023564_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023565{
23566 D(p->level++);
23567 if (p->error_indicator) {
23568 D(p->level--);
23569 return NULL;
23570 }
23571 asdl_seq * _res = NULL;
23572 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023573 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023574 if (p->error_indicator) {
23575 D(p->level--);
23576 return NULL;
23577 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023578 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 +010023579 withitem_ty elem;
23580 asdl_seq * seq;
23581 if (
23582 (elem = with_item_rule(p)) // with_item
23583 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023584 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023585 )
23586 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023587 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 +010023588 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23589 goto done;
23590 }
23591 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023592 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023594 }
23595 _res = NULL;
23596 done:
23597 D(p->level--);
23598 return _res;
23599}
23600
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023601// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023602static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023603_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023604{
23605 D(p->level++);
23606 if (p->error_indicator) {
23607 D(p->level--);
23608 return NULL;
23609 }
23610 void *_res = NULL;
23611 int _mark = p->mark;
23612 int _start_mark = p->mark;
23613 void **_children = PyMem_Malloc(sizeof(void *));
23614 if (!_children) {
23615 p->error_indicator = 1;
23616 PyErr_NoMemory();
23617 D(p->level--);
23618 return NULL;
23619 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023620 Py_ssize_t _children_capacity = 1;
23621 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023622 { // ',' with_item
23623 if (p->error_indicator) {
23624 D(p->level--);
23625 return NULL;
23626 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023627 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023628 Token * _literal;
23629 withitem_ty elem;
23630 while (
23631 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23632 &&
23633 (elem = with_item_rule(p)) // with_item
23634 )
23635 {
23636 _res = elem;
23637 if (_res == NULL && PyErr_Occurred()) {
23638 p->error_indicator = 1;
23639 PyMem_Free(_children);
23640 D(p->level--);
23641 return NULL;
23642 }
23643 if (_n == _children_capacity) {
23644 _children_capacity *= 2;
23645 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23646 if (!_new_children) {
23647 p->error_indicator = 1;
23648 PyErr_NoMemory();
23649 D(p->level--);
23650 return NULL;
23651 }
23652 _children = _new_children;
23653 }
23654 _children[_n++] = _res;
23655 _mark = p->mark;
23656 }
23657 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023658 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23660 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023661 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023662 if (!_seq) {
23663 PyMem_Free(_children);
23664 p->error_indicator = 1;
23665 PyErr_NoMemory();
23666 D(p->level--);
23667 return NULL;
23668 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023669 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023670 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023671 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023672 D(p->level--);
23673 return _seq;
23674}
23675
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023676// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023677static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023678_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023679{
23680 D(p->level++);
23681 if (p->error_indicator) {
23682 D(p->level--);
23683 return NULL;
23684 }
23685 asdl_seq * _res = NULL;
23686 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023687 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023688 if (p->error_indicator) {
23689 D(p->level--);
23690 return NULL;
23691 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023692 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 +010023693 withitem_ty elem;
23694 asdl_seq * seq;
23695 if (
23696 (elem = with_item_rule(p)) // with_item
23697 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023698 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023699 )
23700 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023701 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 +010023702 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23703 goto done;
23704 }
23705 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023706 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023708 }
23709 _res = NULL;
23710 done:
23711 D(p->level--);
23712 return _res;
23713}
23714
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023715// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023716static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023717_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023718{
23719 D(p->level++);
23720 if (p->error_indicator) {
23721 D(p->level--);
23722 return NULL;
23723 }
23724 void * _res = NULL;
23725 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023726 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023727 if (p->error_indicator) {
23728 D(p->level--);
23729 return NULL;
23730 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023731 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23732 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023733 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023734 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023735 )
23736 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023737 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23738 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023739 goto done;
23740 }
23741 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023742 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23744 }
23745 { // ')'
23746 if (p->error_indicator) {
23747 D(p->level--);
23748 return NULL;
23749 }
23750 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23751 Token * _literal;
23752 if (
23753 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23754 )
23755 {
23756 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23757 _res = _literal;
23758 goto done;
23759 }
23760 p->mark = _mark;
23761 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23763 }
23764 { // ':'
23765 if (p->error_indicator) {
23766 D(p->level--);
23767 return NULL;
23768 }
23769 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23770 Token * _literal;
23771 if (
23772 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23773 )
23774 {
23775 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23776 _res = _literal;
23777 goto done;
23778 }
23779 p->mark = _mark;
23780 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023782 }
23783 _res = NULL;
23784 done:
23785 D(p->level--);
23786 return _res;
23787}
23788
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023789// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023790static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023791_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023792{
23793 D(p->level++);
23794 if (p->error_indicator) {
23795 D(p->level--);
23796 return NULL;
23797 }
23798 void *_res = NULL;
23799 int _mark = p->mark;
23800 int _start_mark = p->mark;
23801 void **_children = PyMem_Malloc(sizeof(void *));
23802 if (!_children) {
23803 p->error_indicator = 1;
23804 PyErr_NoMemory();
23805 D(p->level--);
23806 return NULL;
23807 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023808 Py_ssize_t _children_capacity = 1;
23809 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023810 { // except_block
23811 if (p->error_indicator) {
23812 D(p->level--);
23813 return NULL;
23814 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023815 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023816 excepthandler_ty except_block_var;
23817 while (
23818 (except_block_var = except_block_rule(p)) // except_block
23819 )
23820 {
23821 _res = except_block_var;
23822 if (_n == _children_capacity) {
23823 _children_capacity *= 2;
23824 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23825 if (!_new_children) {
23826 p->error_indicator = 1;
23827 PyErr_NoMemory();
23828 D(p->level--);
23829 return NULL;
23830 }
23831 _children = _new_children;
23832 }
23833 _children[_n++] = _res;
23834 _mark = p->mark;
23835 }
23836 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023837 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23839 }
23840 if (_n == 0 || p->error_indicator) {
23841 PyMem_Free(_children);
23842 D(p->level--);
23843 return NULL;
23844 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023845 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023846 if (!_seq) {
23847 PyMem_Free(_children);
23848 p->error_indicator = 1;
23849 PyErr_NoMemory();
23850 D(p->level--);
23851 return NULL;
23852 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023853 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023854 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023855 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023856 D(p->level--);
23857 return _seq;
23858}
23859
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023860// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023861static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023862_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023863{
23864 D(p->level++);
23865 if (p->error_indicator) {
23866 D(p->level--);
23867 return NULL;
23868 }
23869 void * _res = NULL;
23870 int _mark = p->mark;
23871 { // 'as' NAME
23872 if (p->error_indicator) {
23873 D(p->level--);
23874 return NULL;
23875 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023876 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023877 Token * _keyword;
23878 expr_ty z;
23879 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023880 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023881 &&
23882 (z = _PyPegen_name_token(p)) // NAME
23883 )
23884 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023885 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 +010023886 _res = z;
23887 if (_res == NULL && PyErr_Occurred()) {
23888 p->error_indicator = 1;
23889 D(p->level--);
23890 return NULL;
23891 }
23892 goto done;
23893 }
23894 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023895 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023896 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23897 }
23898 _res = NULL;
23899 done:
23900 D(p->level--);
23901 return _res;
23902}
23903
Brandt Bucher145bf262021-02-26 14:51:55 -080023904// _loop1_50: case_block
23905static asdl_seq *
23906_loop1_50_rule(Parser *p)
23907{
23908 D(p->level++);
23909 if (p->error_indicator) {
23910 D(p->level--);
23911 return NULL;
23912 }
23913 void *_res = NULL;
23914 int _mark = p->mark;
23915 int _start_mark = p->mark;
23916 void **_children = PyMem_Malloc(sizeof(void *));
23917 if (!_children) {
23918 p->error_indicator = 1;
23919 PyErr_NoMemory();
23920 D(p->level--);
23921 return NULL;
23922 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023923 Py_ssize_t _children_capacity = 1;
23924 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023925 { // case_block
23926 if (p->error_indicator) {
23927 D(p->level--);
23928 return NULL;
23929 }
23930 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
23931 match_case_ty case_block_var;
23932 while (
23933 (case_block_var = case_block_rule(p)) // case_block
23934 )
23935 {
23936 _res = case_block_var;
23937 if (_n == _children_capacity) {
23938 _children_capacity *= 2;
23939 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23940 if (!_new_children) {
23941 p->error_indicator = 1;
23942 PyErr_NoMemory();
23943 D(p->level--);
23944 return NULL;
23945 }
23946 _children = _new_children;
23947 }
23948 _children[_n++] = _res;
23949 _mark = p->mark;
23950 }
23951 p->mark = _mark;
23952 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
23953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
23954 }
23955 if (_n == 0 || p->error_indicator) {
23956 PyMem_Free(_children);
23957 D(p->level--);
23958 return NULL;
23959 }
23960 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23961 if (!_seq) {
23962 PyMem_Free(_children);
23963 p->error_indicator = 1;
23964 PyErr_NoMemory();
23965 D(p->level--);
23966 return NULL;
23967 }
23968 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23969 PyMem_Free(_children);
23970 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
23971 D(p->level--);
23972 return _seq;
23973}
23974
23975// _loop0_52: '|' closed_pattern
23976static asdl_seq *
23977_loop0_52_rule(Parser *p)
23978{
23979 D(p->level++);
23980 if (p->error_indicator) {
23981 D(p->level--);
23982 return NULL;
23983 }
23984 void *_res = NULL;
23985 int _mark = p->mark;
23986 int _start_mark = p->mark;
23987 void **_children = PyMem_Malloc(sizeof(void *));
23988 if (!_children) {
23989 p->error_indicator = 1;
23990 PyErr_NoMemory();
23991 D(p->level--);
23992 return NULL;
23993 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023994 Py_ssize_t _children_capacity = 1;
23995 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023996 { // '|' closed_pattern
23997 if (p->error_indicator) {
23998 D(p->level--);
23999 return NULL;
24000 }
24001 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
24002 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024003 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024004 while (
24005 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
24006 &&
24007 (elem = closed_pattern_rule(p)) // closed_pattern
24008 )
24009 {
24010 _res = elem;
24011 if (_res == NULL && PyErr_Occurred()) {
24012 p->error_indicator = 1;
24013 PyMem_Free(_children);
24014 D(p->level--);
24015 return NULL;
24016 }
24017 if (_n == _children_capacity) {
24018 _children_capacity *= 2;
24019 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24020 if (!_new_children) {
24021 p->error_indicator = 1;
24022 PyErr_NoMemory();
24023 D(p->level--);
24024 return NULL;
24025 }
24026 _children = _new_children;
24027 }
24028 _children[_n++] = _res;
24029 _mark = p->mark;
24030 }
24031 p->mark = _mark;
24032 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
24033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
24034 }
24035 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24036 if (!_seq) {
24037 PyMem_Free(_children);
24038 p->error_indicator = 1;
24039 PyErr_NoMemory();
24040 D(p->level--);
24041 return NULL;
24042 }
24043 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24044 PyMem_Free(_children);
24045 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
24046 D(p->level--);
24047 return _seq;
24048}
24049
24050// _gather_51: closed_pattern _loop0_52
24051static asdl_seq *
24052_gather_51_rule(Parser *p)
24053{
24054 D(p->level++);
24055 if (p->error_indicator) {
24056 D(p->level--);
24057 return NULL;
24058 }
24059 asdl_seq * _res = NULL;
24060 int _mark = p->mark;
24061 { // closed_pattern _loop0_52
24062 if (p->error_indicator) {
24063 D(p->level--);
24064 return NULL;
24065 }
24066 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 +100024067 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024068 asdl_seq * seq;
24069 if (
24070 (elem = closed_pattern_rule(p)) // closed_pattern
24071 &&
24072 (seq = _loop0_52_rule(p)) // _loop0_52
24073 )
24074 {
24075 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24076 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24077 goto done;
24078 }
24079 p->mark = _mark;
24080 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24081 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24082 }
24083 _res = NULL;
24084 done:
24085 D(p->level--);
24086 return _res;
24087}
24088
24089// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024090static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024091_tmp_53_rule(Parser *p)
24092{
24093 D(p->level++);
24094 if (p->error_indicator) {
24095 D(p->level--);
24096 return NULL;
24097 }
24098 void * _res = NULL;
24099 int _mark = p->mark;
24100 { // '+'
24101 if (p->error_indicator) {
24102 D(p->level--);
24103 return NULL;
24104 }
24105 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24106 Token * _literal;
24107 if (
24108 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24109 )
24110 {
24111 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24112 _res = _literal;
24113 goto done;
24114 }
24115 p->mark = _mark;
24116 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24118 }
24119 { // '-'
24120 if (p->error_indicator) {
24121 D(p->level--);
24122 return NULL;
24123 }
24124 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24125 Token * _literal;
24126 if (
24127 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24128 )
24129 {
24130 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24131 _res = _literal;
24132 goto done;
24133 }
24134 p->mark = _mark;
24135 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24137 }
24138 _res = NULL;
24139 done:
24140 D(p->level--);
24141 return _res;
24142}
24143
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024144// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024145static void *
24146_tmp_54_rule(Parser *p)
24147{
24148 D(p->level++);
24149 if (p->error_indicator) {
24150 D(p->level--);
24151 return NULL;
24152 }
24153 void * _res = NULL;
24154 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024155 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024156 if (p->error_indicator) {
24157 D(p->level--);
24158 return NULL;
24159 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024160 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024161 Token * _literal;
24162 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024163 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024164 )
24165 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024166 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024167 _res = _literal;
24168 goto done;
24169 }
24170 p->mark = _mark;
24171 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024173 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024174 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024175 if (p->error_indicator) {
24176 D(p->level--);
24177 return NULL;
24178 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024179 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024180 Token * _literal;
24181 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024182 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024183 )
24184 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024185 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024186 _res = _literal;
24187 goto done;
24188 }
24189 p->mark = _mark;
24190 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024192 }
24193 _res = NULL;
24194 done:
24195 D(p->level--);
24196 return _res;
24197}
24198
24199// _tmp_55: '.' | '(' | '='
24200static void *
24201_tmp_55_rule(Parser *p)
24202{
24203 D(p->level++);
24204 if (p->error_indicator) {
24205 D(p->level--);
24206 return NULL;
24207 }
24208 void * _res = NULL;
24209 int _mark = p->mark;
24210 { // '.'
24211 if (p->error_indicator) {
24212 D(p->level--);
24213 return NULL;
24214 }
24215 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24216 Token * _literal;
24217 if (
24218 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24219 )
24220 {
24221 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24222 _res = _literal;
24223 goto done;
24224 }
24225 p->mark = _mark;
24226 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24228 }
24229 { // '('
24230 if (p->error_indicator) {
24231 D(p->level--);
24232 return NULL;
24233 }
24234 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24235 Token * _literal;
24236 if (
24237 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24238 )
24239 {
24240 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24241 _res = _literal;
24242 goto done;
24243 }
24244 p->mark = _mark;
24245 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24247 }
24248 { // '='
24249 if (p->error_indicator) {
24250 D(p->level--);
24251 return NULL;
24252 }
24253 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24254 Token * _literal;
24255 if (
24256 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24257 )
24258 {
24259 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24260 _res = _literal;
24261 goto done;
24262 }
24263 p->mark = _mark;
24264 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24266 }
24267 _res = NULL;
24268 done:
24269 D(p->level--);
24270 return _res;
24271}
24272
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024273// _tmp_56: '.' | '(' | '='
24274static void *
24275_tmp_56_rule(Parser *p)
24276{
24277 D(p->level++);
24278 if (p->error_indicator) {
24279 D(p->level--);
24280 return NULL;
24281 }
24282 void * _res = NULL;
24283 int _mark = p->mark;
24284 { // '.'
24285 if (p->error_indicator) {
24286 D(p->level--);
24287 return NULL;
24288 }
24289 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24290 Token * _literal;
24291 if (
24292 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24293 )
24294 {
24295 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24296 _res = _literal;
24297 goto done;
24298 }
24299 p->mark = _mark;
24300 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24302 }
24303 { // '('
24304 if (p->error_indicator) {
24305 D(p->level--);
24306 return NULL;
24307 }
24308 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24309 Token * _literal;
24310 if (
24311 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24312 )
24313 {
24314 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24315 _res = _literal;
24316 goto done;
24317 }
24318 p->mark = _mark;
24319 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24321 }
24322 { // '='
24323 if (p->error_indicator) {
24324 D(p->level--);
24325 return NULL;
24326 }
24327 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24328 Token * _literal;
24329 if (
24330 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24331 )
24332 {
24333 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24334 _res = _literal;
24335 goto done;
24336 }
24337 p->mark = _mark;
24338 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24340 }
24341 _res = NULL;
24342 done:
24343 D(p->level--);
24344 return _res;
24345}
24346
24347// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024348static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024349_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024350{
24351 D(p->level++);
24352 if (p->error_indicator) {
24353 D(p->level--);
24354 return NULL;
24355 }
24356 void *_res = NULL;
24357 int _mark = p->mark;
24358 int _start_mark = p->mark;
24359 void **_children = PyMem_Malloc(sizeof(void *));
24360 if (!_children) {
24361 p->error_indicator = 1;
24362 PyErr_NoMemory();
24363 D(p->level--);
24364 return NULL;
24365 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024366 Py_ssize_t _children_capacity = 1;
24367 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024368 { // ',' maybe_star_pattern
24369 if (p->error_indicator) {
24370 D(p->level--);
24371 return NULL;
24372 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024373 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 -080024374 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024375 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024376 while (
24377 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24378 &&
24379 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24380 )
24381 {
24382 _res = elem;
24383 if (_res == NULL && PyErr_Occurred()) {
24384 p->error_indicator = 1;
24385 PyMem_Free(_children);
24386 D(p->level--);
24387 return NULL;
24388 }
24389 if (_n == _children_capacity) {
24390 _children_capacity *= 2;
24391 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24392 if (!_new_children) {
24393 p->error_indicator = 1;
24394 PyErr_NoMemory();
24395 D(p->level--);
24396 return NULL;
24397 }
24398 _children = _new_children;
24399 }
24400 _children[_n++] = _res;
24401 _mark = p->mark;
24402 }
24403 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024404 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024405 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24406 }
24407 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24408 if (!_seq) {
24409 PyMem_Free(_children);
24410 p->error_indicator = 1;
24411 PyErr_NoMemory();
24412 D(p->level--);
24413 return NULL;
24414 }
24415 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24416 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024417 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024418 D(p->level--);
24419 return _seq;
24420}
24421
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024422// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024423static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024424_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024425{
24426 D(p->level++);
24427 if (p->error_indicator) {
24428 D(p->level--);
24429 return NULL;
24430 }
24431 asdl_seq * _res = NULL;
24432 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024433 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024434 if (p->error_indicator) {
24435 D(p->level--);
24436 return NULL;
24437 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024438 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24439 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024440 asdl_seq * seq;
24441 if (
24442 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24443 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024444 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024445 )
24446 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024447 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 -080024448 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24449 goto done;
24450 }
24451 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024452 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024454 }
24455 _res = NULL;
24456 done:
24457 D(p->level--);
24458 return _res;
24459}
24460
24461// _loop0_60: ',' key_value_pattern
24462static asdl_seq *
24463_loop0_60_rule(Parser *p)
24464{
24465 D(p->level++);
24466 if (p->error_indicator) {
24467 D(p->level--);
24468 return NULL;
24469 }
24470 void *_res = NULL;
24471 int _mark = p->mark;
24472 int _start_mark = p->mark;
24473 void **_children = PyMem_Malloc(sizeof(void *));
24474 if (!_children) {
24475 p->error_indicator = 1;
24476 PyErr_NoMemory();
24477 D(p->level--);
24478 return NULL;
24479 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024480 Py_ssize_t _children_capacity = 1;
24481 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024482 { // ',' key_value_pattern
24483 if (p->error_indicator) {
24484 D(p->level--);
24485 return NULL;
24486 }
24487 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24488 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024489 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024490 while (
24491 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24492 &&
24493 (elem = key_value_pattern_rule(p)) // key_value_pattern
24494 )
24495 {
24496 _res = elem;
24497 if (_res == NULL && PyErr_Occurred()) {
24498 p->error_indicator = 1;
24499 PyMem_Free(_children);
24500 D(p->level--);
24501 return NULL;
24502 }
24503 if (_n == _children_capacity) {
24504 _children_capacity *= 2;
24505 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24506 if (!_new_children) {
24507 p->error_indicator = 1;
24508 PyErr_NoMemory();
24509 D(p->level--);
24510 return NULL;
24511 }
24512 _children = _new_children;
24513 }
24514 _children[_n++] = _res;
24515 _mark = p->mark;
24516 }
24517 p->mark = _mark;
24518 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24520 }
24521 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24522 if (!_seq) {
24523 PyMem_Free(_children);
24524 p->error_indicator = 1;
24525 PyErr_NoMemory();
24526 D(p->level--);
24527 return NULL;
24528 }
24529 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24530 PyMem_Free(_children);
24531 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24532 D(p->level--);
24533 return _seq;
24534}
24535
24536// _gather_59: key_value_pattern _loop0_60
24537static asdl_seq *
24538_gather_59_rule(Parser *p)
24539{
24540 D(p->level++);
24541 if (p->error_indicator) {
24542 D(p->level--);
24543 return NULL;
24544 }
24545 asdl_seq * _res = NULL;
24546 int _mark = p->mark;
24547 { // key_value_pattern _loop0_60
24548 if (p->error_indicator) {
24549 D(p->level--);
24550 return NULL;
24551 }
24552 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 +100024553 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024554 asdl_seq * seq;
24555 if (
24556 (elem = key_value_pattern_rule(p)) // key_value_pattern
24557 &&
24558 (seq = _loop0_60_rule(p)) // _loop0_60
24559 )
24560 {
24561 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24562 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24563 goto done;
24564 }
24565 p->mark = _mark;
24566 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24568 }
24569 _res = NULL;
24570 done:
24571 D(p->level--);
24572 return _res;
24573}
24574
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024575// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024576static void *
24577_tmp_61_rule(Parser *p)
24578{
24579 D(p->level++);
24580 if (p->error_indicator) {
24581 D(p->level--);
24582 return NULL;
24583 }
24584 void * _res = NULL;
24585 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024586 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024587 if (p->error_indicator) {
24588 D(p->level--);
24589 return NULL;
24590 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024591 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24592 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024593 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024594 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024595 )
24596 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024597 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24598 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024599 goto done;
24600 }
24601 p->mark = _mark;
24602 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024604 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024605 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024606 if (p->error_indicator) {
24607 D(p->level--);
24608 return NULL;
24609 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024610 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24611 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024612 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024613 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024614 )
24615 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024616 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24617 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024618 goto done;
24619 }
24620 p->mark = _mark;
24621 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024623 }
24624 _res = NULL;
24625 done:
24626 D(p->level--);
24627 return _res;
24628}
24629
24630// _loop0_63: ',' pattern
24631static asdl_seq *
24632_loop0_63_rule(Parser *p)
24633{
24634 D(p->level++);
24635 if (p->error_indicator) {
24636 D(p->level--);
24637 return NULL;
24638 }
24639 void *_res = NULL;
24640 int _mark = p->mark;
24641 int _start_mark = p->mark;
24642 void **_children = PyMem_Malloc(sizeof(void *));
24643 if (!_children) {
24644 p->error_indicator = 1;
24645 PyErr_NoMemory();
24646 D(p->level--);
24647 return NULL;
24648 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024649 Py_ssize_t _children_capacity = 1;
24650 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024651 { // ',' pattern
24652 if (p->error_indicator) {
24653 D(p->level--);
24654 return NULL;
24655 }
24656 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24657 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024658 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024659 while (
24660 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24661 &&
24662 (elem = pattern_rule(p)) // pattern
24663 )
24664 {
24665 _res = elem;
24666 if (_res == NULL && PyErr_Occurred()) {
24667 p->error_indicator = 1;
24668 PyMem_Free(_children);
24669 D(p->level--);
24670 return NULL;
24671 }
24672 if (_n == _children_capacity) {
24673 _children_capacity *= 2;
24674 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24675 if (!_new_children) {
24676 p->error_indicator = 1;
24677 PyErr_NoMemory();
24678 D(p->level--);
24679 return NULL;
24680 }
24681 _children = _new_children;
24682 }
24683 _children[_n++] = _res;
24684 _mark = p->mark;
24685 }
24686 p->mark = _mark;
24687 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24689 }
24690 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24691 if (!_seq) {
24692 PyMem_Free(_children);
24693 p->error_indicator = 1;
24694 PyErr_NoMemory();
24695 D(p->level--);
24696 return NULL;
24697 }
24698 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24699 PyMem_Free(_children);
24700 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24701 D(p->level--);
24702 return _seq;
24703}
24704
24705// _gather_62: pattern _loop0_63
24706static asdl_seq *
24707_gather_62_rule(Parser *p)
24708{
24709 D(p->level++);
24710 if (p->error_indicator) {
24711 D(p->level--);
24712 return NULL;
24713 }
24714 asdl_seq * _res = NULL;
24715 int _mark = p->mark;
24716 { // pattern _loop0_63
24717 if (p->error_indicator) {
24718 D(p->level--);
24719 return NULL;
24720 }
24721 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 +100024722 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024723 asdl_seq * seq;
24724 if (
24725 (elem = pattern_rule(p)) // pattern
24726 &&
24727 (seq = _loop0_63_rule(p)) // _loop0_63
24728 )
24729 {
24730 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24731 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24732 goto done;
24733 }
24734 p->mark = _mark;
24735 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24737 }
24738 _res = NULL;
24739 done:
24740 D(p->level--);
24741 return _res;
24742}
24743
24744// _loop0_65: ',' keyword_pattern
24745static asdl_seq *
24746_loop0_65_rule(Parser *p)
24747{
24748 D(p->level++);
24749 if (p->error_indicator) {
24750 D(p->level--);
24751 return NULL;
24752 }
24753 void *_res = NULL;
24754 int _mark = p->mark;
24755 int _start_mark = p->mark;
24756 void **_children = PyMem_Malloc(sizeof(void *));
24757 if (!_children) {
24758 p->error_indicator = 1;
24759 PyErr_NoMemory();
24760 D(p->level--);
24761 return NULL;
24762 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024763 Py_ssize_t _children_capacity = 1;
24764 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024765 { // ',' keyword_pattern
24766 if (p->error_indicator) {
24767 D(p->level--);
24768 return NULL;
24769 }
24770 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24771 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024772 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024773 while (
24774 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24775 &&
24776 (elem = keyword_pattern_rule(p)) // keyword_pattern
24777 )
24778 {
24779 _res = elem;
24780 if (_res == NULL && PyErr_Occurred()) {
24781 p->error_indicator = 1;
24782 PyMem_Free(_children);
24783 D(p->level--);
24784 return NULL;
24785 }
24786 if (_n == _children_capacity) {
24787 _children_capacity *= 2;
24788 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24789 if (!_new_children) {
24790 p->error_indicator = 1;
24791 PyErr_NoMemory();
24792 D(p->level--);
24793 return NULL;
24794 }
24795 _children = _new_children;
24796 }
24797 _children[_n++] = _res;
24798 _mark = p->mark;
24799 }
24800 p->mark = _mark;
24801 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24803 }
24804 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24805 if (!_seq) {
24806 PyMem_Free(_children);
24807 p->error_indicator = 1;
24808 PyErr_NoMemory();
24809 D(p->level--);
24810 return NULL;
24811 }
24812 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24813 PyMem_Free(_children);
24814 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24815 D(p->level--);
24816 return _seq;
24817}
24818
24819// _gather_64: keyword_pattern _loop0_65
24820static asdl_seq *
24821_gather_64_rule(Parser *p)
24822{
24823 D(p->level++);
24824 if (p->error_indicator) {
24825 D(p->level--);
24826 return NULL;
24827 }
24828 asdl_seq * _res = NULL;
24829 int _mark = p->mark;
24830 { // keyword_pattern _loop0_65
24831 if (p->error_indicator) {
24832 D(p->level--);
24833 return NULL;
24834 }
24835 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 +100024836 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024837 asdl_seq * seq;
24838 if (
24839 (elem = keyword_pattern_rule(p)) // keyword_pattern
24840 &&
24841 (seq = _loop0_65_rule(p)) // _loop0_65
24842 )
24843 {
24844 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24845 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24846 goto done;
24847 }
24848 p->mark = _mark;
24849 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
24850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
24851 }
24852 _res = NULL;
24853 done:
24854 D(p->level--);
24855 return _res;
24856}
24857
24858// _tmp_66: 'from' expression
24859static void *
24860_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024861{
24862 D(p->level++);
24863 if (p->error_indicator) {
24864 D(p->level--);
24865 return NULL;
24866 }
24867 void * _res = NULL;
24868 int _mark = p->mark;
24869 { // 'from' expression
24870 if (p->error_indicator) {
24871 D(p->level--);
24872 return NULL;
24873 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024874 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024875 Token * _keyword;
24876 expr_ty z;
24877 if (
24878 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
24879 &&
24880 (z = expression_rule(p)) // expression
24881 )
24882 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024883 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 +010024884 _res = z;
24885 if (_res == NULL && PyErr_Occurred()) {
24886 p->error_indicator = 1;
24887 D(p->level--);
24888 return NULL;
24889 }
24890 goto done;
24891 }
24892 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024893 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024895 }
24896 _res = NULL;
24897 done:
24898 D(p->level--);
24899 return _res;
24900}
24901
Brandt Bucher145bf262021-02-26 14:51:55 -080024902// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024903static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024904_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024905{
24906 D(p->level++);
24907 if (p->error_indicator) {
24908 D(p->level--);
24909 return NULL;
24910 }
24911 void * _res = NULL;
24912 int _mark = p->mark;
24913 { // '->' expression
24914 if (p->error_indicator) {
24915 D(p->level--);
24916 return NULL;
24917 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024918 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024919 Token * _literal;
24920 expr_ty z;
24921 if (
24922 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24923 &&
24924 (z = expression_rule(p)) // expression
24925 )
24926 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024927 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024928 _res = z;
24929 if (_res == NULL && PyErr_Occurred()) {
24930 p->error_indicator = 1;
24931 D(p->level--);
24932 return NULL;
24933 }
24934 goto done;
24935 }
24936 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024937 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24939 }
24940 _res = NULL;
24941 done:
24942 D(p->level--);
24943 return _res;
24944}
24945
Brandt Bucher145bf262021-02-26 14:51:55 -080024946// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024947static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024948_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024949{
24950 D(p->level++);
24951 if (p->error_indicator) {
24952 D(p->level--);
24953 return NULL;
24954 }
24955 void * _res = NULL;
24956 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024957 { // '->' expression
24958 if (p->error_indicator) {
24959 D(p->level--);
24960 return NULL;
24961 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024962 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024963 Token * _literal;
24964 expr_ty z;
24965 if (
24966 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24967 &&
24968 (z = expression_rule(p)) // expression
24969 )
24970 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024971 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024972 _res = z;
24973 if (_res == NULL && PyErr_Occurred()) {
24974 p->error_indicator = 1;
24975 D(p->level--);
24976 return NULL;
24977 }
24978 goto done;
24979 }
24980 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024981 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24983 }
24984 _res = NULL;
24985 done:
24986 D(p->level--);
24987 return _res;
24988}
24989
Brandt Bucher145bf262021-02-26 14:51:55 -080024990// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024991static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024992_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024993{
24994 D(p->level++);
24995 if (p->error_indicator) {
24996 D(p->level--);
24997 return NULL;
24998 }
24999 void * _res = NULL;
25000 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025001 { // NEWLINE INDENT
25002 if (p->error_indicator) {
25003 D(p->level--);
25004 return NULL;
25005 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025006 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025007 Token * indent_var;
25008 Token * newline_var;
25009 if (
25010 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
25011 &&
25012 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
25013 )
25014 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025015 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 +010025016 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
25017 goto done;
25018 }
25019 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025020 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
25022 }
25023 _res = NULL;
25024 done:
25025 D(p->level--);
25026 return _res;
25027}
25028
Brandt Bucher145bf262021-02-26 14:51:55 -080025029// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025030static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025031_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025032{
25033 D(p->level++);
25034 if (p->error_indicator) {
25035 D(p->level--);
25036 return NULL;
25037 }
25038 void *_res = NULL;
25039 int _mark = p->mark;
25040 int _start_mark = p->mark;
25041 void **_children = PyMem_Malloc(sizeof(void *));
25042 if (!_children) {
25043 p->error_indicator = 1;
25044 PyErr_NoMemory();
25045 D(p->level--);
25046 return NULL;
25047 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025048 Py_ssize_t _children_capacity = 1;
25049 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025050 { // param_no_default
25051 if (p->error_indicator) {
25052 D(p->level--);
25053 return NULL;
25054 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025055 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 +010025056 arg_ty param_no_default_var;
25057 while (
25058 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25059 )
25060 {
25061 _res = param_no_default_var;
25062 if (_n == _children_capacity) {
25063 _children_capacity *= 2;
25064 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25065 if (!_new_children) {
25066 p->error_indicator = 1;
25067 PyErr_NoMemory();
25068 D(p->level--);
25069 return NULL;
25070 }
25071 _children = _new_children;
25072 }
25073 _children[_n++] = _res;
25074 _mark = p->mark;
25075 }
25076 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025077 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025079 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025080 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025081 if (!_seq) {
25082 PyMem_Free(_children);
25083 p->error_indicator = 1;
25084 PyErr_NoMemory();
25085 D(p->level--);
25086 return NULL;
25087 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025088 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025089 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025090 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025091 D(p->level--);
25092 return _seq;
25093}
25094
Brandt Bucher145bf262021-02-26 14:51:55 -080025095// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025096static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025097_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025098{
25099 D(p->level++);
25100 if (p->error_indicator) {
25101 D(p->level--);
25102 return NULL;
25103 }
25104 void *_res = NULL;
25105 int _mark = p->mark;
25106 int _start_mark = p->mark;
25107 void **_children = PyMem_Malloc(sizeof(void *));
25108 if (!_children) {
25109 p->error_indicator = 1;
25110 PyErr_NoMemory();
25111 D(p->level--);
25112 return NULL;
25113 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025114 Py_ssize_t _children_capacity = 1;
25115 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025116 { // param_with_default
25117 if (p->error_indicator) {
25118 D(p->level--);
25119 return NULL;
25120 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025121 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 +010025122 NameDefaultPair* param_with_default_var;
25123 while (
25124 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25125 )
25126 {
25127 _res = param_with_default_var;
25128 if (_n == _children_capacity) {
25129 _children_capacity *= 2;
25130 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25131 if (!_new_children) {
25132 p->error_indicator = 1;
25133 PyErr_NoMemory();
25134 D(p->level--);
25135 return NULL;
25136 }
25137 _children = _new_children;
25138 }
25139 _children[_n++] = _res;
25140 _mark = p->mark;
25141 }
25142 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025143 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25145 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025146 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025147 if (!_seq) {
25148 PyMem_Free(_children);
25149 p->error_indicator = 1;
25150 PyErr_NoMemory();
25151 D(p->level--);
25152 return NULL;
25153 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025154 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025155 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025156 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025157 D(p->level--);
25158 return _seq;
25159}
25160
Brandt Bucher145bf262021-02-26 14:51:55 -080025161// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025162static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025163_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025164{
25165 D(p->level++);
25166 if (p->error_indicator) {
25167 D(p->level--);
25168 return NULL;
25169 }
25170 void *_res = NULL;
25171 int _mark = p->mark;
25172 int _start_mark = p->mark;
25173 void **_children = PyMem_Malloc(sizeof(void *));
25174 if (!_children) {
25175 p->error_indicator = 1;
25176 PyErr_NoMemory();
25177 D(p->level--);
25178 return NULL;
25179 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025180 Py_ssize_t _children_capacity = 1;
25181 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025182 { // param_with_default
25183 if (p->error_indicator) {
25184 D(p->level--);
25185 return NULL;
25186 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025187 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 +030025188 NameDefaultPair* param_with_default_var;
25189 while (
25190 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25191 )
25192 {
25193 _res = param_with_default_var;
25194 if (_n == _children_capacity) {
25195 _children_capacity *= 2;
25196 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25197 if (!_new_children) {
25198 p->error_indicator = 1;
25199 PyErr_NoMemory();
25200 D(p->level--);
25201 return NULL;
25202 }
25203 _children = _new_children;
25204 }
25205 _children[_n++] = _res;
25206 _mark = p->mark;
25207 }
25208 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025209 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25211 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025212 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025213 if (!_seq) {
25214 PyMem_Free(_children);
25215 p->error_indicator = 1;
25216 PyErr_NoMemory();
25217 D(p->level--);
25218 return NULL;
25219 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025220 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025221 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025222 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025223 D(p->level--);
25224 return _seq;
25225}
25226
Brandt Bucher145bf262021-02-26 14:51:55 -080025227// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025228static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025229_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025230{
25231 D(p->level++);
25232 if (p->error_indicator) {
25233 D(p->level--);
25234 return NULL;
25235 }
25236 void *_res = NULL;
25237 int _mark = p->mark;
25238 int _start_mark = p->mark;
25239 void **_children = PyMem_Malloc(sizeof(void *));
25240 if (!_children) {
25241 p->error_indicator = 1;
25242 PyErr_NoMemory();
25243 D(p->level--);
25244 return NULL;
25245 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025246 Py_ssize_t _children_capacity = 1;
25247 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025248 { // param_no_default
25249 if (p->error_indicator) {
25250 D(p->level--);
25251 return NULL;
25252 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025253 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 +010025254 arg_ty param_no_default_var;
25255 while (
25256 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25257 )
25258 {
25259 _res = param_no_default_var;
25260 if (_n == _children_capacity) {
25261 _children_capacity *= 2;
25262 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25263 if (!_new_children) {
25264 p->error_indicator = 1;
25265 PyErr_NoMemory();
25266 D(p->level--);
25267 return NULL;
25268 }
25269 _children = _new_children;
25270 }
25271 _children[_n++] = _res;
25272 _mark = p->mark;
25273 }
25274 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025275 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25277 }
25278 if (_n == 0 || p->error_indicator) {
25279 PyMem_Free(_children);
25280 D(p->level--);
25281 return NULL;
25282 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025283 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025284 if (!_seq) {
25285 PyMem_Free(_children);
25286 p->error_indicator = 1;
25287 PyErr_NoMemory();
25288 D(p->level--);
25289 return NULL;
25290 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025291 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025292 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025293 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025294 D(p->level--);
25295 return _seq;
25296}
25297
Brandt Bucher145bf262021-02-26 14:51:55 -080025298// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025299static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025300_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025301{
25302 D(p->level++);
25303 if (p->error_indicator) {
25304 D(p->level--);
25305 return NULL;
25306 }
25307 void *_res = NULL;
25308 int _mark = p->mark;
25309 int _start_mark = p->mark;
25310 void **_children = PyMem_Malloc(sizeof(void *));
25311 if (!_children) {
25312 p->error_indicator = 1;
25313 PyErr_NoMemory();
25314 D(p->level--);
25315 return NULL;
25316 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025317 Py_ssize_t _children_capacity = 1;
25318 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025319 { // param_with_default
25320 if (p->error_indicator) {
25321 D(p->level--);
25322 return NULL;
25323 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025324 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 +010025325 NameDefaultPair* param_with_default_var;
25326 while (
25327 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25328 )
25329 {
25330 _res = param_with_default_var;
25331 if (_n == _children_capacity) {
25332 _children_capacity *= 2;
25333 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25334 if (!_new_children) {
25335 p->error_indicator = 1;
25336 PyErr_NoMemory();
25337 D(p->level--);
25338 return NULL;
25339 }
25340 _children = _new_children;
25341 }
25342 _children[_n++] = _res;
25343 _mark = p->mark;
25344 }
25345 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025346 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25348 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025349 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025350 if (!_seq) {
25351 PyMem_Free(_children);
25352 p->error_indicator = 1;
25353 PyErr_NoMemory();
25354 D(p->level--);
25355 return NULL;
25356 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025357 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025358 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025359 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025360 D(p->level--);
25361 return _seq;
25362}
25363
Brandt Bucher145bf262021-02-26 14:51:55 -080025364// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025365static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025366_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025367{
25368 D(p->level++);
25369 if (p->error_indicator) {
25370 D(p->level--);
25371 return NULL;
25372 }
25373 void *_res = NULL;
25374 int _mark = p->mark;
25375 int _start_mark = p->mark;
25376 void **_children = PyMem_Malloc(sizeof(void *));
25377 if (!_children) {
25378 p->error_indicator = 1;
25379 PyErr_NoMemory();
25380 D(p->level--);
25381 return NULL;
25382 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025383 Py_ssize_t _children_capacity = 1;
25384 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025385 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025386 if (p->error_indicator) {
25387 D(p->level--);
25388 return NULL;
25389 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025390 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 +030025391 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025392 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025393 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025394 )
25395 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025396 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025397 if (_n == _children_capacity) {
25398 _children_capacity *= 2;
25399 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25400 if (!_new_children) {
25401 p->error_indicator = 1;
25402 PyErr_NoMemory();
25403 D(p->level--);
25404 return NULL;
25405 }
25406 _children = _new_children;
25407 }
25408 _children[_n++] = _res;
25409 _mark = p->mark;
25410 }
25411 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025412 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025414 }
25415 if (_n == 0 || p->error_indicator) {
25416 PyMem_Free(_children);
25417 D(p->level--);
25418 return NULL;
25419 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025420 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025421 if (!_seq) {
25422 PyMem_Free(_children);
25423 p->error_indicator = 1;
25424 PyErr_NoMemory();
25425 D(p->level--);
25426 return NULL;
25427 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025428 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025429 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025430 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025431 D(p->level--);
25432 return _seq;
25433}
25434
Brandt Bucher145bf262021-02-26 14:51:55 -080025435// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025436static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025437_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025438{
25439 D(p->level++);
25440 if (p->error_indicator) {
25441 D(p->level--);
25442 return NULL;
25443 }
25444 void *_res = NULL;
25445 int _mark = p->mark;
25446 int _start_mark = p->mark;
25447 void **_children = PyMem_Malloc(sizeof(void *));
25448 if (!_children) {
25449 p->error_indicator = 1;
25450 PyErr_NoMemory();
25451 D(p->level--);
25452 return NULL;
25453 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025454 Py_ssize_t _children_capacity = 1;
25455 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025456 { // param_no_default
25457 if (p->error_indicator) {
25458 D(p->level--);
25459 return NULL;
25460 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025461 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 +010025462 arg_ty param_no_default_var;
25463 while (
25464 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25465 )
25466 {
25467 _res = param_no_default_var;
25468 if (_n == _children_capacity) {
25469 _children_capacity *= 2;
25470 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25471 if (!_new_children) {
25472 p->error_indicator = 1;
25473 PyErr_NoMemory();
25474 D(p->level--);
25475 return NULL;
25476 }
25477 _children = _new_children;
25478 }
25479 _children[_n++] = _res;
25480 _mark = p->mark;
25481 }
25482 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025483 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25485 }
25486 if (_n == 0 || p->error_indicator) {
25487 PyMem_Free(_children);
25488 D(p->level--);
25489 return NULL;
25490 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025491 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025492 if (!_seq) {
25493 PyMem_Free(_children);
25494 p->error_indicator = 1;
25495 PyErr_NoMemory();
25496 D(p->level--);
25497 return NULL;
25498 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025499 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025500 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025501 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025502 D(p->level--);
25503 return _seq;
25504}
25505
Brandt Bucher145bf262021-02-26 14:51:55 -080025506// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025507static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025508_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025509{
25510 D(p->level++);
25511 if (p->error_indicator) {
25512 D(p->level--);
25513 return NULL;
25514 }
25515 void *_res = NULL;
25516 int _mark = p->mark;
25517 int _start_mark = p->mark;
25518 void **_children = PyMem_Malloc(sizeof(void *));
25519 if (!_children) {
25520 p->error_indicator = 1;
25521 PyErr_NoMemory();
25522 D(p->level--);
25523 return NULL;
25524 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025525 Py_ssize_t _children_capacity = 1;
25526 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025527 { // param_no_default
25528 if (p->error_indicator) {
25529 D(p->level--);
25530 return NULL;
25531 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025532 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 +010025533 arg_ty param_no_default_var;
25534 while (
25535 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25536 )
25537 {
25538 _res = param_no_default_var;
25539 if (_n == _children_capacity) {
25540 _children_capacity *= 2;
25541 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25542 if (!_new_children) {
25543 p->error_indicator = 1;
25544 PyErr_NoMemory();
25545 D(p->level--);
25546 return NULL;
25547 }
25548 _children = _new_children;
25549 }
25550 _children[_n++] = _res;
25551 _mark = p->mark;
25552 }
25553 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025554 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25556 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025557 if (_n == 0 || p->error_indicator) {
25558 PyMem_Free(_children);
25559 D(p->level--);
25560 return NULL;
25561 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025562 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025563 if (!_seq) {
25564 PyMem_Free(_children);
25565 p->error_indicator = 1;
25566 PyErr_NoMemory();
25567 D(p->level--);
25568 return NULL;
25569 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025570 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025571 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025572 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025573 D(p->level--);
25574 return _seq;
25575}
25576
Brandt Bucher145bf262021-02-26 14:51:55 -080025577// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025578static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025579_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025580{
25581 D(p->level++);
25582 if (p->error_indicator) {
25583 D(p->level--);
25584 return NULL;
25585 }
25586 void *_res = NULL;
25587 int _mark = p->mark;
25588 int _start_mark = p->mark;
25589 void **_children = PyMem_Malloc(sizeof(void *));
25590 if (!_children) {
25591 p->error_indicator = 1;
25592 PyErr_NoMemory();
25593 D(p->level--);
25594 return NULL;
25595 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025596 Py_ssize_t _children_capacity = 1;
25597 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025598 { // param_no_default
25599 if (p->error_indicator) {
25600 D(p->level--);
25601 return NULL;
25602 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025603 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 +010025604 arg_ty param_no_default_var;
25605 while (
25606 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25607 )
25608 {
25609 _res = param_no_default_var;
25610 if (_n == _children_capacity) {
25611 _children_capacity *= 2;
25612 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25613 if (!_new_children) {
25614 p->error_indicator = 1;
25615 PyErr_NoMemory();
25616 D(p->level--);
25617 return NULL;
25618 }
25619 _children = _new_children;
25620 }
25621 _children[_n++] = _res;
25622 _mark = p->mark;
25623 }
25624 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025625 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25627 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025628 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025629 if (!_seq) {
25630 PyMem_Free(_children);
25631 p->error_indicator = 1;
25632 PyErr_NoMemory();
25633 D(p->level--);
25634 return NULL;
25635 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025636 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025637 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025638 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025639 D(p->level--);
25640 return _seq;
25641}
25642
Brandt Bucher145bf262021-02-26 14:51:55 -080025643// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025644static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025645_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025646{
25647 D(p->level++);
25648 if (p->error_indicator) {
25649 D(p->level--);
25650 return NULL;
25651 }
25652 void *_res = NULL;
25653 int _mark = p->mark;
25654 int _start_mark = p->mark;
25655 void **_children = PyMem_Malloc(sizeof(void *));
25656 if (!_children) {
25657 p->error_indicator = 1;
25658 PyErr_NoMemory();
25659 D(p->level--);
25660 return NULL;
25661 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025662 Py_ssize_t _children_capacity = 1;
25663 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025664 { // param_with_default
25665 if (p->error_indicator) {
25666 D(p->level--);
25667 return NULL;
25668 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025669 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 +010025670 NameDefaultPair* param_with_default_var;
25671 while (
25672 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25673 )
25674 {
25675 _res = param_with_default_var;
25676 if (_n == _children_capacity) {
25677 _children_capacity *= 2;
25678 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25679 if (!_new_children) {
25680 p->error_indicator = 1;
25681 PyErr_NoMemory();
25682 D(p->level--);
25683 return NULL;
25684 }
25685 _children = _new_children;
25686 }
25687 _children[_n++] = _res;
25688 _mark = p->mark;
25689 }
25690 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025691 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25693 }
25694 if (_n == 0 || p->error_indicator) {
25695 PyMem_Free(_children);
25696 D(p->level--);
25697 return NULL;
25698 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025699 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025700 if (!_seq) {
25701 PyMem_Free(_children);
25702 p->error_indicator = 1;
25703 PyErr_NoMemory();
25704 D(p->level--);
25705 return NULL;
25706 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025707 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025708 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025709 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025710 D(p->level--);
25711 return _seq;
25712}
25713
Brandt Bucher145bf262021-02-26 14:51:55 -080025714// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025715static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025716_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025717{
25718 D(p->level++);
25719 if (p->error_indicator) {
25720 D(p->level--);
25721 return NULL;
25722 }
25723 void *_res = NULL;
25724 int _mark = p->mark;
25725 int _start_mark = p->mark;
25726 void **_children = PyMem_Malloc(sizeof(void *));
25727 if (!_children) {
25728 p->error_indicator = 1;
25729 PyErr_NoMemory();
25730 D(p->level--);
25731 return NULL;
25732 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025733 Py_ssize_t _children_capacity = 1;
25734 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025735 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025736 if (p->error_indicator) {
25737 D(p->level--);
25738 return NULL;
25739 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025740 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 +030025741 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025742 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025743 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025744 )
25745 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025746 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025747 if (_n == _children_capacity) {
25748 _children_capacity *= 2;
25749 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25750 if (!_new_children) {
25751 p->error_indicator = 1;
25752 PyErr_NoMemory();
25753 D(p->level--);
25754 return NULL;
25755 }
25756 _children = _new_children;
25757 }
25758 _children[_n++] = _res;
25759 _mark = p->mark;
25760 }
25761 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025762 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025764 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025765 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025766 if (!_seq) {
25767 PyMem_Free(_children);
25768 p->error_indicator = 1;
25769 PyErr_NoMemory();
25770 D(p->level--);
25771 return NULL;
25772 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025773 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025774 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025775 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025776 D(p->level--);
25777 return _seq;
25778}
25779
Brandt Bucher145bf262021-02-26 14:51:55 -080025780// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025781static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025782_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025783{
25784 D(p->level++);
25785 if (p->error_indicator) {
25786 D(p->level--);
25787 return NULL;
25788 }
25789 void *_res = NULL;
25790 int _mark = p->mark;
25791 int _start_mark = p->mark;
25792 void **_children = PyMem_Malloc(sizeof(void *));
25793 if (!_children) {
25794 p->error_indicator = 1;
25795 PyErr_NoMemory();
25796 D(p->level--);
25797 return NULL;
25798 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025799 Py_ssize_t _children_capacity = 1;
25800 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025801 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025802 if (p->error_indicator) {
25803 D(p->level--);
25804 return NULL;
25805 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025806 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 +030025807 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025808 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025809 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025810 )
25811 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025812 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025813 if (_n == _children_capacity) {
25814 _children_capacity *= 2;
25815 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25816 if (!_new_children) {
25817 p->error_indicator = 1;
25818 PyErr_NoMemory();
25819 D(p->level--);
25820 return NULL;
25821 }
25822 _children = _new_children;
25823 }
25824 _children[_n++] = _res;
25825 _mark = p->mark;
25826 }
25827 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025828 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025830 }
25831 if (_n == 0 || p->error_indicator) {
25832 PyMem_Free(_children);
25833 D(p->level--);
25834 return NULL;
25835 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025836 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025837 if (!_seq) {
25838 PyMem_Free(_children);
25839 p->error_indicator = 1;
25840 PyErr_NoMemory();
25841 D(p->level--);
25842 return NULL;
25843 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025844 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025845 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025846 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025847 D(p->level--);
25848 return _seq;
25849}
25850
Brandt Bucher145bf262021-02-26 14:51:55 -080025851// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025852static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025853_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025854{
25855 D(p->level++);
25856 if (p->error_indicator) {
25857 D(p->level--);
25858 return NULL;
25859 }
25860 void *_res = NULL;
25861 int _mark = p->mark;
25862 int _start_mark = p->mark;
25863 void **_children = PyMem_Malloc(sizeof(void *));
25864 if (!_children) {
25865 p->error_indicator = 1;
25866 PyErr_NoMemory();
25867 D(p->level--);
25868 return NULL;
25869 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025870 Py_ssize_t _children_capacity = 1;
25871 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025872 { // param_maybe_default
25873 if (p->error_indicator) {
25874 D(p->level--);
25875 return NULL;
25876 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025877 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 +030025878 NameDefaultPair* param_maybe_default_var;
25879 while (
25880 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25881 )
25882 {
25883 _res = param_maybe_default_var;
25884 if (_n == _children_capacity) {
25885 _children_capacity *= 2;
25886 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25887 if (!_new_children) {
25888 p->error_indicator = 1;
25889 PyErr_NoMemory();
25890 D(p->level--);
25891 return NULL;
25892 }
25893 _children = _new_children;
25894 }
25895 _children[_n++] = _res;
25896 _mark = p->mark;
25897 }
25898 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025899 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025900 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25901 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025902 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025903 if (!_seq) {
25904 PyMem_Free(_children);
25905 p->error_indicator = 1;
25906 PyErr_NoMemory();
25907 D(p->level--);
25908 return NULL;
25909 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025910 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025911 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025912 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025913 D(p->level--);
25914 return _seq;
25915}
25916
Brandt Bucher145bf262021-02-26 14:51:55 -080025917// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025918static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025919_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025920{
25921 D(p->level++);
25922 if (p->error_indicator) {
25923 D(p->level--);
25924 return NULL;
25925 }
25926 void *_res = NULL;
25927 int _mark = p->mark;
25928 int _start_mark = p->mark;
25929 void **_children = PyMem_Malloc(sizeof(void *));
25930 if (!_children) {
25931 p->error_indicator = 1;
25932 PyErr_NoMemory();
25933 D(p->level--);
25934 return NULL;
25935 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025936 Py_ssize_t _children_capacity = 1;
25937 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025938 { // param_maybe_default
25939 if (p->error_indicator) {
25940 D(p->level--);
25941 return NULL;
25942 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025943 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 +030025944 NameDefaultPair* param_maybe_default_var;
25945 while (
25946 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25947 )
25948 {
25949 _res = param_maybe_default_var;
25950 if (_n == _children_capacity) {
25951 _children_capacity *= 2;
25952 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25953 if (!_new_children) {
25954 p->error_indicator = 1;
25955 PyErr_NoMemory();
25956 D(p->level--);
25957 return NULL;
25958 }
25959 _children = _new_children;
25960 }
25961 _children[_n++] = _res;
25962 _mark = p->mark;
25963 }
25964 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025965 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25967 }
25968 if (_n == 0 || p->error_indicator) {
25969 PyMem_Free(_children);
25970 D(p->level--);
25971 return NULL;
25972 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025973 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025974 if (!_seq) {
25975 PyMem_Free(_children);
25976 p->error_indicator = 1;
25977 PyErr_NoMemory();
25978 D(p->level--);
25979 return NULL;
25980 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025981 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025982 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025983 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025984 D(p->level--);
25985 return _seq;
25986}
25987
Brandt Bucher145bf262021-02-26 14:51:55 -080025988// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025989static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025990_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025991{
25992 D(p->level++);
25993 if (p->error_indicator) {
25994 D(p->level--);
25995 return NULL;
25996 }
25997 void *_res = NULL;
25998 int _mark = p->mark;
25999 int _start_mark = p->mark;
26000 void **_children = PyMem_Malloc(sizeof(void *));
26001 if (!_children) {
26002 p->error_indicator = 1;
26003 PyErr_NoMemory();
26004 D(p->level--);
26005 return NULL;
26006 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026007 Py_ssize_t _children_capacity = 1;
26008 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026009 { // ('@' named_expression NEWLINE)
26010 if (p->error_indicator) {
26011 D(p->level--);
26012 return NULL;
26013 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026014 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070026015 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026016 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070026017 (_tmp_181_var = _tmp_181_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026018 )
26019 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070026020 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026021 if (_n == _children_capacity) {
26022 _children_capacity *= 2;
26023 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26024 if (!_new_children) {
26025 p->error_indicator = 1;
26026 PyErr_NoMemory();
26027 D(p->level--);
26028 return NULL;
26029 }
26030 _children = _new_children;
26031 }
26032 _children[_n++] = _res;
26033 _mark = p->mark;
26034 }
26035 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026036 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
26038 }
26039 if (_n == 0 || p->error_indicator) {
26040 PyMem_Free(_children);
26041 D(p->level--);
26042 return NULL;
26043 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026044 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026045 if (!_seq) {
26046 PyMem_Free(_children);
26047 p->error_indicator = 1;
26048 PyErr_NoMemory();
26049 D(p->level--);
26050 return NULL;
26051 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026052 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026053 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026054 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026055 D(p->level--);
26056 return _seq;
26057}
26058
Brandt Bucher145bf262021-02-26 14:51:55 -080026059// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026060static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080026061_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026062{
26063 D(p->level++);
26064 if (p->error_indicator) {
26065 D(p->level--);
26066 return NULL;
26067 }
26068 void * _res = NULL;
26069 int _mark = p->mark;
26070 { // '(' arguments? ')'
26071 if (p->error_indicator) {
26072 D(p->level--);
26073 return NULL;
26074 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026075 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026076 Token * _literal;
26077 Token * _literal_1;
26078 void *z;
26079 if (
26080 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26081 &&
26082 (z = arguments_rule(p), 1) // arguments?
26083 &&
26084 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26085 )
26086 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026087 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026088 _res = z;
26089 if (_res == NULL && PyErr_Occurred()) {
26090 p->error_indicator = 1;
26091 D(p->level--);
26092 return NULL;
26093 }
26094 goto done;
26095 }
26096 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026097 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26099 }
26100 _res = NULL;
26101 done:
26102 D(p->level--);
26103 return _res;
26104}
26105
Brandt Bucher145bf262021-02-26 14:51:55 -080026106// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026107static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026108_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026109{
26110 D(p->level++);
26111 if (p->error_indicator) {
26112 D(p->level--);
26113 return NULL;
26114 }
26115 void *_res = NULL;
26116 int _mark = p->mark;
26117 int _start_mark = p->mark;
26118 void **_children = PyMem_Malloc(sizeof(void *));
26119 if (!_children) {
26120 p->error_indicator = 1;
26121 PyErr_NoMemory();
26122 D(p->level--);
26123 return NULL;
26124 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026125 Py_ssize_t _children_capacity = 1;
26126 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026127 { // (',' star_expression)
26128 if (p->error_indicator) {
26129 D(p->level--);
26130 return NULL;
26131 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026132 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070026133 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026134 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070026135 (_tmp_182_var = _tmp_182_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026136 )
26137 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070026138 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026139 if (_n == _children_capacity) {
26140 _children_capacity *= 2;
26141 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26142 if (!_new_children) {
26143 p->error_indicator = 1;
26144 PyErr_NoMemory();
26145 D(p->level--);
26146 return NULL;
26147 }
26148 _children = _new_children;
26149 }
26150 _children[_n++] = _res;
26151 _mark = p->mark;
26152 }
26153 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026154 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26156 }
26157 if (_n == 0 || p->error_indicator) {
26158 PyMem_Free(_children);
26159 D(p->level--);
26160 return NULL;
26161 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026162 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026163 if (!_seq) {
26164 PyMem_Free(_children);
26165 p->error_indicator = 1;
26166 PyErr_NoMemory();
26167 D(p->level--);
26168 return NULL;
26169 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026170 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026171 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026172 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026173 D(p->level--);
26174 return _seq;
26175}
26176
Brandt Bucher145bf262021-02-26 14:51:55 -080026177// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026178static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026179_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026180{
26181 D(p->level++);
26182 if (p->error_indicator) {
26183 D(p->level--);
26184 return NULL;
26185 }
26186 void *_res = NULL;
26187 int _mark = p->mark;
26188 int _start_mark = p->mark;
26189 void **_children = PyMem_Malloc(sizeof(void *));
26190 if (!_children) {
26191 p->error_indicator = 1;
26192 PyErr_NoMemory();
26193 D(p->level--);
26194 return NULL;
26195 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026196 Py_ssize_t _children_capacity = 1;
26197 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026198 { // ',' star_named_expression
26199 if (p->error_indicator) {
26200 D(p->level--);
26201 return NULL;
26202 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026203 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 +010026204 Token * _literal;
26205 expr_ty elem;
26206 while (
26207 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26208 &&
26209 (elem = star_named_expression_rule(p)) // star_named_expression
26210 )
26211 {
26212 _res = elem;
26213 if (_res == NULL && PyErr_Occurred()) {
26214 p->error_indicator = 1;
26215 PyMem_Free(_children);
26216 D(p->level--);
26217 return NULL;
26218 }
26219 if (_n == _children_capacity) {
26220 _children_capacity *= 2;
26221 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26222 if (!_new_children) {
26223 p->error_indicator = 1;
26224 PyErr_NoMemory();
26225 D(p->level--);
26226 return NULL;
26227 }
26228 _children = _new_children;
26229 }
26230 _children[_n++] = _res;
26231 _mark = p->mark;
26232 }
26233 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026234 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26236 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026237 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026238 if (!_seq) {
26239 PyMem_Free(_children);
26240 p->error_indicator = 1;
26241 PyErr_NoMemory();
26242 D(p->level--);
26243 return NULL;
26244 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026245 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026246 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026247 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026248 D(p->level--);
26249 return _seq;
26250}
26251
Brandt Bucher145bf262021-02-26 14:51:55 -080026252// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026253static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026254_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026255{
26256 D(p->level++);
26257 if (p->error_indicator) {
26258 D(p->level--);
26259 return NULL;
26260 }
26261 asdl_seq * _res = NULL;
26262 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026263 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026264 if (p->error_indicator) {
26265 D(p->level--);
26266 return NULL;
26267 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026268 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 +010026269 expr_ty elem;
26270 asdl_seq * seq;
26271 if (
26272 (elem = star_named_expression_rule(p)) // star_named_expression
26273 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026274 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026275 )
26276 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026277 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 +010026278 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26279 goto done;
26280 }
26281 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026282 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026284 }
26285 _res = NULL;
26286 done:
26287 D(p->level--);
26288 return _res;
26289}
26290
Brandt Bucher145bf262021-02-26 14:51:55 -080026291// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026292static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026293_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026294{
26295 D(p->level++);
26296 if (p->error_indicator) {
26297 D(p->level--);
26298 return NULL;
26299 }
26300 void *_res = NULL;
26301 int _mark = p->mark;
26302 int _start_mark = p->mark;
26303 void **_children = PyMem_Malloc(sizeof(void *));
26304 if (!_children) {
26305 p->error_indicator = 1;
26306 PyErr_NoMemory();
26307 D(p->level--);
26308 return NULL;
26309 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026310 Py_ssize_t _children_capacity = 1;
26311 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026312 { // (',' expression)
26313 if (p->error_indicator) {
26314 D(p->level--);
26315 return NULL;
26316 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026317 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070026318 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026319 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070026320 (_tmp_183_var = _tmp_183_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026321 )
26322 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070026323 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026324 if (_n == _children_capacity) {
26325 _children_capacity *= 2;
26326 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26327 if (!_new_children) {
26328 p->error_indicator = 1;
26329 PyErr_NoMemory();
26330 D(p->level--);
26331 return NULL;
26332 }
26333 _children = _new_children;
26334 }
26335 _children[_n++] = _res;
26336 _mark = p->mark;
26337 }
26338 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026339 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26341 }
26342 if (_n == 0 || p->error_indicator) {
26343 PyMem_Free(_children);
26344 D(p->level--);
26345 return NULL;
26346 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026347 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026348 if (!_seq) {
26349 PyMem_Free(_children);
26350 p->error_indicator = 1;
26351 PyErr_NoMemory();
26352 D(p->level--);
26353 return NULL;
26354 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026355 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026356 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026357 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026358 D(p->level--);
26359 return _seq;
26360}
26361
Brandt Bucher145bf262021-02-26 14:51:55 -080026362// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026363static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026364_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026365{
26366 D(p->level++);
26367 if (p->error_indicator) {
26368 D(p->level--);
26369 return NULL;
26370 }
26371 void *_res = NULL;
26372 int _mark = p->mark;
26373 int _start_mark = p->mark;
26374 void **_children = PyMem_Malloc(sizeof(void *));
26375 if (!_children) {
26376 p->error_indicator = 1;
26377 PyErr_NoMemory();
26378 D(p->level--);
26379 return NULL;
26380 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026381 Py_ssize_t _children_capacity = 1;
26382 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026383 { // lambda_param_no_default
26384 if (p->error_indicator) {
26385 D(p->level--);
26386 return NULL;
26387 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026388 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 +010026389 arg_ty lambda_param_no_default_var;
26390 while (
26391 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26392 )
26393 {
26394 _res = lambda_param_no_default_var;
26395 if (_n == _children_capacity) {
26396 _children_capacity *= 2;
26397 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26398 if (!_new_children) {
26399 p->error_indicator = 1;
26400 PyErr_NoMemory();
26401 D(p->level--);
26402 return NULL;
26403 }
26404 _children = _new_children;
26405 }
26406 _children[_n++] = _res;
26407 _mark = p->mark;
26408 }
26409 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026410 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026412 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026413 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026414 if (!_seq) {
26415 PyMem_Free(_children);
26416 p->error_indicator = 1;
26417 PyErr_NoMemory();
26418 D(p->level--);
26419 return NULL;
26420 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026421 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026422 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026423 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026424 D(p->level--);
26425 return _seq;
26426}
26427
Brandt Bucher145bf262021-02-26 14:51:55 -080026428// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026429static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026430_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026431{
26432 D(p->level++);
26433 if (p->error_indicator) {
26434 D(p->level--);
26435 return NULL;
26436 }
26437 void *_res = NULL;
26438 int _mark = p->mark;
26439 int _start_mark = p->mark;
26440 void **_children = PyMem_Malloc(sizeof(void *));
26441 if (!_children) {
26442 p->error_indicator = 1;
26443 PyErr_NoMemory();
26444 D(p->level--);
26445 return NULL;
26446 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026447 Py_ssize_t _children_capacity = 1;
26448 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026449 { // lambda_param_with_default
26450 if (p->error_indicator) {
26451 D(p->level--);
26452 return NULL;
26453 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026454 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 +010026455 NameDefaultPair* lambda_param_with_default_var;
26456 while (
26457 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26458 )
26459 {
26460 _res = lambda_param_with_default_var;
26461 if (_n == _children_capacity) {
26462 _children_capacity *= 2;
26463 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26464 if (!_new_children) {
26465 p->error_indicator = 1;
26466 PyErr_NoMemory();
26467 D(p->level--);
26468 return NULL;
26469 }
26470 _children = _new_children;
26471 }
26472 _children[_n++] = _res;
26473 _mark = p->mark;
26474 }
26475 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026476 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026477 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26478 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026479 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026480 if (!_seq) {
26481 PyMem_Free(_children);
26482 p->error_indicator = 1;
26483 PyErr_NoMemory();
26484 D(p->level--);
26485 return NULL;
26486 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026487 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026488 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026489 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026490 D(p->level--);
26491 return _seq;
26492}
26493
Brandt Bucher145bf262021-02-26 14:51:55 -080026494// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026495static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026496_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026497{
26498 D(p->level++);
26499 if (p->error_indicator) {
26500 D(p->level--);
26501 return NULL;
26502 }
26503 void *_res = NULL;
26504 int _mark = p->mark;
26505 int _start_mark = p->mark;
26506 void **_children = PyMem_Malloc(sizeof(void *));
26507 if (!_children) {
26508 p->error_indicator = 1;
26509 PyErr_NoMemory();
26510 D(p->level--);
26511 return NULL;
26512 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026513 Py_ssize_t _children_capacity = 1;
26514 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026515 { // lambda_param_with_default
26516 if (p->error_indicator) {
26517 D(p->level--);
26518 return NULL;
26519 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026520 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 +000026521 NameDefaultPair* lambda_param_with_default_var;
26522 while (
26523 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26524 )
26525 {
26526 _res = lambda_param_with_default_var;
26527 if (_n == _children_capacity) {
26528 _children_capacity *= 2;
26529 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26530 if (!_new_children) {
26531 p->error_indicator = 1;
26532 PyErr_NoMemory();
26533 D(p->level--);
26534 return NULL;
26535 }
26536 _children = _new_children;
26537 }
26538 _children[_n++] = _res;
26539 _mark = p->mark;
26540 }
26541 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026542 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26544 }
26545 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26546 if (!_seq) {
26547 PyMem_Free(_children);
26548 p->error_indicator = 1;
26549 PyErr_NoMemory();
26550 D(p->level--);
26551 return NULL;
26552 }
26553 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26554 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026555 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026556 D(p->level--);
26557 return _seq;
26558}
26559
Brandt Bucher145bf262021-02-26 14:51:55 -080026560// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026561static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026562_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026563{
26564 D(p->level++);
26565 if (p->error_indicator) {
26566 D(p->level--);
26567 return NULL;
26568 }
26569 void *_res = NULL;
26570 int _mark = p->mark;
26571 int _start_mark = p->mark;
26572 void **_children = PyMem_Malloc(sizeof(void *));
26573 if (!_children) {
26574 p->error_indicator = 1;
26575 PyErr_NoMemory();
26576 D(p->level--);
26577 return NULL;
26578 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026579 Py_ssize_t _children_capacity = 1;
26580 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026581 { // lambda_param_no_default
26582 if (p->error_indicator) {
26583 D(p->level--);
26584 return NULL;
26585 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026586 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 +000026587 arg_ty lambda_param_no_default_var;
26588 while (
26589 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26590 )
26591 {
26592 _res = lambda_param_no_default_var;
26593 if (_n == _children_capacity) {
26594 _children_capacity *= 2;
26595 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26596 if (!_new_children) {
26597 p->error_indicator = 1;
26598 PyErr_NoMemory();
26599 D(p->level--);
26600 return NULL;
26601 }
26602 _children = _new_children;
26603 }
26604 _children[_n++] = _res;
26605 _mark = p->mark;
26606 }
26607 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026608 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26610 }
26611 if (_n == 0 || p->error_indicator) {
26612 PyMem_Free(_children);
26613 D(p->level--);
26614 return NULL;
26615 }
26616 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26617 if (!_seq) {
26618 PyMem_Free(_children);
26619 p->error_indicator = 1;
26620 PyErr_NoMemory();
26621 D(p->level--);
26622 return NULL;
26623 }
26624 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26625 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026626 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026627 D(p->level--);
26628 return _seq;
26629}
26630
Brandt Bucher145bf262021-02-26 14:51:55 -080026631// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026632static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026633_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026634{
26635 D(p->level++);
26636 if (p->error_indicator) {
26637 D(p->level--);
26638 return NULL;
26639 }
26640 void *_res = NULL;
26641 int _mark = p->mark;
26642 int _start_mark = p->mark;
26643 void **_children = PyMem_Malloc(sizeof(void *));
26644 if (!_children) {
26645 p->error_indicator = 1;
26646 PyErr_NoMemory();
26647 D(p->level--);
26648 return NULL;
26649 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026650 Py_ssize_t _children_capacity = 1;
26651 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026652 { // lambda_param_with_default
26653 if (p->error_indicator) {
26654 D(p->level--);
26655 return NULL;
26656 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026657 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 +030026658 NameDefaultPair* lambda_param_with_default_var;
26659 while (
26660 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26661 )
26662 {
26663 _res = lambda_param_with_default_var;
26664 if (_n == _children_capacity) {
26665 _children_capacity *= 2;
26666 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26667 if (!_new_children) {
26668 p->error_indicator = 1;
26669 PyErr_NoMemory();
26670 D(p->level--);
26671 return NULL;
26672 }
26673 _children = _new_children;
26674 }
26675 _children[_n++] = _res;
26676 _mark = p->mark;
26677 }
26678 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026679 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26681 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026682 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026683 if (!_seq) {
26684 PyMem_Free(_children);
26685 p->error_indicator = 1;
26686 PyErr_NoMemory();
26687 D(p->level--);
26688 return NULL;
26689 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026690 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026691 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026692 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026693 D(p->level--);
26694 return _seq;
26695}
26696
Brandt Bucher145bf262021-02-26 14:51:55 -080026697// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026698static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026699_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026700{
26701 D(p->level++);
26702 if (p->error_indicator) {
26703 D(p->level--);
26704 return NULL;
26705 }
26706 void *_res = NULL;
26707 int _mark = p->mark;
26708 int _start_mark = p->mark;
26709 void **_children = PyMem_Malloc(sizeof(void *));
26710 if (!_children) {
26711 p->error_indicator = 1;
26712 PyErr_NoMemory();
26713 D(p->level--);
26714 return NULL;
26715 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026716 Py_ssize_t _children_capacity = 1;
26717 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026718 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026719 if (p->error_indicator) {
26720 D(p->level--);
26721 return NULL;
26722 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026723 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 +000026724 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026725 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026726 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026727 )
26728 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026729 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026730 if (_n == _children_capacity) {
26731 _children_capacity *= 2;
26732 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26733 if (!_new_children) {
26734 p->error_indicator = 1;
26735 PyErr_NoMemory();
26736 D(p->level--);
26737 return NULL;
26738 }
26739 _children = _new_children;
26740 }
26741 _children[_n++] = _res;
26742 _mark = p->mark;
26743 }
26744 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026745 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026747 }
26748 if (_n == 0 || p->error_indicator) {
26749 PyMem_Free(_children);
26750 D(p->level--);
26751 return NULL;
26752 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026753 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026754 if (!_seq) {
26755 PyMem_Free(_children);
26756 p->error_indicator = 1;
26757 PyErr_NoMemory();
26758 D(p->level--);
26759 return NULL;
26760 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026761 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026762 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026763 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026764 D(p->level--);
26765 return _seq;
26766}
26767
Brandt Bucher145bf262021-02-26 14:51:55 -080026768// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026769static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026770_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026771{
26772 D(p->level++);
26773 if (p->error_indicator) {
26774 D(p->level--);
26775 return NULL;
26776 }
26777 void *_res = NULL;
26778 int _mark = p->mark;
26779 int _start_mark = p->mark;
26780 void **_children = PyMem_Malloc(sizeof(void *));
26781 if (!_children) {
26782 p->error_indicator = 1;
26783 PyErr_NoMemory();
26784 D(p->level--);
26785 return NULL;
26786 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026787 Py_ssize_t _children_capacity = 1;
26788 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026789 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026790 if (p->error_indicator) {
26791 D(p->level--);
26792 return NULL;
26793 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026794 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 +000026795 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026796 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026797 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026798 )
26799 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026800 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026801 if (_n == _children_capacity) {
26802 _children_capacity *= 2;
26803 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26804 if (!_new_children) {
26805 p->error_indicator = 1;
26806 PyErr_NoMemory();
26807 D(p->level--);
26808 return NULL;
26809 }
26810 _children = _new_children;
26811 }
26812 _children[_n++] = _res;
26813 _mark = p->mark;
26814 }
26815 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026816 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26818 }
26819 if (_n == 0 || p->error_indicator) {
26820 PyMem_Free(_children);
26821 D(p->level--);
26822 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026823 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026824 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026825 if (!_seq) {
26826 PyMem_Free(_children);
26827 p->error_indicator = 1;
26828 PyErr_NoMemory();
26829 D(p->level--);
26830 return NULL;
26831 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026832 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026833 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026834 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026835 D(p->level--);
26836 return _seq;
26837}
26838
Brandt Bucher145bf262021-02-26 14:51:55 -080026839// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026840static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026841_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026842{
26843 D(p->level++);
26844 if (p->error_indicator) {
26845 D(p->level--);
26846 return NULL;
26847 }
26848 void *_res = NULL;
26849 int _mark = p->mark;
26850 int _start_mark = p->mark;
26851 void **_children = PyMem_Malloc(sizeof(void *));
26852 if (!_children) {
26853 p->error_indicator = 1;
26854 PyErr_NoMemory();
26855 D(p->level--);
26856 return NULL;
26857 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026858 Py_ssize_t _children_capacity = 1;
26859 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026860 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026861 if (p->error_indicator) {
26862 D(p->level--);
26863 return NULL;
26864 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026865 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 +000026866 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026867 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026868 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026869 )
26870 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026871 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026872 if (_n == _children_capacity) {
26873 _children_capacity *= 2;
26874 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26875 if (!_new_children) {
26876 p->error_indicator = 1;
26877 PyErr_NoMemory();
26878 D(p->level--);
26879 return NULL;
26880 }
26881 _children = _new_children;
26882 }
26883 _children[_n++] = _res;
26884 _mark = p->mark;
26885 }
26886 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026887 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026889 }
26890 if (_n == 0 || p->error_indicator) {
26891 PyMem_Free(_children);
26892 D(p->level--);
26893 return NULL;
26894 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026895 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026896 if (!_seq) {
26897 PyMem_Free(_children);
26898 p->error_indicator = 1;
26899 PyErr_NoMemory();
26900 D(p->level--);
26901 return NULL;
26902 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026903 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026904 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026905 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026906 D(p->level--);
26907 return _seq;
26908}
26909
Brandt Bucher145bf262021-02-26 14:51:55 -080026910// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026911static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026912_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026913{
26914 D(p->level++);
26915 if (p->error_indicator) {
26916 D(p->level--);
26917 return NULL;
26918 }
26919 void *_res = NULL;
26920 int _mark = p->mark;
26921 int _start_mark = p->mark;
26922 void **_children = PyMem_Malloc(sizeof(void *));
26923 if (!_children) {
26924 p->error_indicator = 1;
26925 PyErr_NoMemory();
26926 D(p->level--);
26927 return NULL;
26928 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026929 Py_ssize_t _children_capacity = 1;
26930 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026931 { // lambda_param_no_default
26932 if (p->error_indicator) {
26933 D(p->level--);
26934 return NULL;
26935 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026936 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 +010026937 arg_ty lambda_param_no_default_var;
26938 while (
26939 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26940 )
26941 {
26942 _res = lambda_param_no_default_var;
26943 if (_n == _children_capacity) {
26944 _children_capacity *= 2;
26945 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26946 if (!_new_children) {
26947 p->error_indicator = 1;
26948 PyErr_NoMemory();
26949 D(p->level--);
26950 return NULL;
26951 }
26952 _children = _new_children;
26953 }
26954 _children[_n++] = _res;
26955 _mark = p->mark;
26956 }
26957 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026958 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26960 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026961 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026962 if (!_seq) {
26963 PyMem_Free(_children);
26964 p->error_indicator = 1;
26965 PyErr_NoMemory();
26966 D(p->level--);
26967 return NULL;
26968 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026969 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026970 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026971 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026972 D(p->level--);
26973 return _seq;
26974}
26975
Brandt Bucher145bf262021-02-26 14:51:55 -080026976// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026977static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026978_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026979{
26980 D(p->level++);
26981 if (p->error_indicator) {
26982 D(p->level--);
26983 return NULL;
26984 }
26985 void *_res = NULL;
26986 int _mark = p->mark;
26987 int _start_mark = p->mark;
26988 void **_children = PyMem_Malloc(sizeof(void *));
26989 if (!_children) {
26990 p->error_indicator = 1;
26991 PyErr_NoMemory();
26992 D(p->level--);
26993 return NULL;
26994 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026995 Py_ssize_t _children_capacity = 1;
26996 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026997 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026998 if (p->error_indicator) {
26999 D(p->level--);
27000 return NULL;
27001 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027002 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 +000027003 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027004 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027005 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027006 )
27007 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027008 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027009 if (_n == _children_capacity) {
27010 _children_capacity *= 2;
27011 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27012 if (!_new_children) {
27013 p->error_indicator = 1;
27014 PyErr_NoMemory();
27015 D(p->level--);
27016 return NULL;
27017 }
27018 _children = _new_children;
27019 }
27020 _children[_n++] = _res;
27021 _mark = p->mark;
27022 }
27023 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027024 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027026 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027027 if (_n == 0 || p->error_indicator) {
27028 PyMem_Free(_children);
27029 D(p->level--);
27030 return NULL;
27031 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027032 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027033 if (!_seq) {
27034 PyMem_Free(_children);
27035 p->error_indicator = 1;
27036 PyErr_NoMemory();
27037 D(p->level--);
27038 return NULL;
27039 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027040 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027041 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027042 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027043 D(p->level--);
27044 return _seq;
27045}
27046
Brandt Bucher145bf262021-02-26 14:51:55 -080027047// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027048static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027049_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027050{
27051 D(p->level++);
27052 if (p->error_indicator) {
27053 D(p->level--);
27054 return NULL;
27055 }
27056 void *_res = NULL;
27057 int _mark = p->mark;
27058 int _start_mark = p->mark;
27059 void **_children = PyMem_Malloc(sizeof(void *));
27060 if (!_children) {
27061 p->error_indicator = 1;
27062 PyErr_NoMemory();
27063 D(p->level--);
27064 return NULL;
27065 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027066 Py_ssize_t _children_capacity = 1;
27067 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027068 { // lambda_param_no_default
27069 if (p->error_indicator) {
27070 D(p->level--);
27071 return NULL;
27072 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027073 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 +010027074 arg_ty lambda_param_no_default_var;
27075 while (
27076 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27077 )
27078 {
27079 _res = lambda_param_no_default_var;
27080 if (_n == _children_capacity) {
27081 _children_capacity *= 2;
27082 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27083 if (!_new_children) {
27084 p->error_indicator = 1;
27085 PyErr_NoMemory();
27086 D(p->level--);
27087 return NULL;
27088 }
27089 _children = _new_children;
27090 }
27091 _children[_n++] = _res;
27092 _mark = p->mark;
27093 }
27094 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027095 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27097 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027098 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027099 if (!_seq) {
27100 PyMem_Free(_children);
27101 p->error_indicator = 1;
27102 PyErr_NoMemory();
27103 D(p->level--);
27104 return NULL;
27105 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027106 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027107 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027108 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027109 D(p->level--);
27110 return _seq;
27111}
27112
Brandt Bucher145bf262021-02-26 14:51:55 -080027113// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027114static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027115_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027116{
27117 D(p->level++);
27118 if (p->error_indicator) {
27119 D(p->level--);
27120 return NULL;
27121 }
27122 void *_res = NULL;
27123 int _mark = p->mark;
27124 int _start_mark = p->mark;
27125 void **_children = PyMem_Malloc(sizeof(void *));
27126 if (!_children) {
27127 p->error_indicator = 1;
27128 PyErr_NoMemory();
27129 D(p->level--);
27130 return NULL;
27131 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027132 Py_ssize_t _children_capacity = 1;
27133 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027134 { // lambda_param_with_default
27135 if (p->error_indicator) {
27136 D(p->level--);
27137 return NULL;
27138 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027139 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 +010027140 NameDefaultPair* lambda_param_with_default_var;
27141 while (
27142 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27143 )
27144 {
27145 _res = lambda_param_with_default_var;
27146 if (_n == _children_capacity) {
27147 _children_capacity *= 2;
27148 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27149 if (!_new_children) {
27150 p->error_indicator = 1;
27151 PyErr_NoMemory();
27152 D(p->level--);
27153 return NULL;
27154 }
27155 _children = _new_children;
27156 }
27157 _children[_n++] = _res;
27158 _mark = p->mark;
27159 }
27160 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027161 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27163 }
27164 if (_n == 0 || p->error_indicator) {
27165 PyMem_Free(_children);
27166 D(p->level--);
27167 return NULL;
27168 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027169 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027170 if (!_seq) {
27171 PyMem_Free(_children);
27172 p->error_indicator = 1;
27173 PyErr_NoMemory();
27174 D(p->level--);
27175 return NULL;
27176 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027177 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027178 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027179 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027180 D(p->level--);
27181 return _seq;
27182}
27183
Brandt Bucher145bf262021-02-26 14:51:55 -080027184// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027185static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027186_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027187{
27188 D(p->level++);
27189 if (p->error_indicator) {
27190 D(p->level--);
27191 return NULL;
27192 }
27193 void *_res = NULL;
27194 int _mark = p->mark;
27195 int _start_mark = p->mark;
27196 void **_children = PyMem_Malloc(sizeof(void *));
27197 if (!_children) {
27198 p->error_indicator = 1;
27199 PyErr_NoMemory();
27200 D(p->level--);
27201 return NULL;
27202 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027203 Py_ssize_t _children_capacity = 1;
27204 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027205 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027206 if (p->error_indicator) {
27207 D(p->level--);
27208 return NULL;
27209 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027210 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 +000027211 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027212 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027213 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027214 )
27215 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027216 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027217 if (_n == _children_capacity) {
27218 _children_capacity *= 2;
27219 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27220 if (!_new_children) {
27221 p->error_indicator = 1;
27222 PyErr_NoMemory();
27223 D(p->level--);
27224 return NULL;
27225 }
27226 _children = _new_children;
27227 }
27228 _children[_n++] = _res;
27229 _mark = p->mark;
27230 }
27231 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027232 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027234 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027235 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027236 if (!_seq) {
27237 PyMem_Free(_children);
27238 p->error_indicator = 1;
27239 PyErr_NoMemory();
27240 D(p->level--);
27241 return NULL;
27242 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027243 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027244 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027245 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027246 D(p->level--);
27247 return _seq;
27248}
27249
Brandt Bucher145bf262021-02-26 14:51:55 -080027250// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027251static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027252_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027253{
27254 D(p->level++);
27255 if (p->error_indicator) {
27256 D(p->level--);
27257 return NULL;
27258 }
27259 void *_res = NULL;
27260 int _mark = p->mark;
27261 int _start_mark = p->mark;
27262 void **_children = PyMem_Malloc(sizeof(void *));
27263 if (!_children) {
27264 p->error_indicator = 1;
27265 PyErr_NoMemory();
27266 D(p->level--);
27267 return NULL;
27268 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027269 Py_ssize_t _children_capacity = 1;
27270 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027271 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027272 if (p->error_indicator) {
27273 D(p->level--);
27274 return NULL;
27275 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027276 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 +000027277 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027278 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027279 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027280 )
27281 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027282 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027283 if (_n == _children_capacity) {
27284 _children_capacity *= 2;
27285 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27286 if (!_new_children) {
27287 p->error_indicator = 1;
27288 PyErr_NoMemory();
27289 D(p->level--);
27290 return NULL;
27291 }
27292 _children = _new_children;
27293 }
27294 _children[_n++] = _res;
27295 _mark = p->mark;
27296 }
27297 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027298 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027300 }
27301 if (_n == 0 || p->error_indicator) {
27302 PyMem_Free(_children);
27303 D(p->level--);
27304 return NULL;
27305 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027306 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027307 if (!_seq) {
27308 PyMem_Free(_children);
27309 p->error_indicator = 1;
27310 PyErr_NoMemory();
27311 D(p->level--);
27312 return NULL;
27313 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027314 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027315 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027316 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027317 D(p->level--);
27318 return _seq;
27319}
27320
Brandt Bucher145bf262021-02-26 14:51:55 -080027321// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027322static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027323_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027324{
27325 D(p->level++);
27326 if (p->error_indicator) {
27327 D(p->level--);
27328 return NULL;
27329 }
27330 void *_res = NULL;
27331 int _mark = p->mark;
27332 int _start_mark = p->mark;
27333 void **_children = PyMem_Malloc(sizeof(void *));
27334 if (!_children) {
27335 p->error_indicator = 1;
27336 PyErr_NoMemory();
27337 D(p->level--);
27338 return NULL;
27339 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027340 Py_ssize_t _children_capacity = 1;
27341 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027342 { // ('or' conjunction)
27343 if (p->error_indicator) {
27344 D(p->level--);
27345 return NULL;
27346 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027347 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070027348 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027349 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070027350 (_tmp_184_var = _tmp_184_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027351 )
27352 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070027353 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027354 if (_n == _children_capacity) {
27355 _children_capacity *= 2;
27356 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27357 if (!_new_children) {
27358 p->error_indicator = 1;
27359 PyErr_NoMemory();
27360 D(p->level--);
27361 return NULL;
27362 }
27363 _children = _new_children;
27364 }
27365 _children[_n++] = _res;
27366 _mark = p->mark;
27367 }
27368 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027369 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27371 }
27372 if (_n == 0 || p->error_indicator) {
27373 PyMem_Free(_children);
27374 D(p->level--);
27375 return NULL;
27376 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027377 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027378 if (!_seq) {
27379 PyMem_Free(_children);
27380 p->error_indicator = 1;
27381 PyErr_NoMemory();
27382 D(p->level--);
27383 return NULL;
27384 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027385 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027386 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027387 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027388 D(p->level--);
27389 return _seq;
27390}
27391
Brandt Bucher145bf262021-02-26 14:51:55 -080027392// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027393static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027394_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027395{
27396 D(p->level++);
27397 if (p->error_indicator) {
27398 D(p->level--);
27399 return NULL;
27400 }
27401 void *_res = NULL;
27402 int _mark = p->mark;
27403 int _start_mark = p->mark;
27404 void **_children = PyMem_Malloc(sizeof(void *));
27405 if (!_children) {
27406 p->error_indicator = 1;
27407 PyErr_NoMemory();
27408 D(p->level--);
27409 return NULL;
27410 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027411 Py_ssize_t _children_capacity = 1;
27412 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027413 { // ('and' inversion)
27414 if (p->error_indicator) {
27415 D(p->level--);
27416 return NULL;
27417 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027418 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070027419 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027420 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070027421 (_tmp_185_var = _tmp_185_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027422 )
27423 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070027424 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027425 if (_n == _children_capacity) {
27426 _children_capacity *= 2;
27427 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27428 if (!_new_children) {
27429 p->error_indicator = 1;
27430 PyErr_NoMemory();
27431 D(p->level--);
27432 return NULL;
27433 }
27434 _children = _new_children;
27435 }
27436 _children[_n++] = _res;
27437 _mark = p->mark;
27438 }
27439 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027440 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27442 }
27443 if (_n == 0 || p->error_indicator) {
27444 PyMem_Free(_children);
27445 D(p->level--);
27446 return NULL;
27447 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027448 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027449 if (!_seq) {
27450 PyMem_Free(_children);
27451 p->error_indicator = 1;
27452 PyErr_NoMemory();
27453 D(p->level--);
27454 return NULL;
27455 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027456 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027457 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027458 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027459 D(p->level--);
27460 return _seq;
27461}
27462
Brandt Bucher145bf262021-02-26 14:51:55 -080027463// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027464static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027465_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027466{
27467 D(p->level++);
27468 if (p->error_indicator) {
27469 D(p->level--);
27470 return NULL;
27471 }
27472 void *_res = NULL;
27473 int _mark = p->mark;
27474 int _start_mark = p->mark;
27475 void **_children = PyMem_Malloc(sizeof(void *));
27476 if (!_children) {
27477 p->error_indicator = 1;
27478 PyErr_NoMemory();
27479 D(p->level--);
27480 return NULL;
27481 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027482 Py_ssize_t _children_capacity = 1;
27483 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027484 { // compare_op_bitwise_or_pair
27485 if (p->error_indicator) {
27486 D(p->level--);
27487 return NULL;
27488 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027489 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 +010027490 CmpopExprPair* compare_op_bitwise_or_pair_var;
27491 while (
27492 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27493 )
27494 {
27495 _res = compare_op_bitwise_or_pair_var;
27496 if (_n == _children_capacity) {
27497 _children_capacity *= 2;
27498 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27499 if (!_new_children) {
27500 p->error_indicator = 1;
27501 PyErr_NoMemory();
27502 D(p->level--);
27503 return NULL;
27504 }
27505 _children = _new_children;
27506 }
27507 _children[_n++] = _res;
27508 _mark = p->mark;
27509 }
27510 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027511 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027512 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27513 }
27514 if (_n == 0 || p->error_indicator) {
27515 PyMem_Free(_children);
27516 D(p->level--);
27517 return NULL;
27518 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027519 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027520 if (!_seq) {
27521 PyMem_Free(_children);
27522 p->error_indicator = 1;
27523 PyErr_NoMemory();
27524 D(p->level--);
27525 return NULL;
27526 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027527 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027528 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027529 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027530 D(p->level--);
27531 return _seq;
27532}
27533
Brandt Bucher145bf262021-02-26 14:51:55 -080027534// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027535static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027536_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027537{
27538 D(p->level++);
27539 if (p->error_indicator) {
27540 D(p->level--);
27541 return NULL;
27542 }
27543 void * _res = NULL;
27544 int _mark = p->mark;
27545 { // '!='
27546 if (p->error_indicator) {
27547 D(p->level--);
27548 return NULL;
27549 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027550 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027551 Token * tok;
27552 if (
27553 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27554 )
27555 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027556 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027557 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027558 if (_res == NULL && PyErr_Occurred()) {
27559 p->error_indicator = 1;
27560 D(p->level--);
27561 return NULL;
27562 }
27563 goto done;
27564 }
27565 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027566 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27568 }
27569 _res = NULL;
27570 done:
27571 D(p->level--);
27572 return _res;
27573}
27574
Brandt Bucher145bf262021-02-26 14:51:55 -080027575// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027576static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027577_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027578{
27579 D(p->level++);
27580 if (p->error_indicator) {
27581 D(p->level--);
27582 return NULL;
27583 }
27584 void *_res = NULL;
27585 int _mark = p->mark;
27586 int _start_mark = p->mark;
27587 void **_children = PyMem_Malloc(sizeof(void *));
27588 if (!_children) {
27589 p->error_indicator = 1;
27590 PyErr_NoMemory();
27591 D(p->level--);
27592 return NULL;
27593 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027594 Py_ssize_t _children_capacity = 1;
27595 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027596 { // ',' slice
27597 if (p->error_indicator) {
27598 D(p->level--);
27599 return NULL;
27600 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027601 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027602 Token * _literal;
27603 expr_ty elem;
27604 while (
27605 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27606 &&
27607 (elem = slice_rule(p)) // slice
27608 )
27609 {
27610 _res = elem;
27611 if (_res == NULL && PyErr_Occurred()) {
27612 p->error_indicator = 1;
27613 PyMem_Free(_children);
27614 D(p->level--);
27615 return NULL;
27616 }
27617 if (_n == _children_capacity) {
27618 _children_capacity *= 2;
27619 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27620 if (!_new_children) {
27621 p->error_indicator = 1;
27622 PyErr_NoMemory();
27623 D(p->level--);
27624 return NULL;
27625 }
27626 _children = _new_children;
27627 }
27628 _children[_n++] = _res;
27629 _mark = p->mark;
27630 }
27631 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027632 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27634 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027635 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027636 if (!_seq) {
27637 PyMem_Free(_children);
27638 p->error_indicator = 1;
27639 PyErr_NoMemory();
27640 D(p->level--);
27641 return NULL;
27642 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027643 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027644 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027645 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027646 D(p->level--);
27647 return _seq;
27648}
27649
Brandt Bucher145bf262021-02-26 14:51:55 -080027650// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027651static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027652_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027653{
27654 D(p->level++);
27655 if (p->error_indicator) {
27656 D(p->level--);
27657 return NULL;
27658 }
27659 asdl_seq * _res = NULL;
27660 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027661 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027662 if (p->error_indicator) {
27663 D(p->level--);
27664 return NULL;
27665 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027666 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 +010027667 expr_ty elem;
27668 asdl_seq * seq;
27669 if (
27670 (elem = slice_rule(p)) // slice
27671 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027672 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027673 )
27674 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027675 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 +010027676 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27677 goto done;
27678 }
27679 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027680 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027682 }
27683 _res = NULL;
27684 done:
27685 D(p->level--);
27686 return _res;
27687}
27688
Brandt Bucher145bf262021-02-26 14:51:55 -080027689// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027690static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027691_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027692{
27693 D(p->level++);
27694 if (p->error_indicator) {
27695 D(p->level--);
27696 return NULL;
27697 }
27698 void * _res = NULL;
27699 int _mark = p->mark;
27700 { // ':' expression?
27701 if (p->error_indicator) {
27702 D(p->level--);
27703 return NULL;
27704 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027705 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027706 Token * _literal;
27707 void *d;
27708 if (
27709 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27710 &&
27711 (d = expression_rule(p), 1) // expression?
27712 )
27713 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027714 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027715 _res = d;
27716 if (_res == NULL && PyErr_Occurred()) {
27717 p->error_indicator = 1;
27718 D(p->level--);
27719 return NULL;
27720 }
27721 goto done;
27722 }
27723 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027724 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27726 }
27727 _res = NULL;
27728 done:
27729 D(p->level--);
27730 return _res;
27731}
27732
Brandt Bucher145bf262021-02-26 14:51:55 -080027733// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027734static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027735_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027736{
27737 D(p->level++);
27738 if (p->error_indicator) {
27739 D(p->level--);
27740 return NULL;
27741 }
27742 void * _res = NULL;
27743 int _mark = p->mark;
27744 { // tuple
27745 if (p->error_indicator) {
27746 D(p->level--);
27747 return NULL;
27748 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027749 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027750 expr_ty tuple_var;
27751 if (
27752 (tuple_var = tuple_rule(p)) // tuple
27753 )
27754 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027755 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027756 _res = tuple_var;
27757 goto done;
27758 }
27759 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027760 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27762 }
27763 { // group
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> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027769 expr_ty group_var;
27770 if (
27771 (group_var = group_rule(p)) // group
27772 )
27773 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027774 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027775 _res = group_var;
27776 goto done;
27777 }
27778 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027779 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27781 }
27782 { // genexp
27783 if (p->error_indicator) {
27784 D(p->level--);
27785 return NULL;
27786 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027787 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027788 expr_ty genexp_var;
27789 if (
27790 (genexp_var = genexp_rule(p)) // genexp
27791 )
27792 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027793 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027794 _res = genexp_var;
27795 goto done;
27796 }
27797 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027798 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27800 }
27801 _res = NULL;
27802 done:
27803 D(p->level--);
27804 return _res;
27805}
27806
Brandt Bucher145bf262021-02-26 14:51:55 -080027807// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027808static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027809_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027810{
27811 D(p->level++);
27812 if (p->error_indicator) {
27813 D(p->level--);
27814 return NULL;
27815 }
27816 void * _res = NULL;
27817 int _mark = p->mark;
27818 { // list
27819 if (p->error_indicator) {
27820 D(p->level--);
27821 return NULL;
27822 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027823 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027824 expr_ty list_var;
27825 if (
27826 (list_var = list_rule(p)) // list
27827 )
27828 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027829 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027830 _res = list_var;
27831 goto done;
27832 }
27833 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027834 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27836 }
27837 { // listcomp
27838 if (p->error_indicator) {
27839 D(p->level--);
27840 return NULL;
27841 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027842 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027843 expr_ty listcomp_var;
27844 if (
27845 (listcomp_var = listcomp_rule(p)) // listcomp
27846 )
27847 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027848 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027849 _res = listcomp_var;
27850 goto done;
27851 }
27852 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027853 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
27855 }
27856 _res = NULL;
27857 done:
27858 D(p->level--);
27859 return _res;
27860}
27861
Brandt Bucher145bf262021-02-26 14:51:55 -080027862// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027863static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027864_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027865{
27866 D(p->level++);
27867 if (p->error_indicator) {
27868 D(p->level--);
27869 return NULL;
27870 }
27871 void * _res = NULL;
27872 int _mark = p->mark;
27873 { // dict
27874 if (p->error_indicator) {
27875 D(p->level--);
27876 return NULL;
27877 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027878 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027879 expr_ty dict_var;
27880 if (
27881 (dict_var = dict_rule(p)) // dict
27882 )
27883 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027884 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027885 _res = dict_var;
27886 goto done;
27887 }
27888 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027889 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
27891 }
27892 { // set
27893 if (p->error_indicator) {
27894 D(p->level--);
27895 return NULL;
27896 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027897 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027898 expr_ty set_var;
27899 if (
27900 (set_var = set_rule(p)) // set
27901 )
27902 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027903 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027904 _res = set_var;
27905 goto done;
27906 }
27907 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027908 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
27910 }
27911 { // dictcomp
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_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027917 expr_ty dictcomp_var;
27918 if (
27919 (dictcomp_var = dictcomp_rule(p)) // dictcomp
27920 )
27921 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027922 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027923 _res = dictcomp_var;
27924 goto done;
27925 }
27926 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027927 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
27929 }
27930 { // setcomp
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_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027936 expr_ty setcomp_var;
27937 if (
27938 (setcomp_var = setcomp_rule(p)) // setcomp
27939 )
27940 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027941 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027942 _res = setcomp_var;
27943 goto done;
27944 }
27945 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027946 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
27948 }
27949 _res = NULL;
27950 done:
27951 D(p->level--);
27952 return _res;
27953}
27954
Brandt Bucher145bf262021-02-26 14:51:55 -080027955// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027956static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027957_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027958{
27959 D(p->level++);
27960 if (p->error_indicator) {
27961 D(p->level--);
27962 return NULL;
27963 }
27964 void *_res = NULL;
27965 int _mark = p->mark;
27966 int _start_mark = p->mark;
27967 void **_children = PyMem_Malloc(sizeof(void *));
27968 if (!_children) {
27969 p->error_indicator = 1;
27970 PyErr_NoMemory();
27971 D(p->level--);
27972 return NULL;
27973 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027974 Py_ssize_t _children_capacity = 1;
27975 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027976 { // STRING
27977 if (p->error_indicator) {
27978 D(p->level--);
27979 return NULL;
27980 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027981 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027982 expr_ty string_var;
27983 while (
27984 (string_var = _PyPegen_string_token(p)) // STRING
27985 )
27986 {
27987 _res = string_var;
27988 if (_n == _children_capacity) {
27989 _children_capacity *= 2;
27990 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27991 if (!_new_children) {
27992 p->error_indicator = 1;
27993 PyErr_NoMemory();
27994 D(p->level--);
27995 return NULL;
27996 }
27997 _children = _new_children;
27998 }
27999 _children[_n++] = _res;
28000 _mark = p->mark;
28001 }
28002 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028003 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
28005 }
28006 if (_n == 0 || p->error_indicator) {
28007 PyMem_Free(_children);
28008 D(p->level--);
28009 return NULL;
28010 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028011 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028012 if (!_seq) {
28013 PyMem_Free(_children);
28014 p->error_indicator = 1;
28015 PyErr_NoMemory();
28016 D(p->level--);
28017 return NULL;
28018 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028019 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028020 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028021 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028022 D(p->level--);
28023 return _seq;
28024}
28025
Brandt Bucher145bf262021-02-26 14:51:55 -080028026// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028027static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028028_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028029{
28030 D(p->level++);
28031 if (p->error_indicator) {
28032 D(p->level--);
28033 return NULL;
28034 }
28035 void * _res = NULL;
28036 int _mark = p->mark;
28037 { // star_named_expression ',' star_named_expressions?
28038 if (p->error_indicator) {
28039 D(p->level--);
28040 return NULL;
28041 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028042 D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028043 Token * _literal;
28044 expr_ty y;
28045 void *z;
28046 if (
28047 (y = star_named_expression_rule(p)) // star_named_expression
28048 &&
28049 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28050 &&
28051 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
28052 )
28053 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028054 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 +010028055 _res = _PyPegen_seq_insert_in_front ( p , y , z );
28056 if (_res == NULL && PyErr_Occurred()) {
28057 p->error_indicator = 1;
28058 D(p->level--);
28059 return NULL;
28060 }
28061 goto done;
28062 }
28063 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028064 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028065 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28066 }
28067 _res = NULL;
28068 done:
28069 D(p->level--);
28070 return _res;
28071}
28072
Brandt Bucher145bf262021-02-26 14:51:55 -080028073// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028074static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028075_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028076{
28077 D(p->level++);
28078 if (p->error_indicator) {
28079 D(p->level--);
28080 return NULL;
28081 }
28082 void * _res = NULL;
28083 int _mark = p->mark;
28084 { // yield_expr
28085 if (p->error_indicator) {
28086 D(p->level--);
28087 return NULL;
28088 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028089 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028090 expr_ty yield_expr_var;
28091 if (
28092 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28093 )
28094 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028095 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 +010028096 _res = yield_expr_var;
28097 goto done;
28098 }
28099 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028100 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28102 }
28103 { // named_expression
28104 if (p->error_indicator) {
28105 D(p->level--);
28106 return NULL;
28107 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028108 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028109 expr_ty named_expression_var;
28110 if (
28111 (named_expression_var = named_expression_rule(p)) // named_expression
28112 )
28113 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028114 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 +010028115 _res = named_expression_var;
28116 goto done;
28117 }
28118 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028119 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28121 }
28122 _res = NULL;
28123 done:
28124 D(p->level--);
28125 return _res;
28126}
28127
Brandt Bucher145bf262021-02-26 14:51:55 -080028128// _loop0_118: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028129static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028130_loop0_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028131{
28132 D(p->level++);
28133 if (p->error_indicator) {
28134 D(p->level--);
28135 return NULL;
28136 }
28137 void *_res = NULL;
28138 int _mark = p->mark;
28139 int _start_mark = p->mark;
28140 void **_children = PyMem_Malloc(sizeof(void *));
28141 if (!_children) {
28142 p->error_indicator = 1;
28143 PyErr_NoMemory();
28144 D(p->level--);
28145 return NULL;
28146 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028147 Py_ssize_t _children_capacity = 1;
28148 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028149 { // ',' double_starred_kvpair
28150 if (p->error_indicator) {
28151 D(p->level--);
28152 return NULL;
28153 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028154 D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028155 Token * _literal;
28156 KeyValuePair* elem;
28157 while (
28158 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28159 &&
28160 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28161 )
28162 {
28163 _res = elem;
28164 if (_res == NULL && PyErr_Occurred()) {
28165 p->error_indicator = 1;
28166 PyMem_Free(_children);
28167 D(p->level--);
28168 return NULL;
28169 }
28170 if (_n == _children_capacity) {
28171 _children_capacity *= 2;
28172 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28173 if (!_new_children) {
28174 p->error_indicator = 1;
28175 PyErr_NoMemory();
28176 D(p->level--);
28177 return NULL;
28178 }
28179 _children = _new_children;
28180 }
28181 _children[_n++] = _res;
28182 _mark = p->mark;
28183 }
28184 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028185 D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28187 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028188 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028189 if (!_seq) {
28190 PyMem_Free(_children);
28191 p->error_indicator = 1;
28192 PyErr_NoMemory();
28193 D(p->level--);
28194 return NULL;
28195 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028196 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028197 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028198 _PyPegen_insert_memo(p, _start_mark, _loop0_118_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028199 D(p->level--);
28200 return _seq;
28201}
28202
Brandt Bucher145bf262021-02-26 14:51:55 -080028203// _gather_117: double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028204static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028205_gather_117_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028206{
28207 D(p->level++);
28208 if (p->error_indicator) {
28209 D(p->level--);
28210 return NULL;
28211 }
28212 asdl_seq * _res = NULL;
28213 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028214 { // double_starred_kvpair _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028215 if (p->error_indicator) {
28216 D(p->level--);
28217 return NULL;
28218 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028219 D(fprintf(stderr, "%*c> _gather_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028220 KeyValuePair* elem;
28221 asdl_seq * seq;
28222 if (
28223 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28224 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028225 (seq = _loop0_118_rule(p)) // _loop0_118
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028226 )
28227 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028228 D(fprintf(stderr, "%*c+ _gather_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028229 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28230 goto done;
28231 }
28232 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028233 D(fprintf(stderr, "%*c%s _gather_117[%d-%d]: %s failed!\n", p->level, ' ',
28234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_118"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028235 }
28236 _res = NULL;
28237 done:
28238 D(p->level--);
28239 return _res;
28240}
28241
Brandt Bucher145bf262021-02-26 14:51:55 -080028242// _loop1_119: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028243static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028244_loop1_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028245{
28246 D(p->level++);
28247 if (p->error_indicator) {
28248 D(p->level--);
28249 return NULL;
28250 }
28251 void *_res = NULL;
28252 int _mark = p->mark;
28253 int _start_mark = p->mark;
28254 void **_children = PyMem_Malloc(sizeof(void *));
28255 if (!_children) {
28256 p->error_indicator = 1;
28257 PyErr_NoMemory();
28258 D(p->level--);
28259 return NULL;
28260 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028261 Py_ssize_t _children_capacity = 1;
28262 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028263 { // for_if_clause
28264 if (p->error_indicator) {
28265 D(p->level--);
28266 return NULL;
28267 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028268 D(fprintf(stderr, "%*c> _loop1_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028269 comprehension_ty for_if_clause_var;
28270 while (
28271 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28272 )
28273 {
28274 _res = for_if_clause_var;
28275 if (_n == _children_capacity) {
28276 _children_capacity *= 2;
28277 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28278 if (!_new_children) {
28279 p->error_indicator = 1;
28280 PyErr_NoMemory();
28281 D(p->level--);
28282 return NULL;
28283 }
28284 _children = _new_children;
28285 }
28286 _children[_n++] = _res;
28287 _mark = p->mark;
28288 }
28289 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028290 D(fprintf(stderr, "%*c%s _loop1_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28292 }
28293 if (_n == 0 || p->error_indicator) {
28294 PyMem_Free(_children);
28295 D(p->level--);
28296 return NULL;
28297 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028298 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028299 if (!_seq) {
28300 PyMem_Free(_children);
28301 p->error_indicator = 1;
28302 PyErr_NoMemory();
28303 D(p->level--);
28304 return NULL;
28305 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028306 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028307 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028308 _PyPegen_insert_memo(p, _start_mark, _loop1_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028309 D(p->level--);
28310 return _seq;
28311}
28312
Brandt Bucher145bf262021-02-26 14:51:55 -080028313// _loop0_120: ('if' disjunction)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028314static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028315_loop0_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028316{
28317 D(p->level++);
28318 if (p->error_indicator) {
28319 D(p->level--);
28320 return NULL;
28321 }
28322 void *_res = NULL;
28323 int _mark = p->mark;
28324 int _start_mark = p->mark;
28325 void **_children = PyMem_Malloc(sizeof(void *));
28326 if (!_children) {
28327 p->error_indicator = 1;
28328 PyErr_NoMemory();
28329 D(p->level--);
28330 return NULL;
28331 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028332 Py_ssize_t _children_capacity = 1;
28333 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028334 { // ('if' disjunction)
28335 if (p->error_indicator) {
28336 D(p->level--);
28337 return NULL;
28338 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028339 D(fprintf(stderr, "%*c> _loop0_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028340 void *_tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028341 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028342 (_tmp_186_var = _tmp_186_rule(p)) // 'if' disjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028343 )
28344 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028345 _res = _tmp_186_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028346 if (_n == _children_capacity) {
28347 _children_capacity *= 2;
28348 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28349 if (!_new_children) {
28350 p->error_indicator = 1;
28351 PyErr_NoMemory();
28352 D(p->level--);
28353 return NULL;
28354 }
28355 _children = _new_children;
28356 }
28357 _children[_n++] = _res;
28358 _mark = p->mark;
28359 }
28360 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028361 D(fprintf(stderr, "%*c%s _loop0_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28363 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028364 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028365 if (!_seq) {
28366 PyMem_Free(_children);
28367 p->error_indicator = 1;
28368 PyErr_NoMemory();
28369 D(p->level--);
28370 return NULL;
28371 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028372 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028373 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028374 _PyPegen_insert_memo(p, _start_mark, _loop0_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028375 D(p->level--);
28376 return _seq;
28377}
28378
Brandt Bucher145bf262021-02-26 14:51:55 -080028379// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028380static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028381_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028382{
28383 D(p->level++);
28384 if (p->error_indicator) {
28385 D(p->level--);
28386 return NULL;
28387 }
28388 void *_res = NULL;
28389 int _mark = p->mark;
28390 int _start_mark = p->mark;
28391 void **_children = PyMem_Malloc(sizeof(void *));
28392 if (!_children) {
28393 p->error_indicator = 1;
28394 PyErr_NoMemory();
28395 D(p->level--);
28396 return NULL;
28397 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028398 Py_ssize_t _children_capacity = 1;
28399 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028400 { // ('if' disjunction)
28401 if (p->error_indicator) {
28402 D(p->level--);
28403 return NULL;
28404 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028405 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028406 void *_tmp_187_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028407 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028408 (_tmp_187_var = _tmp_187_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028409 )
28410 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028411 _res = _tmp_187_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028412 if (_n == _children_capacity) {
28413 _children_capacity *= 2;
28414 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28415 if (!_new_children) {
28416 p->error_indicator = 1;
28417 PyErr_NoMemory();
28418 D(p->level--);
28419 return NULL;
28420 }
28421 _children = _new_children;
28422 }
28423 _children[_n++] = _res;
28424 _mark = p->mark;
28425 }
28426 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028427 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028428 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28429 }
28430 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28431 if (!_seq) {
28432 PyMem_Free(_children);
28433 p->error_indicator = 1;
28434 PyErr_NoMemory();
28435 D(p->level--);
28436 return NULL;
28437 }
28438 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28439 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028440 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028441 D(p->level--);
28442 return _seq;
28443}
28444
Pablo Galindod9151cb2021-04-13 02:32:33 +010028445// _loop0_123: ',' (starred_expression | direct_named_expression !'=')
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028446static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028447_loop0_123_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028448{
28449 D(p->level++);
28450 if (p->error_indicator) {
28451 D(p->level--);
28452 return NULL;
28453 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028454 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028455 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028456 int _start_mark = p->mark;
28457 void **_children = PyMem_Malloc(sizeof(void *));
28458 if (!_children) {
28459 p->error_indicator = 1;
28460 PyErr_NoMemory();
28461 D(p->level--);
28462 return NULL;
28463 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028464 Py_ssize_t _children_capacity = 1;
28465 Py_ssize_t _n = 0;
Pablo Galindod9151cb2021-04-13 02:32:33 +010028466 { // ',' (starred_expression | direct_named_expression !'=')
Pablo Galindo4a97b152020-09-02 17:44:19 +010028467 if (p->error_indicator) {
28468 D(p->level--);
28469 return NULL;
28470 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010028471 D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028472 Token * _literal;
28473 void *elem;
28474 while (
28475 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28476 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028477 (elem = _tmp_188_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028478 )
28479 {
28480 _res = elem;
28481 if (_res == NULL && PyErr_Occurred()) {
28482 p->error_indicator = 1;
28483 PyMem_Free(_children);
28484 D(p->level--);
28485 return NULL;
28486 }
28487 if (_n == _children_capacity) {
28488 _children_capacity *= 2;
28489 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28490 if (!_new_children) {
28491 p->error_indicator = 1;
28492 PyErr_NoMemory();
28493 D(p->level--);
28494 return NULL;
28495 }
28496 _children = _new_children;
28497 }
28498 _children[_n++] = _res;
28499 _mark = p->mark;
28500 }
28501 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028502 D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010028503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028504 }
28505 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28506 if (!_seq) {
28507 PyMem_Free(_children);
28508 p->error_indicator = 1;
28509 PyErr_NoMemory();
28510 D(p->level--);
28511 return NULL;
28512 }
28513 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28514 PyMem_Free(_children);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028515 _PyPegen_insert_memo(p, _start_mark, _loop0_123_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028516 D(p->level--);
28517 return _seq;
28518}
28519
Pablo Galindod9151cb2021-04-13 02:32:33 +010028520// _gather_122: (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028521static asdl_seq *
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028522_gather_122_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028523{
28524 D(p->level++);
28525 if (p->error_indicator) {
28526 D(p->level--);
28527 return NULL;
28528 }
28529 asdl_seq * _res = NULL;
28530 int _mark = p->mark;
Pablo Galindod9151cb2021-04-13 02:32:33 +010028531 { // (starred_expression | direct_named_expression !'=') _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028532 if (p->error_indicator) {
28533 D(p->level--);
28534 return NULL;
28535 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010028536 D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028537 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028538 asdl_seq * seq;
28539 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070028540 (elem = _tmp_188_rule(p)) // starred_expression | direct_named_expression !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028541 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028542 (seq = _loop0_123_rule(p)) // _loop0_123
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028543 )
28544 {
Pablo Galindod9151cb2021-04-13 02:32:33 +010028545 D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028546 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28547 goto done;
28548 }
28549 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028550 D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindod9151cb2021-04-13 02:32:33 +010028551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028552 }
28553 _res = NULL;
28554 done:
28555 D(p->level--);
28556 return _res;
28557}
28558
Brandt Bucher145bf262021-02-26 14:51:55 -080028559// _tmp_124: ',' kwargs
28560static void *
28561_tmp_124_rule(Parser *p)
28562{
28563 D(p->level++);
28564 if (p->error_indicator) {
28565 D(p->level--);
28566 return NULL;
28567 }
28568 void * _res = NULL;
28569 int _mark = p->mark;
28570 { // ',' kwargs
28571 if (p->error_indicator) {
28572 D(p->level--);
28573 return NULL;
28574 }
28575 D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
28576 Token * _literal;
28577 asdl_seq* k;
28578 if (
28579 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28580 &&
28581 (k = kwargs_rule(p)) // kwargs
28582 )
28583 {
28584 D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
28585 _res = k;
28586 if (_res == NULL && PyErr_Occurred()) {
28587 p->error_indicator = 1;
28588 D(p->level--);
28589 return NULL;
28590 }
28591 goto done;
28592 }
28593 p->mark = _mark;
28594 D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ',
28595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28596 }
28597 _res = NULL;
28598 done:
28599 D(p->level--);
28600 return _res;
28601}
28602
28603// _loop0_126: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028604static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028605_loop0_126_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028606{
28607 D(p->level++);
28608 if (p->error_indicator) {
28609 D(p->level--);
28610 return NULL;
28611 }
28612 void *_res = NULL;
28613 int _mark = p->mark;
28614 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;
Brandt Bucher145bf262021-02-26 14:51:55 -080028624 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028625 if (p->error_indicator) {
28626 D(p->level--);
28627 return NULL;
28628 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028629 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028630 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028631 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028632 while (
28633 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28634 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028635 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028636 )
28637 {
28638 _res = elem;
28639 if (_res == NULL && PyErr_Occurred()) {
28640 p->error_indicator = 1;
28641 PyMem_Free(_children);
28642 D(p->level--);
28643 return NULL;
28644 }
28645 if (_n == _children_capacity) {
28646 _children_capacity *= 2;
28647 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28648 if (!_new_children) {
28649 p->error_indicator = 1;
28650 PyErr_NoMemory();
28651 D(p->level--);
28652 return NULL;
28653 }
28654 _children = _new_children;
28655 }
28656 _children[_n++] = _res;
28657 _mark = p->mark;
28658 }
28659 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028660 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
28661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028662 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028663 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028664 if (!_seq) {
28665 PyMem_Free(_children);
28666 p->error_indicator = 1;
28667 PyErr_NoMemory();
28668 D(p->level--);
28669 return NULL;
28670 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028671 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028672 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028673 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028674 D(p->level--);
28675 return _seq;
28676}
28677
Brandt Bucher145bf262021-02-26 14:51:55 -080028678// _gather_125: kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028679static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028680_gather_125_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028681{
28682 D(p->level++);
28683 if (p->error_indicator) {
28684 D(p->level--);
28685 return NULL;
28686 }
28687 asdl_seq * _res = NULL;
28688 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028689 { // kwarg_or_starred _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028690 if (p->error_indicator) {
28691 D(p->level--);
28692 return NULL;
28693 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028694 D(fprintf(stderr, "%*c> _gather_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
28695 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028696 asdl_seq * seq;
28697 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028698 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028699 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028700 (seq = _loop0_126_rule(p)) // _loop0_126
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028701 )
28702 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028703 D(fprintf(stderr, "%*c+ _gather_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028704 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28705 goto done;
28706 }
28707 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028708 D(fprintf(stderr, "%*c%s _gather_125[%d-%d]: %s failed!\n", p->level, ' ',
28709 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_126"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028710 }
28711 _res = NULL;
28712 done:
28713 D(p->level--);
28714 return _res;
28715}
28716
Brandt Bucher145bf262021-02-26 14:51:55 -080028717// _loop0_128: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028718static asdl_seq *
28719_loop0_128_rule(Parser *p)
28720{
28721 D(p->level++);
28722 if (p->error_indicator) {
28723 D(p->level--);
28724 return NULL;
28725 }
28726 void *_res = NULL;
28727 int _mark = p->mark;
28728 int _start_mark = p->mark;
28729 void **_children = PyMem_Malloc(sizeof(void *));
28730 if (!_children) {
28731 p->error_indicator = 1;
28732 PyErr_NoMemory();
28733 D(p->level--);
28734 return NULL;
28735 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028736 Py_ssize_t _children_capacity = 1;
28737 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028738 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028739 if (p->error_indicator) {
28740 D(p->level--);
28741 return NULL;
28742 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028743 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
28744 Token * _literal;
28745 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028746 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028747 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28748 &&
28749 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028750 )
28751 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028752 _res = elem;
28753 if (_res == NULL && PyErr_Occurred()) {
28754 p->error_indicator = 1;
28755 PyMem_Free(_children);
28756 D(p->level--);
28757 return NULL;
28758 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028759 if (_n == _children_capacity) {
28760 _children_capacity *= 2;
28761 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28762 if (!_new_children) {
28763 p->error_indicator = 1;
28764 PyErr_NoMemory();
28765 D(p->level--);
28766 return NULL;
28767 }
28768 _children = _new_children;
28769 }
28770 _children[_n++] = _res;
28771 _mark = p->mark;
28772 }
28773 p->mark = _mark;
28774 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028776 }
28777 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28778 if (!_seq) {
28779 PyMem_Free(_children);
28780 p->error_indicator = 1;
28781 PyErr_NoMemory();
28782 D(p->level--);
28783 return NULL;
28784 }
28785 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28786 PyMem_Free(_children);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028787 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028788 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028789 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028790}
28791
Brandt Bucher145bf262021-02-26 14:51:55 -080028792// _gather_127: kwarg_or_double_starred _loop0_128
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028793static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028794_gather_127_rule(Parser *p)
28795{
28796 D(p->level++);
28797 if (p->error_indicator) {
28798 D(p->level--);
28799 return NULL;
28800 }
28801 asdl_seq * _res = NULL;
28802 int _mark = p->mark;
28803 { // kwarg_or_double_starred _loop0_128
28804 if (p->error_indicator) {
28805 D(p->level--);
28806 return NULL;
28807 }
28808 D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28809 KeywordOrStarred* elem;
28810 asdl_seq * seq;
28811 if (
28812 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28813 &&
28814 (seq = _loop0_128_rule(p)) // _loop0_128
28815 )
28816 {
28817 D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28818 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28819 goto done;
28820 }
28821 p->mark = _mark;
28822 D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ',
28823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_128"));
28824 }
28825 _res = NULL;
28826 done:
28827 D(p->level--);
28828 return _res;
28829}
28830
28831// _loop0_130: ',' kwarg_or_starred
28832static asdl_seq *
28833_loop0_130_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028834{
28835 D(p->level++);
28836 if (p->error_indicator) {
28837 D(p->level--);
28838 return NULL;
28839 }
28840 void *_res = NULL;
28841 int _mark = p->mark;
28842 int _start_mark = p->mark;
28843 void **_children = PyMem_Malloc(sizeof(void *));
28844 if (!_children) {
28845 p->error_indicator = 1;
28846 PyErr_NoMemory();
28847 D(p->level--);
28848 return NULL;
28849 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028850 Py_ssize_t _children_capacity = 1;
28851 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028852 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028853 if (p->error_indicator) {
28854 D(p->level--);
28855 return NULL;
28856 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028857 D(fprintf(stderr, "%*c> _loop0_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
28858 Token * _literal;
28859 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028860 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028861 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28862 &&
28863 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028864 )
28865 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028866 _res = elem;
28867 if (_res == NULL && PyErr_Occurred()) {
28868 p->error_indicator = 1;
28869 PyMem_Free(_children);
28870 D(p->level--);
28871 return NULL;
28872 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028873 if (_n == _children_capacity) {
28874 _children_capacity *= 2;
28875 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28876 if (!_new_children) {
28877 p->error_indicator = 1;
28878 PyErr_NoMemory();
28879 D(p->level--);
28880 return NULL;
28881 }
28882 _children = _new_children;
28883 }
28884 _children[_n++] = _res;
28885 _mark = p->mark;
28886 }
28887 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028888 D(fprintf(stderr, "%*c%s _loop0_130[%d-%d]: %s failed!\n", p->level, ' ',
28889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028890 }
28891 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28892 if (!_seq) {
28893 PyMem_Free(_children);
28894 p->error_indicator = 1;
28895 PyErr_NoMemory();
28896 D(p->level--);
28897 return NULL;
28898 }
28899 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28900 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028901 _PyPegen_insert_memo(p, _start_mark, _loop0_130_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028902 D(p->level--);
28903 return _seq;
28904}
28905
Brandt Bucher145bf262021-02-26 14:51:55 -080028906// _gather_129: kwarg_or_starred _loop0_130
28907static asdl_seq *
28908_gather_129_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028909{
28910 D(p->level++);
28911 if (p->error_indicator) {
28912 D(p->level--);
28913 return NULL;
28914 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028915 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028916 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028917 { // kwarg_or_starred _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028918 if (p->error_indicator) {
28919 D(p->level--);
28920 return NULL;
28921 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028922 D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28923 KeywordOrStarred* elem;
28924 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028925 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028926 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
28927 &&
28928 (seq = _loop0_130_rule(p)) // _loop0_130
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028929 )
28930 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028931 D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_130"));
28932 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028933 goto done;
28934 }
28935 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028936 D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ',
28937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_130"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028938 }
28939 _res = NULL;
28940 done:
28941 D(p->level--);
28942 return _res;
28943}
28944
Brandt Bucher145bf262021-02-26 14:51:55 -080028945// _loop0_132: ',' kwarg_or_double_starred
28946static asdl_seq *
28947_loop0_132_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028948{
28949 D(p->level++);
28950 if (p->error_indicator) {
28951 D(p->level--);
28952 return NULL;
28953 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028954 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028955 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028956 int _start_mark = p->mark;
28957 void **_children = PyMem_Malloc(sizeof(void *));
28958 if (!_children) {
28959 p->error_indicator = 1;
28960 PyErr_NoMemory();
28961 D(p->level--);
28962 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028963 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028964 Py_ssize_t _children_capacity = 1;
28965 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028966 { // ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028967 if (p->error_indicator) {
28968 D(p->level--);
28969 return NULL;
28970 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028971 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028972 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028973 KeywordOrStarred* elem;
28974 while (
28975 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28976 &&
28977 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028978 )
28979 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028980 _res = elem;
28981 if (_res == NULL && PyErr_Occurred()) {
28982 p->error_indicator = 1;
28983 PyMem_Free(_children);
28984 D(p->level--);
28985 return NULL;
28986 }
28987 if (_n == _children_capacity) {
28988 _children_capacity *= 2;
28989 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28990 if (!_new_children) {
28991 p->error_indicator = 1;
28992 PyErr_NoMemory();
28993 D(p->level--);
28994 return NULL;
28995 }
28996 _children = _new_children;
28997 }
28998 _children[_n++] = _res;
28999 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029000 }
29001 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029002 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
29003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029004 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029005 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29006 if (!_seq) {
29007 PyMem_Free(_children);
29008 p->error_indicator = 1;
29009 PyErr_NoMemory();
29010 D(p->level--);
29011 return NULL;
29012 }
29013 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29014 PyMem_Free(_children);
29015 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
29016 D(p->level--);
29017 return _seq;
29018}
29019
29020// _gather_131: kwarg_or_double_starred _loop0_132
29021static asdl_seq *
29022_gather_131_rule(Parser *p)
29023{
29024 D(p->level++);
29025 if (p->error_indicator) {
29026 D(p->level--);
29027 return NULL;
29028 }
29029 asdl_seq * _res = NULL;
29030 int _mark = p->mark;
29031 { // kwarg_or_double_starred _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029032 if (p->error_indicator) {
29033 D(p->level--);
29034 return NULL;
29035 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029036 D(fprintf(stderr, "%*c> _gather_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
29037 KeywordOrStarred* elem;
29038 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029039 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029040 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29041 &&
29042 (seq = _loop0_132_rule(p)) // _loop0_132
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029043 )
29044 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029045 D(fprintf(stderr, "%*c+ _gather_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
29046 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029047 goto done;
29048 }
29049 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029050 D(fprintf(stderr, "%*c%s _gather_131[%d-%d]: %s failed!\n", p->level, ' ',
29051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_132"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029052 }
29053 _res = NULL;
29054 done:
29055 D(p->level--);
29056 return _res;
29057}
29058
Brandt Bucher145bf262021-02-26 14:51:55 -080029059// _loop0_133: (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029060static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029061_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029062{
29063 D(p->level++);
29064 if (p->error_indicator) {
29065 D(p->level--);
29066 return NULL;
29067 }
29068 void *_res = NULL;
29069 int _mark = p->mark;
29070 int _start_mark = p->mark;
29071 void **_children = PyMem_Malloc(sizeof(void *));
29072 if (!_children) {
29073 p->error_indicator = 1;
29074 PyErr_NoMemory();
29075 D(p->level--);
29076 return NULL;
29077 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029078 Py_ssize_t _children_capacity = 1;
29079 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029080 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029081 if (p->error_indicator) {
29082 D(p->level--);
29083 return NULL;
29084 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029085 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029086 void *_tmp_189_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029087 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029088 (_tmp_189_var = _tmp_189_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029089 )
29090 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029091 _res = _tmp_189_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029092 if (_n == _children_capacity) {
29093 _children_capacity *= 2;
29094 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29095 if (!_new_children) {
29096 p->error_indicator = 1;
29097 PyErr_NoMemory();
29098 D(p->level--);
29099 return NULL;
29100 }
29101 _children = _new_children;
29102 }
29103 _children[_n++] = _res;
29104 _mark = p->mark;
29105 }
29106 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029107 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029109 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029110 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029111 if (!_seq) {
29112 PyMem_Free(_children);
29113 p->error_indicator = 1;
29114 PyErr_NoMemory();
29115 D(p->level--);
29116 return NULL;
29117 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029118 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029119 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000029120 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029121 D(p->level--);
29122 return _seq;
29123}
29124
Brandt Bucher145bf262021-02-26 14:51:55 -080029125// _loop0_135: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029126static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029127_loop0_135_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029128{
29129 D(p->level++);
29130 if (p->error_indicator) {
29131 D(p->level--);
29132 return NULL;
29133 }
29134 void *_res = NULL;
29135 int _mark = p->mark;
29136 int _start_mark = p->mark;
29137 void **_children = PyMem_Malloc(sizeof(void *));
29138 if (!_children) {
29139 p->error_indicator = 1;
29140 PyErr_NoMemory();
29141 D(p->level--);
29142 return NULL;
29143 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029144 Py_ssize_t _children_capacity = 1;
29145 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029146 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029147 if (p->error_indicator) {
29148 D(p->level--);
29149 return NULL;
29150 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029151 D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
29152 Token * _literal;
29153 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029154 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029155 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29156 &&
29157 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029158 )
29159 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029160 _res = elem;
29161 if (_res == NULL && PyErr_Occurred()) {
29162 p->error_indicator = 1;
29163 PyMem_Free(_children);
29164 D(p->level--);
29165 return NULL;
29166 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029167 if (_n == _children_capacity) {
29168 _children_capacity *= 2;
29169 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29170 if (!_new_children) {
29171 p->error_indicator = 1;
29172 PyErr_NoMemory();
29173 D(p->level--);
29174 return NULL;
29175 }
29176 _children = _new_children;
29177 }
29178 _children[_n++] = _res;
29179 _mark = p->mark;
29180 }
29181 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029182 D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029184 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029185 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029186 if (!_seq) {
29187 PyMem_Free(_children);
29188 p->error_indicator = 1;
29189 PyErr_NoMemory();
29190 D(p->level--);
29191 return NULL;
29192 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029193 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029194 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000029195 _PyPegen_insert_memo(p, _start_mark, _loop0_135_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029196 D(p->level--);
29197 return _seq;
29198}
29199
Brandt Bucher145bf262021-02-26 14:51:55 -080029200// _gather_134: star_target _loop0_135
29201static asdl_seq *
29202_gather_134_rule(Parser *p)
29203{
29204 D(p->level++);
29205 if (p->error_indicator) {
29206 D(p->level--);
29207 return NULL;
29208 }
29209 asdl_seq * _res = NULL;
29210 int _mark = p->mark;
29211 { // star_target _loop0_135
29212 if (p->error_indicator) {
29213 D(p->level--);
29214 return NULL;
29215 }
29216 D(fprintf(stderr, "%*c> _gather_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
29217 expr_ty elem;
29218 asdl_seq * seq;
29219 if (
29220 (elem = star_target_rule(p)) // star_target
29221 &&
29222 (seq = _loop0_135_rule(p)) // _loop0_135
29223 )
29224 {
29225 D(fprintf(stderr, "%*c+ _gather_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_135"));
29226 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29227 goto done;
29228 }
29229 p->mark = _mark;
29230 D(fprintf(stderr, "%*c%s _gather_134[%d-%d]: %s failed!\n", p->level, ' ',
29231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_135"));
29232 }
29233 _res = NULL;
29234 done:
29235 D(p->level--);
29236 return _res;
29237}
29238
29239// _loop1_136: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029240static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029241_loop1_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029242{
29243 D(p->level++);
29244 if (p->error_indicator) {
29245 D(p->level--);
29246 return NULL;
29247 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029248 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029249 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029250 int _start_mark = p->mark;
29251 void **_children = PyMem_Malloc(sizeof(void *));
29252 if (!_children) {
29253 p->error_indicator = 1;
29254 PyErr_NoMemory();
29255 D(p->level--);
29256 return NULL;
29257 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029258 Py_ssize_t _children_capacity = 1;
29259 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029260 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029261 if (p->error_indicator) {
29262 D(p->level--);
29263 return NULL;
29264 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029265 D(fprintf(stderr, "%*c> _loop1_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029266 void *_tmp_190_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029267 while (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029268 (_tmp_190_var = _tmp_190_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029269 )
29270 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029271 _res = _tmp_190_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029272 if (_n == _children_capacity) {
29273 _children_capacity *= 2;
29274 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29275 if (!_new_children) {
29276 p->error_indicator = 1;
29277 PyErr_NoMemory();
29278 D(p->level--);
29279 return NULL;
29280 }
29281 _children = _new_children;
29282 }
29283 _children[_n++] = _res;
29284 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029285 }
29286 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029287 D(fprintf(stderr, "%*c%s _loop1_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029289 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029290 if (_n == 0 || p->error_indicator) {
29291 PyMem_Free(_children);
29292 D(p->level--);
29293 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029294 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029295 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29296 if (!_seq) {
29297 PyMem_Free(_children);
29298 p->error_indicator = 1;
29299 PyErr_NoMemory();
29300 D(p->level--);
29301 return NULL;
29302 }
29303 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29304 PyMem_Free(_children);
Pablo Galindo835f14f2021-01-31 22:52:56 +000029305 _PyPegen_insert_memo(p, _start_mark, _loop1_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029306 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029307 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029308}
29309
Brandt Bucher145bf262021-02-26 14:51:55 -080029310// _tmp_137: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029311static void *
Pablo Galindo835f14f2021-01-31 22:52:56 +000029312_tmp_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029313{
29314 D(p->level++);
29315 if (p->error_indicator) {
29316 D(p->level--);
29317 return NULL;
29318 }
29319 void * _res = NULL;
29320 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029321 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029322 if (p->error_indicator) {
29323 D(p->level--);
29324 return NULL;
29325 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029326 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
29327 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029328 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029329 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029330 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029331 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029332 )
29333 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029334 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
29335 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029336 goto done;
29337 }
29338 p->mark = _mark;
Pablo Galindo835f14f2021-01-31 22:52:56 +000029339 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029341 }
29342 _res = NULL;
29343 done:
29344 D(p->level--);
29345 return _res;
29346}
29347
Brandt Bucher145bf262021-02-26 14:51:55 -080029348// _loop0_139: ',' del_target
29349static asdl_seq *
29350_loop0_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029351{
29352 D(p->level++);
29353 if (p->error_indicator) {
29354 D(p->level--);
29355 return NULL;
29356 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029357 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029358 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029359 int _start_mark = p->mark;
29360 void **_children = PyMem_Malloc(sizeof(void *));
29361 if (!_children) {
29362 p->error_indicator = 1;
29363 PyErr_NoMemory();
29364 D(p->level--);
29365 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029366 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029367 Py_ssize_t _children_capacity = 1;
29368 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029369 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029370 if (p->error_indicator) {
29371 D(p->level--);
29372 return NULL;
29373 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029374 D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029375 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029376 expr_ty elem;
29377 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029378 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29379 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029380 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029381 )
29382 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029383 _res = elem;
29384 if (_res == NULL && PyErr_Occurred()) {
29385 p->error_indicator = 1;
29386 PyMem_Free(_children);
29387 D(p->level--);
29388 return NULL;
29389 }
29390 if (_n == _children_capacity) {
29391 _children_capacity *= 2;
29392 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29393 if (!_new_children) {
29394 p->error_indicator = 1;
29395 PyErr_NoMemory();
29396 D(p->level--);
29397 return NULL;
29398 }
29399 _children = _new_children;
29400 }
29401 _children[_n++] = _res;
29402 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029403 }
29404 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029405 D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ',
29406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029407 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029408 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29409 if (!_seq) {
29410 PyMem_Free(_children);
29411 p->error_indicator = 1;
29412 PyErr_NoMemory();
29413 D(p->level--);
29414 return NULL;
29415 }
29416 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29417 PyMem_Free(_children);
29418 _PyPegen_insert_memo(p, _start_mark, _loop0_139_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029419 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029420 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029421}
29422
Brandt Bucher145bf262021-02-26 14:51:55 -080029423// _gather_138: del_target _loop0_139
29424static asdl_seq *
29425_gather_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029426{
29427 D(p->level++);
29428 if (p->error_indicator) {
29429 D(p->level--);
29430 return NULL;
29431 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029432 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029433 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029434 { // del_target _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000029435 if (p->error_indicator) {
29436 D(p->level--);
29437 return NULL;
29438 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029439 D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
29440 expr_ty elem;
29441 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029442 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029443 (elem = del_target_rule(p)) // del_target
29444 &&
29445 (seq = _loop0_139_rule(p)) // _loop0_139
Pablo Galindo58fb1562021-02-02 19:54:22 +000029446 )
29447 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029448 D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_139"));
29449 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029450 goto done;
29451 }
29452 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029453 D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ',
29454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_139"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029455 }
29456 _res = NULL;
29457 done:
29458 D(p->level--);
29459 return _res;
29460}
29461
Brandt Bucher145bf262021-02-26 14:51:55 -080029462// _loop0_141: ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029463static asdl_seq *
29464_loop0_141_rule(Parser *p)
29465{
29466 D(p->level++);
29467 if (p->error_indicator) {
29468 D(p->level--);
29469 return NULL;
29470 }
29471 void *_res = NULL;
29472 int _mark = p->mark;
29473 int _start_mark = p->mark;
29474 void **_children = PyMem_Malloc(sizeof(void *));
29475 if (!_children) {
29476 p->error_indicator = 1;
29477 PyErr_NoMemory();
29478 D(p->level--);
29479 return NULL;
29480 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029481 Py_ssize_t _children_capacity = 1;
29482 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029483 { // ',' target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029484 if (p->error_indicator) {
29485 D(p->level--);
29486 return NULL;
29487 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029488 D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029489 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029490 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029491 while (
29492 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29493 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029494 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029495 )
29496 {
29497 _res = elem;
29498 if (_res == NULL && PyErr_Occurred()) {
29499 p->error_indicator = 1;
29500 PyMem_Free(_children);
29501 D(p->level--);
29502 return NULL;
29503 }
29504 if (_n == _children_capacity) {
29505 _children_capacity *= 2;
29506 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29507 if (!_new_children) {
29508 p->error_indicator = 1;
29509 PyErr_NoMemory();
29510 D(p->level--);
29511 return NULL;
29512 }
29513 _children = _new_children;
29514 }
29515 _children[_n++] = _res;
29516 _mark = p->mark;
29517 }
29518 p->mark = _mark;
29519 D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029521 }
29522 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29523 if (!_seq) {
29524 PyMem_Free(_children);
29525 p->error_indicator = 1;
29526 PyErr_NoMemory();
29527 D(p->level--);
29528 return NULL;
29529 }
29530 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29531 PyMem_Free(_children);
29532 _PyPegen_insert_memo(p, _start_mark, _loop0_141_type, _seq);
29533 D(p->level--);
29534 return _seq;
29535}
29536
Brandt Bucher145bf262021-02-26 14:51:55 -080029537// _gather_140: target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000029538static asdl_seq *
29539_gather_140_rule(Parser *p)
29540{
29541 D(p->level++);
29542 if (p->error_indicator) {
29543 D(p->level--);
29544 return NULL;
29545 }
29546 asdl_seq * _res = NULL;
29547 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029548 { // target _loop0_141
Pablo Galindo58fb1562021-02-02 19:54:22 +000029549 if (p->error_indicator) {
29550 D(p->level--);
29551 return NULL;
29552 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029553 D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
29554 expr_ty elem;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029555 asdl_seq * seq;
29556 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029557 (elem = target_rule(p)) // target
Pablo Galindo58fb1562021-02-02 19:54:22 +000029558 &&
29559 (seq = _loop0_141_rule(p)) // _loop0_141
29560 )
29561 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029562 D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029563 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29564 goto done;
29565 }
29566 p->mark = _mark;
29567 D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_141"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029569 }
29570 _res = NULL;
29571 done:
29572 D(p->level--);
29573 return _res;
29574}
29575
Brandt Bucher145bf262021-02-26 14:51:55 -080029576// _tmp_142: args | expression for_if_clauses
29577static void *
29578_tmp_142_rule(Parser *p)
29579{
29580 D(p->level++);
29581 if (p->error_indicator) {
29582 D(p->level--);
29583 return NULL;
29584 }
29585 void * _res = NULL;
29586 int _mark = p->mark;
29587 { // args
29588 if (p->error_indicator) {
29589 D(p->level--);
29590 return NULL;
29591 }
29592 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
29593 expr_ty args_var;
29594 if (
29595 (args_var = args_rule(p)) // args
29596 )
29597 {
29598 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
29599 _res = args_var;
29600 goto done;
29601 }
29602 p->mark = _mark;
29603 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29605 }
29606 { // expression for_if_clauses
29607 if (p->error_indicator) {
29608 D(p->level--);
29609 return NULL;
29610 }
29611 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
29612 expr_ty expression_var;
29613 asdl_comprehension_seq* for_if_clauses_var;
29614 if (
29615 (expression_var = expression_rule(p)) // expression
29616 &&
29617 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29618 )
29619 {
29620 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
29621 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29622 goto done;
29623 }
29624 p->mark = _mark;
29625 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
29626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29627 }
29628 _res = NULL;
29629 done:
29630 D(p->level--);
29631 return _res;
29632}
29633
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029634// _tmp_143: NAME '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029635static void *
29636_tmp_143_rule(Parser *p)
29637{
29638 D(p->level++);
29639 if (p->error_indicator) {
29640 D(p->level--);
29641 return NULL;
29642 }
29643 void * _res = NULL;
29644 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029645 { // NAME '='
29646 if (p->error_indicator) {
29647 D(p->level--);
29648 return NULL;
29649 }
29650 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
29651 Token * _literal;
29652 expr_ty name_var;
29653 if (
29654 (name_var = _PyPegen_name_token(p)) // NAME
29655 &&
29656 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29657 )
29658 {
29659 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
29660 _res = _PyPegen_dummy_name(p, name_var, _literal);
29661 goto done;
29662 }
29663 p->mark = _mark;
29664 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
29665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29666 }
29667 _res = NULL;
29668 done:
29669 D(p->level--);
29670 return _res;
29671}
29672
29673// _tmp_144: NAME STRING | SOFT_KEYWORD
29674static void *
29675_tmp_144_rule(Parser *p)
29676{
29677 D(p->level++);
29678 if (p->error_indicator) {
29679 D(p->level--);
29680 return NULL;
29681 }
29682 void * _res = NULL;
29683 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029684 { // NAME STRING
29685 if (p->error_indicator) {
29686 D(p->level--);
29687 return NULL;
29688 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029689 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029690 expr_ty name_var;
29691 expr_ty string_var;
29692 if (
29693 (name_var = _PyPegen_name_token(p)) // NAME
29694 &&
29695 (string_var = _PyPegen_string_token(p)) // STRING
29696 )
29697 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029698 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029699 _res = _PyPegen_dummy_name(p, name_var, string_var);
29700 goto done;
29701 }
29702 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029703 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29705 }
29706 { // SOFT_KEYWORD
29707 if (p->error_indicator) {
29708 D(p->level--);
29709 return NULL;
29710 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029711 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029712 expr_ty soft_keyword_var;
29713 if (
29714 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29715 )
29716 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029717 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029718 _res = soft_keyword_var;
29719 goto done;
29720 }
29721 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029722 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29724 }
29725 _res = NULL;
29726 done:
29727 D(p->level--);
29728 return _res;
29729}
29730
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029731// _tmp_145: '=' | ':=' | ','
Pablo Galindob2802482021-04-15 21:38:45 +010029732static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029733_tmp_145_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010029734{
29735 D(p->level++);
29736 if (p->error_indicator) {
29737 D(p->level--);
29738 return NULL;
29739 }
29740 void * _res = NULL;
29741 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029742 { // '='
29743 if (p->error_indicator) {
29744 D(p->level--);
29745 return NULL;
29746 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029747 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029748 Token * _literal;
29749 if (
29750 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29751 )
29752 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029753 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029754 _res = _literal;
29755 goto done;
29756 }
29757 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029758 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29760 }
29761 { // ':='
29762 if (p->error_indicator) {
29763 D(p->level--);
29764 return NULL;
29765 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029766 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029767 Token * _literal;
29768 if (
29769 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29770 )
29771 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029772 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029773 _res = _literal;
29774 goto done;
29775 }
29776 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029777 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29779 }
29780 { // ','
29781 if (p->error_indicator) {
29782 D(p->level--);
29783 return NULL;
29784 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029785 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029786 Token * _literal;
29787 if (
29788 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29789 )
29790 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029791 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029792 _res = _literal;
29793 goto done;
29794 }
29795 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029796 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
29798 }
29799 _res = NULL;
29800 done:
29801 D(p->level--);
29802 return _res;
29803}
29804
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029805// _tmp_146: list | tuple | genexp | 'True' | 'None' | 'False'
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029806static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029807_tmp_146_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029808{
29809 D(p->level++);
29810 if (p->error_indicator) {
29811 D(p->level--);
29812 return NULL;
29813 }
29814 void * _res = NULL;
29815 int _mark = p->mark;
29816 { // list
29817 if (p->error_indicator) {
29818 D(p->level--);
29819 return NULL;
29820 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029821 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029822 expr_ty list_var;
29823 if (
29824 (list_var = list_rule(p)) // list
29825 )
29826 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029827 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029828 _res = list_var;
29829 goto done;
29830 }
29831 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029832 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29834 }
29835 { // tuple
29836 if (p->error_indicator) {
29837 D(p->level--);
29838 return NULL;
29839 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029840 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029841 expr_ty tuple_var;
29842 if (
29843 (tuple_var = tuple_rule(p)) // tuple
29844 )
29845 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029846 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029847 _res = tuple_var;
29848 goto done;
29849 }
29850 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029851 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29853 }
29854 { // genexp
29855 if (p->error_indicator) {
29856 D(p->level--);
29857 return NULL;
29858 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029859 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029860 expr_ty genexp_var;
29861 if (
29862 (genexp_var = genexp_rule(p)) // genexp
29863 )
29864 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029865 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029866 _res = genexp_var;
29867 goto done;
29868 }
29869 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029870 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29872 }
29873 { // 'True'
29874 if (p->error_indicator) {
29875 D(p->level--);
29876 return NULL;
29877 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029878 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029879 Token * _keyword;
29880 if (
29881 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29882 )
29883 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029884 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029885 _res = _keyword;
29886 goto done;
29887 }
29888 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029889 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29891 }
29892 { // 'None'
29893 if (p->error_indicator) {
29894 D(p->level--);
29895 return NULL;
29896 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029897 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029898 Token * _keyword;
29899 if (
29900 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29901 )
29902 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029903 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029904 _res = _keyword;
29905 goto done;
29906 }
29907 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029908 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29910 }
29911 { // 'False'
29912 if (p->error_indicator) {
29913 D(p->level--);
29914 return NULL;
29915 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029916 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029917 Token * _keyword;
29918 if (
29919 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29920 )
29921 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029922 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029923 _res = _keyword;
29924 goto done;
29925 }
29926 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029927 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29929 }
29930 _res = NULL;
29931 done:
29932 D(p->level--);
29933 return _res;
29934}
29935
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029936// _tmp_147: '=' | ':=' | ','
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029937static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029938_tmp_147_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029939{
29940 D(p->level++);
29941 if (p->error_indicator) {
29942 D(p->level--);
29943 return NULL;
29944 }
29945 void * _res = NULL;
29946 int _mark = p->mark;
29947 { // '='
29948 if (p->error_indicator) {
29949 D(p->level--);
29950 return NULL;
29951 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029952 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029953 Token * _literal;
29954 if (
29955 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29956 )
29957 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029958 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029959 _res = _literal;
29960 goto done;
29961 }
29962 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029963 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29965 }
29966 { // ':='
29967 if (p->error_indicator) {
29968 D(p->level--);
29969 return NULL;
29970 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029971 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029972 Token * _literal;
29973 if (
29974 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29975 )
29976 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029977 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029978 _res = _literal;
29979 goto done;
29980 }
29981 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029982 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29984 }
29985 { // ','
29986 if (p->error_indicator) {
29987 D(p->level--);
29988 return NULL;
29989 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029990 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029991 Token * _literal;
29992 if (
29993 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29994 )
29995 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029996 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029997 _res = _literal;
29998 goto done;
29999 }
30000 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030001 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30003 }
30004 _res = NULL;
30005 done:
30006 D(p->level--);
30007 return _res;
30008}
30009
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030010// _loop0_148: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030011static asdl_seq *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030012_loop0_148_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000030013{
30014 D(p->level++);
30015 if (p->error_indicator) {
30016 D(p->level--);
30017 return NULL;
30018 }
30019 void *_res = NULL;
30020 int _mark = p->mark;
30021 int _start_mark = p->mark;
30022 void **_children = PyMem_Malloc(sizeof(void *));
30023 if (!_children) {
30024 p->error_indicator = 1;
30025 PyErr_NoMemory();
30026 D(p->level--);
30027 return NULL;
30028 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030029 Py_ssize_t _children_capacity = 1;
30030 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030031 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000030032 if (p->error_indicator) {
30033 D(p->level--);
30034 return NULL;
30035 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030036 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 -080030037 asdl_expr_seq* star_named_expressions_var;
30038 while (
30039 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
30040 )
30041 {
30042 _res = star_named_expressions_var;
30043 if (_n == _children_capacity) {
30044 _children_capacity *= 2;
30045 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30046 if (!_new_children) {
30047 p->error_indicator = 1;
30048 PyErr_NoMemory();
30049 D(p->level--);
30050 return NULL;
30051 }
30052 _children = _new_children;
30053 }
30054 _children[_n++] = _res;
30055 _mark = p->mark;
30056 }
30057 p->mark = _mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030058 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030060 }
30061 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30062 if (!_seq) {
30063 PyMem_Free(_children);
30064 p->error_indicator = 1;
30065 PyErr_NoMemory();
30066 D(p->level--);
30067 return NULL;
30068 }
30069 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30070 PyMem_Free(_children);
Pablo Galindob86ed8e2021-04-12 16:59:30 +010030071 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030072 D(p->level--);
30073 return _seq;
30074}
30075
Pablo Galindob2802482021-04-15 21:38:45 +010030076// _loop0_149: (star_targets '=')
30077static asdl_seq *
30078_loop0_149_rule(Parser *p)
30079{
30080 D(p->level++);
30081 if (p->error_indicator) {
30082 D(p->level--);
30083 return NULL;
30084 }
30085 void *_res = NULL;
30086 int _mark = p->mark;
30087 int _start_mark = p->mark;
30088 void **_children = PyMem_Malloc(sizeof(void *));
30089 if (!_children) {
30090 p->error_indicator = 1;
30091 PyErr_NoMemory();
30092 D(p->level--);
30093 return NULL;
30094 }
30095 Py_ssize_t _children_capacity = 1;
30096 Py_ssize_t _n = 0;
30097 { // (star_targets '=')
30098 if (p->error_indicator) {
30099 D(p->level--);
30100 return NULL;
30101 }
30102 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030103 void *_tmp_191_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030104 while (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030105 (_tmp_191_var = _tmp_191_rule(p)) // star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010030106 )
30107 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010030108 _res = _tmp_191_var;
Pablo Galindob2802482021-04-15 21:38:45 +010030109 if (_n == _children_capacity) {
30110 _children_capacity *= 2;
30111 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30112 if (!_new_children) {
30113 p->error_indicator = 1;
30114 PyErr_NoMemory();
30115 D(p->level--);
30116 return NULL;
30117 }
30118 _children = _new_children;
30119 }
30120 _children[_n++] = _res;
30121 _mark = p->mark;
30122 }
30123 p->mark = _mark;
30124 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
30125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30126 }
30127 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30128 if (!_seq) {
30129 PyMem_Free(_children);
30130 p->error_indicator = 1;
30131 PyErr_NoMemory();
30132 D(p->level--);
30133 return NULL;
30134 }
30135 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30136 PyMem_Free(_children);
30137 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30138 D(p->level--);
30139 return _seq;
30140}
30141
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030142// _loop0_150: (star_targets '=')
30143static asdl_seq *
30144_loop0_150_rule(Parser *p)
30145{
30146 D(p->level++);
30147 if (p->error_indicator) {
30148 D(p->level--);
30149 return NULL;
30150 }
30151 void *_res = NULL;
30152 int _mark = p->mark;
30153 int _start_mark = p->mark;
30154 void **_children = PyMem_Malloc(sizeof(void *));
30155 if (!_children) {
30156 p->error_indicator = 1;
30157 PyErr_NoMemory();
30158 D(p->level--);
30159 return NULL;
30160 }
30161 Py_ssize_t _children_capacity = 1;
30162 Py_ssize_t _n = 0;
30163 { // (star_targets '=')
30164 if (p->error_indicator) {
30165 D(p->level--);
30166 return NULL;
30167 }
30168 D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
30169 void *_tmp_192_var;
30170 while (
30171 (_tmp_192_var = _tmp_192_rule(p)) // star_targets '='
30172 )
30173 {
30174 _res = _tmp_192_var;
30175 if (_n == _children_capacity) {
30176 _children_capacity *= 2;
30177 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30178 if (!_new_children) {
30179 p->error_indicator = 1;
30180 PyErr_NoMemory();
30181 D(p->level--);
30182 return NULL;
30183 }
30184 _children = _new_children;
30185 }
30186 _children[_n++] = _res;
30187 _mark = p->mark;
30188 }
30189 p->mark = _mark;
30190 D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ',
30191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30192 }
30193 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30194 if (!_seq) {
30195 PyMem_Free(_children);
30196 p->error_indicator = 1;
30197 PyErr_NoMemory();
30198 D(p->level--);
30199 return NULL;
30200 }
30201 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30202 PyMem_Free(_children);
30203 _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq);
30204 D(p->level--);
30205 return _seq;
30206}
30207
30208// _tmp_151: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030209static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030210_tmp_151_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030211{
30212 D(p->level++);
30213 if (p->error_indicator) {
30214 D(p->level--);
30215 return NULL;
30216 }
30217 void * _res = NULL;
30218 int _mark = p->mark;
30219 { // yield_expr
30220 if (p->error_indicator) {
30221 D(p->level--);
30222 return NULL;
30223 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030224 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030225 expr_ty yield_expr_var;
30226 if (
30227 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30228 )
30229 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030230 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 -080030231 _res = yield_expr_var;
30232 goto done;
30233 }
30234 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030235 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30237 }
30238 { // star_expressions
30239 if (p->error_indicator) {
30240 D(p->level--);
30241 return NULL;
30242 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030243 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030244 expr_ty star_expressions_var;
30245 if (
30246 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30247 )
30248 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030249 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 -080030250 _res = star_expressions_var;
30251 goto done;
30252 }
30253 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030254 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30256 }
30257 _res = NULL;
30258 done:
30259 D(p->level--);
30260 return _res;
30261}
30262
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030263// _tmp_152: '[' | '(' | '{'
Pablo Galindob2802482021-04-15 21:38:45 +010030264static void *
30265_tmp_152_rule(Parser *p)
30266{
30267 D(p->level++);
30268 if (p->error_indicator) {
30269 D(p->level--);
30270 return NULL;
30271 }
30272 void * _res = NULL;
30273 int _mark = p->mark;
30274 { // '['
30275 if (p->error_indicator) {
30276 D(p->level--);
30277 return NULL;
30278 }
30279 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30280 Token * _literal;
30281 if (
30282 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30283 )
30284 {
30285 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30286 _res = _literal;
30287 goto done;
30288 }
30289 p->mark = _mark;
30290 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30292 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030293 { // '('
30294 if (p->error_indicator) {
30295 D(p->level--);
30296 return NULL;
30297 }
30298 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30299 Token * _literal;
30300 if (
30301 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30302 )
30303 {
30304 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30305 _res = _literal;
30306 goto done;
30307 }
30308 p->mark = _mark;
30309 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30311 }
Pablo Galindob2802482021-04-15 21:38:45 +010030312 { // '{'
30313 if (p->error_indicator) {
30314 D(p->level--);
30315 return NULL;
30316 }
30317 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30318 Token * _literal;
30319 if (
30320 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30321 )
30322 {
30323 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30324 _res = _literal;
30325 goto done;
30326 }
30327 p->mark = _mark;
30328 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30330 }
30331 _res = NULL;
30332 done:
30333 D(p->level--);
30334 return _res;
30335}
30336
Pablo Galindoa77aac42021-04-23 14:27:05 +010030337// _tmp_153: '[' | '{'
30338static void *
30339_tmp_153_rule(Parser *p)
30340{
30341 D(p->level++);
30342 if (p->error_indicator) {
30343 D(p->level--);
30344 return NULL;
30345 }
30346 void * _res = NULL;
30347 int _mark = p->mark;
30348 { // '['
30349 if (p->error_indicator) {
30350 D(p->level--);
30351 return NULL;
30352 }
30353 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30354 Token * _literal;
30355 if (
30356 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30357 )
30358 {
30359 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30360 _res = _literal;
30361 goto done;
30362 }
30363 p->mark = _mark;
30364 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30366 }
30367 { // '{'
30368 if (p->error_indicator) {
30369 D(p->level--);
30370 return NULL;
30371 }
30372 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30373 Token * _literal;
30374 if (
30375 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30376 )
30377 {
30378 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30379 _res = _literal;
30380 goto done;
30381 }
30382 p->mark = _mark;
30383 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30385 }
30386 _res = NULL;
30387 done:
30388 D(p->level--);
30389 return _res;
30390}
30391
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030392// _tmp_154: '[' | '{'
30393static void *
30394_tmp_154_rule(Parser *p)
30395{
30396 D(p->level++);
30397 if (p->error_indicator) {
30398 D(p->level--);
30399 return NULL;
30400 }
30401 void * _res = NULL;
30402 int _mark = p->mark;
30403 { // '['
30404 if (p->error_indicator) {
30405 D(p->level--);
30406 return NULL;
30407 }
30408 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30409 Token * _literal;
30410 if (
30411 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30412 )
30413 {
30414 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30415 _res = _literal;
30416 goto done;
30417 }
30418 p->mark = _mark;
30419 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30421 }
30422 { // '{'
30423 if (p->error_indicator) {
30424 D(p->level--);
30425 return NULL;
30426 }
30427 D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30428 Token * _literal;
30429 if (
30430 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30431 )
30432 {
30433 D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30434 _res = _literal;
30435 goto done;
30436 }
30437 p->mark = _mark;
30438 D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ',
30439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30440 }
30441 _res = NULL;
30442 done:
30443 D(p->level--);
30444 return _res;
30445}
30446
30447// _loop0_155: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030448static asdl_seq *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030449_loop0_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030450{
30451 D(p->level++);
30452 if (p->error_indicator) {
30453 D(p->level--);
30454 return NULL;
30455 }
30456 void *_res = NULL;
30457 int _mark = p->mark;
30458 int _start_mark = p->mark;
30459 void **_children = PyMem_Malloc(sizeof(void *));
30460 if (!_children) {
30461 p->error_indicator = 1;
30462 PyErr_NoMemory();
30463 D(p->level--);
30464 return NULL;
30465 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030466 Py_ssize_t _children_capacity = 1;
30467 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030468 { // param_no_default
30469 if (p->error_indicator) {
30470 D(p->level--);
30471 return NULL;
30472 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030473 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 -080030474 arg_ty param_no_default_var;
30475 while (
30476 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30477 )
30478 {
30479 _res = param_no_default_var;
30480 if (_n == _children_capacity) {
30481 _children_capacity *= 2;
30482 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30483 if (!_new_children) {
30484 p->error_indicator = 1;
30485 PyErr_NoMemory();
30486 D(p->level--);
30487 return NULL;
30488 }
30489 _children = _new_children;
30490 }
30491 _children[_n++] = _res;
30492 _mark = p->mark;
30493 }
30494 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030495 D(fprintf(stderr, "%*c%s _loop0_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30497 }
30498 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30499 if (!_seq) {
30500 PyMem_Free(_children);
30501 p->error_indicator = 1;
30502 PyErr_NoMemory();
30503 D(p->level--);
30504 return NULL;
30505 }
30506 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30507 PyMem_Free(_children);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030508 _PyPegen_insert_memo(p, _start_mark, _loop0_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030509 D(p->level--);
30510 return _seq;
30511}
30512
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030513// _loop1_156: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030514static asdl_seq *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030515_loop1_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030516{
30517 D(p->level++);
30518 if (p->error_indicator) {
30519 D(p->level--);
30520 return NULL;
30521 }
30522 void *_res = NULL;
30523 int _mark = p->mark;
30524 int _start_mark = p->mark;
30525 void **_children = PyMem_Malloc(sizeof(void *));
30526 if (!_children) {
30527 p->error_indicator = 1;
30528 PyErr_NoMemory();
30529 D(p->level--);
30530 return NULL;
30531 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030532 Py_ssize_t _children_capacity = 1;
30533 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030534 { // param_with_default
30535 if (p->error_indicator) {
30536 D(p->level--);
30537 return NULL;
30538 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030539 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 -080030540 NameDefaultPair* param_with_default_var;
30541 while (
30542 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30543 )
30544 {
30545 _res = param_with_default_var;
30546 if (_n == _children_capacity) {
30547 _children_capacity *= 2;
30548 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30549 if (!_new_children) {
30550 p->error_indicator = 1;
30551 PyErr_NoMemory();
30552 D(p->level--);
30553 return NULL;
30554 }
30555 _children = _new_children;
30556 }
30557 _children[_n++] = _res;
30558 _mark = p->mark;
30559 }
30560 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030561 D(fprintf(stderr, "%*c%s _loop1_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30563 }
30564 if (_n == 0 || p->error_indicator) {
30565 PyMem_Free(_children);
30566 D(p->level--);
30567 return NULL;
30568 }
30569 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30570 if (!_seq) {
30571 PyMem_Free(_children);
30572 p->error_indicator = 1;
30573 PyErr_NoMemory();
30574 D(p->level--);
30575 return NULL;
30576 }
30577 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30578 PyMem_Free(_children);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030579 _PyPegen_insert_memo(p, _start_mark, _loop1_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030580 D(p->level--);
30581 return _seq;
30582}
30583
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030584// _loop0_157: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030585static asdl_seq *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030586_loop0_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030587{
30588 D(p->level++);
30589 if (p->error_indicator) {
30590 D(p->level--);
30591 return NULL;
30592 }
30593 void *_res = NULL;
30594 int _mark = p->mark;
30595 int _start_mark = p->mark;
30596 void **_children = PyMem_Malloc(sizeof(void *));
30597 if (!_children) {
30598 p->error_indicator = 1;
30599 PyErr_NoMemory();
30600 D(p->level--);
30601 return NULL;
30602 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030603 Py_ssize_t _children_capacity = 1;
30604 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030605 { // lambda_param_no_default
30606 if (p->error_indicator) {
30607 D(p->level--);
30608 return NULL;
30609 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030610 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 -080030611 arg_ty lambda_param_no_default_var;
30612 while (
30613 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30614 )
30615 {
30616 _res = lambda_param_no_default_var;
30617 if (_n == _children_capacity) {
30618 _children_capacity *= 2;
30619 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30620 if (!_new_children) {
30621 p->error_indicator = 1;
30622 PyErr_NoMemory();
30623 D(p->level--);
30624 return NULL;
30625 }
30626 _children = _new_children;
30627 }
30628 _children[_n++] = _res;
30629 _mark = p->mark;
30630 }
30631 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030632 D(fprintf(stderr, "%*c%s _loop0_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30634 }
30635 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30636 if (!_seq) {
30637 PyMem_Free(_children);
30638 p->error_indicator = 1;
30639 PyErr_NoMemory();
30640 D(p->level--);
30641 return NULL;
30642 }
30643 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30644 PyMem_Free(_children);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030645 _PyPegen_insert_memo(p, _start_mark, _loop0_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030646 D(p->level--);
30647 return _seq;
30648}
30649
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030650// _loop1_158: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030651static asdl_seq *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030652_loop1_158_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030653{
30654 D(p->level++);
30655 if (p->error_indicator) {
30656 D(p->level--);
30657 return NULL;
30658 }
30659 void *_res = NULL;
30660 int _mark = p->mark;
30661 int _start_mark = p->mark;
30662 void **_children = PyMem_Malloc(sizeof(void *));
30663 if (!_children) {
30664 p->error_indicator = 1;
30665 PyErr_NoMemory();
30666 D(p->level--);
30667 return NULL;
30668 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030669 Py_ssize_t _children_capacity = 1;
30670 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030671 { // lambda_param_with_default
30672 if (p->error_indicator) {
30673 D(p->level--);
30674 return NULL;
30675 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030676 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 -080030677 NameDefaultPair* lambda_param_with_default_var;
30678 while (
30679 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30680 )
30681 {
30682 _res = lambda_param_with_default_var;
30683 if (_n == _children_capacity) {
30684 _children_capacity *= 2;
30685 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30686 if (!_new_children) {
30687 p->error_indicator = 1;
30688 PyErr_NoMemory();
30689 D(p->level--);
30690 return NULL;
30691 }
30692 _children = _new_children;
30693 }
30694 _children[_n++] = _res;
30695 _mark = p->mark;
30696 }
30697 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030698 D(fprintf(stderr, "%*c%s _loop1_158[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30700 }
30701 if (_n == 0 || p->error_indicator) {
30702 PyMem_Free(_children);
30703 D(p->level--);
30704 return NULL;
30705 }
30706 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30707 if (!_seq) {
30708 PyMem_Free(_children);
30709 p->error_indicator = 1;
30710 PyErr_NoMemory();
30711 D(p->level--);
30712 return NULL;
30713 }
30714 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30715 PyMem_Free(_children);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030716 _PyPegen_insert_memo(p, _start_mark, _loop1_158_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030717 D(p->level--);
30718 return _seq;
30719}
30720
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030721// _tmp_159: ')' | ',' (')' | '**')
Pablo Galindob2802482021-04-15 21:38:45 +010030722static void *
30723_tmp_159_rule(Parser *p)
30724{
30725 D(p->level++);
30726 if (p->error_indicator) {
30727 D(p->level--);
30728 return NULL;
30729 }
30730 void * _res = NULL;
30731 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030732 { // ')'
Pablo Galindob2802482021-04-15 21:38:45 +010030733 if (p->error_indicator) {
30734 D(p->level--);
30735 return NULL;
30736 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030737 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindob2802482021-04-15 21:38:45 +010030738 Token * _literal;
30739 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030740 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindob2802482021-04-15 21:38:45 +010030741 )
30742 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030743 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindob2802482021-04-15 21:38:45 +010030744 _res = _literal;
30745 goto done;
30746 }
30747 p->mark = _mark;
30748 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindob2802482021-04-15 21:38:45 +010030750 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030751 { // ',' (')' | '**')
Brandt Bucher145bf262021-02-26 14:51:55 -080030752 if (p->error_indicator) {
30753 D(p->level--);
30754 return NULL;
30755 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030756 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000030757 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030758 void *_tmp_193_var;
30759 if (
Pablo Galindo58fb1562021-02-02 19:54:22 +000030760 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30761 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030762 (_tmp_193_var = _tmp_193_rule(p)) // ')' | '**'
Pablo Galindo58fb1562021-02-02 19:54:22 +000030763 )
30764 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030765 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030766 _res = _PyPegen_dummy_name(p, _literal, _tmp_193_var);
Brandt Bucher145bf262021-02-26 14:51:55 -080030767 goto done;
30768 }
30769 p->mark = _mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030770 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030772 }
30773 _res = NULL;
30774 done:
30775 D(p->level--);
30776 return _res;
30777}
30778
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030779// _tmp_160: ':' | ',' (':' | '**')
Pablo Galindo56c95df2021-04-21 15:28:21 +010030780static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030781_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030782{
30783 D(p->level++);
30784 if (p->error_indicator) {
30785 D(p->level--);
30786 return NULL;
30787 }
30788 void * _res = NULL;
30789 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030790 { // ':'
30791 if (p->error_indicator) {
30792 D(p->level--);
30793 return NULL;
30794 }
30795 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30796 Token * _literal;
30797 if (
30798 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30799 )
30800 {
30801 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30802 _res = _literal;
30803 goto done;
30804 }
30805 p->mark = _mark;
30806 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30808 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030809 { // ',' (':' | '**')
Pablo Galindoa77aac42021-04-23 14:27:05 +010030810 if (p->error_indicator) {
30811 D(p->level--);
30812 return NULL;
30813 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030814 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030815 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030816 void *_tmp_194_var;
30817 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010030818 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30819 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030820 (_tmp_194_var = _tmp_194_rule(p)) // ':' | '**'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030821 )
30822 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030823 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30824 _res = _PyPegen_dummy_name(p, _literal, _tmp_194_var);
Pablo Galindoa77aac42021-04-23 14:27:05 +010030825 goto done;
30826 }
30827 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030828 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030830 }
30831 _res = NULL;
30832 done:
30833 D(p->level--);
30834 return _res;
30835}
30836
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030837// _tmp_161: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030838static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030839_tmp_161_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030840{
30841 D(p->level++);
30842 if (p->error_indicator) {
30843 D(p->level--);
30844 return NULL;
30845 }
30846 void * _res = NULL;
30847 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030848 { // ','
Pablo Galindo56c95df2021-04-21 15:28:21 +010030849 if (p->error_indicator) {
30850 D(p->level--);
30851 return NULL;
30852 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030853 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30854 Token * _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030855 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030856 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo56c95df2021-04-21 15:28:21 +010030857 )
30858 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030859 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30860 _res = _literal;
Pablo Galindo56c95df2021-04-21 15:28:21 +010030861 goto done;
30862 }
30863 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030864 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
30865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30866 }
30867 { // ')'
30868 if (p->error_indicator) {
30869 D(p->level--);
30870 return NULL;
30871 }
30872 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
30873 Token * _literal;
30874 if (
30875 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30876 )
30877 {
30878 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
30879 _res = _literal;
30880 goto done;
30881 }
30882 p->mark = _mark;
30883 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
30884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
30885 }
30886 { // ':'
30887 if (p->error_indicator) {
30888 D(p->level--);
30889 return NULL;
30890 }
30891 D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30892 Token * _literal;
30893 if (
30894 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30895 )
30896 {
30897 D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30898 _res = _literal;
30899 goto done;
30900 }
30901 p->mark = _mark;
30902 D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ',
30903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30904 }
30905 _res = NULL;
30906 done:
30907 D(p->level--);
30908 return _res;
30909}
30910
30911// _loop0_163: ',' (expression ['as' star_target])
30912static asdl_seq *
30913_loop0_163_rule(Parser *p)
30914{
30915 D(p->level++);
30916 if (p->error_indicator) {
30917 D(p->level--);
30918 return NULL;
30919 }
30920 void *_res = NULL;
30921 int _mark = p->mark;
30922 int _start_mark = p->mark;
30923 void **_children = PyMem_Malloc(sizeof(void *));
30924 if (!_children) {
30925 p->error_indicator = 1;
30926 PyErr_NoMemory();
30927 D(p->level--);
30928 return NULL;
30929 }
30930 Py_ssize_t _children_capacity = 1;
30931 Py_ssize_t _n = 0;
30932 { // ',' (expression ['as' star_target])
30933 if (p->error_indicator) {
30934 D(p->level--);
30935 return NULL;
30936 }
30937 D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
30938 Token * _literal;
30939 void *elem;
30940 while (
30941 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30942 &&
30943 (elem = _tmp_195_rule(p)) // expression ['as' star_target]
30944 )
30945 {
30946 _res = elem;
30947 if (_res == NULL && PyErr_Occurred()) {
30948 p->error_indicator = 1;
30949 PyMem_Free(_children);
30950 D(p->level--);
30951 return NULL;
30952 }
30953 if (_n == _children_capacity) {
30954 _children_capacity *= 2;
30955 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30956 if (!_new_children) {
30957 p->error_indicator = 1;
30958 PyErr_NoMemory();
30959 D(p->level--);
30960 return NULL;
30961 }
30962 _children = _new_children;
30963 }
30964 _children[_n++] = _res;
30965 _mark = p->mark;
30966 }
30967 p->mark = _mark;
30968 D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ',
30969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30970 }
30971 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30972 if (!_seq) {
30973 PyMem_Free(_children);
30974 p->error_indicator = 1;
30975 PyErr_NoMemory();
30976 D(p->level--);
30977 return NULL;
30978 }
30979 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30980 PyMem_Free(_children);
30981 _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq);
30982 D(p->level--);
30983 return _seq;
30984}
30985
30986// _gather_162: (expression ['as' star_target]) _loop0_163
30987static asdl_seq *
30988_gather_162_rule(Parser *p)
30989{
30990 D(p->level++);
30991 if (p->error_indicator) {
30992 D(p->level--);
30993 return NULL;
30994 }
30995 asdl_seq * _res = NULL;
30996 int _mark = p->mark;
30997 { // (expression ['as' star_target]) _loop0_163
30998 if (p->error_indicator) {
30999 D(p->level--);
31000 return NULL;
31001 }
31002 D(fprintf(stderr, "%*c> _gather_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163"));
31003 void *elem;
31004 asdl_seq * seq;
31005 if (
31006 (elem = _tmp_195_rule(p)) // expression ['as' star_target]
31007 &&
31008 (seq = _loop0_163_rule(p)) // _loop0_163
31009 )
31010 {
31011 D(fprintf(stderr, "%*c+ _gather_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163"));
31012 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31013 goto done;
31014 }
31015 p->mark = _mark;
31016 D(fprintf(stderr, "%*c%s _gather_162[%d-%d]: %s failed!\n", p->level, ' ',
31017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_163"));
31018 }
31019 _res = NULL;
31020 done:
31021 D(p->level--);
31022 return _res;
31023}
31024
31025// _loop0_165: ',' (expressions ['as' star_target])
31026static asdl_seq *
31027_loop0_165_rule(Parser *p)
31028{
31029 D(p->level++);
31030 if (p->error_indicator) {
31031 D(p->level--);
31032 return NULL;
31033 }
31034 void *_res = NULL;
31035 int _mark = p->mark;
31036 int _start_mark = p->mark;
31037 void **_children = PyMem_Malloc(sizeof(void *));
31038 if (!_children) {
31039 p->error_indicator = 1;
31040 PyErr_NoMemory();
31041 D(p->level--);
31042 return NULL;
31043 }
31044 Py_ssize_t _children_capacity = 1;
31045 Py_ssize_t _n = 0;
31046 { // ',' (expressions ['as' star_target])
31047 if (p->error_indicator) {
31048 D(p->level--);
31049 return NULL;
31050 }
31051 D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31052 Token * _literal;
31053 void *elem;
31054 while (
31055 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31056 &&
31057 (elem = _tmp_196_rule(p)) // expressions ['as' star_target]
31058 )
31059 {
31060 _res = elem;
31061 if (_res == NULL && PyErr_Occurred()) {
31062 p->error_indicator = 1;
31063 PyMem_Free(_children);
31064 D(p->level--);
31065 return NULL;
31066 }
31067 if (_n == _children_capacity) {
31068 _children_capacity *= 2;
31069 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31070 if (!_new_children) {
31071 p->error_indicator = 1;
31072 PyErr_NoMemory();
31073 D(p->level--);
31074 return NULL;
31075 }
31076 _children = _new_children;
31077 }
31078 _children[_n++] = _res;
31079 _mark = p->mark;
31080 }
31081 p->mark = _mark;
31082 D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ',
31083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31084 }
31085 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31086 if (!_seq) {
31087 PyMem_Free(_children);
31088 p->error_indicator = 1;
31089 PyErr_NoMemory();
31090 D(p->level--);
31091 return NULL;
31092 }
31093 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31094 PyMem_Free(_children);
31095 _PyPegen_insert_memo(p, _start_mark, _loop0_165_type, _seq);
31096 D(p->level--);
31097 return _seq;
31098}
31099
31100// _gather_164: (expressions ['as' star_target]) _loop0_165
31101static asdl_seq *
31102_gather_164_rule(Parser *p)
31103{
31104 D(p->level++);
31105 if (p->error_indicator) {
31106 D(p->level--);
31107 return NULL;
31108 }
31109 asdl_seq * _res = NULL;
31110 int _mark = p->mark;
31111 { // (expressions ['as' star_target]) _loop0_165
31112 if (p->error_indicator) {
31113 D(p->level--);
31114 return NULL;
31115 }
31116 D(fprintf(stderr, "%*c> _gather_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165"));
31117 void *elem;
31118 asdl_seq * seq;
31119 if (
31120 (elem = _tmp_196_rule(p)) // expressions ['as' star_target]
31121 &&
31122 (seq = _loop0_165_rule(p)) // _loop0_165
31123 )
31124 {
31125 D(fprintf(stderr, "%*c+ _gather_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165"));
31126 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31127 goto done;
31128 }
31129 p->mark = _mark;
31130 D(fprintf(stderr, "%*c%s _gather_164[%d-%d]: %s failed!\n", p->level, ' ',
31131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_165"));
31132 }
31133 _res = NULL;
31134 done:
31135 D(p->level--);
31136 return _res;
31137}
31138
31139// _loop0_167: ',' (expression ['as' star_target])
31140static asdl_seq *
31141_loop0_167_rule(Parser *p)
31142{
31143 D(p->level++);
31144 if (p->error_indicator) {
31145 D(p->level--);
31146 return NULL;
31147 }
31148 void *_res = NULL;
31149 int _mark = p->mark;
31150 int _start_mark = p->mark;
31151 void **_children = PyMem_Malloc(sizeof(void *));
31152 if (!_children) {
31153 p->error_indicator = 1;
31154 PyErr_NoMemory();
31155 D(p->level--);
31156 return NULL;
31157 }
31158 Py_ssize_t _children_capacity = 1;
31159 Py_ssize_t _n = 0;
31160 { // ',' (expression ['as' star_target])
31161 if (p->error_indicator) {
31162 D(p->level--);
31163 return NULL;
31164 }
31165 D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
31166 Token * _literal;
31167 void *elem;
31168 while (
31169 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31170 &&
31171 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
31172 )
31173 {
31174 _res = elem;
31175 if (_res == NULL && PyErr_Occurred()) {
31176 p->error_indicator = 1;
31177 PyMem_Free(_children);
31178 D(p->level--);
31179 return NULL;
31180 }
31181 if (_n == _children_capacity) {
31182 _children_capacity *= 2;
31183 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31184 if (!_new_children) {
31185 p->error_indicator = 1;
31186 PyErr_NoMemory();
31187 D(p->level--);
31188 return NULL;
31189 }
31190 _children = _new_children;
31191 }
31192 _children[_n++] = _res;
31193 _mark = p->mark;
31194 }
31195 p->mark = _mark;
31196 D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ',
31197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
31198 }
31199 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31200 if (!_seq) {
31201 PyMem_Free(_children);
31202 p->error_indicator = 1;
31203 PyErr_NoMemory();
31204 D(p->level--);
31205 return NULL;
31206 }
31207 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31208 PyMem_Free(_children);
31209 _PyPegen_insert_memo(p, _start_mark, _loop0_167_type, _seq);
31210 D(p->level--);
31211 return _seq;
31212}
31213
31214// _gather_166: (expression ['as' star_target]) _loop0_167
31215static asdl_seq *
31216_gather_166_rule(Parser *p)
31217{
31218 D(p->level++);
31219 if (p->error_indicator) {
31220 D(p->level--);
31221 return NULL;
31222 }
31223 asdl_seq * _res = NULL;
31224 int _mark = p->mark;
31225 { // (expression ['as' star_target]) _loop0_167
31226 if (p->error_indicator) {
31227 D(p->level--);
31228 return NULL;
31229 }
31230 D(fprintf(stderr, "%*c> _gather_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167"));
31231 void *elem;
31232 asdl_seq * seq;
31233 if (
31234 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
31235 &&
31236 (seq = _loop0_167_rule(p)) // _loop0_167
31237 )
31238 {
31239 D(fprintf(stderr, "%*c+ _gather_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167"));
31240 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31241 goto done;
31242 }
31243 p->mark = _mark;
31244 D(fprintf(stderr, "%*c%s _gather_166[%d-%d]: %s failed!\n", p->level, ' ',
31245 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_167"));
31246 }
31247 _res = NULL;
31248 done:
31249 D(p->level--);
31250 return _res;
31251}
31252
31253// _loop0_169: ',' (expressions ['as' star_target])
31254static asdl_seq *
31255_loop0_169_rule(Parser *p)
31256{
31257 D(p->level++);
31258 if (p->error_indicator) {
31259 D(p->level--);
31260 return NULL;
31261 }
31262 void *_res = NULL;
31263 int _mark = p->mark;
31264 int _start_mark = p->mark;
31265 void **_children = PyMem_Malloc(sizeof(void *));
31266 if (!_children) {
31267 p->error_indicator = 1;
31268 PyErr_NoMemory();
31269 D(p->level--);
31270 return NULL;
31271 }
31272 Py_ssize_t _children_capacity = 1;
31273 Py_ssize_t _n = 0;
31274 { // ',' (expressions ['as' star_target])
31275 if (p->error_indicator) {
31276 D(p->level--);
31277 return NULL;
31278 }
31279 D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
31280 Token * _literal;
31281 void *elem;
31282 while (
31283 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31284 &&
31285 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
31286 )
31287 {
31288 _res = elem;
31289 if (_res == NULL && PyErr_Occurred()) {
31290 p->error_indicator = 1;
31291 PyMem_Free(_children);
31292 D(p->level--);
31293 return NULL;
31294 }
31295 if (_n == _children_capacity) {
31296 _children_capacity *= 2;
31297 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31298 if (!_new_children) {
31299 p->error_indicator = 1;
31300 PyErr_NoMemory();
31301 D(p->level--);
31302 return NULL;
31303 }
31304 _children = _new_children;
31305 }
31306 _children[_n++] = _res;
31307 _mark = p->mark;
31308 }
31309 p->mark = _mark;
31310 D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ',
31311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
31312 }
31313 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31314 if (!_seq) {
31315 PyMem_Free(_children);
31316 p->error_indicator = 1;
31317 PyErr_NoMemory();
31318 D(p->level--);
31319 return NULL;
31320 }
31321 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31322 PyMem_Free(_children);
31323 _PyPegen_insert_memo(p, _start_mark, _loop0_169_type, _seq);
31324 D(p->level--);
31325 return _seq;
31326}
31327
31328// _gather_168: (expressions ['as' star_target]) _loop0_169
31329static asdl_seq *
31330_gather_168_rule(Parser *p)
31331{
31332 D(p->level++);
31333 if (p->error_indicator) {
31334 D(p->level--);
31335 return NULL;
31336 }
31337 asdl_seq * _res = NULL;
31338 int _mark = p->mark;
31339 { // (expressions ['as' star_target]) _loop0_169
31340 if (p->error_indicator) {
31341 D(p->level--);
31342 return NULL;
31343 }
31344 D(fprintf(stderr, "%*c> _gather_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169"));
31345 void *elem;
31346 asdl_seq * seq;
31347 if (
31348 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
31349 &&
31350 (seq = _loop0_169_rule(p)) // _loop0_169
31351 )
31352 {
31353 D(fprintf(stderr, "%*c+ _gather_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169"));
31354 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31355 goto done;
31356 }
31357 p->mark = _mark;
31358 D(fprintf(stderr, "%*c%s _gather_168[%d-%d]: %s failed!\n", p->level, ' ',
31359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_169"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031360 }
31361 _res = NULL;
31362 done:
31363 D(p->level--);
31364 return _res;
31365}
31366
31367// _tmp_170: 'as' NAME
31368static void *
31369_tmp_170_rule(Parser *p)
31370{
31371 D(p->level++);
31372 if (p->error_indicator) {
31373 D(p->level--);
31374 return NULL;
31375 }
31376 void * _res = NULL;
31377 int _mark = p->mark;
31378 { // 'as' NAME
31379 if (p->error_indicator) {
31380 D(p->level--);
31381 return NULL;
31382 }
31383 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31384 Token * _keyword;
31385 expr_ty name_var;
31386 if (
31387 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31388 &&
31389 (name_var = _PyPegen_name_token(p)) // NAME
31390 )
31391 {
31392 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31393 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31394 goto done;
31395 }
31396 p->mark = _mark;
31397 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
31398 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31399 }
31400 _res = NULL;
31401 done:
31402 D(p->level--);
31403 return _res;
31404}
31405
Pablo Galindoa77aac42021-04-23 14:27:05 +010031406// _tmp_171: 'as' NAME
Pablo Galindo56c95df2021-04-21 15:28:21 +010031407static void *
31408_tmp_171_rule(Parser *p)
31409{
31410 D(p->level++);
31411 if (p->error_indicator) {
31412 D(p->level--);
31413 return NULL;
31414 }
31415 void * _res = NULL;
31416 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031417 { // 'as' NAME
31418 if (p->error_indicator) {
31419 D(p->level--);
31420 return NULL;
31421 }
31422 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31423 Token * _keyword;
31424 expr_ty name_var;
31425 if (
31426 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31427 &&
31428 (name_var = _PyPegen_name_token(p)) // NAME
31429 )
31430 {
31431 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31432 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31433 goto done;
31434 }
31435 p->mark = _mark;
31436 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31438 }
31439 _res = NULL;
31440 done:
31441 D(p->level--);
31442 return _res;
31443}
31444
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031445// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031446static void *
31447_tmp_172_rule(Parser *p)
31448{
31449 D(p->level++);
31450 if (p->error_indicator) {
31451 D(p->level--);
31452 return NULL;
31453 }
31454 void * _res = NULL;
31455 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031456 { // 'as' NAME
31457 if (p->error_indicator) {
31458 D(p->level--);
31459 return NULL;
31460 }
31461 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31462 Token * _keyword;
31463 expr_ty name_var;
31464 if (
31465 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31466 &&
31467 (name_var = _PyPegen_name_token(p)) // NAME
31468 )
31469 {
31470 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31471 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31472 goto done;
31473 }
31474 p->mark = _mark;
31475 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31477 }
31478 _res = NULL;
31479 done:
31480 D(p->level--);
31481 return _res;
31482}
31483
31484// _tmp_173: '->' expression
31485static void *
31486_tmp_173_rule(Parser *p)
31487{
31488 D(p->level++);
31489 if (p->error_indicator) {
31490 D(p->level--);
31491 return NULL;
31492 }
31493 void * _res = NULL;
31494 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031495 { // '->' expression
31496 if (p->error_indicator) {
31497 D(p->level--);
31498 return NULL;
31499 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031500 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031501 Token * _literal;
31502 expr_ty expression_var;
31503 if (
31504 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31505 &&
31506 (expression_var = expression_rule(p)) // expression
31507 )
31508 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031509 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031510 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31511 goto done;
31512 }
31513 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031514 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31516 }
31517 _res = NULL;
31518 done:
31519 D(p->level--);
31520 return _res;
31521}
31522
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031523// _tmp_174: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031524static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031525_tmp_174_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031526{
31527 D(p->level++);
31528 if (p->error_indicator) {
31529 D(p->level--);
31530 return NULL;
31531 }
31532 void * _res = NULL;
31533 int _mark = p->mark;
31534 { // '(' arguments? ')'
31535 if (p->error_indicator) {
31536 D(p->level--);
31537 return NULL;
31538 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031539 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031540 Token * _literal;
31541 Token * _literal_1;
31542 void *_opt_var;
31543 UNUSED(_opt_var); // Silence compiler warnings
31544 if (
31545 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31546 &&
31547 (_opt_var = arguments_rule(p), 1) // arguments?
31548 &&
31549 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31550 )
31551 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031552 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031553 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31554 goto done;
31555 }
31556 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031557 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31559 }
31560 _res = NULL;
31561 done:
31562 D(p->level--);
31563 return _res;
31564}
31565
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031566// _loop0_176: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031567static asdl_seq *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031568_loop0_176_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031569{
31570 D(p->level++);
31571 if (p->error_indicator) {
31572 D(p->level--);
31573 return NULL;
31574 }
31575 void *_res = NULL;
31576 int _mark = p->mark;
31577 int _start_mark = p->mark;
31578 void **_children = PyMem_Malloc(sizeof(void *));
31579 if (!_children) {
31580 p->error_indicator = 1;
31581 PyErr_NoMemory();
31582 D(p->level--);
31583 return NULL;
31584 }
31585 Py_ssize_t _children_capacity = 1;
31586 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031587 { // ',' double_starred_kvpair
31588 if (p->error_indicator) {
31589 D(p->level--);
31590 return NULL;
31591 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031592 D(fprintf(stderr, "%*c> _loop0_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoda743502021-04-15 14:06:39 +010031593 Token * _literal;
31594 KeyValuePair* elem;
31595 while (
31596 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31597 &&
31598 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31599 )
31600 {
31601 _res = elem;
31602 if (_res == NULL && PyErr_Occurred()) {
31603 p->error_indicator = 1;
31604 PyMem_Free(_children);
31605 D(p->level--);
31606 return NULL;
31607 }
31608 if (_n == _children_capacity) {
31609 _children_capacity *= 2;
31610 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31611 if (!_new_children) {
31612 p->error_indicator = 1;
31613 PyErr_NoMemory();
31614 D(p->level--);
31615 return NULL;
31616 }
31617 _children = _new_children;
31618 }
31619 _children[_n++] = _res;
31620 _mark = p->mark;
31621 }
31622 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031623 D(fprintf(stderr, "%*c%s _loop0_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31625 }
31626 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31627 if (!_seq) {
31628 PyMem_Free(_children);
31629 p->error_indicator = 1;
31630 PyErr_NoMemory();
31631 D(p->level--);
31632 return NULL;
31633 }
31634 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31635 PyMem_Free(_children);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031636 _PyPegen_insert_memo(p, _start_mark, _loop0_176_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031637 D(p->level--);
31638 return _seq;
31639}
31640
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031641// _gather_175: double_starred_kvpair _loop0_176
Pablo Galindoda743502021-04-15 14:06:39 +010031642static asdl_seq *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031643_gather_175_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031644{
31645 D(p->level++);
31646 if (p->error_indicator) {
31647 D(p->level--);
31648 return NULL;
31649 }
31650 asdl_seq * _res = NULL;
31651 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031652 { // double_starred_kvpair _loop0_176
Pablo Galindoda743502021-04-15 14:06:39 +010031653 if (p->error_indicator) {
31654 D(p->level--);
31655 return NULL;
31656 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031657 D(fprintf(stderr, "%*c> _gather_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_176"));
Pablo Galindoda743502021-04-15 14:06:39 +010031658 KeyValuePair* elem;
31659 asdl_seq * seq;
31660 if (
31661 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31662 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031663 (seq = _loop0_176_rule(p)) // _loop0_176
Pablo Galindoda743502021-04-15 14:06:39 +010031664 )
31665 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031666 D(fprintf(stderr, "%*c+ _gather_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_176"));
Pablo Galindoda743502021-04-15 14:06:39 +010031667 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31668 goto done;
31669 }
31670 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031671 D(fprintf(stderr, "%*c%s _gather_175[%d-%d]: %s failed!\n", p->level, ' ',
31672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_176"));
Pablo Galindoda743502021-04-15 14:06:39 +010031673 }
31674 _res = NULL;
31675 done:
31676 D(p->level--);
31677 return _res;
31678}
31679
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031680// _tmp_177: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031681static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031682_tmp_177_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031683{
31684 D(p->level++);
31685 if (p->error_indicator) {
31686 D(p->level--);
31687 return NULL;
31688 }
31689 void * _res = NULL;
31690 int _mark = p->mark;
31691 { // '}'
31692 if (p->error_indicator) {
31693 D(p->level--);
31694 return NULL;
31695 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031696 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031697 Token * _literal;
31698 if (
31699 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31700 )
31701 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031702 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031703 _res = _literal;
31704 goto done;
31705 }
31706 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031707 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31709 }
31710 { // ','
31711 if (p->error_indicator) {
31712 D(p->level--);
31713 return NULL;
31714 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031715 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031716 Token * _literal;
31717 if (
31718 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31719 )
31720 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031721 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031722 _res = _literal;
31723 goto done;
31724 }
31725 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031726 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31728 }
31729 _res = NULL;
31730 done:
31731 D(p->level--);
31732 return _res;
31733}
31734
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031735// _tmp_178: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031736static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031737_tmp_178_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031738{
31739 D(p->level++);
31740 if (p->error_indicator) {
31741 D(p->level--);
31742 return NULL;
31743 }
31744 void * _res = NULL;
31745 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031746 { // star_targets '='
31747 if (p->error_indicator) {
31748 D(p->level--);
31749 return NULL;
31750 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031751 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031752 Token * _literal;
31753 expr_ty z;
31754 if (
31755 (z = star_targets_rule(p)) // star_targets
31756 &&
31757 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31758 )
31759 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031760 D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031761 _res = z;
31762 if (_res == NULL && PyErr_Occurred()) {
31763 p->error_indicator = 1;
31764 D(p->level--);
31765 return NULL;
31766 }
31767 goto done;
31768 }
31769 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031770 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31772 }
31773 _res = NULL;
31774 done:
31775 D(p->level--);
31776 return _res;
31777}
31778
Pablo Galindoa77aac42021-04-23 14:27:05 +010031779// _tmp_179: '.' | '...'
Pablo Galindob2802482021-04-15 21:38:45 +010031780static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010031781_tmp_179_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010031782{
31783 D(p->level++);
31784 if (p->error_indicator) {
31785 D(p->level--);
31786 return NULL;
31787 }
31788 void * _res = NULL;
31789 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031790 { // '.'
31791 if (p->error_indicator) {
31792 D(p->level--);
31793 return NULL;
31794 }
31795 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31796 Token * _literal;
31797 if (
31798 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31799 )
31800 {
31801 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31802 _res = _literal;
31803 goto done;
31804 }
31805 p->mark = _mark;
31806 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31808 }
31809 { // '...'
31810 if (p->error_indicator) {
31811 D(p->level--);
31812 return NULL;
31813 }
31814 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31815 Token * _literal;
31816 if (
31817 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31818 )
31819 {
31820 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31821 _res = _literal;
31822 goto done;
31823 }
31824 p->mark = _mark;
31825 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31827 }
31828 _res = NULL;
31829 done:
31830 D(p->level--);
31831 return _res;
31832}
31833
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031834// _tmp_180: '.' | '...'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031835static void *
31836_tmp_180_rule(Parser *p)
31837{
31838 D(p->level++);
31839 if (p->error_indicator) {
31840 D(p->level--);
31841 return NULL;
31842 }
31843 void * _res = NULL;
31844 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031845 { // '.'
31846 if (p->error_indicator) {
31847 D(p->level--);
31848 return NULL;
31849 }
31850 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31851 Token * _literal;
31852 if (
31853 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31854 )
31855 {
31856 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31857 _res = _literal;
31858 goto done;
31859 }
31860 p->mark = _mark;
31861 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31863 }
31864 { // '...'
31865 if (p->error_indicator) {
31866 D(p->level--);
31867 return NULL;
31868 }
31869 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31870 Token * _literal;
31871 if (
31872 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31873 )
31874 {
31875 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31876 _res = _literal;
31877 goto done;
31878 }
31879 p->mark = _mark;
31880 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31882 }
31883 _res = NULL;
31884 done:
31885 D(p->level--);
31886 return _res;
31887}
31888
31889// _tmp_181: '@' named_expression NEWLINE
31890static void *
31891_tmp_181_rule(Parser *p)
31892{
31893 D(p->level++);
31894 if (p->error_indicator) {
31895 D(p->level--);
31896 return NULL;
31897 }
31898 void * _res = NULL;
31899 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031900 { // '@' named_expression NEWLINE
31901 if (p->error_indicator) {
31902 D(p->level--);
31903 return NULL;
31904 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031905 D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031906 Token * _literal;
31907 expr_ty f;
31908 Token * newline_var;
31909 if (
31910 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
31911 &&
31912 (f = named_expression_rule(p)) // named_expression
31913 &&
31914 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
31915 )
31916 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031917 D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031918 _res = f;
31919 if (_res == NULL && PyErr_Occurred()) {
31920 p->error_indicator = 1;
31921 D(p->level--);
31922 return NULL;
31923 }
31924 goto done;
31925 }
31926 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031927 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
31929 }
31930 _res = NULL;
31931 done:
31932 D(p->level--);
31933 return _res;
31934}
31935
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031936// _tmp_182: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031937static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031938_tmp_182_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031939{
31940 D(p->level++);
31941 if (p->error_indicator) {
31942 D(p->level--);
31943 return NULL;
31944 }
31945 void * _res = NULL;
31946 int _mark = p->mark;
31947 { // ',' star_expression
31948 if (p->error_indicator) {
31949 D(p->level--);
31950 return NULL;
31951 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031952 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031953 Token * _literal;
31954 expr_ty c;
31955 if (
31956 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31957 &&
31958 (c = star_expression_rule(p)) // star_expression
31959 )
31960 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031961 D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031962 _res = c;
31963 if (_res == NULL && PyErr_Occurred()) {
31964 p->error_indicator = 1;
31965 D(p->level--);
31966 return NULL;
31967 }
31968 goto done;
31969 }
31970 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031971 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
31973 }
31974 _res = NULL;
31975 done:
31976 D(p->level--);
31977 return _res;
31978}
31979
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031980// _tmp_183: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031981static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031982_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031983{
31984 D(p->level++);
31985 if (p->error_indicator) {
31986 D(p->level--);
31987 return NULL;
31988 }
31989 void * _res = NULL;
31990 int _mark = p->mark;
31991 { // ',' expression
31992 if (p->error_indicator) {
31993 D(p->level--);
31994 return NULL;
31995 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031996 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031997 Token * _literal;
31998 expr_ty c;
31999 if (
32000 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32001 &&
32002 (c = expression_rule(p)) // expression
32003 )
32004 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032005 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032006 _res = c;
32007 if (_res == NULL && PyErr_Occurred()) {
32008 p->error_indicator = 1;
32009 D(p->level--);
32010 return NULL;
32011 }
32012 goto done;
32013 }
32014 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032015 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
32017 }
32018 _res = NULL;
32019 done:
32020 D(p->level--);
32021 return _res;
32022}
32023
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032024// _tmp_184: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032025static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032026_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032027{
32028 D(p->level++);
32029 if (p->error_indicator) {
32030 D(p->level--);
32031 return NULL;
32032 }
32033 void * _res = NULL;
32034 int _mark = p->mark;
32035 { // 'or' conjunction
32036 if (p->error_indicator) {
32037 D(p->level--);
32038 return NULL;
32039 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032040 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032041 Token * _keyword;
32042 expr_ty c;
32043 if (
32044 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
32045 &&
32046 (c = conjunction_rule(p)) // conjunction
32047 )
32048 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032049 D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032050 _res = c;
32051 if (_res == NULL && PyErr_Occurred()) {
32052 p->error_indicator = 1;
32053 D(p->level--);
32054 return NULL;
32055 }
32056 goto done;
32057 }
32058 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032059 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
32061 }
32062 _res = NULL;
32063 done:
32064 D(p->level--);
32065 return _res;
32066}
32067
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032068// _tmp_185: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032069static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032070_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032071{
32072 D(p->level++);
32073 if (p->error_indicator) {
32074 D(p->level--);
32075 return NULL;
32076 }
32077 void * _res = NULL;
32078 int _mark = p->mark;
32079 { // 'and' inversion
32080 if (p->error_indicator) {
32081 D(p->level--);
32082 return NULL;
32083 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032084 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032085 Token * _keyword;
32086 expr_ty c;
32087 if (
32088 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
32089 &&
32090 (c = inversion_rule(p)) // inversion
32091 )
32092 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032093 D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032094 _res = c;
32095 if (_res == NULL && PyErr_Occurred()) {
32096 p->error_indicator = 1;
32097 D(p->level--);
32098 return NULL;
32099 }
32100 goto done;
32101 }
32102 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032103 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindob2802482021-04-15 21:38:45 +010032105 }
32106 _res = NULL;
32107 done:
32108 D(p->level--);
32109 return _res;
32110}
32111
Pablo Galindoa77aac42021-04-23 14:27:05 +010032112// _tmp_186: 'if' disjunction
Pablo Galindob2802482021-04-15 21:38:45 +010032113static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032114_tmp_186_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032115{
32116 D(p->level++);
32117 if (p->error_indicator) {
32118 D(p->level--);
32119 return NULL;
32120 }
32121 void * _res = NULL;
32122 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032123 { // 'if' disjunction
32124 if (p->error_indicator) {
32125 D(p->level--);
32126 return NULL;
32127 }
32128 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32129 Token * _keyword;
32130 expr_ty z;
32131 if (
32132 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32133 &&
32134 (z = disjunction_rule(p)) // disjunction
32135 )
32136 {
32137 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32138 _res = z;
32139 if (_res == NULL && PyErr_Occurred()) {
32140 p->error_indicator = 1;
32141 D(p->level--);
32142 return NULL;
32143 }
32144 goto done;
32145 }
32146 p->mark = _mark;
32147 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
32148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32149 }
32150 _res = NULL;
32151 done:
32152 D(p->level--);
32153 return _res;
32154}
32155
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032156// _tmp_187: 'if' disjunction
Pablo Galindoa77aac42021-04-23 14:27:05 +010032157static void *
32158_tmp_187_rule(Parser *p)
32159{
32160 D(p->level++);
32161 if (p->error_indicator) {
32162 D(p->level--);
32163 return NULL;
32164 }
32165 void * _res = NULL;
32166 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032167 { // 'if' disjunction
32168 if (p->error_indicator) {
32169 D(p->level--);
32170 return NULL;
32171 }
32172 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32173 Token * _keyword;
32174 expr_ty z;
32175 if (
32176 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32177 &&
32178 (z = disjunction_rule(p)) // disjunction
32179 )
32180 {
32181 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32182 _res = z;
32183 if (_res == NULL && PyErr_Occurred()) {
32184 p->error_indicator = 1;
32185 D(p->level--);
32186 return NULL;
32187 }
32188 goto done;
32189 }
32190 p->mark = _mark;
32191 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
32192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32193 }
32194 _res = NULL;
32195 done:
32196 D(p->level--);
32197 return _res;
32198}
32199
32200// _tmp_188: starred_expression | direct_named_expression !'='
32201static void *
32202_tmp_188_rule(Parser *p)
32203{
32204 D(p->level++);
32205 if (p->error_indicator) {
32206 D(p->level--);
32207 return NULL;
32208 }
32209 void * _res = NULL;
32210 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032211 { // starred_expression
32212 if (p->error_indicator) {
32213 D(p->level--);
32214 return NULL;
32215 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032216 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032217 expr_ty starred_expression_var;
32218 if (
32219 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32220 )
32221 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032222 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032223 _res = starred_expression_var;
32224 goto done;
32225 }
32226 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032227 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32229 }
Pablo Galindod9151cb2021-04-13 02:32:33 +010032230 { // direct_named_expression !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032231 if (p->error_indicator) {
32232 D(p->level--);
32233 return NULL;
32234 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032235 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010032236 expr_ty direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032237 if (
Pablo Galindod9151cb2021-04-13 02:32:33 +010032238 (direct_named_expression_var = direct_named_expression_rule(p)) // direct_named_expression
Pablo Galindo4a97b152020-09-02 17:44:19 +010032239 &&
32240 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32241 )
32242 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032243 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindod9151cb2021-04-13 02:32:33 +010032244 _res = direct_named_expression_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032245 goto done;
32246 }
32247 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032248 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "direct_named_expression !'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032250 }
32251 _res = NULL;
32252 done:
32253 D(p->level--);
32254 return _res;
32255}
32256
Pablo Galindoa77aac42021-04-23 14:27:05 +010032257// _tmp_189: ',' star_target
Pablo Galindob86ed8e2021-04-12 16:59:30 +010032258static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032259_tmp_189_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010032260{
32261 D(p->level++);
32262 if (p->error_indicator) {
32263 D(p->level--);
32264 return NULL;
32265 }
32266 void * _res = NULL;
32267 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032268 { // ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032269 if (p->error_indicator) {
32270 D(p->level--);
32271 return NULL;
32272 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010032273 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010032274 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032275 expr_ty c;
Pablo Galindoda743502021-04-15 14:06:39 +010032276 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010032277 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoda743502021-04-15 14:06:39 +010032278 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010032279 (c = star_target_rule(p)) // star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032280 )
32281 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010032282 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32283 _res = c;
32284 if (_res == NULL && PyErr_Occurred()) {
32285 p->error_indicator = 1;
32286 D(p->level--);
32287 return NULL;
32288 }
Pablo Galindoda743502021-04-15 14:06:39 +010032289 goto done;
32290 }
32291 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032292 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010032293 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoda743502021-04-15 14:06:39 +010032294 }
32295 _res = NULL;
32296 done:
32297 D(p->level--);
32298 return _res;
32299}
32300
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032301// _tmp_190: ',' star_target
Pablo Galindoda743502021-04-15 14:06:39 +010032302static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032303_tmp_190_rule(Parser *p)
Pablo Galindo835f14f2021-01-31 22:52:56 +000032304{
32305 D(p->level++);
32306 if (p->error_indicator) {
32307 D(p->level--);
32308 return NULL;
32309 }
32310 void * _res = NULL;
32311 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032312 { // ',' star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032313 if (p->error_indicator) {
32314 D(p->level--);
32315 return NULL;
32316 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032317 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032318 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032319 expr_ty c;
Pablo Galindob2802482021-04-15 21:38:45 +010032320 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032321 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindob2802482021-04-15 21:38:45 +010032322 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032323 (c = star_target_rule(p)) // star_target
Pablo Galindob2802482021-04-15 21:38:45 +010032324 )
32325 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032326 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32327 _res = c;
32328 if (_res == NULL && PyErr_Occurred()) {
32329 p->error_indicator = 1;
32330 D(p->level--);
32331 return NULL;
32332 }
Pablo Galindob2802482021-04-15 21:38:45 +010032333 goto done;
32334 }
32335 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032336 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindob2802482021-04-15 21:38:45 +010032338 }
32339 _res = NULL;
32340 done:
32341 D(p->level--);
32342 return _res;
32343}
32344
Pablo Galindoa77aac42021-04-23 14:27:05 +010032345// _tmp_191: star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010032346static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032347_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032348{
32349 D(p->level++);
32350 if (p->error_indicator) {
32351 D(p->level--);
32352 return NULL;
32353 }
32354 void * _res = NULL;
32355 int _mark = p->mark;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032356 { // star_targets '='
32357 if (p->error_indicator) {
32358 D(p->level--);
32359 return NULL;
32360 }
32361 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32362 Token * _literal;
32363 expr_ty star_targets_var;
32364 if (
32365 (star_targets_var = star_targets_rule(p)) // star_targets
32366 &&
32367 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32368 )
32369 {
32370 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32371 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32372 goto done;
32373 }
32374 p->mark = _mark;
32375 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
32376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32377 }
32378 _res = NULL;
32379 done:
32380 D(p->level--);
32381 return _res;
32382}
32383
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032384// _tmp_192: star_targets '='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032385static void *
32386_tmp_192_rule(Parser *p)
32387{
32388 D(p->level++);
32389 if (p->error_indicator) {
32390 D(p->level--);
32391 return NULL;
32392 }
32393 void * _res = NULL;
32394 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032395 { // star_targets '='
32396 if (p->error_indicator) {
32397 D(p->level--);
32398 return NULL;
32399 }
32400 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32401 Token * _literal;
32402 expr_ty star_targets_var;
32403 if (
32404 (star_targets_var = star_targets_rule(p)) // star_targets
32405 &&
32406 (_literal = _PyPegen_expect_token(p, 22)) // token='='
32407 )
32408 {
32409 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32410 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
32411 goto done;
32412 }
32413 p->mark = _mark;
32414 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
32415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
32416 }
32417 _res = NULL;
32418 done:
32419 D(p->level--);
32420 return _res;
32421}
32422
32423// _tmp_193: ')' | '**'
32424static void *
32425_tmp_193_rule(Parser *p)
32426{
32427 D(p->level++);
32428 if (p->error_indicator) {
32429 D(p->level--);
32430 return NULL;
32431 }
32432 void * _res = NULL;
32433 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032434 { // ')'
32435 if (p->error_indicator) {
32436 D(p->level--);
32437 return NULL;
32438 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032439 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032440 Token * _literal;
32441 if (
32442 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32443 )
32444 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032445 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032446 _res = _literal;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032447 goto done;
32448 }
32449 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032450 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032452 }
32453 { // '**'
32454 if (p->error_indicator) {
32455 D(p->level--);
32456 return NULL;
32457 }
32458 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32459 Token * _literal;
32460 if (
32461 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32462 )
32463 {
32464 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32465 _res = _literal;
32466 goto done;
32467 }
32468 p->mark = _mark;
32469 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
32470 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032471 }
32472 _res = NULL;
32473 done:
32474 D(p->level--);
32475 return _res;
32476}
32477
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032478// _tmp_194: ':' | '**'
Pablo Galindo58fb1562021-02-02 19:54:22 +000032479static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032480_tmp_194_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000032481{
32482 D(p->level++);
32483 if (p->error_indicator) {
32484 D(p->level--);
32485 return NULL;
32486 }
32487 void * _res = NULL;
32488 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032489 { // ':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010032490 if (p->error_indicator) {
32491 D(p->level--);
32492 return NULL;
32493 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032494 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
32495 Token * _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032496 if (
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032497 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010032498 )
32499 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032500 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
32501 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032502 goto done;
32503 }
32504 p->mark = _mark;
32505 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32507 }
32508 { // '**'
32509 if (p->error_indicator) {
32510 D(p->level--);
32511 return NULL;
32512 }
32513 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
32514 Token * _literal;
32515 if (
32516 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32517 )
32518 {
32519 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
32520 _res = _literal;
32521 goto done;
32522 }
32523 p->mark = _mark;
32524 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
32525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032526 }
32527 _res = NULL;
32528 done:
32529 D(p->level--);
32530 return _res;
32531}
32532
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032533// _tmp_195: expression ['as' star_target]
Pablo Galindoa77aac42021-04-23 14:27:05 +010032534static void *
32535_tmp_195_rule(Parser *p)
32536{
32537 D(p->level++);
32538 if (p->error_indicator) {
32539 D(p->level--);
32540 return NULL;
32541 }
32542 void * _res = NULL;
32543 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032544 { // expression ['as' star_target]
32545 if (p->error_indicator) {
32546 D(p->level--);
32547 return NULL;
32548 }
32549 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32550 void *_opt_var;
32551 UNUSED(_opt_var); // Silence compiler warnings
32552 expr_ty expression_var;
32553 if (
32554 (expression_var = expression_rule(p)) // expression
32555 &&
32556 (_opt_var = _tmp_199_rule(p), 1) // ['as' star_target]
32557 )
32558 {
32559 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32560 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32561 goto done;
32562 }
32563 p->mark = _mark;
32564 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32566 }
32567 _res = NULL;
32568 done:
32569 D(p->level--);
32570 return _res;
32571}
32572
32573// _tmp_196: expressions ['as' star_target]
32574static void *
32575_tmp_196_rule(Parser *p)
32576{
32577 D(p->level++);
32578 if (p->error_indicator) {
32579 D(p->level--);
32580 return NULL;
32581 }
32582 void * _res = NULL;
32583 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032584 { // expressions ['as' star_target]
32585 if (p->error_indicator) {
32586 D(p->level--);
32587 return NULL;
32588 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032589 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032590 void *_opt_var;
32591 UNUSED(_opt_var); // Silence compiler warnings
32592 expr_ty expressions_var;
32593 if (
32594 (expressions_var = expressions_rule(p)) // expressions
32595 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032596 (_opt_var = _tmp_200_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032597 )
32598 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032599 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032600 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32601 goto done;
32602 }
32603 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032604 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032606 }
32607 _res = NULL;
32608 done:
32609 D(p->level--);
32610 return _res;
32611}
32612
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032613// _tmp_197: expression ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032614static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032615_tmp_197_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032616{
32617 D(p->level++);
32618 if (p->error_indicator) {
32619 D(p->level--);
32620 return NULL;
32621 }
32622 void * _res = NULL;
32623 int _mark = p->mark;
32624 { // expression ['as' star_target]
32625 if (p->error_indicator) {
32626 D(p->level--);
32627 return NULL;
32628 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032629 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032630 void *_opt_var;
32631 UNUSED(_opt_var); // Silence compiler warnings
32632 expr_ty expression_var;
32633 if (
32634 (expression_var = expression_rule(p)) // expression
32635 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032636 (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032637 )
32638 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032639 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032640 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32641 goto done;
32642 }
32643 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032644 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010032645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32646 }
32647 _res = NULL;
32648 done:
32649 D(p->level--);
32650 return _res;
32651}
32652
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032653// _tmp_198: expressions ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032654static void *
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032655_tmp_198_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032656{
32657 D(p->level++);
32658 if (p->error_indicator) {
32659 D(p->level--);
32660 return NULL;
32661 }
32662 void * _res = NULL;
32663 int _mark = p->mark;
32664 { // expressions ['as' star_target]
32665 if (p->error_indicator) {
32666 D(p->level--);
32667 return NULL;
32668 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032669 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032670 void *_opt_var;
32671 UNUSED(_opt_var); // Silence compiler warnings
32672 expr_ty expressions_var;
32673 if (
32674 (expressions_var = expressions_rule(p)) // expressions
32675 &&
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032676 (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target]
Pablo Galindo56c95df2021-04-21 15:28:21 +010032677 )
32678 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032679 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032680 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32681 goto done;
32682 }
32683 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032684 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010032686 }
32687 _res = NULL;
32688 done:
32689 D(p->level--);
32690 return _res;
32691}
32692
32693// _tmp_199: 'as' star_target
32694static void *
32695_tmp_199_rule(Parser *p)
32696{
32697 D(p->level++);
32698 if (p->error_indicator) {
32699 D(p->level--);
32700 return NULL;
32701 }
32702 void * _res = NULL;
32703 int _mark = p->mark;
32704 { // 'as' star_target
32705 if (p->error_indicator) {
32706 D(p->level--);
32707 return NULL;
32708 }
32709 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32710 Token * _keyword;
32711 expr_ty star_target_var;
32712 if (
32713 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32714 &&
32715 (star_target_var = star_target_rule(p)) // star_target
32716 )
32717 {
32718 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32719 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32720 goto done;
32721 }
32722 p->mark = _mark;
32723 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
32724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32725 }
32726 _res = NULL;
32727 done:
32728 D(p->level--);
32729 return _res;
32730}
32731
32732// _tmp_200: 'as' star_target
32733static void *
32734_tmp_200_rule(Parser *p)
32735{
32736 D(p->level++);
32737 if (p->error_indicator) {
32738 D(p->level--);
32739 return NULL;
32740 }
32741 void * _res = NULL;
32742 int _mark = p->mark;
32743 { // 'as' star_target
32744 if (p->error_indicator) {
32745 D(p->level--);
32746 return NULL;
32747 }
32748 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32749 Token * _keyword;
32750 expr_ty star_target_var;
32751 if (
32752 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32753 &&
32754 (star_target_var = star_target_rule(p)) // star_target
32755 )
32756 {
32757 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32758 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32759 goto done;
32760 }
32761 p->mark = _mark;
32762 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032763 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32764 }
32765 _res = NULL;
32766 done:
32767 D(p->level--);
32768 return _res;
32769}
32770
Pablo Galindoa77aac42021-04-23 14:27:05 +010032771// _tmp_201: 'as' star_target
32772static void *
32773_tmp_201_rule(Parser *p)
32774{
32775 D(p->level++);
32776 if (p->error_indicator) {
32777 D(p->level--);
32778 return NULL;
32779 }
32780 void * _res = NULL;
32781 int _mark = p->mark;
32782 { // 'as' star_target
32783 if (p->error_indicator) {
32784 D(p->level--);
32785 return NULL;
32786 }
32787 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32788 Token * _keyword;
32789 expr_ty star_target_var;
32790 if (
32791 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32792 &&
32793 (star_target_var = star_target_rule(p)) // star_target
32794 )
32795 {
32796 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32797 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32798 goto done;
32799 }
32800 p->mark = _mark;
32801 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
32802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32803 }
32804 _res = NULL;
32805 done:
32806 D(p->level--);
32807 return _res;
32808}
32809
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032810// _tmp_202: 'as' star_target
32811static void *
32812_tmp_202_rule(Parser *p)
32813{
32814 D(p->level++);
32815 if (p->error_indicator) {
32816 D(p->level--);
32817 return NULL;
32818 }
32819 void * _res = NULL;
32820 int _mark = p->mark;
32821 { // 'as' star_target
32822 if (p->error_indicator) {
32823 D(p->level--);
32824 return NULL;
32825 }
32826 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32827 Token * _keyword;
32828 expr_ty star_target_var;
32829 if (
32830 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32831 &&
32832 (star_target_var = star_target_rule(p)) // star_target
32833 )
32834 {
32835 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32836 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32837 goto done;
32838 }
32839 p->mark = _mark;
32840 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
32841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32842 }
32843 _res = NULL;
32844 done:
32845 D(p->level--);
32846 return _res;
32847}
32848
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032849void *
32850_PyPegen_parse(Parser *p)
32851{
32852 // Initialize keywords
32853 p->keywords = reserved_keywords;
32854 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010032855 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032856
32857 // Run parser
32858 void *result = NULL;
32859 if (p->start_rule == Py_file_input) {
32860 result = file_rule(p);
32861 } else if (p->start_rule == Py_single_input) {
32862 result = interactive_rule(p);
32863 } else if (p->start_rule == Py_eval_input) {
32864 result = eval_rule(p);
32865 } else if (p->start_rule == Py_func_type_input) {
32866 result = func_type_rule(p);
32867 } else if (p->start_rule == Py_fstring_input) {
32868 result = fstring_rule(p);
32869 }
32870
32871 return result;
32872}
32873
32874// The end