blob: 238ce36b4fb142d82c13e6e1ab5afc085136f4b1 [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Victor Stinner6af528b2021-03-18 09:54:13 +01005# define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00006#else
Victor Stinner6af528b2021-03-18 09:54:13 +01007# define D(x)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00008#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009static const int n_keyword_lists = 9;
10static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010011 (KeywordToken[]) {{NULL, -1}},
12 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013 (KeywordToken[]) {
14 {"if", 510},
15 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080017 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018 {"or", 531},
19 {NULL, -1},
20 },
21 (KeywordToken[]) {
22 {"del", 503},
23 {"try", 511},
24 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080025 {"def", 526},
26 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027 {"and", 532},
28 {NULL, -1},
29 },
30 (KeywordToken[]) {
31 {"pass", 502},
32 {"from", 514},
33 {"elif", 515},
34 {"else", 516},
35 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080036 {"None", 523},
37 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010038 {NULL, -1},
39 },
40 (KeywordToken[]) {
41 {"raise", 501},
42 {"yield", 504},
43 {"break", 506},
44 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080045 {"False", 525},
46 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010047 {NULL, -1},
48 },
49 (KeywordToken[]) {
50 {"return", 500},
51 {"assert", 505},
52 {"global", 508},
53 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030054 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080055 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010056 {NULL, -1},
57 },
58 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030059 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010060 {NULL, -1},
61 },
62 (KeywordToken[]) {
63 {"continue", 507},
64 {"nonlocal", 509},
65 {NULL, -1},
66 },
67};
Pablo Galindob2802482021-04-15 21:38:45 +010068static char *soft_keywords[] = {
69 "_",
70 "case",
71 "match",
72 NULL,
73};
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010074#define file_type 1000
75#define interactive_type 1001
76#define eval_type 1002
77#define func_type_type 1003
78#define fstring_type 1004
79#define type_expressions_type 1005
80#define statements_type 1006
81#define statement_type 1007
82#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000083#define simple_stmts_type 1009
84#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010085#define compound_stmt_type 1011
86#define assignment_type 1012
87#define augassign_type 1013
88#define global_stmt_type 1014
89#define nonlocal_stmt_type 1015
90#define yield_stmt_type 1016
91#define assert_stmt_type 1017
92#define del_stmt_type 1018
93#define import_stmt_type 1019
94#define import_name_type 1020
95#define import_from_type 1021
96#define import_from_targets_type 1022
97#define import_from_as_names_type 1023
98#define import_from_as_name_type 1024
99#define dotted_as_names_type 1025
100#define dotted_as_name_type 1026
101#define dotted_name_type 1027 // Left-recursive
102#define if_stmt_type 1028
103#define elif_stmt_type 1029
104#define else_block_type 1030
105#define while_stmt_type 1031
106#define for_stmt_type 1032
107#define with_stmt_type 1033
108#define with_item_type 1034
109#define try_stmt_type 1035
110#define except_block_type 1036
111#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800112#define match_stmt_type 1038
113#define subject_expr_type 1039
114#define case_block_type 1040
115#define guard_type 1041
116#define patterns_type 1042
117#define pattern_type 1043
118#define as_pattern_type 1044
119#define or_pattern_type 1045
120#define closed_pattern_type 1046
121#define literal_pattern_type 1047
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000122#define literal_expr_type 1048
123#define complex_number_type 1049
124#define signed_number_type 1050
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700125#define signed_real_number_type 1051
126#define real_number_type 1052
127#define imaginary_number_type 1053
128#define capture_pattern_type 1054
129#define pattern_capture_target_type 1055
130#define wildcard_pattern_type 1056
131#define value_pattern_type 1057
132#define attr_type 1058 // Left-recursive
133#define name_or_attr_type 1059 // Left-recursive
134#define group_pattern_type 1060
135#define sequence_pattern_type 1061
136#define open_sequence_pattern_type 1062
137#define maybe_sequence_pattern_type 1063
138#define maybe_star_pattern_type 1064
139#define star_pattern_type 1065
140#define mapping_pattern_type 1066
141#define items_pattern_type 1067
142#define key_value_pattern_type 1068
143#define double_star_pattern_type 1069
144#define class_pattern_type 1070
145#define positional_patterns_type 1071
146#define keyword_patterns_type 1072
147#define keyword_pattern_type 1073
148#define return_stmt_type 1074
149#define raise_stmt_type 1075
150#define function_def_type 1076
151#define function_def_raw_type 1077
152#define func_type_comment_type 1078
153#define params_type 1079
154#define parameters_type 1080
155#define slash_no_default_type 1081
156#define slash_with_default_type 1082
157#define star_etc_type 1083
158#define kwds_type 1084
159#define param_no_default_type 1085
160#define param_with_default_type 1086
161#define param_maybe_default_type 1087
162#define param_type 1088
163#define annotation_type 1089
164#define default_type 1090
165#define decorators_type 1091
166#define class_def_type 1092
167#define class_def_raw_type 1093
168#define block_type 1094
169#define star_expressions_type 1095
170#define star_expression_type 1096
171#define star_named_expressions_type 1097
172#define star_named_expression_type 1098
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700173#define assigment_expression_type 1099
174#define named_expression_type 1100
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700175#define annotated_rhs_type 1101
176#define expressions_type 1102
177#define expression_type 1103
178#define lambdef_type 1104
179#define lambda_params_type 1105
180#define lambda_parameters_type 1106
181#define lambda_slash_no_default_type 1107
182#define lambda_slash_with_default_type 1108
183#define lambda_star_etc_type 1109
184#define lambda_kwds_type 1110
185#define lambda_param_no_default_type 1111
186#define lambda_param_with_default_type 1112
187#define lambda_param_maybe_default_type 1113
188#define lambda_param_type 1114
189#define disjunction_type 1115
190#define conjunction_type 1116
191#define inversion_type 1117
192#define comparison_type 1118
193#define compare_op_bitwise_or_pair_type 1119
194#define eq_bitwise_or_type 1120
195#define noteq_bitwise_or_type 1121
196#define lte_bitwise_or_type 1122
197#define lt_bitwise_or_type 1123
198#define gte_bitwise_or_type 1124
199#define gt_bitwise_or_type 1125
200#define notin_bitwise_or_type 1126
201#define in_bitwise_or_type 1127
202#define isnot_bitwise_or_type 1128
203#define is_bitwise_or_type 1129
204#define bitwise_or_type 1130 // Left-recursive
205#define bitwise_xor_type 1131 // Left-recursive
206#define bitwise_and_type 1132 // Left-recursive
207#define shift_expr_type 1133 // Left-recursive
208#define sum_type 1134 // Left-recursive
209#define term_type 1135 // Left-recursive
210#define factor_type 1136
211#define power_type 1137
212#define await_primary_type 1138
213#define primary_type 1139 // Left-recursive
214#define slices_type 1140
215#define slice_type 1141
216#define atom_type 1142
217#define strings_type 1143
218#define list_type 1144
219#define listcomp_type 1145
220#define tuple_type 1146
221#define group_type 1147
222#define genexp_type 1148
223#define set_type 1149
224#define setcomp_type 1150
225#define dict_type 1151
226#define dictcomp_type 1152
227#define double_starred_kvpairs_type 1153
228#define double_starred_kvpair_type 1154
229#define kvpair_type 1155
230#define for_if_clauses_type 1156
231#define for_if_clause_type 1157
232#define yield_expr_type 1158
233#define arguments_type 1159
234#define args_type 1160
235#define kwargs_type 1161
236#define starred_expression_type 1162
237#define kwarg_or_starred_type 1163
238#define kwarg_or_double_starred_type 1164
239#define star_targets_type 1165
240#define star_targets_list_seq_type 1166
241#define star_targets_tuple_seq_type 1167
242#define star_target_type 1168
243#define target_with_star_atom_type 1169
244#define star_atom_type 1170
245#define single_target_type 1171
246#define single_subscript_attribute_target_type 1172
247#define del_targets_type 1173
248#define del_target_type 1174
249#define del_t_atom_type 1175
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700250#define t_primary_type 1176 // Left-recursive
251#define t_lookahead_type 1177
252#define invalid_arguments_type 1178
253#define invalid_kwarg_type 1179
254#define expression_without_invalid_type 1180
255#define invalid_expression_type 1181
256#define invalid_named_expression_type 1182
257#define invalid_assignment_type 1183
258#define invalid_ann_assign_target_type 1184
259#define invalid_del_stmt_type 1185
260#define invalid_block_type 1186
261#define invalid_primary_type 1187 // Left-recursive
262#define invalid_comprehension_type 1188
263#define invalid_dict_comprehension_type 1189
264#define invalid_parameters_type 1190
265#define invalid_parameters_helper_type 1191
266#define invalid_lambda_parameters_type 1192
267#define invalid_lambda_parameters_helper_type 1193
268#define invalid_star_etc_type 1194
269#define invalid_lambda_star_etc_type 1195
270#define invalid_double_type_comments_type 1196
271#define invalid_with_item_type 1197
272#define invalid_for_target_type 1198
273#define invalid_group_type 1199
274#define invalid_import_from_targets_type 1200
275#define invalid_with_stmt_type 1201
276#define invalid_with_stmt_indent_type 1202
277#define invalid_try_stmt_type 1203
278#define invalid_except_stmt_type 1204
279#define invalid_finally_stmt_type 1205
280#define invalid_except_stmt_indent_type 1206
281#define invalid_match_stmt_type 1207
282#define invalid_case_block_type 1208
283#define invalid_if_stmt_type 1209
284#define invalid_elif_stmt_type 1210
285#define invalid_else_stmt_type 1211
286#define invalid_while_stmt_type 1212
287#define invalid_for_stmt_type 1213
288#define invalid_def_raw_type 1214
289#define invalid_class_def_raw_type 1215
290#define invalid_double_starred_kvpairs_type 1216
291#define invalid_kvpair_type 1217
292#define _loop0_1_type 1218
293#define _loop0_2_type 1219
294#define _loop0_4_type 1220
295#define _gather_3_type 1221
296#define _loop0_6_type 1222
297#define _gather_5_type 1223
298#define _loop0_8_type 1224
299#define _gather_7_type 1225
300#define _loop0_10_type 1226
301#define _gather_9_type 1227
302#define _loop1_11_type 1228
303#define _loop0_13_type 1229
304#define _gather_12_type 1230
305#define _tmp_14_type 1231
306#define _tmp_15_type 1232
307#define _tmp_16_type 1233
308#define _tmp_17_type 1234
309#define _tmp_18_type 1235
310#define _tmp_19_type 1236
311#define _tmp_20_type 1237
312#define _tmp_21_type 1238
313#define _loop1_22_type 1239
314#define _tmp_23_type 1240
315#define _tmp_24_type 1241
316#define _loop0_26_type 1242
317#define _gather_25_type 1243
318#define _loop0_28_type 1244
319#define _gather_27_type 1245
320#define _tmp_29_type 1246
321#define _tmp_30_type 1247
322#define _loop0_31_type 1248
323#define _loop1_32_type 1249
324#define _loop0_34_type 1250
325#define _gather_33_type 1251
326#define _tmp_35_type 1252
327#define _loop0_37_type 1253
328#define _gather_36_type 1254
329#define _tmp_38_type 1255
330#define _loop0_40_type 1256
331#define _gather_39_type 1257
332#define _loop0_42_type 1258
333#define _gather_41_type 1259
334#define _loop0_44_type 1260
335#define _gather_43_type 1261
336#define _loop0_46_type 1262
337#define _gather_45_type 1263
338#define _tmp_47_type 1264
339#define _loop1_48_type 1265
340#define _tmp_49_type 1266
341#define _loop1_50_type 1267
342#define _loop0_52_type 1268
343#define _gather_51_type 1269
344#define _tmp_53_type 1270
345#define _tmp_54_type 1271
346#define _tmp_55_type 1272
347#define _tmp_56_type 1273
348#define _loop0_58_type 1274
349#define _gather_57_type 1275
350#define _loop0_60_type 1276
351#define _gather_59_type 1277
352#define _tmp_61_type 1278
353#define _loop0_63_type 1279
354#define _gather_62_type 1280
355#define _loop0_65_type 1281
356#define _gather_64_type 1282
357#define _tmp_66_type 1283
358#define _tmp_67_type 1284
359#define _tmp_68_type 1285
360#define _tmp_69_type 1286
361#define _loop0_70_type 1287
362#define _loop0_71_type 1288
363#define _loop0_72_type 1289
364#define _loop1_73_type 1290
365#define _loop0_74_type 1291
366#define _loop1_75_type 1292
367#define _loop1_76_type 1293
368#define _loop1_77_type 1294
369#define _loop0_78_type 1295
370#define _loop1_79_type 1296
371#define _loop0_80_type 1297
372#define _loop1_81_type 1298
373#define _loop0_82_type 1299
374#define _loop1_83_type 1300
375#define _loop1_84_type 1301
376#define _tmp_85_type 1302
377#define _loop1_86_type 1303
378#define _loop0_88_type 1304
379#define _gather_87_type 1305
380#define _loop1_89_type 1306
381#define _loop0_90_type 1307
382#define _loop0_91_type 1308
383#define _loop0_92_type 1309
384#define _loop1_93_type 1310
385#define _loop0_94_type 1311
386#define _loop1_95_type 1312
387#define _loop1_96_type 1313
388#define _loop1_97_type 1314
389#define _loop0_98_type 1315
390#define _loop1_99_type 1316
391#define _loop0_100_type 1317
392#define _loop1_101_type 1318
393#define _loop0_102_type 1319
394#define _loop1_103_type 1320
395#define _loop1_104_type 1321
396#define _loop1_105_type 1322
397#define _loop1_106_type 1323
398#define _tmp_107_type 1324
399#define _loop0_109_type 1325
400#define _gather_108_type 1326
401#define _tmp_110_type 1327
402#define _tmp_111_type 1328
403#define _tmp_112_type 1329
404#define _tmp_113_type 1330
405#define _loop1_114_type 1331
406#define _tmp_115_type 1332
407#define _tmp_116_type 1333
408#define _tmp_117_type 1334
409#define _loop0_119_type 1335
410#define _gather_118_type 1336
411#define _loop1_120_type 1337
412#define _loop0_121_type 1338
413#define _loop0_122_type 1339
414#define _loop0_124_type 1340
415#define _gather_123_type 1341
416#define _tmp_125_type 1342
417#define _loop0_127_type 1343
418#define _gather_126_type 1344
419#define _loop0_129_type 1345
420#define _gather_128_type 1346
421#define _loop0_131_type 1347
422#define _gather_130_type 1348
423#define _loop0_133_type 1349
424#define _gather_132_type 1350
425#define _loop0_134_type 1351
426#define _loop0_136_type 1352
427#define _gather_135_type 1353
428#define _loop1_137_type 1354
429#define _tmp_138_type 1355
430#define _loop0_140_type 1356
431#define _gather_139_type 1357
432#define _tmp_141_type 1358
433#define _tmp_142_type 1359
434#define _tmp_143_type 1360
435#define _tmp_144_type 1361
436#define _tmp_145_type 1362
437#define _tmp_146_type 1363
438#define _loop0_147_type 1364
439#define _loop0_148_type 1365
440#define _loop0_149_type 1366
441#define _tmp_150_type 1367
442#define _tmp_151_type 1368
443#define _tmp_152_type 1369
444#define _tmp_153_type 1370
445#define _loop0_154_type 1371
446#define _loop1_155_type 1372
447#define _loop0_156_type 1373
448#define _loop1_157_type 1374
449#define _tmp_158_type 1375
450#define _tmp_159_type 1376
451#define _tmp_160_type 1377
452#define _loop0_162_type 1378
453#define _gather_161_type 1379
454#define _loop0_164_type 1380
455#define _gather_163_type 1381
456#define _loop0_166_type 1382
457#define _gather_165_type 1383
458#define _loop0_168_type 1384
459#define _gather_167_type 1385
460#define _tmp_169_type 1386
461#define _tmp_170_type 1387
462#define _tmp_171_type 1388
463#define _tmp_172_type 1389
464#define _tmp_173_type 1390
465#define _tmp_174_type 1391
466#define _loop0_176_type 1392
467#define _gather_175_type 1393
468#define _tmp_177_type 1394
469#define _tmp_178_type 1395
470#define _tmp_179_type 1396
471#define _tmp_180_type 1397
472#define _tmp_181_type 1398
473#define _tmp_182_type 1399
474#define _tmp_183_type 1400
475#define _tmp_184_type 1401
476#define _tmp_185_type 1402
477#define _tmp_186_type 1403
478#define _tmp_187_type 1404
479#define _tmp_188_type 1405
480#define _tmp_189_type 1406
481#define _tmp_190_type 1407
482#define _tmp_191_type 1408
483#define _tmp_192_type 1409
484#define _tmp_193_type 1410
485#define _tmp_194_type 1411
486#define _tmp_195_type 1412
487#define _tmp_196_type 1413
488#define _tmp_197_type 1414
489#define _tmp_198_type 1415
490#define _tmp_199_type 1416
491#define _tmp_200_type 1417
492#define _tmp_201_type 1418
493#define _tmp_202_type 1419
494#define _tmp_203_type 1420
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100495
496static mod_ty file_rule(Parser *p);
497static mod_ty interactive_rule(Parser *p);
498static mod_ty eval_rule(Parser *p);
499static mod_ty func_type_rule(Parser *p);
500static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100501static asdl_expr_seq* type_expressions_rule(Parser *p);
502static asdl_stmt_seq* statements_rule(Parser *p);
503static asdl_stmt_seq* statement_rule(Parser *p);
504static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000505static asdl_stmt_seq* simple_stmts_rule(Parser *p);
506static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100507static stmt_ty compound_stmt_rule(Parser *p);
508static stmt_ty assignment_rule(Parser *p);
509static AugOperator* augassign_rule(Parser *p);
510static stmt_ty global_stmt_rule(Parser *p);
511static stmt_ty nonlocal_stmt_rule(Parser *p);
512static stmt_ty yield_stmt_rule(Parser *p);
513static stmt_ty assert_stmt_rule(Parser *p);
514static stmt_ty del_stmt_rule(Parser *p);
515static stmt_ty import_stmt_rule(Parser *p);
516static stmt_ty import_name_rule(Parser *p);
517static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100518static asdl_alias_seq* import_from_targets_rule(Parser *p);
519static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100520static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100521static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100522static alias_ty dotted_as_name_rule(Parser *p);
523static expr_ty dotted_name_rule(Parser *p);
524static stmt_ty if_stmt_rule(Parser *p);
525static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100526static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100527static stmt_ty while_stmt_rule(Parser *p);
528static stmt_ty for_stmt_rule(Parser *p);
529static stmt_ty with_stmt_rule(Parser *p);
530static withitem_ty with_item_rule(Parser *p);
531static stmt_ty try_stmt_rule(Parser *p);
532static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100533static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800534static stmt_ty match_stmt_rule(Parser *p);
535static expr_ty subject_expr_rule(Parser *p);
536static match_case_ty case_block_rule(Parser *p);
537static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000538static pattern_ty patterns_rule(Parser *p);
539static pattern_ty pattern_rule(Parser *p);
540static pattern_ty as_pattern_rule(Parser *p);
541static pattern_ty or_pattern_rule(Parser *p);
542static pattern_ty closed_pattern_rule(Parser *p);
543static pattern_ty literal_pattern_rule(Parser *p);
544static expr_ty literal_expr_rule(Parser *p);
545static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800546static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700547static expr_ty signed_real_number_rule(Parser *p);
548static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000549static expr_ty imaginary_number_rule(Parser *p);
550static pattern_ty capture_pattern_rule(Parser *p);
551static expr_ty pattern_capture_target_rule(Parser *p);
552static pattern_ty wildcard_pattern_rule(Parser *p);
553static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800554static expr_ty attr_rule(Parser *p);
555static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000556static pattern_ty group_pattern_rule(Parser *p);
557static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800558static asdl_seq* open_sequence_pattern_rule(Parser *p);
559static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000560static pattern_ty maybe_star_pattern_rule(Parser *p);
561static pattern_ty star_pattern_rule(Parser *p);
562static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800563static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000564static KeyPatternPair* key_value_pattern_rule(Parser *p);
565static expr_ty double_star_pattern_rule(Parser *p);
566static pattern_ty class_pattern_rule(Parser *p);
567static asdl_pattern_seq* positional_patterns_rule(Parser *p);
568static asdl_seq* keyword_patterns_rule(Parser *p);
569static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100570static stmt_ty return_stmt_rule(Parser *p);
571static stmt_ty raise_stmt_rule(Parser *p);
572static stmt_ty function_def_rule(Parser *p);
573static stmt_ty function_def_raw_rule(Parser *p);
574static Token* func_type_comment_rule(Parser *p);
575static arguments_ty params_rule(Parser *p);
576static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100577static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100578static SlashWithDefault* slash_with_default_rule(Parser *p);
579static StarEtc* star_etc_rule(Parser *p);
580static arg_ty kwds_rule(Parser *p);
581static arg_ty param_no_default_rule(Parser *p);
582static NameDefaultPair* param_with_default_rule(Parser *p);
583static NameDefaultPair* param_maybe_default_rule(Parser *p);
584static arg_ty param_rule(Parser *p);
585static expr_ty annotation_rule(Parser *p);
586static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100587static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100588static stmt_ty class_def_rule(Parser *p);
589static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100590static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100591static expr_ty star_expressions_rule(Parser *p);
592static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100593static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100594static expr_ty star_named_expression_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700595static expr_ty assigment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100596static expr_ty named_expression_rule(Parser *p);
597static expr_ty annotated_rhs_rule(Parser *p);
598static expr_ty expressions_rule(Parser *p);
599static expr_ty expression_rule(Parser *p);
600static expr_ty lambdef_rule(Parser *p);
601static arguments_ty lambda_params_rule(Parser *p);
602static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100603static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100604static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
605static StarEtc* lambda_star_etc_rule(Parser *p);
606static arg_ty lambda_kwds_rule(Parser *p);
607static arg_ty lambda_param_no_default_rule(Parser *p);
608static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
609static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
610static arg_ty lambda_param_rule(Parser *p);
611static expr_ty disjunction_rule(Parser *p);
612static expr_ty conjunction_rule(Parser *p);
613static expr_ty inversion_rule(Parser *p);
614static expr_ty comparison_rule(Parser *p);
615static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
616static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
617static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
618static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
619static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
620static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
621static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
622static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
623static CmpopExprPair* in_bitwise_or_rule(Parser *p);
624static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
625static CmpopExprPair* is_bitwise_or_rule(Parser *p);
626static expr_ty bitwise_or_rule(Parser *p);
627static expr_ty bitwise_xor_rule(Parser *p);
628static expr_ty bitwise_and_rule(Parser *p);
629static expr_ty shift_expr_rule(Parser *p);
630static expr_ty sum_rule(Parser *p);
631static expr_ty term_rule(Parser *p);
632static expr_ty factor_rule(Parser *p);
633static expr_ty power_rule(Parser *p);
634static expr_ty await_primary_rule(Parser *p);
635static expr_ty primary_rule(Parser *p);
636static expr_ty slices_rule(Parser *p);
637static expr_ty slice_rule(Parser *p);
638static expr_ty atom_rule(Parser *p);
639static expr_ty strings_rule(Parser *p);
640static expr_ty list_rule(Parser *p);
641static expr_ty listcomp_rule(Parser *p);
642static expr_ty tuple_rule(Parser *p);
643static expr_ty group_rule(Parser *p);
644static expr_ty genexp_rule(Parser *p);
645static expr_ty set_rule(Parser *p);
646static expr_ty setcomp_rule(Parser *p);
647static expr_ty dict_rule(Parser *p);
648static expr_ty dictcomp_rule(Parser *p);
649static asdl_seq* double_starred_kvpairs_rule(Parser *p);
650static KeyValuePair* double_starred_kvpair_rule(Parser *p);
651static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100652static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100653static comprehension_ty for_if_clause_rule(Parser *p);
654static expr_ty yield_expr_rule(Parser *p);
655static expr_ty arguments_rule(Parser *p);
656static expr_ty args_rule(Parser *p);
657static asdl_seq* kwargs_rule(Parser *p);
658static expr_ty starred_expression_rule(Parser *p);
659static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
660static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
661static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200662static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
663static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100664static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200665static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100666static expr_ty star_atom_rule(Parser *p);
667static expr_ty single_target_rule(Parser *p);
668static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100669static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100670static expr_ty del_target_rule(Parser *p);
671static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100672static expr_ty t_primary_rule(Parser *p);
673static void *t_lookahead_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200674static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100675static void *invalid_kwarg_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700676static expr_ty expression_without_invalid_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100677static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100678static void *invalid_named_expression_rule(Parser *p);
679static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300680static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300681static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100682static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200683static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100684static void *invalid_comprehension_rule(Parser *p);
685static void *invalid_dict_comprehension_rule(Parser *p);
686static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200687static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100688static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200689static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100690static void *invalid_star_etc_rule(Parser *p);
691static void *invalid_lambda_star_etc_rule(Parser *p);
692static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300693static void *invalid_with_item_rule(Parser *p);
694static void *invalid_for_target_rule(Parser *p);
695static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100696static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000697static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100698static void *invalid_with_stmt_indent_rule(Parser *p);
699static void *invalid_try_stmt_rule(Parser *p);
700static void *invalid_except_stmt_rule(Parser *p);
701static void *invalid_finally_stmt_rule(Parser *p);
702static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000703static void *invalid_match_stmt_rule(Parser *p);
704static void *invalid_case_block_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100705static void *invalid_if_stmt_rule(Parser *p);
706static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100707static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100708static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100709static void *invalid_for_stmt_rule(Parser *p);
710static void *invalid_def_raw_rule(Parser *p);
711static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100712static void *invalid_double_starred_kvpairs_rule(Parser *p);
713static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100714static asdl_seq *_loop0_1_rule(Parser *p);
715static asdl_seq *_loop0_2_rule(Parser *p);
716static asdl_seq *_loop0_4_rule(Parser *p);
717static asdl_seq *_gather_3_rule(Parser *p);
718static asdl_seq *_loop0_6_rule(Parser *p);
719static asdl_seq *_gather_5_rule(Parser *p);
720static asdl_seq *_loop0_8_rule(Parser *p);
721static asdl_seq *_gather_7_rule(Parser *p);
722static asdl_seq *_loop0_10_rule(Parser *p);
723static asdl_seq *_gather_9_rule(Parser *p);
724static asdl_seq *_loop1_11_rule(Parser *p);
725static asdl_seq *_loop0_13_rule(Parser *p);
726static asdl_seq *_gather_12_rule(Parser *p);
727static void *_tmp_14_rule(Parser *p);
728static void *_tmp_15_rule(Parser *p);
729static void *_tmp_16_rule(Parser *p);
730static void *_tmp_17_rule(Parser *p);
731static void *_tmp_18_rule(Parser *p);
732static void *_tmp_19_rule(Parser *p);
733static void *_tmp_20_rule(Parser *p);
734static void *_tmp_21_rule(Parser *p);
735static asdl_seq *_loop1_22_rule(Parser *p);
736static void *_tmp_23_rule(Parser *p);
737static void *_tmp_24_rule(Parser *p);
738static asdl_seq *_loop0_26_rule(Parser *p);
739static asdl_seq *_gather_25_rule(Parser *p);
740static asdl_seq *_loop0_28_rule(Parser *p);
741static asdl_seq *_gather_27_rule(Parser *p);
742static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300743static void *_tmp_30_rule(Parser *p);
744static asdl_seq *_loop0_31_rule(Parser *p);
745static asdl_seq *_loop1_32_rule(Parser *p);
746static asdl_seq *_loop0_34_rule(Parser *p);
747static asdl_seq *_gather_33_rule(Parser *p);
748static void *_tmp_35_rule(Parser *p);
749static asdl_seq *_loop0_37_rule(Parser *p);
750static asdl_seq *_gather_36_rule(Parser *p);
751static void *_tmp_38_rule(Parser *p);
752static asdl_seq *_loop0_40_rule(Parser *p);
753static asdl_seq *_gather_39_rule(Parser *p);
754static asdl_seq *_loop0_42_rule(Parser *p);
755static asdl_seq *_gather_41_rule(Parser *p);
756static asdl_seq *_loop0_44_rule(Parser *p);
757static asdl_seq *_gather_43_rule(Parser *p);
758static asdl_seq *_loop0_46_rule(Parser *p);
759static asdl_seq *_gather_45_rule(Parser *p);
760static void *_tmp_47_rule(Parser *p);
761static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100762static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800763static asdl_seq *_loop1_50_rule(Parser *p);
764static asdl_seq *_loop0_52_rule(Parser *p);
765static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300766static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800767static void *_tmp_54_rule(Parser *p);
768static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000769static void *_tmp_56_rule(Parser *p);
770static asdl_seq *_loop0_58_rule(Parser *p);
771static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800772static asdl_seq *_loop0_60_rule(Parser *p);
773static asdl_seq *_gather_59_rule(Parser *p);
774static void *_tmp_61_rule(Parser *p);
775static asdl_seq *_loop0_63_rule(Parser *p);
776static asdl_seq *_gather_62_rule(Parser *p);
777static asdl_seq *_loop0_65_rule(Parser *p);
778static asdl_seq *_gather_64_rule(Parser *p);
779static void *_tmp_66_rule(Parser *p);
780static void *_tmp_67_rule(Parser *p);
781static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300782static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800783static asdl_seq *_loop0_70_rule(Parser *p);
784static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000785static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000786static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300787static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800788static asdl_seq *_loop1_75_rule(Parser *p);
789static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000790static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300791static asdl_seq *_loop0_78_rule(Parser *p);
792static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800793static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100794static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000795static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300796static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800797static asdl_seq *_loop1_84_rule(Parser *p);
798static void *_tmp_85_rule(Parser *p);
799static asdl_seq *_loop1_86_rule(Parser *p);
800static asdl_seq *_loop0_88_rule(Parser *p);
801static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100802static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800803static asdl_seq *_loop0_90_rule(Parser *p);
804static asdl_seq *_loop0_91_rule(Parser *p);
805static asdl_seq *_loop0_92_rule(Parser *p);
806static asdl_seq *_loop1_93_rule(Parser *p);
807static asdl_seq *_loop0_94_rule(Parser *p);
808static asdl_seq *_loop1_95_rule(Parser *p);
809static asdl_seq *_loop1_96_rule(Parser *p);
810static asdl_seq *_loop1_97_rule(Parser *p);
811static asdl_seq *_loop0_98_rule(Parser *p);
812static asdl_seq *_loop1_99_rule(Parser *p);
813static asdl_seq *_loop0_100_rule(Parser *p);
814static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000815static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000816static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800817static asdl_seq *_loop1_104_rule(Parser *p);
818static asdl_seq *_loop1_105_rule(Parser *p);
819static asdl_seq *_loop1_106_rule(Parser *p);
820static void *_tmp_107_rule(Parser *p);
821static asdl_seq *_loop0_109_rule(Parser *p);
822static asdl_seq *_gather_108_rule(Parser *p);
823static void *_tmp_110_rule(Parser *p);
824static void *_tmp_111_rule(Parser *p);
825static void *_tmp_112_rule(Parser *p);
826static void *_tmp_113_rule(Parser *p);
827static asdl_seq *_loop1_114_rule(Parser *p);
828static void *_tmp_115_rule(Parser *p);
829static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700830static void *_tmp_117_rule(Parser *p);
831static asdl_seq *_loop0_119_rule(Parser *p);
832static asdl_seq *_gather_118_rule(Parser *p);
833static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800834static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700835static asdl_seq *_loop0_122_rule(Parser *p);
836static asdl_seq *_loop0_124_rule(Parser *p);
837static asdl_seq *_gather_123_rule(Parser *p);
838static void *_tmp_125_rule(Parser *p);
839static asdl_seq *_loop0_127_rule(Parser *p);
840static asdl_seq *_gather_126_rule(Parser *p);
841static asdl_seq *_loop0_129_rule(Parser *p);
842static asdl_seq *_gather_128_rule(Parser *p);
843static asdl_seq *_loop0_131_rule(Parser *p);
844static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000845static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700846static asdl_seq *_gather_132_rule(Parser *p);
847static asdl_seq *_loop0_134_rule(Parser *p);
848static asdl_seq *_loop0_136_rule(Parser *p);
849static asdl_seq *_gather_135_rule(Parser *p);
850static asdl_seq *_loop1_137_rule(Parser *p);
851static void *_tmp_138_rule(Parser *p);
852static asdl_seq *_loop0_140_rule(Parser *p);
853static asdl_seq *_gather_139_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700854static void *_tmp_141_rule(Parser *p);
855static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100856static void *_tmp_143_rule(Parser *p);
857static void *_tmp_144_rule(Parser *p);
858static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100859static void *_tmp_146_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700860static asdl_seq *_loop0_147_rule(Parser *p);
861static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100862static asdl_seq *_loop0_149_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700863static void *_tmp_150_rule(Parser *p);
864static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100865static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100866static void *_tmp_153_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700867static asdl_seq *_loop0_154_rule(Parser *p);
868static asdl_seq *_loop1_155_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700869static asdl_seq *_loop0_156_rule(Parser *p);
870static asdl_seq *_loop1_157_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700871static void *_tmp_158_rule(Parser *p);
872static void *_tmp_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100873static void *_tmp_160_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700874static asdl_seq *_loop0_162_rule(Parser *p);
875static asdl_seq *_gather_161_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700876static asdl_seq *_loop0_164_rule(Parser *p);
877static asdl_seq *_gather_163_rule(Parser *p);
878static asdl_seq *_loop0_166_rule(Parser *p);
879static asdl_seq *_gather_165_rule(Parser *p);
880static asdl_seq *_loop0_168_rule(Parser *p);
881static asdl_seq *_gather_167_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700882static void *_tmp_169_rule(Parser *p);
883static void *_tmp_170_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800884static void *_tmp_171_rule(Parser *p);
885static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100886static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700887static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700888static asdl_seq *_loop0_176_rule(Parser *p);
889static asdl_seq *_gather_175_rule(Parser *p);
890static void *_tmp_177_rule(Parser *p);
891static void *_tmp_178_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800892static void *_tmp_179_rule(Parser *p);
893static void *_tmp_180_rule(Parser *p);
894static void *_tmp_181_rule(Parser *p);
895static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100896static void *_tmp_183_rule(Parser *p);
897static void *_tmp_184_rule(Parser *p);
898static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100899static void *_tmp_186_rule(Parser *p);
900static void *_tmp_187_rule(Parser *p);
901static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100902static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100903static void *_tmp_190_rule(Parser *p);
904static void *_tmp_191_rule(Parser *p);
905static void *_tmp_192_rule(Parser *p);
906static void *_tmp_193_rule(Parser *p);
907static void *_tmp_194_rule(Parser *p);
908static void *_tmp_195_rule(Parser *p);
909static void *_tmp_196_rule(Parser *p);
910static void *_tmp_197_rule(Parser *p);
911static void *_tmp_198_rule(Parser *p);
912static void *_tmp_199_rule(Parser *p);
913static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100914static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700915static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700916static void *_tmp_203_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000917
918
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100919// file: statements? $
920static mod_ty
921file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000922{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100923 D(p->level++);
924 if (p->error_indicator) {
925 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000926 return NULL;
927 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100928 mod_ty _res = NULL;
929 int _mark = p->mark;
930 { // statements? $
931 if (p->error_indicator) {
932 D(p->level--);
933 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000934 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100935 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
936 void *a;
937 Token * endmarker_var;
938 if (
939 (a = statements_rule(p), 1) // statements?
940 &&
941 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
942 )
943 {
944 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
945 _res = _PyPegen_make_module ( p , a );
946 if (_res == NULL && PyErr_Occurred()) {
947 p->error_indicator = 1;
948 D(p->level--);
949 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000950 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100951 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000952 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100953 p->mark = _mark;
954 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000956 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100957 _res = NULL;
958 done:
959 D(p->level--);
960 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000961}
962
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100963// interactive: statement_newline
964static mod_ty
965interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000966{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100967 D(p->level++);
968 if (p->error_indicator) {
969 D(p->level--);
970 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000971 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100972 mod_ty _res = NULL;
973 int _mark = p->mark;
974 { // statement_newline
975 if (p->error_indicator) {
976 D(p->level--);
977 return NULL;
978 }
979 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100980 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100981 if (
982 (a = statement_newline_rule(p)) // statement_newline
983 )
984 {
985 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200986 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100987 if (_res == NULL && PyErr_Occurred()) {
988 p->error_indicator = 1;
989 D(p->level--);
990 return NULL;
991 }
992 goto done;
993 }
994 p->mark = _mark;
995 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
997 }
998 _res = NULL;
999 done:
1000 D(p->level--);
1001 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001002}
1003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001004// eval: expressions NEWLINE* $
1005static mod_ty
1006eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001007{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001008 D(p->level++);
1009 if (p->error_indicator) {
1010 D(p->level--);
1011 return NULL;
1012 }
1013 mod_ty _res = NULL;
1014 int _mark = p->mark;
1015 { // expressions NEWLINE* $
1016 if (p->error_indicator) {
1017 D(p->level--);
1018 return NULL;
1019 }
1020 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1021 asdl_seq * _loop0_1_var;
1022 expr_ty a;
1023 Token * endmarker_var;
1024 if (
1025 (a = expressions_rule(p)) // expressions
1026 &&
1027 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1028 &&
1029 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1030 )
1031 {
1032 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001033 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001034 if (_res == NULL && PyErr_Occurred()) {
1035 p->error_indicator = 1;
1036 D(p->level--);
1037 return NULL;
1038 }
1039 goto done;
1040 }
1041 p->mark = _mark;
1042 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1044 }
1045 _res = NULL;
1046 done:
1047 D(p->level--);
1048 return _res;
1049}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001050
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001051// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1052static mod_ty
1053func_type_rule(Parser *p)
1054{
1055 D(p->level++);
1056 if (p->error_indicator) {
1057 D(p->level--);
1058 return NULL;
1059 }
1060 mod_ty _res = NULL;
1061 int _mark = p->mark;
1062 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1063 if (p->error_indicator) {
1064 D(p->level--);
1065 return NULL;
1066 }
1067 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1068 Token * _literal;
1069 Token * _literal_1;
1070 Token * _literal_2;
1071 asdl_seq * _loop0_2_var;
1072 void *a;
1073 expr_ty b;
1074 Token * endmarker_var;
1075 if (
1076 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1077 &&
1078 (a = type_expressions_rule(p), 1) // type_expressions?
1079 &&
1080 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1081 &&
1082 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1083 &&
1084 (b = expression_rule(p)) // expression
1085 &&
1086 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1087 &&
1088 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1089 )
1090 {
1091 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001092 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001093 if (_res == NULL && PyErr_Occurred()) {
1094 p->error_indicator = 1;
1095 D(p->level--);
1096 return NULL;
1097 }
1098 goto done;
1099 }
1100 p->mark = _mark;
1101 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1103 }
1104 _res = NULL;
1105 done:
1106 D(p->level--);
1107 return _res;
1108}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001110// fstring: star_expressions
1111static expr_ty
1112fstring_rule(Parser *p)
1113{
1114 D(p->level++);
1115 if (p->error_indicator) {
1116 D(p->level--);
1117 return NULL;
1118 }
1119 expr_ty _res = NULL;
1120 int _mark = p->mark;
1121 { // star_expressions
1122 if (p->error_indicator) {
1123 D(p->level--);
1124 return NULL;
1125 }
1126 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1127 expr_ty star_expressions_var;
1128 if (
1129 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1130 )
1131 {
1132 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1133 _res = star_expressions_var;
1134 goto done;
1135 }
1136 p->mark = _mark;
1137 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1139 }
1140 _res = NULL;
1141 done:
1142 D(p->level--);
1143 return _res;
1144}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001145
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001146// type_expressions:
1147// | ','.expression+ ',' '*' expression ',' '**' expression
1148// | ','.expression+ ',' '*' expression
1149// | ','.expression+ ',' '**' expression
1150// | '*' expression ',' '**' expression
1151// | '*' expression
1152// | '**' expression
1153// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001154static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001155type_expressions_rule(Parser *p)
1156{
1157 D(p->level++);
1158 if (p->error_indicator) {
1159 D(p->level--);
1160 return NULL;
1161 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001162 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001163 int _mark = p->mark;
1164 { // ','.expression+ ',' '*' expression ',' '**' expression
1165 if (p->error_indicator) {
1166 D(p->level--);
1167 return NULL;
1168 }
1169 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1170 Token * _literal;
1171 Token * _literal_1;
1172 Token * _literal_2;
1173 Token * _literal_3;
1174 asdl_seq * a;
1175 expr_ty b;
1176 expr_ty c;
1177 if (
1178 (a = _gather_3_rule(p)) // ','.expression+
1179 &&
1180 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1181 &&
1182 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1183 &&
1184 (b = expression_rule(p)) // expression
1185 &&
1186 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1187 &&
1188 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1189 &&
1190 (c = expression_rule(p)) // expression
1191 )
1192 {
1193 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001194 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001195 if (_res == NULL && PyErr_Occurred()) {
1196 p->error_indicator = 1;
1197 D(p->level--);
1198 return NULL;
1199 }
1200 goto done;
1201 }
1202 p->mark = _mark;
1203 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1205 }
1206 { // ','.expression+ ',' '*' expression
1207 if (p->error_indicator) {
1208 D(p->level--);
1209 return NULL;
1210 }
1211 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1212 Token * _literal;
1213 Token * _literal_1;
1214 asdl_seq * a;
1215 expr_ty b;
1216 if (
1217 (a = _gather_5_rule(p)) // ','.expression+
1218 &&
1219 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1220 &&
1221 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1222 &&
1223 (b = expression_rule(p)) // expression
1224 )
1225 {
1226 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001227 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001228 if (_res == NULL && PyErr_Occurred()) {
1229 p->error_indicator = 1;
1230 D(p->level--);
1231 return NULL;
1232 }
1233 goto done;
1234 }
1235 p->mark = _mark;
1236 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1238 }
1239 { // ','.expression+ ',' '**' expression
1240 if (p->error_indicator) {
1241 D(p->level--);
1242 return NULL;
1243 }
1244 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1245 Token * _literal;
1246 Token * _literal_1;
1247 asdl_seq * a;
1248 expr_ty b;
1249 if (
1250 (a = _gather_7_rule(p)) // ','.expression+
1251 &&
1252 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1253 &&
1254 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1255 &&
1256 (b = expression_rule(p)) // expression
1257 )
1258 {
1259 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001260 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001261 if (_res == NULL && PyErr_Occurred()) {
1262 p->error_indicator = 1;
1263 D(p->level--);
1264 return NULL;
1265 }
1266 goto done;
1267 }
1268 p->mark = _mark;
1269 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1271 }
1272 { // '*' expression ',' '**' expression
1273 if (p->error_indicator) {
1274 D(p->level--);
1275 return NULL;
1276 }
1277 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1278 Token * _literal;
1279 Token * _literal_1;
1280 Token * _literal_2;
1281 expr_ty a;
1282 expr_ty b;
1283 if (
1284 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1285 &&
1286 (a = expression_rule(p)) // expression
1287 &&
1288 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1289 &&
1290 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1291 &&
1292 (b = expression_rule(p)) // expression
1293 )
1294 {
1295 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001296 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_singleton_seq ( p , a ) ) , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001297 if (_res == NULL && PyErr_Occurred()) {
1298 p->error_indicator = 1;
1299 D(p->level--);
1300 return NULL;
1301 }
1302 goto done;
1303 }
1304 p->mark = _mark;
1305 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1307 }
1308 { // '*' expression
1309 if (p->error_indicator) {
1310 D(p->level--);
1311 return NULL;
1312 }
1313 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1314 Token * _literal;
1315 expr_ty a;
1316 if (
1317 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1318 &&
1319 (a = expression_rule(p)) // expression
1320 )
1321 {
1322 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001323 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001324 if (_res == NULL && PyErr_Occurred()) {
1325 p->error_indicator = 1;
1326 D(p->level--);
1327 return NULL;
1328 }
1329 goto done;
1330 }
1331 p->mark = _mark;
1332 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1334 }
1335 { // '**' expression
1336 if (p->error_indicator) {
1337 D(p->level--);
1338 return NULL;
1339 }
1340 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1341 Token * _literal;
1342 expr_ty a;
1343 if (
1344 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1345 &&
1346 (a = expression_rule(p)) // expression
1347 )
1348 {
1349 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001350 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001351 if (_res == NULL && PyErr_Occurred()) {
1352 p->error_indicator = 1;
1353 D(p->level--);
1354 return NULL;
1355 }
1356 goto done;
1357 }
1358 p->mark = _mark;
1359 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1361 }
1362 { // ','.expression+
1363 if (p->error_indicator) {
1364 D(p->level--);
1365 return NULL;
1366 }
1367 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001368 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001369 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001370 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001371 )
1372 {
1373 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001374 _res = a;
1375 if (_res == NULL && PyErr_Occurred()) {
1376 p->error_indicator = 1;
1377 D(p->level--);
1378 return NULL;
1379 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001380 goto done;
1381 }
1382 p->mark = _mark;
1383 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1385 }
1386 _res = NULL;
1387 done:
1388 D(p->level--);
1389 return _res;
1390}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001391
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001392// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001393static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001394statements_rule(Parser *p)
1395{
1396 D(p->level++);
1397 if (p->error_indicator) {
1398 D(p->level--);
1399 return NULL;
1400 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001401 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001402 int _mark = p->mark;
1403 { // statement+
1404 if (p->error_indicator) {
1405 D(p->level--);
1406 return NULL;
1407 }
1408 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1409 asdl_seq * a;
1410 if (
1411 (a = _loop1_11_rule(p)) // statement+
1412 )
1413 {
1414 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001415 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001416 if (_res == NULL && PyErr_Occurred()) {
1417 p->error_indicator = 1;
1418 D(p->level--);
1419 return NULL;
1420 }
1421 goto done;
1422 }
1423 p->mark = _mark;
1424 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1426 }
1427 _res = NULL;
1428 done:
1429 D(p->level--);
1430 return _res;
1431}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001432
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001433// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001434static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001435statement_rule(Parser *p)
1436{
1437 D(p->level++);
1438 if (p->error_indicator) {
1439 D(p->level--);
1440 return NULL;
1441 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001442 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001443 int _mark = p->mark;
1444 { // compound_stmt
1445 if (p->error_indicator) {
1446 D(p->level--);
1447 return NULL;
1448 }
1449 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1450 stmt_ty a;
1451 if (
1452 (a = compound_stmt_rule(p)) // compound_stmt
1453 )
1454 {
1455 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001456 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001457 if (_res == NULL && PyErr_Occurred()) {
1458 p->error_indicator = 1;
1459 D(p->level--);
1460 return NULL;
1461 }
1462 goto done;
1463 }
1464 p->mark = _mark;
1465 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1467 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001468 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001469 if (p->error_indicator) {
1470 D(p->level--);
1471 return NULL;
1472 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001473 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001474 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001475 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001476 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001477 )
1478 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001479 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001480 _res = a;
1481 if (_res == NULL && PyErr_Occurred()) {
1482 p->error_indicator = 1;
1483 D(p->level--);
1484 return NULL;
1485 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001486 goto done;
1487 }
1488 p->mark = _mark;
1489 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001491 }
1492 _res = NULL;
1493 done:
1494 D(p->level--);
1495 return _res;
1496}
1497
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001498// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001499static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001500statement_newline_rule(Parser *p)
1501{
1502 D(p->level++);
1503 if (p->error_indicator) {
1504 D(p->level--);
1505 return NULL;
1506 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001507 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001508 int _mark = p->mark;
1509 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1510 p->error_indicator = 1;
1511 D(p->level--);
1512 return NULL;
1513 }
1514 int _start_lineno = p->tokens[_mark]->lineno;
1515 UNUSED(_start_lineno); // Only used by EXTRA macro
1516 int _start_col_offset = p->tokens[_mark]->col_offset;
1517 UNUSED(_start_col_offset); // Only used by EXTRA macro
1518 { // compound_stmt NEWLINE
1519 if (p->error_indicator) {
1520 D(p->level--);
1521 return NULL;
1522 }
1523 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1524 stmt_ty a;
1525 Token * newline_var;
1526 if (
1527 (a = compound_stmt_rule(p)) // compound_stmt
1528 &&
1529 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1530 )
1531 {
1532 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001533 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001534 if (_res == NULL && PyErr_Occurred()) {
1535 p->error_indicator = 1;
1536 D(p->level--);
1537 return NULL;
1538 }
1539 goto done;
1540 }
1541 p->mark = _mark;
1542 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1544 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001545 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001546 if (p->error_indicator) {
1547 D(p->level--);
1548 return NULL;
1549 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001550 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1551 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001552 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001553 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001554 )
1555 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001556 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1557 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001558 goto done;
1559 }
1560 p->mark = _mark;
1561 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001563 }
1564 { // NEWLINE
1565 if (p->error_indicator) {
1566 D(p->level--);
1567 return NULL;
1568 }
1569 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1570 Token * newline_var;
1571 if (
1572 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1573 )
1574 {
1575 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1576 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1577 if (_token == NULL) {
1578 D(p->level--);
1579 return NULL;
1580 }
1581 int _end_lineno = _token->end_lineno;
1582 UNUSED(_end_lineno); // Only used by EXTRA macro
1583 int _end_col_offset = _token->end_col_offset;
1584 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001585 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001586 if (_res == NULL && PyErr_Occurred()) {
1587 p->error_indicator = 1;
1588 D(p->level--);
1589 return NULL;
1590 }
1591 goto done;
1592 }
1593 p->mark = _mark;
1594 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1596 }
1597 { // $
1598 if (p->error_indicator) {
1599 D(p->level--);
1600 return NULL;
1601 }
1602 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1603 Token * endmarker_var;
1604 if (
1605 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1606 )
1607 {
1608 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1609 _res = _PyPegen_interactive_exit ( p );
1610 if (_res == NULL && PyErr_Occurred()) {
1611 p->error_indicator = 1;
1612 D(p->level--);
1613 return NULL;
1614 }
1615 goto done;
1616 }
1617 p->mark = _mark;
1618 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1619 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1620 }
1621 _res = NULL;
1622 done:
1623 D(p->level--);
1624 return _res;
1625}
1626
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001627// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001628static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001629simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001630{
1631 D(p->level++);
1632 if (p->error_indicator) {
1633 D(p->level--);
1634 return NULL;
1635 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001636 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001637 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001638 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001639 if (p->error_indicator) {
1640 D(p->level--);
1641 return NULL;
1642 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001643 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001644 stmt_ty a;
1645 Token * newline_var;
1646 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001647 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001648 &&
1649 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1650 &&
1651 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1652 )
1653 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001654 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001655 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001656 if (_res == NULL && PyErr_Occurred()) {
1657 p->error_indicator = 1;
1658 D(p->level--);
1659 return NULL;
1660 }
1661 goto done;
1662 }
1663 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001664 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001666 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001667 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001668 if (p->error_indicator) {
1669 D(p->level--);
1670 return NULL;
1671 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001672 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001673 void *_opt_var;
1674 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001675 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001676 Token * newline_var;
1677 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001678 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001679 &&
1680 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1681 &&
1682 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1683 )
1684 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001685 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001686 _res = a;
1687 if (_res == NULL && PyErr_Occurred()) {
1688 p->error_indicator = 1;
1689 D(p->level--);
1690 return NULL;
1691 }
1692 goto done;
1693 }
1694 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001695 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1696 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001697 }
1698 _res = NULL;
1699 done:
1700 D(p->level--);
1701 return _res;
1702}
1703
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001704// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001705// | assignment
1706// | star_expressions
1707// | &'return' return_stmt
1708// | &('import' | 'from') import_stmt
1709// | &'raise' raise_stmt
1710// | 'pass'
1711// | &'del' del_stmt
1712// | &'yield' yield_stmt
1713// | &'assert' assert_stmt
1714// | 'break'
1715// | 'continue'
1716// | &'global' global_stmt
1717// | &'nonlocal' nonlocal_stmt
1718static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001719simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001720{
1721 D(p->level++);
1722 if (p->error_indicator) {
1723 D(p->level--);
1724 return NULL;
1725 }
1726 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001727 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001728 D(p->level--);
1729 return _res;
1730 }
1731 int _mark = p->mark;
1732 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1733 p->error_indicator = 1;
1734 D(p->level--);
1735 return NULL;
1736 }
1737 int _start_lineno = p->tokens[_mark]->lineno;
1738 UNUSED(_start_lineno); // Only used by EXTRA macro
1739 int _start_col_offset = p->tokens[_mark]->col_offset;
1740 UNUSED(_start_col_offset); // Only used by EXTRA macro
1741 { // assignment
1742 if (p->error_indicator) {
1743 D(p->level--);
1744 return NULL;
1745 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001746 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001747 stmt_ty assignment_var;
1748 if (
1749 (assignment_var = assignment_rule(p)) // assignment
1750 )
1751 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001752 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001753 _res = assignment_var;
1754 goto done;
1755 }
1756 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001757 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1759 }
1760 { // star_expressions
1761 if (p->error_indicator) {
1762 D(p->level--);
1763 return NULL;
1764 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001765 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001766 expr_ty e;
1767 if (
1768 (e = star_expressions_rule(p)) // star_expressions
1769 )
1770 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001771 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001772 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1773 if (_token == NULL) {
1774 D(p->level--);
1775 return NULL;
1776 }
1777 int _end_lineno = _token->end_lineno;
1778 UNUSED(_end_lineno); // Only used by EXTRA macro
1779 int _end_col_offset = _token->end_col_offset;
1780 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001781 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001782 if (_res == NULL && PyErr_Occurred()) {
1783 p->error_indicator = 1;
1784 D(p->level--);
1785 return NULL;
1786 }
1787 goto done;
1788 }
1789 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001790 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1792 }
1793 { // &'return' return_stmt
1794 if (p->error_indicator) {
1795 D(p->level--);
1796 return NULL;
1797 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001798 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001799 stmt_ty return_stmt_var;
1800 if (
1801 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1802 &&
1803 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1804 )
1805 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001806 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001807 _res = return_stmt_var;
1808 goto done;
1809 }
1810 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001811 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1813 }
1814 { // &('import' | 'from') import_stmt
1815 if (p->error_indicator) {
1816 D(p->level--);
1817 return NULL;
1818 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001819 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001820 stmt_ty import_stmt_var;
1821 if (
1822 _PyPegen_lookahead(1, _tmp_14_rule, p)
1823 &&
1824 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1825 )
1826 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001827 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001828 _res = import_stmt_var;
1829 goto done;
1830 }
1831 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001832 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1834 }
1835 { // &'raise' raise_stmt
1836 if (p->error_indicator) {
1837 D(p->level--);
1838 return NULL;
1839 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001840 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001841 stmt_ty raise_stmt_var;
1842 if (
1843 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1844 &&
1845 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1846 )
1847 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001848 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001849 _res = raise_stmt_var;
1850 goto done;
1851 }
1852 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001853 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1855 }
1856 { // 'pass'
1857 if (p->error_indicator) {
1858 D(p->level--);
1859 return NULL;
1860 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001861 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001862 Token * _keyword;
1863 if (
1864 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1865 )
1866 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001867 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1869 if (_token == NULL) {
1870 D(p->level--);
1871 return NULL;
1872 }
1873 int _end_lineno = _token->end_lineno;
1874 UNUSED(_end_lineno); // Only used by EXTRA macro
1875 int _end_col_offset = _token->end_col_offset;
1876 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001877 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001878 if (_res == NULL && PyErr_Occurred()) {
1879 p->error_indicator = 1;
1880 D(p->level--);
1881 return NULL;
1882 }
1883 goto done;
1884 }
1885 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001886 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1888 }
1889 { // &'del' del_stmt
1890 if (p->error_indicator) {
1891 D(p->level--);
1892 return NULL;
1893 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001894 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001895 stmt_ty del_stmt_var;
1896 if (
1897 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1898 &&
1899 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1900 )
1901 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001902 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001903 _res = del_stmt_var;
1904 goto done;
1905 }
1906 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001907 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1909 }
1910 { // &'yield' yield_stmt
1911 if (p->error_indicator) {
1912 D(p->level--);
1913 return NULL;
1914 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001915 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001916 stmt_ty yield_stmt_var;
1917 if (
1918 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1919 &&
1920 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1921 )
1922 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001923 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001924 _res = yield_stmt_var;
1925 goto done;
1926 }
1927 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001928 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1930 }
1931 { // &'assert' assert_stmt
1932 if (p->error_indicator) {
1933 D(p->level--);
1934 return NULL;
1935 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001936 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001937 stmt_ty assert_stmt_var;
1938 if (
1939 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1940 &&
1941 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1942 )
1943 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001944 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001945 _res = assert_stmt_var;
1946 goto done;
1947 }
1948 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001949 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001950 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1951 }
1952 { // 'break'
1953 if (p->error_indicator) {
1954 D(p->level--);
1955 return NULL;
1956 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001957 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001958 Token * _keyword;
1959 if (
1960 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1961 )
1962 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001963 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001964 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1965 if (_token == NULL) {
1966 D(p->level--);
1967 return NULL;
1968 }
1969 int _end_lineno = _token->end_lineno;
1970 UNUSED(_end_lineno); // Only used by EXTRA macro
1971 int _end_col_offset = _token->end_col_offset;
1972 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001973 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001974 if (_res == NULL && PyErr_Occurred()) {
1975 p->error_indicator = 1;
1976 D(p->level--);
1977 return NULL;
1978 }
1979 goto done;
1980 }
1981 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001982 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001983 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1984 }
1985 { // 'continue'
1986 if (p->error_indicator) {
1987 D(p->level--);
1988 return NULL;
1989 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001990 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001991 Token * _keyword;
1992 if (
1993 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1994 )
1995 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001996 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001997 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1998 if (_token == NULL) {
1999 D(p->level--);
2000 return NULL;
2001 }
2002 int _end_lineno = _token->end_lineno;
2003 UNUSED(_end_lineno); // Only used by EXTRA macro
2004 int _end_col_offset = _token->end_col_offset;
2005 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002006 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002007 if (_res == NULL && PyErr_Occurred()) {
2008 p->error_indicator = 1;
2009 D(p->level--);
2010 return NULL;
2011 }
2012 goto done;
2013 }
2014 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002015 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2017 }
2018 { // &'global' global_stmt
2019 if (p->error_indicator) {
2020 D(p->level--);
2021 return NULL;
2022 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002023 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002024 stmt_ty global_stmt_var;
2025 if (
2026 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2027 &&
2028 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2029 )
2030 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002031 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002032 _res = global_stmt_var;
2033 goto done;
2034 }
2035 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002036 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2038 }
2039 { // &'nonlocal' nonlocal_stmt
2040 if (p->error_indicator) {
2041 D(p->level--);
2042 return NULL;
2043 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002044 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002045 stmt_ty nonlocal_stmt_var;
2046 if (
2047 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2048 &&
2049 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2050 )
2051 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002052 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002053 _res = nonlocal_stmt_var;
2054 goto done;
2055 }
2056 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002057 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2059 }
2060 _res = NULL;
2061 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002062 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002063 D(p->level--);
2064 return _res;
2065}
2066
2067// compound_stmt:
2068// | &('def' | '@' | ASYNC) function_def
2069// | &'if' if_stmt
2070// | &('class' | '@') class_def
2071// | &('with' | ASYNC) with_stmt
2072// | &('for' | ASYNC) for_stmt
2073// | &'try' try_stmt
2074// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002075// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002076static stmt_ty
2077compound_stmt_rule(Parser *p)
2078{
2079 D(p->level++);
2080 if (p->error_indicator) {
2081 D(p->level--);
2082 return NULL;
2083 }
2084 stmt_ty _res = NULL;
2085 int _mark = p->mark;
2086 { // &('def' | '@' | ASYNC) function_def
2087 if (p->error_indicator) {
2088 D(p->level--);
2089 return NULL;
2090 }
2091 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2092 stmt_ty function_def_var;
2093 if (
2094 _PyPegen_lookahead(1, _tmp_15_rule, p)
2095 &&
2096 (function_def_var = function_def_rule(p)) // function_def
2097 )
2098 {
2099 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2100 _res = function_def_var;
2101 goto done;
2102 }
2103 p->mark = _mark;
2104 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2106 }
2107 { // &'if' if_stmt
2108 if (p->error_indicator) {
2109 D(p->level--);
2110 return NULL;
2111 }
2112 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2113 stmt_ty if_stmt_var;
2114 if (
2115 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2116 &&
2117 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2118 )
2119 {
2120 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2121 _res = if_stmt_var;
2122 goto done;
2123 }
2124 p->mark = _mark;
2125 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2127 }
2128 { // &('class' | '@') class_def
2129 if (p->error_indicator) {
2130 D(p->level--);
2131 return NULL;
2132 }
2133 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2134 stmt_ty class_def_var;
2135 if (
2136 _PyPegen_lookahead(1, _tmp_16_rule, p)
2137 &&
2138 (class_def_var = class_def_rule(p)) // class_def
2139 )
2140 {
2141 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2142 _res = class_def_var;
2143 goto done;
2144 }
2145 p->mark = _mark;
2146 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2148 }
2149 { // &('with' | ASYNC) with_stmt
2150 if (p->error_indicator) {
2151 D(p->level--);
2152 return NULL;
2153 }
2154 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2155 stmt_ty with_stmt_var;
2156 if (
2157 _PyPegen_lookahead(1, _tmp_17_rule, p)
2158 &&
2159 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2160 )
2161 {
2162 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2163 _res = with_stmt_var;
2164 goto done;
2165 }
2166 p->mark = _mark;
2167 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2169 }
2170 { // &('for' | ASYNC) for_stmt
2171 if (p->error_indicator) {
2172 D(p->level--);
2173 return NULL;
2174 }
2175 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2176 stmt_ty for_stmt_var;
2177 if (
2178 _PyPegen_lookahead(1, _tmp_18_rule, p)
2179 &&
2180 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2181 )
2182 {
2183 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2184 _res = for_stmt_var;
2185 goto done;
2186 }
2187 p->mark = _mark;
2188 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2190 }
2191 { // &'try' try_stmt
2192 if (p->error_indicator) {
2193 D(p->level--);
2194 return NULL;
2195 }
2196 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2197 stmt_ty try_stmt_var;
2198 if (
2199 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2200 &&
2201 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2202 )
2203 {
2204 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2205 _res = try_stmt_var;
2206 goto done;
2207 }
2208 p->mark = _mark;
2209 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2211 }
2212 { // &'while' while_stmt
2213 if (p->error_indicator) {
2214 D(p->level--);
2215 return NULL;
2216 }
2217 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2218 stmt_ty while_stmt_var;
2219 if (
2220 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2221 &&
2222 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2223 )
2224 {
2225 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2226 _res = while_stmt_var;
2227 goto done;
2228 }
2229 p->mark = _mark;
2230 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2232 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002233 { // match_stmt
2234 if (p->error_indicator) {
2235 D(p->level--);
2236 return NULL;
2237 }
2238 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2239 stmt_ty match_stmt_var;
2240 if (
2241 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2242 )
2243 {
2244 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2245 _res = match_stmt_var;
2246 goto done;
2247 }
2248 p->mark = _mark;
2249 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2251 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002252 _res = NULL;
2253 done:
2254 D(p->level--);
2255 return _res;
2256}
2257
2258// assignment:
2259// | NAME ':' expression ['=' annotated_rhs]
2260// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2261// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002262// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002263// | invalid_assignment
2264static stmt_ty
2265assignment_rule(Parser *p)
2266{
2267 D(p->level++);
2268 if (p->error_indicator) {
2269 D(p->level--);
2270 return NULL;
2271 }
2272 stmt_ty _res = NULL;
2273 int _mark = p->mark;
2274 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2275 p->error_indicator = 1;
2276 D(p->level--);
2277 return NULL;
2278 }
2279 int _start_lineno = p->tokens[_mark]->lineno;
2280 UNUSED(_start_lineno); // Only used by EXTRA macro
2281 int _start_col_offset = p->tokens[_mark]->col_offset;
2282 UNUSED(_start_col_offset); // Only used by EXTRA macro
2283 { // NAME ':' expression ['=' annotated_rhs]
2284 if (p->error_indicator) {
2285 D(p->level--);
2286 return NULL;
2287 }
2288 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2289 Token * _literal;
2290 expr_ty a;
2291 expr_ty b;
2292 void *c;
2293 if (
2294 (a = _PyPegen_name_token(p)) // NAME
2295 &&
2296 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2297 &&
2298 (b = expression_rule(p)) // expression
2299 &&
2300 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2301 )
2302 {
2303 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2304 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2305 if (_token == NULL) {
2306 D(p->level--);
2307 return NULL;
2308 }
2309 int _end_lineno = _token->end_lineno;
2310 UNUSED(_end_lineno); // Only used by EXTRA macro
2311 int _end_col_offset = _token->end_col_offset;
2312 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002313 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotation syntax is" , _PyAST_AnnAssign ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002314 if (_res == NULL && PyErr_Occurred()) {
2315 p->error_indicator = 1;
2316 D(p->level--);
2317 return NULL;
2318 }
2319 goto done;
2320 }
2321 p->mark = _mark;
2322 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2324 }
2325 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2326 if (p->error_indicator) {
2327 D(p->level--);
2328 return NULL;
2329 }
2330 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2331 Token * _literal;
2332 void *a;
2333 expr_ty b;
2334 void *c;
2335 if (
2336 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2337 &&
2338 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2339 &&
2340 (b = expression_rule(p)) // expression
2341 &&
2342 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2343 )
2344 {
2345 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2346 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2347 if (_token == NULL) {
2348 D(p->level--);
2349 return NULL;
2350 }
2351 int _end_lineno = _token->end_lineno;
2352 UNUSED(_end_lineno); // Only used by EXTRA macro
2353 int _end_col_offset = _token->end_col_offset;
2354 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002355 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002356 if (_res == NULL && PyErr_Occurred()) {
2357 p->error_indicator = 1;
2358 D(p->level--);
2359 return NULL;
2360 }
2361 goto done;
2362 }
2363 p->mark = _mark;
2364 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2366 }
2367 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2368 if (p->error_indicator) {
2369 D(p->level--);
2370 return NULL;
2371 }
2372 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01002373 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002374 void *b;
2375 void *tc;
2376 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002377 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002378 &&
2379 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2380 &&
2381 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2382 &&
2383 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2384 )
2385 {
2386 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2387 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2388 if (_token == NULL) {
2389 D(p->level--);
2390 return NULL;
2391 }
2392 int _end_lineno = _token->end_lineno;
2393 UNUSED(_end_lineno); // Only used by EXTRA macro
2394 int _end_col_offset = _token->end_col_offset;
2395 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002396 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002397 if (_res == NULL && PyErr_Occurred()) {
2398 p->error_indicator = 1;
2399 D(p->level--);
2400 return NULL;
2401 }
2402 goto done;
2403 }
2404 p->mark = _mark;
2405 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2407 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002408 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002409 if (p->error_indicator) {
2410 D(p->level--);
2411 return NULL;
2412 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002413 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2414 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002415 expr_ty a;
2416 AugOperator* b;
2417 void *c;
2418 if (
2419 (a = single_target_rule(p)) // single_target
2420 &&
2421 (b = augassign_rule(p)) // augassign
2422 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002423 (_cut_var = 1)
2424 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002425 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2426 )
2427 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002428 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002429 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2430 if (_token == NULL) {
2431 D(p->level--);
2432 return NULL;
2433 }
2434 int _end_lineno = _token->end_lineno;
2435 UNUSED(_end_lineno); // Only used by EXTRA macro
2436 int _end_col_offset = _token->end_col_offset;
2437 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002438 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002439 if (_res == NULL && PyErr_Occurred()) {
2440 p->error_indicator = 1;
2441 D(p->level--);
2442 return NULL;
2443 }
2444 goto done;
2445 }
2446 p->mark = _mark;
2447 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2449 if (_cut_var) {
2450 D(p->level--);
2451 return NULL;
2452 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002453 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002454 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002455 if (p->error_indicator) {
2456 D(p->level--);
2457 return NULL;
2458 }
2459 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2460 void *invalid_assignment_var;
2461 if (
2462 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2463 )
2464 {
2465 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2466 _res = invalid_assignment_var;
2467 goto done;
2468 }
2469 p->mark = _mark;
2470 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2472 }
2473 _res = NULL;
2474 done:
2475 D(p->level--);
2476 return _res;
2477}
2478
2479// augassign:
2480// | '+='
2481// | '-='
2482// | '*='
2483// | '@='
2484// | '/='
2485// | '%='
2486// | '&='
2487// | '|='
2488// | '^='
2489// | '<<='
2490// | '>>='
2491// | '**='
2492// | '//='
2493static AugOperator*
2494augassign_rule(Parser *p)
2495{
2496 D(p->level++);
2497 if (p->error_indicator) {
2498 D(p->level--);
2499 return NULL;
2500 }
2501 AugOperator* _res = NULL;
2502 int _mark = p->mark;
2503 { // '+='
2504 if (p->error_indicator) {
2505 D(p->level--);
2506 return NULL;
2507 }
2508 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2509 Token * _literal;
2510 if (
2511 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2512 )
2513 {
2514 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2515 _res = _PyPegen_augoperator ( p , Add );
2516 if (_res == NULL && PyErr_Occurred()) {
2517 p->error_indicator = 1;
2518 D(p->level--);
2519 return NULL;
2520 }
2521 goto done;
2522 }
2523 p->mark = _mark;
2524 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2525 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2526 }
2527 { // '-='
2528 if (p->error_indicator) {
2529 D(p->level--);
2530 return NULL;
2531 }
2532 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2533 Token * _literal;
2534 if (
2535 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2536 )
2537 {
2538 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2539 _res = _PyPegen_augoperator ( p , Sub );
2540 if (_res == NULL && PyErr_Occurred()) {
2541 p->error_indicator = 1;
2542 D(p->level--);
2543 return NULL;
2544 }
2545 goto done;
2546 }
2547 p->mark = _mark;
2548 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2550 }
2551 { // '*='
2552 if (p->error_indicator) {
2553 D(p->level--);
2554 return NULL;
2555 }
2556 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2557 Token * _literal;
2558 if (
2559 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2560 )
2561 {
2562 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2563 _res = _PyPegen_augoperator ( p , Mult );
2564 if (_res == NULL && PyErr_Occurred()) {
2565 p->error_indicator = 1;
2566 D(p->level--);
2567 return NULL;
2568 }
2569 goto done;
2570 }
2571 p->mark = _mark;
2572 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2574 }
2575 { // '@='
2576 if (p->error_indicator) {
2577 D(p->level--);
2578 return NULL;
2579 }
2580 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2581 Token * _literal;
2582 if (
2583 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2584 )
2585 {
2586 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002587 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002588 if (_res == NULL && PyErr_Occurred()) {
2589 p->error_indicator = 1;
2590 D(p->level--);
2591 return NULL;
2592 }
2593 goto done;
2594 }
2595 p->mark = _mark;
2596 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2598 }
2599 { // '/='
2600 if (p->error_indicator) {
2601 D(p->level--);
2602 return NULL;
2603 }
2604 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2605 Token * _literal;
2606 if (
2607 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2608 )
2609 {
2610 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2611 _res = _PyPegen_augoperator ( p , Div );
2612 if (_res == NULL && PyErr_Occurred()) {
2613 p->error_indicator = 1;
2614 D(p->level--);
2615 return NULL;
2616 }
2617 goto done;
2618 }
2619 p->mark = _mark;
2620 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2622 }
2623 { // '%='
2624 if (p->error_indicator) {
2625 D(p->level--);
2626 return NULL;
2627 }
2628 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2629 Token * _literal;
2630 if (
2631 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2632 )
2633 {
2634 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2635 _res = _PyPegen_augoperator ( p , Mod );
2636 if (_res == NULL && PyErr_Occurred()) {
2637 p->error_indicator = 1;
2638 D(p->level--);
2639 return NULL;
2640 }
2641 goto done;
2642 }
2643 p->mark = _mark;
2644 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2646 }
2647 { // '&='
2648 if (p->error_indicator) {
2649 D(p->level--);
2650 return NULL;
2651 }
2652 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2653 Token * _literal;
2654 if (
2655 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2656 )
2657 {
2658 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2659 _res = _PyPegen_augoperator ( p , BitAnd );
2660 if (_res == NULL && PyErr_Occurred()) {
2661 p->error_indicator = 1;
2662 D(p->level--);
2663 return NULL;
2664 }
2665 goto done;
2666 }
2667 p->mark = _mark;
2668 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2670 }
2671 { // '|='
2672 if (p->error_indicator) {
2673 D(p->level--);
2674 return NULL;
2675 }
2676 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2677 Token * _literal;
2678 if (
2679 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2680 )
2681 {
2682 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2683 _res = _PyPegen_augoperator ( p , BitOr );
2684 if (_res == NULL && PyErr_Occurred()) {
2685 p->error_indicator = 1;
2686 D(p->level--);
2687 return NULL;
2688 }
2689 goto done;
2690 }
2691 p->mark = _mark;
2692 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2694 }
2695 { // '^='
2696 if (p->error_indicator) {
2697 D(p->level--);
2698 return NULL;
2699 }
2700 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2701 Token * _literal;
2702 if (
2703 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2704 )
2705 {
2706 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2707 _res = _PyPegen_augoperator ( p , BitXor );
2708 if (_res == NULL && PyErr_Occurred()) {
2709 p->error_indicator = 1;
2710 D(p->level--);
2711 return NULL;
2712 }
2713 goto done;
2714 }
2715 p->mark = _mark;
2716 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2718 }
2719 { // '<<='
2720 if (p->error_indicator) {
2721 D(p->level--);
2722 return NULL;
2723 }
2724 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2725 Token * _literal;
2726 if (
2727 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2728 )
2729 {
2730 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2731 _res = _PyPegen_augoperator ( p , LShift );
2732 if (_res == NULL && PyErr_Occurred()) {
2733 p->error_indicator = 1;
2734 D(p->level--);
2735 return NULL;
2736 }
2737 goto done;
2738 }
2739 p->mark = _mark;
2740 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2742 }
2743 { // '>>='
2744 if (p->error_indicator) {
2745 D(p->level--);
2746 return NULL;
2747 }
2748 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2749 Token * _literal;
2750 if (
2751 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2752 )
2753 {
2754 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2755 _res = _PyPegen_augoperator ( p , RShift );
2756 if (_res == NULL && PyErr_Occurred()) {
2757 p->error_indicator = 1;
2758 D(p->level--);
2759 return NULL;
2760 }
2761 goto done;
2762 }
2763 p->mark = _mark;
2764 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2766 }
2767 { // '**='
2768 if (p->error_indicator) {
2769 D(p->level--);
2770 return NULL;
2771 }
2772 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2773 Token * _literal;
2774 if (
2775 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2776 )
2777 {
2778 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2779 _res = _PyPegen_augoperator ( p , Pow );
2780 if (_res == NULL && PyErr_Occurred()) {
2781 p->error_indicator = 1;
2782 D(p->level--);
2783 return NULL;
2784 }
2785 goto done;
2786 }
2787 p->mark = _mark;
2788 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2790 }
2791 { // '//='
2792 if (p->error_indicator) {
2793 D(p->level--);
2794 return NULL;
2795 }
2796 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2797 Token * _literal;
2798 if (
2799 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2800 )
2801 {
2802 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2803 _res = _PyPegen_augoperator ( p , FloorDiv );
2804 if (_res == NULL && PyErr_Occurred()) {
2805 p->error_indicator = 1;
2806 D(p->level--);
2807 return NULL;
2808 }
2809 goto done;
2810 }
2811 p->mark = _mark;
2812 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2814 }
2815 _res = NULL;
2816 done:
2817 D(p->level--);
2818 return _res;
2819}
2820
2821// global_stmt: 'global' ','.NAME+
2822static stmt_ty
2823global_stmt_rule(Parser *p)
2824{
2825 D(p->level++);
2826 if (p->error_indicator) {
2827 D(p->level--);
2828 return NULL;
2829 }
2830 stmt_ty _res = NULL;
2831 int _mark = p->mark;
2832 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2833 p->error_indicator = 1;
2834 D(p->level--);
2835 return NULL;
2836 }
2837 int _start_lineno = p->tokens[_mark]->lineno;
2838 UNUSED(_start_lineno); // Only used by EXTRA macro
2839 int _start_col_offset = p->tokens[_mark]->col_offset;
2840 UNUSED(_start_col_offset); // Only used by EXTRA macro
2841 { // 'global' ','.NAME+
2842 if (p->error_indicator) {
2843 D(p->level--);
2844 return NULL;
2845 }
2846 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2847 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002848 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002849 if (
2850 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2851 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002852 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002853 )
2854 {
2855 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2856 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2857 if (_token == NULL) {
2858 D(p->level--);
2859 return NULL;
2860 }
2861 int _end_lineno = _token->end_lineno;
2862 UNUSED(_end_lineno); // Only used by EXTRA macro
2863 int _end_col_offset = _token->end_col_offset;
2864 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002865 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002866 if (_res == NULL && PyErr_Occurred()) {
2867 p->error_indicator = 1;
2868 D(p->level--);
2869 return NULL;
2870 }
2871 goto done;
2872 }
2873 p->mark = _mark;
2874 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2875 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2876 }
2877 _res = NULL;
2878 done:
2879 D(p->level--);
2880 return _res;
2881}
2882
2883// nonlocal_stmt: 'nonlocal' ','.NAME+
2884static stmt_ty
2885nonlocal_stmt_rule(Parser *p)
2886{
2887 D(p->level++);
2888 if (p->error_indicator) {
2889 D(p->level--);
2890 return NULL;
2891 }
2892 stmt_ty _res = NULL;
2893 int _mark = p->mark;
2894 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2895 p->error_indicator = 1;
2896 D(p->level--);
2897 return NULL;
2898 }
2899 int _start_lineno = p->tokens[_mark]->lineno;
2900 UNUSED(_start_lineno); // Only used by EXTRA macro
2901 int _start_col_offset = p->tokens[_mark]->col_offset;
2902 UNUSED(_start_col_offset); // Only used by EXTRA macro
2903 { // 'nonlocal' ','.NAME+
2904 if (p->error_indicator) {
2905 D(p->level--);
2906 return NULL;
2907 }
2908 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2909 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002910 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002911 if (
2912 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2913 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002914 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002915 )
2916 {
2917 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2918 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2919 if (_token == NULL) {
2920 D(p->level--);
2921 return NULL;
2922 }
2923 int _end_lineno = _token->end_lineno;
2924 UNUSED(_end_lineno); // Only used by EXTRA macro
2925 int _end_col_offset = _token->end_col_offset;
2926 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002927 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002928 if (_res == NULL && PyErr_Occurred()) {
2929 p->error_indicator = 1;
2930 D(p->level--);
2931 return NULL;
2932 }
2933 goto done;
2934 }
2935 p->mark = _mark;
2936 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2938 }
2939 _res = NULL;
2940 done:
2941 D(p->level--);
2942 return _res;
2943}
2944
2945// yield_stmt: yield_expr
2946static stmt_ty
2947yield_stmt_rule(Parser *p)
2948{
2949 D(p->level++);
2950 if (p->error_indicator) {
2951 D(p->level--);
2952 return NULL;
2953 }
2954 stmt_ty _res = NULL;
2955 int _mark = p->mark;
2956 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2957 p->error_indicator = 1;
2958 D(p->level--);
2959 return NULL;
2960 }
2961 int _start_lineno = p->tokens[_mark]->lineno;
2962 UNUSED(_start_lineno); // Only used by EXTRA macro
2963 int _start_col_offset = p->tokens[_mark]->col_offset;
2964 UNUSED(_start_col_offset); // Only used by EXTRA macro
2965 { // yield_expr
2966 if (p->error_indicator) {
2967 D(p->level--);
2968 return NULL;
2969 }
2970 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2971 expr_ty y;
2972 if (
2973 (y = yield_expr_rule(p)) // yield_expr
2974 )
2975 {
2976 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2977 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2978 if (_token == NULL) {
2979 D(p->level--);
2980 return NULL;
2981 }
2982 int _end_lineno = _token->end_lineno;
2983 UNUSED(_end_lineno); // Only used by EXTRA macro
2984 int _end_col_offset = _token->end_col_offset;
2985 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002986 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002987 if (_res == NULL && PyErr_Occurred()) {
2988 p->error_indicator = 1;
2989 D(p->level--);
2990 return NULL;
2991 }
2992 goto done;
2993 }
2994 p->mark = _mark;
2995 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2997 }
2998 _res = NULL;
2999 done:
3000 D(p->level--);
3001 return _res;
3002}
3003
3004// assert_stmt: 'assert' expression [',' expression]
3005static stmt_ty
3006assert_stmt_rule(Parser *p)
3007{
3008 D(p->level++);
3009 if (p->error_indicator) {
3010 D(p->level--);
3011 return NULL;
3012 }
3013 stmt_ty _res = NULL;
3014 int _mark = p->mark;
3015 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3016 p->error_indicator = 1;
3017 D(p->level--);
3018 return NULL;
3019 }
3020 int _start_lineno = p->tokens[_mark]->lineno;
3021 UNUSED(_start_lineno); // Only used by EXTRA macro
3022 int _start_col_offset = p->tokens[_mark]->col_offset;
3023 UNUSED(_start_col_offset); // Only used by EXTRA macro
3024 { // 'assert' expression [',' expression]
3025 if (p->error_indicator) {
3026 D(p->level--);
3027 return NULL;
3028 }
3029 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3030 Token * _keyword;
3031 expr_ty a;
3032 void *b;
3033 if (
3034 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3035 &&
3036 (a = expression_rule(p)) // expression
3037 &&
3038 (b = _tmp_29_rule(p), 1) // [',' expression]
3039 )
3040 {
3041 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3042 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3043 if (_token == NULL) {
3044 D(p->level--);
3045 return NULL;
3046 }
3047 int _end_lineno = _token->end_lineno;
3048 UNUSED(_end_lineno); // Only used by EXTRA macro
3049 int _end_col_offset = _token->end_col_offset;
3050 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003051 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003052 if (_res == NULL && PyErr_Occurred()) {
3053 p->error_indicator = 1;
3054 D(p->level--);
3055 return NULL;
3056 }
3057 goto done;
3058 }
3059 p->mark = _mark;
3060 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3061 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3062 }
3063 _res = NULL;
3064 done:
3065 D(p->level--);
3066 return _res;
3067}
3068
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003069// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003070static stmt_ty
3071del_stmt_rule(Parser *p)
3072{
3073 D(p->level++);
3074 if (p->error_indicator) {
3075 D(p->level--);
3076 return NULL;
3077 }
3078 stmt_ty _res = NULL;
3079 int _mark = p->mark;
3080 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3081 p->error_indicator = 1;
3082 D(p->level--);
3083 return NULL;
3084 }
3085 int _start_lineno = p->tokens[_mark]->lineno;
3086 UNUSED(_start_lineno); // Only used by EXTRA macro
3087 int _start_col_offset = p->tokens[_mark]->col_offset;
3088 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003089 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003090 if (p->error_indicator) {
3091 D(p->level--);
3092 return NULL;
3093 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003094 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003095 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003096 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003097 if (
3098 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3099 &&
3100 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003101 &&
3102 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003103 )
3104 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003105 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003106 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3107 if (_token == NULL) {
3108 D(p->level--);
3109 return NULL;
3110 }
3111 int _end_lineno = _token->end_lineno;
3112 UNUSED(_end_lineno); // Only used by EXTRA macro
3113 int _end_col_offset = _token->end_col_offset;
3114 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003115 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003116 if (_res == NULL && PyErr_Occurred()) {
3117 p->error_indicator = 1;
3118 D(p->level--);
3119 return NULL;
3120 }
3121 goto done;
3122 }
3123 p->mark = _mark;
3124 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3126 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003127 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003128 if (p->error_indicator) {
3129 D(p->level--);
3130 return NULL;
3131 }
3132 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3133 void *invalid_del_stmt_var;
3134 if (
3135 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3136 )
3137 {
3138 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3139 _res = invalid_del_stmt_var;
3140 goto done;
3141 }
3142 p->mark = _mark;
3143 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003145 }
3146 _res = NULL;
3147 done:
3148 D(p->level--);
3149 return _res;
3150}
3151
3152// import_stmt: import_name | import_from
3153static stmt_ty
3154import_stmt_rule(Parser *p)
3155{
3156 D(p->level++);
3157 if (p->error_indicator) {
3158 D(p->level--);
3159 return NULL;
3160 }
3161 stmt_ty _res = NULL;
3162 int _mark = p->mark;
3163 { // import_name
3164 if (p->error_indicator) {
3165 D(p->level--);
3166 return NULL;
3167 }
3168 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3169 stmt_ty import_name_var;
3170 if (
3171 (import_name_var = import_name_rule(p)) // import_name
3172 )
3173 {
3174 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3175 _res = import_name_var;
3176 goto done;
3177 }
3178 p->mark = _mark;
3179 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3181 }
3182 { // import_from
3183 if (p->error_indicator) {
3184 D(p->level--);
3185 return NULL;
3186 }
3187 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3188 stmt_ty import_from_var;
3189 if (
3190 (import_from_var = import_from_rule(p)) // import_from
3191 )
3192 {
3193 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3194 _res = import_from_var;
3195 goto done;
3196 }
3197 p->mark = _mark;
3198 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3200 }
3201 _res = NULL;
3202 done:
3203 D(p->level--);
3204 return _res;
3205}
3206
3207// import_name: 'import' dotted_as_names
3208static stmt_ty
3209import_name_rule(Parser *p)
3210{
3211 D(p->level++);
3212 if (p->error_indicator) {
3213 D(p->level--);
3214 return NULL;
3215 }
3216 stmt_ty _res = NULL;
3217 int _mark = p->mark;
3218 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3219 p->error_indicator = 1;
3220 D(p->level--);
3221 return NULL;
3222 }
3223 int _start_lineno = p->tokens[_mark]->lineno;
3224 UNUSED(_start_lineno); // Only used by EXTRA macro
3225 int _start_col_offset = p->tokens[_mark]->col_offset;
3226 UNUSED(_start_col_offset); // Only used by EXTRA macro
3227 { // 'import' dotted_as_names
3228 if (p->error_indicator) {
3229 D(p->level--);
3230 return NULL;
3231 }
3232 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3233 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003234 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003235 if (
3236 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3237 &&
3238 (a = dotted_as_names_rule(p)) // dotted_as_names
3239 )
3240 {
3241 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3243 if (_token == NULL) {
3244 D(p->level--);
3245 return NULL;
3246 }
3247 int _end_lineno = _token->end_lineno;
3248 UNUSED(_end_lineno); // Only used by EXTRA macro
3249 int _end_col_offset = _token->end_col_offset;
3250 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003251 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003252 if (_res == NULL && PyErr_Occurred()) {
3253 p->error_indicator = 1;
3254 D(p->level--);
3255 return NULL;
3256 }
3257 goto done;
3258 }
3259 p->mark = _mark;
3260 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3262 }
3263 _res = NULL;
3264 done:
3265 D(p->level--);
3266 return _res;
3267}
3268
3269// import_from:
3270// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3271// | 'from' (('.' | '...'))+ 'import' import_from_targets
3272static stmt_ty
3273import_from_rule(Parser *p)
3274{
3275 D(p->level++);
3276 if (p->error_indicator) {
3277 D(p->level--);
3278 return NULL;
3279 }
3280 stmt_ty _res = NULL;
3281 int _mark = p->mark;
3282 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3283 p->error_indicator = 1;
3284 D(p->level--);
3285 return NULL;
3286 }
3287 int _start_lineno = p->tokens[_mark]->lineno;
3288 UNUSED(_start_lineno); // Only used by EXTRA macro
3289 int _start_col_offset = p->tokens[_mark]->col_offset;
3290 UNUSED(_start_col_offset); // Only used by EXTRA macro
3291 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3292 if (p->error_indicator) {
3293 D(p->level--);
3294 return NULL;
3295 }
3296 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3297 Token * _keyword;
3298 Token * _keyword_1;
3299 asdl_seq * a;
3300 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003301 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003302 if (
3303 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3304 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003305 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003306 &&
3307 (b = dotted_name_rule(p)) // dotted_name
3308 &&
3309 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3310 &&
3311 (c = import_from_targets_rule(p)) // import_from_targets
3312 )
3313 {
3314 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3315 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3316 if (_token == NULL) {
3317 D(p->level--);
3318 return NULL;
3319 }
3320 int _end_lineno = _token->end_lineno;
3321 UNUSED(_end_lineno); // Only used by EXTRA macro
3322 int _end_col_offset = _token->end_col_offset;
3323 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003324 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003325 if (_res == NULL && PyErr_Occurred()) {
3326 p->error_indicator = 1;
3327 D(p->level--);
3328 return NULL;
3329 }
3330 goto done;
3331 }
3332 p->mark = _mark;
3333 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3335 }
3336 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3337 if (p->error_indicator) {
3338 D(p->level--);
3339 return NULL;
3340 }
3341 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3342 Token * _keyword;
3343 Token * _keyword_1;
3344 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003345 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003346 if (
3347 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3348 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003349 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003350 &&
3351 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3352 &&
3353 (b = import_from_targets_rule(p)) // import_from_targets
3354 )
3355 {
3356 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3357 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3358 if (_token == NULL) {
3359 D(p->level--);
3360 return NULL;
3361 }
3362 int _end_lineno = _token->end_lineno;
3363 UNUSED(_end_lineno); // Only used by EXTRA macro
3364 int _end_col_offset = _token->end_col_offset;
3365 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003366 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003367 if (_res == NULL && PyErr_Occurred()) {
3368 p->error_indicator = 1;
3369 D(p->level--);
3370 return NULL;
3371 }
3372 goto done;
3373 }
3374 p->mark = _mark;
3375 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3377 }
3378 _res = NULL;
3379 done:
3380 D(p->level--);
3381 return _res;
3382}
3383
3384// import_from_targets:
3385// | '(' import_from_as_names ','? ')'
3386// | import_from_as_names !','
3387// | '*'
3388// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003389static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003390import_from_targets_rule(Parser *p)
3391{
3392 D(p->level++);
3393 if (p->error_indicator) {
3394 D(p->level--);
3395 return NULL;
3396 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003397 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003398 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003399 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3400 p->error_indicator = 1;
3401 D(p->level--);
3402 return NULL;
3403 }
3404 int _start_lineno = p->tokens[_mark]->lineno;
3405 UNUSED(_start_lineno); // Only used by EXTRA macro
3406 int _start_col_offset = p->tokens[_mark]->col_offset;
3407 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003408 { // '(' import_from_as_names ','? ')'
3409 if (p->error_indicator) {
3410 D(p->level--);
3411 return NULL;
3412 }
3413 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3414 Token * _literal;
3415 Token * _literal_1;
3416 void *_opt_var;
3417 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003418 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003419 if (
3420 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3421 &&
3422 (a = import_from_as_names_rule(p)) // import_from_as_names
3423 &&
3424 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3425 &&
3426 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3427 )
3428 {
3429 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3430 _res = a;
3431 if (_res == NULL && PyErr_Occurred()) {
3432 p->error_indicator = 1;
3433 D(p->level--);
3434 return NULL;
3435 }
3436 goto done;
3437 }
3438 p->mark = _mark;
3439 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3441 }
3442 { // import_from_as_names !','
3443 if (p->error_indicator) {
3444 D(p->level--);
3445 return NULL;
3446 }
3447 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003448 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003449 if (
3450 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3451 &&
3452 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3453 )
3454 {
3455 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3456 _res = import_from_as_names_var;
3457 goto done;
3458 }
3459 p->mark = _mark;
3460 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3461 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3462 }
3463 { // '*'
3464 if (p->error_indicator) {
3465 D(p->level--);
3466 return NULL;
3467 }
3468 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3469 Token * _literal;
3470 if (
3471 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3472 )
3473 {
3474 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003475 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3476 if (_token == NULL) {
3477 D(p->level--);
3478 return NULL;
3479 }
3480 int _end_lineno = _token->end_lineno;
3481 UNUSED(_end_lineno); // Only used by EXTRA macro
3482 int _end_col_offset = _token->end_col_offset;
3483 UNUSED(_end_col_offset); // Only used by EXTRA macro
3484 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003485 if (_res == NULL && PyErr_Occurred()) {
3486 p->error_indicator = 1;
3487 D(p->level--);
3488 return NULL;
3489 }
3490 goto done;
3491 }
3492 p->mark = _mark;
3493 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3494 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3495 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003496 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003497 if (p->error_indicator) {
3498 D(p->level--);
3499 return NULL;
3500 }
3501 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3502 void *invalid_import_from_targets_var;
3503 if (
3504 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3505 )
3506 {
3507 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3508 _res = invalid_import_from_targets_var;
3509 goto done;
3510 }
3511 p->mark = _mark;
3512 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3514 }
3515 _res = NULL;
3516 done:
3517 D(p->level--);
3518 return _res;
3519}
3520
3521// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003522static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003523import_from_as_names_rule(Parser *p)
3524{
3525 D(p->level++);
3526 if (p->error_indicator) {
3527 D(p->level--);
3528 return NULL;
3529 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003530 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003531 int _mark = p->mark;
3532 { // ','.import_from_as_name+
3533 if (p->error_indicator) {
3534 D(p->level--);
3535 return NULL;
3536 }
3537 D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003538 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003539 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003540 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003541 )
3542 {
3543 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3544 _res = a;
3545 if (_res == NULL && PyErr_Occurred()) {
3546 p->error_indicator = 1;
3547 D(p->level--);
3548 return NULL;
3549 }
3550 goto done;
3551 }
3552 p->mark = _mark;
3553 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3555 }
3556 _res = NULL;
3557 done:
3558 D(p->level--);
3559 return _res;
3560}
3561
3562// import_from_as_name: NAME ['as' NAME]
3563static alias_ty
3564import_from_as_name_rule(Parser *p)
3565{
3566 D(p->level++);
3567 if (p->error_indicator) {
3568 D(p->level--);
3569 return NULL;
3570 }
3571 alias_ty _res = NULL;
3572 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003573 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3574 p->error_indicator = 1;
3575 D(p->level--);
3576 return NULL;
3577 }
3578 int _start_lineno = p->tokens[_mark]->lineno;
3579 UNUSED(_start_lineno); // Only used by EXTRA macro
3580 int _start_col_offset = p->tokens[_mark]->col_offset;
3581 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003582 { // NAME ['as' NAME]
3583 if (p->error_indicator) {
3584 D(p->level--);
3585 return NULL;
3586 }
3587 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3588 expr_ty a;
3589 void *b;
3590 if (
3591 (a = _PyPegen_name_token(p)) // NAME
3592 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003593 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003594 )
3595 {
3596 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003597 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3598 if (_token == NULL) {
3599 D(p->level--);
3600 return NULL;
3601 }
3602 int _end_lineno = _token->end_lineno;
3603 UNUSED(_end_lineno); // Only used by EXTRA macro
3604 int _end_col_offset = _token->end_col_offset;
3605 UNUSED(_end_col_offset); // Only used by EXTRA macro
3606 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003607 if (_res == NULL && PyErr_Occurred()) {
3608 p->error_indicator = 1;
3609 D(p->level--);
3610 return NULL;
3611 }
3612 goto done;
3613 }
3614 p->mark = _mark;
3615 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3617 }
3618 _res = NULL;
3619 done:
3620 D(p->level--);
3621 return _res;
3622}
3623
3624// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003625static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003626dotted_as_names_rule(Parser *p)
3627{
3628 D(p->level++);
3629 if (p->error_indicator) {
3630 D(p->level--);
3631 return NULL;
3632 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003633 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003634 int _mark = p->mark;
3635 { // ','.dotted_as_name+
3636 if (p->error_indicator) {
3637 D(p->level--);
3638 return NULL;
3639 }
3640 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003641 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003642 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003643 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003644 )
3645 {
3646 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3647 _res = a;
3648 if (_res == NULL && PyErr_Occurred()) {
3649 p->error_indicator = 1;
3650 D(p->level--);
3651 return NULL;
3652 }
3653 goto done;
3654 }
3655 p->mark = _mark;
3656 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3658 }
3659 _res = NULL;
3660 done:
3661 D(p->level--);
3662 return _res;
3663}
3664
3665// dotted_as_name: dotted_name ['as' NAME]
3666static alias_ty
3667dotted_as_name_rule(Parser *p)
3668{
3669 D(p->level++);
3670 if (p->error_indicator) {
3671 D(p->level--);
3672 return NULL;
3673 }
3674 alias_ty _res = NULL;
3675 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003676 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3677 p->error_indicator = 1;
3678 D(p->level--);
3679 return NULL;
3680 }
3681 int _start_lineno = p->tokens[_mark]->lineno;
3682 UNUSED(_start_lineno); // Only used by EXTRA macro
3683 int _start_col_offset = p->tokens[_mark]->col_offset;
3684 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003685 { // dotted_name ['as' NAME]
3686 if (p->error_indicator) {
3687 D(p->level--);
3688 return NULL;
3689 }
3690 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3691 expr_ty a;
3692 void *b;
3693 if (
3694 (a = dotted_name_rule(p)) // dotted_name
3695 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003696 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003697 )
3698 {
3699 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003700 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3701 if (_token == NULL) {
3702 D(p->level--);
3703 return NULL;
3704 }
3705 int _end_lineno = _token->end_lineno;
3706 UNUSED(_end_lineno); // Only used by EXTRA macro
3707 int _end_col_offset = _token->end_col_offset;
3708 UNUSED(_end_col_offset); // Only used by EXTRA macro
3709 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003710 if (_res == NULL && PyErr_Occurred()) {
3711 p->error_indicator = 1;
3712 D(p->level--);
3713 return NULL;
3714 }
3715 goto done;
3716 }
3717 p->mark = _mark;
3718 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3720 }
3721 _res = NULL;
3722 done:
3723 D(p->level--);
3724 return _res;
3725}
3726
3727// Left-recursive
3728// dotted_name: dotted_name '.' NAME | NAME
3729static expr_ty dotted_name_raw(Parser *);
3730static expr_ty
3731dotted_name_rule(Parser *p)
3732{
3733 D(p->level++);
3734 expr_ty _res = NULL;
3735 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3736 D(p->level--);
3737 return _res;
3738 }
3739 int _mark = p->mark;
3740 int _resmark = p->mark;
3741 while (1) {
3742 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3743 if (tmpvar_0) {
3744 D(p->level--);
3745 return _res;
3746 }
3747 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003748 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003749 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003750 p->in_raw_rule--;
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;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006922 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08006923 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006924 p->in_raw_rule--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006925 if (p->error_indicator)
6926 return NULL;
6927 if (_raw == NULL || p->mark <= _resmark)
6928 break;
6929 _resmark = p->mark;
6930 _res = _raw;
6931 }
6932 p->mark = _resmark;
6933 D(p->level--);
6934 return _res;
6935}
6936static expr_ty
6937attr_raw(Parser *p)
6938{
6939 D(p->level++);
6940 if (p->error_indicator) {
6941 D(p->level--);
6942 return NULL;
6943 }
6944 expr_ty _res = NULL;
6945 int _mark = p->mark;
6946 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6947 p->error_indicator = 1;
6948 D(p->level--);
6949 return NULL;
6950 }
6951 int _start_lineno = p->tokens[_mark]->lineno;
6952 UNUSED(_start_lineno); // Only used by EXTRA macro
6953 int _start_col_offset = p->tokens[_mark]->col_offset;
6954 UNUSED(_start_col_offset); // Only used by EXTRA macro
6955 { // name_or_attr '.' NAME
6956 if (p->error_indicator) {
6957 D(p->level--);
6958 return NULL;
6959 }
6960 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6961 Token * _literal;
6962 expr_ty attr;
6963 expr_ty value;
6964 if (
6965 (value = name_or_attr_rule(p)) // name_or_attr
6966 &&
6967 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6968 &&
6969 (attr = _PyPegen_name_token(p)) // NAME
6970 )
6971 {
6972 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6973 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6974 if (_token == NULL) {
6975 D(p->level--);
6976 return NULL;
6977 }
6978 int _end_lineno = _token->end_lineno;
6979 UNUSED(_end_lineno); // Only used by EXTRA macro
6980 int _end_col_offset = _token->end_col_offset;
6981 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006982 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006983 if (_res == NULL && PyErr_Occurred()) {
6984 p->error_indicator = 1;
6985 D(p->level--);
6986 return NULL;
6987 }
6988 goto done;
6989 }
6990 p->mark = _mark;
6991 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
6992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
6993 }
6994 _res = NULL;
6995 done:
6996 D(p->level--);
6997 return _res;
6998}
6999
7000// Left-recursive
7001// name_or_attr: attr | NAME
7002static expr_ty
7003name_or_attr_rule(Parser *p)
7004{
7005 D(p->level++);
7006 if (p->error_indicator) {
7007 D(p->level--);
7008 return NULL;
7009 }
7010 expr_ty _res = NULL;
7011 int _mark = p->mark;
7012 { // attr
7013 if (p->error_indicator) {
7014 D(p->level--);
7015 return NULL;
7016 }
7017 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7018 expr_ty attr_var;
7019 if (
7020 (attr_var = attr_rule(p)) // attr
7021 )
7022 {
7023 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7024 _res = attr_var;
7025 goto done;
7026 }
7027 p->mark = _mark;
7028 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7030 }
7031 { // NAME
7032 if (p->error_indicator) {
7033 D(p->level--);
7034 return NULL;
7035 }
7036 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7037 expr_ty name_var;
7038 if (
7039 (name_var = _PyPegen_name_token(p)) // NAME
7040 )
7041 {
7042 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7043 _res = name_var;
7044 goto done;
7045 }
7046 p->mark = _mark;
7047 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7049 }
7050 _res = NULL;
7051 done:
7052 D(p->level--);
7053 return _res;
7054}
7055
7056// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007057static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007058group_pattern_rule(Parser *p)
7059{
7060 D(p->level++);
7061 if (p->error_indicator) {
7062 D(p->level--);
7063 return NULL;
7064 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007065 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007066 int _mark = p->mark;
7067 { // '(' pattern ')'
7068 if (p->error_indicator) {
7069 D(p->level--);
7070 return NULL;
7071 }
7072 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7073 Token * _literal;
7074 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007075 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007076 if (
7077 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7078 &&
7079 (pattern = pattern_rule(p)) // pattern
7080 &&
7081 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7082 )
7083 {
7084 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7085 _res = pattern;
7086 if (_res == NULL && PyErr_Occurred()) {
7087 p->error_indicator = 1;
7088 D(p->level--);
7089 return NULL;
7090 }
7091 goto done;
7092 }
7093 p->mark = _mark;
7094 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7096 }
7097 _res = NULL;
7098 done:
7099 D(p->level--);
7100 return _res;
7101}
7102
7103// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007104static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007105sequence_pattern_rule(Parser *p)
7106{
7107 D(p->level++);
7108 if (p->error_indicator) {
7109 D(p->level--);
7110 return NULL;
7111 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007112 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007113 int _mark = p->mark;
7114 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7115 p->error_indicator = 1;
7116 D(p->level--);
7117 return NULL;
7118 }
7119 int _start_lineno = p->tokens[_mark]->lineno;
7120 UNUSED(_start_lineno); // Only used by EXTRA macro
7121 int _start_col_offset = p->tokens[_mark]->col_offset;
7122 UNUSED(_start_col_offset); // Only used by EXTRA macro
7123 { // '[' maybe_sequence_pattern? ']'
7124 if (p->error_indicator) {
7125 D(p->level--);
7126 return NULL;
7127 }
7128 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7129 Token * _literal;
7130 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007131 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007132 if (
7133 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7134 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007135 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007136 &&
7137 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7138 )
7139 {
7140 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7141 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7142 if (_token == NULL) {
7143 D(p->level--);
7144 return NULL;
7145 }
7146 int _end_lineno = _token->end_lineno;
7147 UNUSED(_end_lineno); // Only used by EXTRA macro
7148 int _end_col_offset = _token->end_col_offset;
7149 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007150 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007151 if (_res == NULL && PyErr_Occurred()) {
7152 p->error_indicator = 1;
7153 D(p->level--);
7154 return NULL;
7155 }
7156 goto done;
7157 }
7158 p->mark = _mark;
7159 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7161 }
7162 { // '(' open_sequence_pattern? ')'
7163 if (p->error_indicator) {
7164 D(p->level--);
7165 return NULL;
7166 }
7167 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7168 Token * _literal;
7169 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007170 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007171 if (
7172 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7173 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007174 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007175 &&
7176 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7177 )
7178 {
7179 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7180 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7181 if (_token == NULL) {
7182 D(p->level--);
7183 return NULL;
7184 }
7185 int _end_lineno = _token->end_lineno;
7186 UNUSED(_end_lineno); // Only used by EXTRA macro
7187 int _end_col_offset = _token->end_col_offset;
7188 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007189 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007190 if (_res == NULL && PyErr_Occurred()) {
7191 p->error_indicator = 1;
7192 D(p->level--);
7193 return NULL;
7194 }
7195 goto done;
7196 }
7197 p->mark = _mark;
7198 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7200 }
7201 _res = NULL;
7202 done:
7203 D(p->level--);
7204 return _res;
7205}
7206
7207// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7208static asdl_seq*
7209open_sequence_pattern_rule(Parser *p)
7210{
7211 D(p->level++);
7212 if (p->error_indicator) {
7213 D(p->level--);
7214 return NULL;
7215 }
7216 asdl_seq* _res = NULL;
7217 int _mark = p->mark;
7218 { // maybe_star_pattern ',' maybe_sequence_pattern?
7219 if (p->error_indicator) {
7220 D(p->level--);
7221 return NULL;
7222 }
7223 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7224 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007225 pattern_ty pattern;
7226 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007227 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007228 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007229 &&
7230 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7231 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007232 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007233 )
7234 {
7235 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 +10007236 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007237 if (_res == NULL && PyErr_Occurred()) {
7238 p->error_indicator = 1;
7239 D(p->level--);
7240 return NULL;
7241 }
7242 goto done;
7243 }
7244 p->mark = _mark;
7245 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7247 }
7248 _res = NULL;
7249 done:
7250 D(p->level--);
7251 return _res;
7252}
7253
7254// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7255static asdl_seq*
7256maybe_sequence_pattern_rule(Parser *p)
7257{
7258 D(p->level++);
7259 if (p->error_indicator) {
7260 D(p->level--);
7261 return NULL;
7262 }
7263 asdl_seq* _res = NULL;
7264 int _mark = p->mark;
7265 { // ','.maybe_star_pattern+ ','?
7266 if (p->error_indicator) {
7267 D(p->level--);
7268 return NULL;
7269 }
7270 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7271 void *_opt_var;
7272 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007273 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007274 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007275 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007276 &&
7277 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7278 )
7279 {
7280 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 +10007281 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007282 if (_res == NULL && PyErr_Occurred()) {
7283 p->error_indicator = 1;
7284 D(p->level--);
7285 return NULL;
7286 }
7287 goto done;
7288 }
7289 p->mark = _mark;
7290 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7292 }
7293 _res = NULL;
7294 done:
7295 D(p->level--);
7296 return _res;
7297}
7298
7299// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007300static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007301maybe_star_pattern_rule(Parser *p)
7302{
7303 D(p->level++);
7304 if (p->error_indicator) {
7305 D(p->level--);
7306 return NULL;
7307 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007308 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007309 int _mark = p->mark;
7310 { // star_pattern
7311 if (p->error_indicator) {
7312 D(p->level--);
7313 return NULL;
7314 }
7315 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 +10007316 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007317 if (
7318 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7319 )
7320 {
7321 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7322 _res = star_pattern_var;
7323 goto done;
7324 }
7325 p->mark = _mark;
7326 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7328 }
7329 { // pattern
7330 if (p->error_indicator) {
7331 D(p->level--);
7332 return NULL;
7333 }
7334 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007335 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007336 if (
7337 (pattern_var = pattern_rule(p)) // pattern
7338 )
7339 {
7340 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7341 _res = pattern_var;
7342 goto done;
7343 }
7344 p->mark = _mark;
7345 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7347 }
7348 _res = NULL;
7349 done:
7350 D(p->level--);
7351 return _res;
7352}
7353
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007354// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7355static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007356star_pattern_rule(Parser *p)
7357{
7358 D(p->level++);
7359 if (p->error_indicator) {
7360 D(p->level--);
7361 return NULL;
7362 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007363 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007364 int _mark = p->mark;
7365 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7366 p->error_indicator = 1;
7367 D(p->level--);
7368 return NULL;
7369 }
7370 int _start_lineno = p->tokens[_mark]->lineno;
7371 UNUSED(_start_lineno); // Only used by EXTRA macro
7372 int _start_col_offset = p->tokens[_mark]->col_offset;
7373 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007374 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007375 if (p->error_indicator) {
7376 D(p->level--);
7377 return NULL;
7378 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007379 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 -08007380 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007381 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007382 if (
7383 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7384 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007385 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007386 )
7387 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007388 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 -08007389 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7390 if (_token == NULL) {
7391 D(p->level--);
7392 return NULL;
7393 }
7394 int _end_lineno = _token->end_lineno;
7395 UNUSED(_end_lineno); // Only used by EXTRA macro
7396 int _end_col_offset = _token->end_col_offset;
7397 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007398 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007399 if (_res == NULL && PyErr_Occurred()) {
7400 p->error_indicator = 1;
7401 D(p->level--);
7402 return NULL;
7403 }
7404 goto done;
7405 }
7406 p->mark = _mark;
7407 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7409 }
7410 { // '*' wildcard_pattern
7411 if (p->error_indicator) {
7412 D(p->level--);
7413 return NULL;
7414 }
7415 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7416 Token * _literal;
7417 pattern_ty wildcard_pattern_var;
7418 if (
7419 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7420 &&
7421 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7422 )
7423 {
7424 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7425 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7426 if (_token == NULL) {
7427 D(p->level--);
7428 return NULL;
7429 }
7430 int _end_lineno = _token->end_lineno;
7431 UNUSED(_end_lineno); // Only used by EXTRA macro
7432 int _end_col_offset = _token->end_col_offset;
7433 UNUSED(_end_col_offset); // Only used by EXTRA macro
7434 _res = _PyAST_MatchStar ( NULL , EXTRA );
7435 if (_res == NULL && PyErr_Occurred()) {
7436 p->error_indicator = 1;
7437 D(p->level--);
7438 return NULL;
7439 }
7440 goto done;
7441 }
7442 p->mark = _mark;
7443 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007445 }
7446 _res = NULL;
7447 done:
7448 D(p->level--);
7449 return _res;
7450}
7451
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007452// mapping_pattern:
7453// | '{' '}'
7454// | '{' double_star_pattern ','? '}'
7455// | '{' items_pattern ',' double_star_pattern ','? '}'
7456// | '{' items_pattern ','? '}'
7457static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007458mapping_pattern_rule(Parser *p)
7459{
7460 D(p->level++);
7461 if (p->error_indicator) {
7462 D(p->level--);
7463 return NULL;
7464 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007465 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007466 int _mark = p->mark;
7467 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7468 p->error_indicator = 1;
7469 D(p->level--);
7470 return NULL;
7471 }
7472 int _start_lineno = p->tokens[_mark]->lineno;
7473 UNUSED(_start_lineno); // Only used by EXTRA macro
7474 int _start_col_offset = p->tokens[_mark]->col_offset;
7475 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007476 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007477 if (p->error_indicator) {
7478 D(p->level--);
7479 return NULL;
7480 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007481 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007482 Token * _literal;
7483 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007484 if (
7485 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7486 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007487 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7488 )
7489 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007490 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007491 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7492 if (_token == NULL) {
7493 D(p->level--);
7494 return NULL;
7495 }
7496 int _end_lineno = _token->end_lineno;
7497 UNUSED(_end_lineno); // Only used by EXTRA macro
7498 int _end_col_offset = _token->end_col_offset;
7499 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007500 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007501 if (_res == NULL && PyErr_Occurred()) {
7502 p->error_indicator = 1;
7503 D(p->level--);
7504 return NULL;
7505 }
7506 goto done;
7507 }
7508 p->mark = _mark;
7509 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7511 }
7512 { // '{' double_star_pattern ','? '}'
7513 if (p->error_indicator) {
7514 D(p->level--);
7515 return NULL;
7516 }
7517 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7518 Token * _literal;
7519 Token * _literal_1;
7520 void *_opt_var;
7521 UNUSED(_opt_var); // Silence compiler warnings
7522 expr_ty rest;
7523 if (
7524 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7525 &&
7526 (rest = double_star_pattern_rule(p)) // double_star_pattern
7527 &&
7528 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7529 &&
7530 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7531 )
7532 {
7533 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7534 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7535 if (_token == NULL) {
7536 D(p->level--);
7537 return NULL;
7538 }
7539 int _end_lineno = _token->end_lineno;
7540 UNUSED(_end_lineno); // Only used by EXTRA macro
7541 int _end_col_offset = _token->end_col_offset;
7542 UNUSED(_end_col_offset); // Only used by EXTRA macro
7543 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7544 if (_res == NULL && PyErr_Occurred()) {
7545 p->error_indicator = 1;
7546 D(p->level--);
7547 return NULL;
7548 }
7549 goto done;
7550 }
7551 p->mark = _mark;
7552 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7554 }
7555 { // '{' items_pattern ',' double_star_pattern ','? '}'
7556 if (p->error_indicator) {
7557 D(p->level--);
7558 return NULL;
7559 }
7560 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7561 Token * _literal;
7562 Token * _literal_1;
7563 Token * _literal_2;
7564 void *_opt_var;
7565 UNUSED(_opt_var); // Silence compiler warnings
7566 asdl_seq* items;
7567 expr_ty rest;
7568 if (
7569 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7570 &&
7571 (items = items_pattern_rule(p)) // items_pattern
7572 &&
7573 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7574 &&
7575 (rest = double_star_pattern_rule(p)) // double_star_pattern
7576 &&
7577 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7578 &&
7579 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7580 )
7581 {
7582 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7583 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7584 if (_token == NULL) {
7585 D(p->level--);
7586 return NULL;
7587 }
7588 int _end_lineno = _token->end_lineno;
7589 UNUSED(_end_lineno); // Only used by EXTRA macro
7590 int _end_col_offset = _token->end_col_offset;
7591 UNUSED(_end_col_offset); // Only used by EXTRA macro
7592 _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 );
7593 if (_res == NULL && PyErr_Occurred()) {
7594 p->error_indicator = 1;
7595 D(p->level--);
7596 return NULL;
7597 }
7598 goto done;
7599 }
7600 p->mark = _mark;
7601 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7603 }
7604 { // '{' items_pattern ','? '}'
7605 if (p->error_indicator) {
7606 D(p->level--);
7607 return NULL;
7608 }
7609 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7610 Token * _literal;
7611 Token * _literal_1;
7612 void *_opt_var;
7613 UNUSED(_opt_var); // Silence compiler warnings
7614 asdl_seq* items;
7615 if (
7616 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7617 &&
7618 (items = items_pattern_rule(p)) // items_pattern
7619 &&
7620 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7621 &&
7622 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7623 )
7624 {
7625 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7626 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7627 if (_token == NULL) {
7628 D(p->level--);
7629 return NULL;
7630 }
7631 int _end_lineno = _token->end_lineno;
7632 UNUSED(_end_lineno); // Only used by EXTRA macro
7633 int _end_col_offset = _token->end_col_offset;
7634 UNUSED(_end_col_offset); // Only used by EXTRA macro
7635 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7636 if (_res == NULL && PyErr_Occurred()) {
7637 p->error_indicator = 1;
7638 D(p->level--);
7639 return NULL;
7640 }
7641 goto done;
7642 }
7643 p->mark = _mark;
7644 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007646 }
7647 _res = NULL;
7648 done:
7649 D(p->level--);
7650 return _res;
7651}
7652
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007653// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007654static asdl_seq*
7655items_pattern_rule(Parser *p)
7656{
7657 D(p->level++);
7658 if (p->error_indicator) {
7659 D(p->level--);
7660 return NULL;
7661 }
7662 asdl_seq* _res = NULL;
7663 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007664 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007665 if (p->error_indicator) {
7666 D(p->level--);
7667 return NULL;
7668 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007669 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 -07007670 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007671 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007672 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007673 )
7674 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007675 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 -07007676 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007677 goto done;
7678 }
7679 p->mark = _mark;
7680 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007682 }
7683 _res = NULL;
7684 done:
7685 D(p->level--);
7686 return _res;
7687}
7688
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007689// key_value_pattern: (literal_expr | attr) ':' pattern
7690static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007691key_value_pattern_rule(Parser *p)
7692{
7693 D(p->level++);
7694 if (p->error_indicator) {
7695 D(p->level--);
7696 return NULL;
7697 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007698 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007699 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007700 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007701 if (p->error_indicator) {
7702 D(p->level--);
7703 return NULL;
7704 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007705 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 -08007706 Token * _literal;
7707 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007708 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007709 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007710 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007711 &&
7712 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7713 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007714 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007715 )
7716 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007717 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7718 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007719 if (_res == NULL && PyErr_Occurred()) {
7720 p->error_indicator = 1;
7721 D(p->level--);
7722 return NULL;
7723 }
7724 goto done;
7725 }
7726 p->mark = _mark;
7727 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007728 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007729 }
7730 _res = NULL;
7731 done:
7732 D(p->level--);
7733 return _res;
7734}
7735
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007736// double_star_pattern: '**' pattern_capture_target
7737static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007738double_star_pattern_rule(Parser *p)
7739{
7740 D(p->level++);
7741 if (p->error_indicator) {
7742 D(p->level--);
7743 return NULL;
7744 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007745 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007746 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007747 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007748 if (p->error_indicator) {
7749 D(p->level--);
7750 return NULL;
7751 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007752 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 -08007753 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007754 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007755 if (
7756 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7757 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007758 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007759 )
7760 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007761 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7762 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007763 if (_res == NULL && PyErr_Occurred()) {
7764 p->error_indicator = 1;
7765 D(p->level--);
7766 return NULL;
7767 }
7768 goto done;
7769 }
7770 p->mark = _mark;
7771 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007773 }
7774 _res = NULL;
7775 done:
7776 D(p->level--);
7777 return _res;
7778}
7779
7780// class_pattern:
7781// | name_or_attr '(' ')'
7782// | name_or_attr '(' positional_patterns ','? ')'
7783// | name_or_attr '(' keyword_patterns ','? ')'
7784// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007785static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007786class_pattern_rule(Parser *p)
7787{
7788 D(p->level++);
7789 if (p->error_indicator) {
7790 D(p->level--);
7791 return NULL;
7792 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007793 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007794 int _mark = p->mark;
7795 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7796 p->error_indicator = 1;
7797 D(p->level--);
7798 return NULL;
7799 }
7800 int _start_lineno = p->tokens[_mark]->lineno;
7801 UNUSED(_start_lineno); // Only used by EXTRA macro
7802 int _start_col_offset = p->tokens[_mark]->col_offset;
7803 UNUSED(_start_col_offset); // Only used by EXTRA macro
7804 { // name_or_attr '(' ')'
7805 if (p->error_indicator) {
7806 D(p->level--);
7807 return NULL;
7808 }
7809 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7810 Token * _literal;
7811 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007812 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007813 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007814 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007815 &&
7816 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7817 &&
7818 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7819 )
7820 {
7821 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7822 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7823 if (_token == NULL) {
7824 D(p->level--);
7825 return NULL;
7826 }
7827 int _end_lineno = _token->end_lineno;
7828 UNUSED(_end_lineno); // Only used by EXTRA macro
7829 int _end_col_offset = _token->end_col_offset;
7830 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007831 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007832 if (_res == NULL && PyErr_Occurred()) {
7833 p->error_indicator = 1;
7834 D(p->level--);
7835 return NULL;
7836 }
7837 goto done;
7838 }
7839 p->mark = _mark;
7840 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7842 }
7843 { // name_or_attr '(' positional_patterns ','? ')'
7844 if (p->error_indicator) {
7845 D(p->level--);
7846 return NULL;
7847 }
7848 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7849 Token * _literal;
7850 Token * _literal_1;
7851 void *_opt_var;
7852 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007853 expr_ty cls;
7854 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007855 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007856 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007857 &&
7858 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7859 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007860 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007861 &&
7862 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7863 &&
7864 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7865 )
7866 {
7867 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7869 if (_token == NULL) {
7870 D(p->level--);
7871 return NULL;
7872 }
7873 int _end_lineno = _token->end_lineno;
7874 UNUSED(_end_lineno); // Only used by EXTRA macro
7875 int _end_col_offset = _token->end_col_offset;
7876 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007877 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007878 if (_res == NULL && PyErr_Occurred()) {
7879 p->error_indicator = 1;
7880 D(p->level--);
7881 return NULL;
7882 }
7883 goto done;
7884 }
7885 p->mark = _mark;
7886 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7888 }
7889 { // name_or_attr '(' keyword_patterns ','? ')'
7890 if (p->error_indicator) {
7891 D(p->level--);
7892 return NULL;
7893 }
7894 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7895 Token * _literal;
7896 Token * _literal_1;
7897 void *_opt_var;
7898 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007899 expr_ty cls;
7900 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007901 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007902 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007903 &&
7904 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7905 &&
7906 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7907 &&
7908 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7909 &&
7910 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7911 )
7912 {
7913 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7914 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7915 if (_token == NULL) {
7916 D(p->level--);
7917 return NULL;
7918 }
7919 int _end_lineno = _token->end_lineno;
7920 UNUSED(_end_lineno); // Only used by EXTRA macro
7921 int _end_col_offset = _token->end_col_offset;
7922 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007923 _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 -08007924 if (_res == NULL && PyErr_Occurred()) {
7925 p->error_indicator = 1;
7926 D(p->level--);
7927 return NULL;
7928 }
7929 goto done;
7930 }
7931 p->mark = _mark;
7932 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7934 }
7935 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7936 if (p->error_indicator) {
7937 D(p->level--);
7938 return NULL;
7939 }
7940 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7941 Token * _literal;
7942 Token * _literal_1;
7943 Token * _literal_2;
7944 void *_opt_var;
7945 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007946 expr_ty cls;
7947 asdl_seq* keywords;
7948 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007949 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007950 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007951 &&
7952 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7953 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007954 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007955 &&
7956 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7957 &&
7958 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7959 &&
7960 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7961 &&
7962 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7963 )
7964 {
7965 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7966 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7967 if (_token == NULL) {
7968 D(p->level--);
7969 return NULL;
7970 }
7971 int _end_lineno = _token->end_lineno;
7972 UNUSED(_end_lineno); // Only used by EXTRA macro
7973 int _end_col_offset = _token->end_col_offset;
7974 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007975 _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 -08007976 if (_res == NULL && PyErr_Occurred()) {
7977 p->error_indicator = 1;
7978 D(p->level--);
7979 return NULL;
7980 }
7981 goto done;
7982 }
7983 p->mark = _mark;
7984 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7986 }
7987 _res = NULL;
7988 done:
7989 D(p->level--);
7990 return _res;
7991}
7992
7993// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007994static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08007995positional_patterns_rule(Parser *p)
7996{
7997 D(p->level++);
7998 if (p->error_indicator) {
7999 D(p->level--);
8000 return NULL;
8001 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008002 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008003 int _mark = p->mark;
8004 { // ','.pattern+
8005 if (p->error_indicator) {
8006 D(p->level--);
8007 return NULL;
8008 }
8009 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008010 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008011 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008012 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008013 )
8014 {
8015 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8016 _res = args;
8017 if (_res == NULL && PyErr_Occurred()) {
8018 p->error_indicator = 1;
8019 D(p->level--);
8020 return NULL;
8021 }
8022 goto done;
8023 }
8024 p->mark = _mark;
8025 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8026 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8027 }
8028 _res = NULL;
8029 done:
8030 D(p->level--);
8031 return _res;
8032}
8033
8034// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008035static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008036keyword_patterns_rule(Parser *p)
8037{
8038 D(p->level++);
8039 if (p->error_indicator) {
8040 D(p->level--);
8041 return NULL;
8042 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008043 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008044 int _mark = p->mark;
8045 { // ','.keyword_pattern+
8046 if (p->error_indicator) {
8047 D(p->level--);
8048 return NULL;
8049 }
8050 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008051 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008052 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008053 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008054 )
8055 {
8056 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 -07008057 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008058 goto done;
8059 }
8060 p->mark = _mark;
8061 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8063 }
8064 _res = NULL;
8065 done:
8066 D(p->level--);
8067 return _res;
8068}
8069
8070// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008071static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008072keyword_pattern_rule(Parser *p)
8073{
8074 D(p->level++);
8075 if (p->error_indicator) {
8076 D(p->level--);
8077 return NULL;
8078 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008079 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008080 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008081 { // NAME '=' pattern
8082 if (p->error_indicator) {
8083 D(p->level--);
8084 return NULL;
8085 }
8086 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8087 Token * _literal;
8088 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008089 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008090 if (
8091 (arg = _PyPegen_name_token(p)) // NAME
8092 &&
8093 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8094 &&
8095 (value = pattern_rule(p)) // pattern
8096 )
8097 {
8098 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 +10008099 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008100 if (_res == NULL && PyErr_Occurred()) {
8101 p->error_indicator = 1;
8102 D(p->level--);
8103 return NULL;
8104 }
8105 goto done;
8106 }
8107 p->mark = _mark;
8108 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8110 }
8111 _res = NULL;
8112 done:
8113 D(p->level--);
8114 return _res;
8115}
8116
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008117// return_stmt: 'return' star_expressions?
8118static stmt_ty
8119return_stmt_rule(Parser *p)
8120{
8121 D(p->level++);
8122 if (p->error_indicator) {
8123 D(p->level--);
8124 return NULL;
8125 }
8126 stmt_ty _res = NULL;
8127 int _mark = p->mark;
8128 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8129 p->error_indicator = 1;
8130 D(p->level--);
8131 return NULL;
8132 }
8133 int _start_lineno = p->tokens[_mark]->lineno;
8134 UNUSED(_start_lineno); // Only used by EXTRA macro
8135 int _start_col_offset = p->tokens[_mark]->col_offset;
8136 UNUSED(_start_col_offset); // Only used by EXTRA macro
8137 { // 'return' star_expressions?
8138 if (p->error_indicator) {
8139 D(p->level--);
8140 return NULL;
8141 }
8142 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8143 Token * _keyword;
8144 void *a;
8145 if (
8146 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8147 &&
8148 (a = star_expressions_rule(p), 1) // star_expressions?
8149 )
8150 {
8151 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8152 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8153 if (_token == NULL) {
8154 D(p->level--);
8155 return NULL;
8156 }
8157 int _end_lineno = _token->end_lineno;
8158 UNUSED(_end_lineno); // Only used by EXTRA macro
8159 int _end_col_offset = _token->end_col_offset;
8160 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008161 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008162 if (_res == NULL && PyErr_Occurred()) {
8163 p->error_indicator = 1;
8164 D(p->level--);
8165 return NULL;
8166 }
8167 goto done;
8168 }
8169 p->mark = _mark;
8170 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8172 }
8173 _res = NULL;
8174 done:
8175 D(p->level--);
8176 return _res;
8177}
8178
8179// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8180static stmt_ty
8181raise_stmt_rule(Parser *p)
8182{
8183 D(p->level++);
8184 if (p->error_indicator) {
8185 D(p->level--);
8186 return NULL;
8187 }
8188 stmt_ty _res = NULL;
8189 int _mark = p->mark;
8190 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8191 p->error_indicator = 1;
8192 D(p->level--);
8193 return NULL;
8194 }
8195 int _start_lineno = p->tokens[_mark]->lineno;
8196 UNUSED(_start_lineno); // Only used by EXTRA macro
8197 int _start_col_offset = p->tokens[_mark]->col_offset;
8198 UNUSED(_start_col_offset); // Only used by EXTRA macro
8199 { // 'raise' expression ['from' expression]
8200 if (p->error_indicator) {
8201 D(p->level--);
8202 return NULL;
8203 }
8204 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8205 Token * _keyword;
8206 expr_ty a;
8207 void *b;
8208 if (
8209 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8210 &&
8211 (a = expression_rule(p)) // expression
8212 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008213 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008214 )
8215 {
8216 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8217 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8218 if (_token == NULL) {
8219 D(p->level--);
8220 return NULL;
8221 }
8222 int _end_lineno = _token->end_lineno;
8223 UNUSED(_end_lineno); // Only used by EXTRA macro
8224 int _end_col_offset = _token->end_col_offset;
8225 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008226 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008227 if (_res == NULL && PyErr_Occurred()) {
8228 p->error_indicator = 1;
8229 D(p->level--);
8230 return NULL;
8231 }
8232 goto done;
8233 }
8234 p->mark = _mark;
8235 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8237 }
8238 { // 'raise'
8239 if (p->error_indicator) {
8240 D(p->level--);
8241 return NULL;
8242 }
8243 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8244 Token * _keyword;
8245 if (
8246 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8247 )
8248 {
8249 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8250 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8251 if (_token == NULL) {
8252 D(p->level--);
8253 return NULL;
8254 }
8255 int _end_lineno = _token->end_lineno;
8256 UNUSED(_end_lineno); // Only used by EXTRA macro
8257 int _end_col_offset = _token->end_col_offset;
8258 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008259 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008260 if (_res == NULL && PyErr_Occurred()) {
8261 p->error_indicator = 1;
8262 D(p->level--);
8263 return NULL;
8264 }
8265 goto done;
8266 }
8267 p->mark = _mark;
8268 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8270 }
8271 _res = NULL;
8272 done:
8273 D(p->level--);
8274 return _res;
8275}
8276
8277// function_def: decorators function_def_raw | function_def_raw
8278static stmt_ty
8279function_def_rule(Parser *p)
8280{
8281 D(p->level++);
8282 if (p->error_indicator) {
8283 D(p->level--);
8284 return NULL;
8285 }
8286 stmt_ty _res = NULL;
8287 int _mark = p->mark;
8288 { // decorators function_def_raw
8289 if (p->error_indicator) {
8290 D(p->level--);
8291 return NULL;
8292 }
8293 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 +01008294 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008295 stmt_ty f;
8296 if (
8297 (d = decorators_rule(p)) // decorators
8298 &&
8299 (f = function_def_raw_rule(p)) // function_def_raw
8300 )
8301 {
8302 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8303 _res = _PyPegen_function_def_decorators ( p , d , f );
8304 if (_res == NULL && PyErr_Occurred()) {
8305 p->error_indicator = 1;
8306 D(p->level--);
8307 return NULL;
8308 }
8309 goto done;
8310 }
8311 p->mark = _mark;
8312 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8314 }
8315 { // function_def_raw
8316 if (p->error_indicator) {
8317 D(p->level--);
8318 return NULL;
8319 }
8320 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8321 stmt_ty function_def_raw_var;
8322 if (
8323 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8324 )
8325 {
8326 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8327 _res = function_def_raw_var;
8328 goto done;
8329 }
8330 p->mark = _mark;
8331 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8332 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8333 }
8334 _res = NULL;
8335 done:
8336 D(p->level--);
8337 return _res;
8338}
8339
8340// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008341// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008342// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8343// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008344static stmt_ty
8345function_def_raw_rule(Parser *p)
8346{
8347 D(p->level++);
8348 if (p->error_indicator) {
8349 D(p->level--);
8350 return NULL;
8351 }
8352 stmt_ty _res = NULL;
8353 int _mark = p->mark;
8354 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8355 p->error_indicator = 1;
8356 D(p->level--);
8357 return NULL;
8358 }
8359 int _start_lineno = p->tokens[_mark]->lineno;
8360 UNUSED(_start_lineno); // Only used by EXTRA macro
8361 int _start_col_offset = p->tokens[_mark]->col_offset;
8362 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008363 if (p->call_invalid_rules) { // invalid_def_raw
8364 if (p->error_indicator) {
8365 D(p->level--);
8366 return NULL;
8367 }
8368 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8369 void *invalid_def_raw_var;
8370 if (
8371 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8372 )
8373 {
8374 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8375 _res = invalid_def_raw_var;
8376 goto done;
8377 }
8378 p->mark = _mark;
8379 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8380 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8381 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008382 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008383 if (p->error_indicator) {
8384 D(p->level--);
8385 return NULL;
8386 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008387 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 +01008388 Token * _keyword;
8389 Token * _literal;
8390 Token * _literal_1;
8391 Token * _literal_2;
8392 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008393 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008394 expr_ty n;
8395 void *params;
8396 void *tc;
8397 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008398 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008399 &&
8400 (n = _PyPegen_name_token(p)) // NAME
8401 &&
8402 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8403 &&
8404 (params = params_rule(p), 1) // params?
8405 &&
8406 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8407 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008408 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008409 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008410 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008411 &&
8412 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8413 &&
8414 (b = block_rule(p)) // block
8415 )
8416 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008417 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 +01008418 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8419 if (_token == NULL) {
8420 D(p->level--);
8421 return NULL;
8422 }
8423 int _end_lineno = _token->end_lineno;
8424 UNUSED(_end_lineno); // Only used by EXTRA macro
8425 int _end_col_offset = _token->end_col_offset;
8426 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008427 _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 +01008428 if (_res == NULL && PyErr_Occurred()) {
8429 p->error_indicator = 1;
8430 D(p->level--);
8431 return NULL;
8432 }
8433 goto done;
8434 }
8435 p->mark = _mark;
8436 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008438 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008439 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008440 if (p->error_indicator) {
8441 D(p->level--);
8442 return NULL;
8443 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008444 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 +01008445 Token * _keyword;
8446 Token * _literal;
8447 Token * _literal_1;
8448 Token * _literal_2;
8449 void *a;
8450 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008451 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008452 expr_ty n;
8453 void *params;
8454 void *tc;
8455 if (
8456 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8457 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008458 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008459 &&
8460 (n = _PyPegen_name_token(p)) // NAME
8461 &&
8462 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8463 &&
8464 (params = params_rule(p), 1) // params?
8465 &&
8466 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8467 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008468 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008469 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008470 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008471 &&
8472 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8473 &&
8474 (b = block_rule(p)) // block
8475 )
8476 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008477 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 +01008478 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8479 if (_token == NULL) {
8480 D(p->level--);
8481 return NULL;
8482 }
8483 int _end_lineno = _token->end_lineno;
8484 UNUSED(_end_lineno); // Only used by EXTRA macro
8485 int _end_col_offset = _token->end_col_offset;
8486 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008487 _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 +01008488 if (_res == NULL && PyErr_Occurred()) {
8489 p->error_indicator = 1;
8490 D(p->level--);
8491 return NULL;
8492 }
8493 goto done;
8494 }
8495 p->mark = _mark;
8496 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008498 }
8499 _res = NULL;
8500 done:
8501 D(p->level--);
8502 return _res;
8503}
8504
8505// func_type_comment:
8506// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8507// | invalid_double_type_comments
8508// | TYPE_COMMENT
8509static Token*
8510func_type_comment_rule(Parser *p)
8511{
8512 D(p->level++);
8513 if (p->error_indicator) {
8514 D(p->level--);
8515 return NULL;
8516 }
8517 Token* _res = NULL;
8518 int _mark = p->mark;
8519 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8520 if (p->error_indicator) {
8521 D(p->level--);
8522 return NULL;
8523 }
8524 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8525 Token * newline_var;
8526 Token * t;
8527 if (
8528 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8529 &&
8530 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8531 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008532 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008533 )
8534 {
8535 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8536 _res = t;
8537 if (_res == NULL && PyErr_Occurred()) {
8538 p->error_indicator = 1;
8539 D(p->level--);
8540 return NULL;
8541 }
8542 goto done;
8543 }
8544 p->mark = _mark;
8545 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8547 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008548 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008549 if (p->error_indicator) {
8550 D(p->level--);
8551 return NULL;
8552 }
8553 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8554 void *invalid_double_type_comments_var;
8555 if (
8556 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8557 )
8558 {
8559 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8560 _res = invalid_double_type_comments_var;
8561 goto done;
8562 }
8563 p->mark = _mark;
8564 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8566 }
8567 { // TYPE_COMMENT
8568 if (p->error_indicator) {
8569 D(p->level--);
8570 return NULL;
8571 }
8572 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8573 Token * type_comment_var;
8574 if (
8575 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8576 )
8577 {
8578 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8579 _res = type_comment_var;
8580 goto done;
8581 }
8582 p->mark = _mark;
8583 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8585 }
8586 _res = NULL;
8587 done:
8588 D(p->level--);
8589 return _res;
8590}
8591
8592// params: invalid_parameters | parameters
8593static arguments_ty
8594params_rule(Parser *p)
8595{
8596 D(p->level++);
8597 if (p->error_indicator) {
8598 D(p->level--);
8599 return NULL;
8600 }
8601 arguments_ty _res = NULL;
8602 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008603 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008604 if (p->error_indicator) {
8605 D(p->level--);
8606 return NULL;
8607 }
8608 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8609 void *invalid_parameters_var;
8610 if (
8611 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8612 )
8613 {
8614 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8615 _res = invalid_parameters_var;
8616 goto done;
8617 }
8618 p->mark = _mark;
8619 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8621 }
8622 { // parameters
8623 if (p->error_indicator) {
8624 D(p->level--);
8625 return NULL;
8626 }
8627 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8628 arguments_ty parameters_var;
8629 if (
8630 (parameters_var = parameters_rule(p)) // parameters
8631 )
8632 {
8633 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8634 _res = parameters_var;
8635 goto done;
8636 }
8637 p->mark = _mark;
8638 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8640 }
8641 _res = NULL;
8642 done:
8643 D(p->level--);
8644 return _res;
8645}
8646
8647// parameters:
8648// | slash_no_default param_no_default* param_with_default* star_etc?
8649// | slash_with_default param_with_default* star_etc?
8650// | param_no_default+ param_with_default* star_etc?
8651// | param_with_default+ star_etc?
8652// | star_etc
8653static arguments_ty
8654parameters_rule(Parser *p)
8655{
8656 D(p->level++);
8657 if (p->error_indicator) {
8658 D(p->level--);
8659 return NULL;
8660 }
8661 arguments_ty _res = NULL;
8662 int _mark = p->mark;
8663 { // slash_no_default param_no_default* param_with_default* star_etc?
8664 if (p->error_indicator) {
8665 D(p->level--);
8666 return NULL;
8667 }
8668 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 +01008669 asdl_arg_seq* a;
8670 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008671 asdl_seq * c;
8672 void *d;
8673 if (
8674 (a = slash_no_default_rule(p)) // slash_no_default
8675 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008676 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008677 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008678 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008679 &&
8680 (d = star_etc_rule(p), 1) // star_etc?
8681 )
8682 {
8683 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?"));
8684 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8685 if (_res == NULL && PyErr_Occurred()) {
8686 p->error_indicator = 1;
8687 D(p->level--);
8688 return NULL;
8689 }
8690 goto done;
8691 }
8692 p->mark = _mark;
8693 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8695 }
8696 { // slash_with_default param_with_default* star_etc?
8697 if (p->error_indicator) {
8698 D(p->level--);
8699 return NULL;
8700 }
8701 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8702 SlashWithDefault* a;
8703 asdl_seq * b;
8704 void *c;
8705 if (
8706 (a = slash_with_default_rule(p)) // slash_with_default
8707 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008708 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008709 &&
8710 (c = star_etc_rule(p), 1) // star_etc?
8711 )
8712 {
8713 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8714 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8715 if (_res == NULL && PyErr_Occurred()) {
8716 p->error_indicator = 1;
8717 D(p->level--);
8718 return NULL;
8719 }
8720 goto done;
8721 }
8722 p->mark = _mark;
8723 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8725 }
8726 { // param_no_default+ param_with_default* star_etc?
8727 if (p->error_indicator) {
8728 D(p->level--);
8729 return NULL;
8730 }
8731 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 +01008732 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008733 asdl_seq * b;
8734 void *c;
8735 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008736 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008737 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008738 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008739 &&
8740 (c = star_etc_rule(p), 1) // star_etc?
8741 )
8742 {
8743 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8744 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8745 if (_res == NULL && PyErr_Occurred()) {
8746 p->error_indicator = 1;
8747 D(p->level--);
8748 return NULL;
8749 }
8750 goto done;
8751 }
8752 p->mark = _mark;
8753 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8755 }
8756 { // param_with_default+ star_etc?
8757 if (p->error_indicator) {
8758 D(p->level--);
8759 return NULL;
8760 }
8761 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8762 asdl_seq * a;
8763 void *b;
8764 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008765 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008766 &&
8767 (b = star_etc_rule(p), 1) // star_etc?
8768 )
8769 {
8770 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8771 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8772 if (_res == NULL && PyErr_Occurred()) {
8773 p->error_indicator = 1;
8774 D(p->level--);
8775 return NULL;
8776 }
8777 goto done;
8778 }
8779 p->mark = _mark;
8780 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8782 }
8783 { // star_etc
8784 if (p->error_indicator) {
8785 D(p->level--);
8786 return NULL;
8787 }
8788 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8789 StarEtc* a;
8790 if (
8791 (a = star_etc_rule(p)) // star_etc
8792 )
8793 {
8794 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8795 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8796 if (_res == NULL && PyErr_Occurred()) {
8797 p->error_indicator = 1;
8798 D(p->level--);
8799 return NULL;
8800 }
8801 goto done;
8802 }
8803 p->mark = _mark;
8804 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8806 }
8807 _res = NULL;
8808 done:
8809 D(p->level--);
8810 return _res;
8811}
8812
8813// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008814static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008815slash_no_default_rule(Parser *p)
8816{
8817 D(p->level++);
8818 if (p->error_indicator) {
8819 D(p->level--);
8820 return NULL;
8821 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008822 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008823 int _mark = p->mark;
8824 { // param_no_default+ '/' ','
8825 if (p->error_indicator) {
8826 D(p->level--);
8827 return NULL;
8828 }
8829 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8830 Token * _literal;
8831 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008832 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008833 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008834 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008835 &&
8836 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8837 &&
8838 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8839 )
8840 {
8841 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8842 _res = a;
8843 if (_res == NULL && PyErr_Occurred()) {
8844 p->error_indicator = 1;
8845 D(p->level--);
8846 return NULL;
8847 }
8848 goto done;
8849 }
8850 p->mark = _mark;
8851 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8853 }
8854 { // param_no_default+ '/' &')'
8855 if (p->error_indicator) {
8856 D(p->level--);
8857 return NULL;
8858 }
8859 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8860 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008861 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008862 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008863 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008864 &&
8865 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8866 &&
8867 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8868 )
8869 {
8870 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8871 _res = a;
8872 if (_res == NULL && PyErr_Occurred()) {
8873 p->error_indicator = 1;
8874 D(p->level--);
8875 return NULL;
8876 }
8877 goto done;
8878 }
8879 p->mark = _mark;
8880 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8882 }
8883 _res = NULL;
8884 done:
8885 D(p->level--);
8886 return _res;
8887}
8888
8889// slash_with_default:
8890// | param_no_default* param_with_default+ '/' ','
8891// | param_no_default* param_with_default+ '/' &')'
8892static SlashWithDefault*
8893slash_with_default_rule(Parser *p)
8894{
8895 D(p->level++);
8896 if (p->error_indicator) {
8897 D(p->level--);
8898 return NULL;
8899 }
8900 SlashWithDefault* _res = NULL;
8901 int _mark = p->mark;
8902 { // param_no_default* param_with_default+ '/' ','
8903 if (p->error_indicator) {
8904 D(p->level--);
8905 return NULL;
8906 }
8907 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8908 Token * _literal;
8909 Token * _literal_1;
8910 asdl_seq * a;
8911 asdl_seq * b;
8912 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008913 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008914 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008915 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008916 &&
8917 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8918 &&
8919 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8920 )
8921 {
8922 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 +01008923 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008924 if (_res == NULL && PyErr_Occurred()) {
8925 p->error_indicator = 1;
8926 D(p->level--);
8927 return NULL;
8928 }
8929 goto done;
8930 }
8931 p->mark = _mark;
8932 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8934 }
8935 { // param_no_default* param_with_default+ '/' &')'
8936 if (p->error_indicator) {
8937 D(p->level--);
8938 return NULL;
8939 }
8940 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8941 Token * _literal;
8942 asdl_seq * a;
8943 asdl_seq * b;
8944 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008945 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008946 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008947 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008948 &&
8949 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8950 &&
8951 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8952 )
8953 {
8954 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 +01008955 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008956 if (_res == NULL && PyErr_Occurred()) {
8957 p->error_indicator = 1;
8958 D(p->level--);
8959 return NULL;
8960 }
8961 goto done;
8962 }
8963 p->mark = _mark;
8964 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8966 }
8967 _res = NULL;
8968 done:
8969 D(p->level--);
8970 return _res;
8971}
8972
8973// star_etc:
8974// | '*' param_no_default param_maybe_default* kwds?
8975// | '*' ',' param_maybe_default+ kwds?
8976// | kwds
8977// | invalid_star_etc
8978static StarEtc*
8979star_etc_rule(Parser *p)
8980{
8981 D(p->level++);
8982 if (p->error_indicator) {
8983 D(p->level--);
8984 return NULL;
8985 }
8986 StarEtc* _res = NULL;
8987 int _mark = p->mark;
8988 { // '*' param_no_default param_maybe_default* kwds?
8989 if (p->error_indicator) {
8990 D(p->level--);
8991 return NULL;
8992 }
8993 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
8994 Token * _literal;
8995 arg_ty a;
8996 asdl_seq * b;
8997 void *c;
8998 if (
8999 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9000 &&
9001 (a = param_no_default_rule(p)) // param_no_default
9002 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009003 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009004 &&
9005 (c = kwds_rule(p), 1) // kwds?
9006 )
9007 {
9008 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9009 _res = _PyPegen_star_etc ( p , a , b , c );
9010 if (_res == NULL && PyErr_Occurred()) {
9011 p->error_indicator = 1;
9012 D(p->level--);
9013 return NULL;
9014 }
9015 goto done;
9016 }
9017 p->mark = _mark;
9018 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9020 }
9021 { // '*' ',' param_maybe_default+ kwds?
9022 if (p->error_indicator) {
9023 D(p->level--);
9024 return NULL;
9025 }
9026 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9027 Token * _literal;
9028 Token * _literal_1;
9029 asdl_seq * b;
9030 void *c;
9031 if (
9032 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9033 &&
9034 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9035 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009036 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009037 &&
9038 (c = kwds_rule(p), 1) // kwds?
9039 )
9040 {
9041 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9042 _res = _PyPegen_star_etc ( p , NULL , b , c );
9043 if (_res == NULL && PyErr_Occurred()) {
9044 p->error_indicator = 1;
9045 D(p->level--);
9046 return NULL;
9047 }
9048 goto done;
9049 }
9050 p->mark = _mark;
9051 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9053 }
9054 { // kwds
9055 if (p->error_indicator) {
9056 D(p->level--);
9057 return NULL;
9058 }
9059 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9060 arg_ty a;
9061 if (
9062 (a = kwds_rule(p)) // kwds
9063 )
9064 {
9065 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9066 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9067 if (_res == NULL && PyErr_Occurred()) {
9068 p->error_indicator = 1;
9069 D(p->level--);
9070 return NULL;
9071 }
9072 goto done;
9073 }
9074 p->mark = _mark;
9075 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9077 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009078 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009079 if (p->error_indicator) {
9080 D(p->level--);
9081 return NULL;
9082 }
9083 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9084 void *invalid_star_etc_var;
9085 if (
9086 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9087 )
9088 {
9089 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9090 _res = invalid_star_etc_var;
9091 goto done;
9092 }
9093 p->mark = _mark;
9094 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9096 }
9097 _res = NULL;
9098 done:
9099 D(p->level--);
9100 return _res;
9101}
9102
9103// kwds: '**' param_no_default
9104static arg_ty
9105kwds_rule(Parser *p)
9106{
9107 D(p->level++);
9108 if (p->error_indicator) {
9109 D(p->level--);
9110 return NULL;
9111 }
9112 arg_ty _res = NULL;
9113 int _mark = p->mark;
9114 { // '**' param_no_default
9115 if (p->error_indicator) {
9116 D(p->level--);
9117 return NULL;
9118 }
9119 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9120 Token * _literal;
9121 arg_ty a;
9122 if (
9123 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9124 &&
9125 (a = param_no_default_rule(p)) // param_no_default
9126 )
9127 {
9128 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9129 _res = a;
9130 if (_res == NULL && PyErr_Occurred()) {
9131 p->error_indicator = 1;
9132 D(p->level--);
9133 return NULL;
9134 }
9135 goto done;
9136 }
9137 p->mark = _mark;
9138 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9139 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9140 }
9141 _res = NULL;
9142 done:
9143 D(p->level--);
9144 return _res;
9145}
9146
9147// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9148static arg_ty
9149param_no_default_rule(Parser *p)
9150{
9151 D(p->level++);
9152 if (p->error_indicator) {
9153 D(p->level--);
9154 return NULL;
9155 }
9156 arg_ty _res = NULL;
9157 int _mark = p->mark;
9158 { // param ',' TYPE_COMMENT?
9159 if (p->error_indicator) {
9160 D(p->level--);
9161 return NULL;
9162 }
9163 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9164 Token * _literal;
9165 arg_ty a;
9166 void *tc;
9167 if (
9168 (a = param_rule(p)) // param
9169 &&
9170 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9171 &&
9172 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9173 )
9174 {
9175 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9176 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9177 if (_res == NULL && PyErr_Occurred()) {
9178 p->error_indicator = 1;
9179 D(p->level--);
9180 return NULL;
9181 }
9182 goto done;
9183 }
9184 p->mark = _mark;
9185 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9187 }
9188 { // param TYPE_COMMENT? &')'
9189 if (p->error_indicator) {
9190 D(p->level--);
9191 return NULL;
9192 }
9193 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9194 arg_ty a;
9195 void *tc;
9196 if (
9197 (a = param_rule(p)) // param
9198 &&
9199 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9200 &&
9201 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9202 )
9203 {
9204 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9205 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9206 if (_res == NULL && PyErr_Occurred()) {
9207 p->error_indicator = 1;
9208 D(p->level--);
9209 return NULL;
9210 }
9211 goto done;
9212 }
9213 p->mark = _mark;
9214 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9216 }
9217 _res = NULL;
9218 done:
9219 D(p->level--);
9220 return _res;
9221}
9222
9223// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9224static NameDefaultPair*
9225param_with_default_rule(Parser *p)
9226{
9227 D(p->level++);
9228 if (p->error_indicator) {
9229 D(p->level--);
9230 return NULL;
9231 }
9232 NameDefaultPair* _res = NULL;
9233 int _mark = p->mark;
9234 { // param default ',' TYPE_COMMENT?
9235 if (p->error_indicator) {
9236 D(p->level--);
9237 return NULL;
9238 }
9239 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9240 Token * _literal;
9241 arg_ty a;
9242 expr_ty c;
9243 void *tc;
9244 if (
9245 (a = param_rule(p)) // param
9246 &&
9247 (c = default_rule(p)) // default
9248 &&
9249 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9250 &&
9251 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9252 )
9253 {
9254 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9255 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9256 if (_res == NULL && PyErr_Occurred()) {
9257 p->error_indicator = 1;
9258 D(p->level--);
9259 return NULL;
9260 }
9261 goto done;
9262 }
9263 p->mark = _mark;
9264 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9266 }
9267 { // param default TYPE_COMMENT? &')'
9268 if (p->error_indicator) {
9269 D(p->level--);
9270 return NULL;
9271 }
9272 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9273 arg_ty a;
9274 expr_ty c;
9275 void *tc;
9276 if (
9277 (a = param_rule(p)) // param
9278 &&
9279 (c = default_rule(p)) // default
9280 &&
9281 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9282 &&
9283 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9284 )
9285 {
9286 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9287 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9288 if (_res == NULL && PyErr_Occurred()) {
9289 p->error_indicator = 1;
9290 D(p->level--);
9291 return NULL;
9292 }
9293 goto done;
9294 }
9295 p->mark = _mark;
9296 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9298 }
9299 _res = NULL;
9300 done:
9301 D(p->level--);
9302 return _res;
9303}
9304
9305// param_maybe_default:
9306// | param default? ',' TYPE_COMMENT?
9307// | param default? TYPE_COMMENT? &')'
9308static NameDefaultPair*
9309param_maybe_default_rule(Parser *p)
9310{
9311 D(p->level++);
9312 if (p->error_indicator) {
9313 D(p->level--);
9314 return NULL;
9315 }
9316 NameDefaultPair* _res = NULL;
9317 int _mark = p->mark;
9318 { // param default? ',' TYPE_COMMENT?
9319 if (p->error_indicator) {
9320 D(p->level--);
9321 return NULL;
9322 }
9323 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9324 Token * _literal;
9325 arg_ty a;
9326 void *c;
9327 void *tc;
9328 if (
9329 (a = param_rule(p)) // param
9330 &&
9331 (c = default_rule(p), 1) // default?
9332 &&
9333 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9334 &&
9335 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9336 )
9337 {
9338 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9339 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9340 if (_res == NULL && PyErr_Occurred()) {
9341 p->error_indicator = 1;
9342 D(p->level--);
9343 return NULL;
9344 }
9345 goto done;
9346 }
9347 p->mark = _mark;
9348 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9350 }
9351 { // param default? TYPE_COMMENT? &')'
9352 if (p->error_indicator) {
9353 D(p->level--);
9354 return NULL;
9355 }
9356 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9357 arg_ty a;
9358 void *c;
9359 void *tc;
9360 if (
9361 (a = param_rule(p)) // param
9362 &&
9363 (c = default_rule(p), 1) // default?
9364 &&
9365 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9366 &&
9367 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9368 )
9369 {
9370 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9371 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9372 if (_res == NULL && PyErr_Occurred()) {
9373 p->error_indicator = 1;
9374 D(p->level--);
9375 return NULL;
9376 }
9377 goto done;
9378 }
9379 p->mark = _mark;
9380 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9382 }
9383 _res = NULL;
9384 done:
9385 D(p->level--);
9386 return _res;
9387}
9388
9389// param: NAME annotation?
9390static arg_ty
9391param_rule(Parser *p)
9392{
9393 D(p->level++);
9394 if (p->error_indicator) {
9395 D(p->level--);
9396 return NULL;
9397 }
9398 arg_ty _res = NULL;
9399 int _mark = p->mark;
9400 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9401 p->error_indicator = 1;
9402 D(p->level--);
9403 return NULL;
9404 }
9405 int _start_lineno = p->tokens[_mark]->lineno;
9406 UNUSED(_start_lineno); // Only used by EXTRA macro
9407 int _start_col_offset = p->tokens[_mark]->col_offset;
9408 UNUSED(_start_col_offset); // Only used by EXTRA macro
9409 { // NAME annotation?
9410 if (p->error_indicator) {
9411 D(p->level--);
9412 return NULL;
9413 }
9414 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9415 expr_ty a;
9416 void *b;
9417 if (
9418 (a = _PyPegen_name_token(p)) // NAME
9419 &&
9420 (b = annotation_rule(p), 1) // annotation?
9421 )
9422 {
9423 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9424 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9425 if (_token == NULL) {
9426 D(p->level--);
9427 return NULL;
9428 }
9429 int _end_lineno = _token->end_lineno;
9430 UNUSED(_end_lineno); // Only used by EXTRA macro
9431 int _end_col_offset = _token->end_col_offset;
9432 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009433 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009434 if (_res == NULL && PyErr_Occurred()) {
9435 p->error_indicator = 1;
9436 D(p->level--);
9437 return NULL;
9438 }
9439 goto done;
9440 }
9441 p->mark = _mark;
9442 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9444 }
9445 _res = NULL;
9446 done:
9447 D(p->level--);
9448 return _res;
9449}
9450
9451// annotation: ':' expression
9452static expr_ty
9453annotation_rule(Parser *p)
9454{
9455 D(p->level++);
9456 if (p->error_indicator) {
9457 D(p->level--);
9458 return NULL;
9459 }
9460 expr_ty _res = NULL;
9461 int _mark = p->mark;
9462 { // ':' expression
9463 if (p->error_indicator) {
9464 D(p->level--);
9465 return NULL;
9466 }
9467 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9468 Token * _literal;
9469 expr_ty a;
9470 if (
9471 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9472 &&
9473 (a = expression_rule(p)) // expression
9474 )
9475 {
9476 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9477 _res = a;
9478 if (_res == NULL && PyErr_Occurred()) {
9479 p->error_indicator = 1;
9480 D(p->level--);
9481 return NULL;
9482 }
9483 goto done;
9484 }
9485 p->mark = _mark;
9486 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9488 }
9489 _res = NULL;
9490 done:
9491 D(p->level--);
9492 return _res;
9493}
9494
9495// default: '=' expression
9496static expr_ty
9497default_rule(Parser *p)
9498{
9499 D(p->level++);
9500 if (p->error_indicator) {
9501 D(p->level--);
9502 return NULL;
9503 }
9504 expr_ty _res = NULL;
9505 int _mark = p->mark;
9506 { // '=' expression
9507 if (p->error_indicator) {
9508 D(p->level--);
9509 return NULL;
9510 }
9511 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9512 Token * _literal;
9513 expr_ty a;
9514 if (
9515 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9516 &&
9517 (a = expression_rule(p)) // expression
9518 )
9519 {
9520 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9521 _res = a;
9522 if (_res == NULL && PyErr_Occurred()) {
9523 p->error_indicator = 1;
9524 D(p->level--);
9525 return NULL;
9526 }
9527 goto done;
9528 }
9529 p->mark = _mark;
9530 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9532 }
9533 _res = NULL;
9534 done:
9535 D(p->level--);
9536 return _res;
9537}
9538
9539// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009540static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009541decorators_rule(Parser *p)
9542{
9543 D(p->level++);
9544 if (p->error_indicator) {
9545 D(p->level--);
9546 return NULL;
9547 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009548 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009549 int _mark = p->mark;
9550 { // (('@' named_expression NEWLINE))+
9551 if (p->error_indicator) {
9552 D(p->level--);
9553 return NULL;
9554 }
9555 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009556 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009557 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009558 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009559 )
9560 {
9561 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9562 _res = a;
9563 if (_res == NULL && PyErr_Occurred()) {
9564 p->error_indicator = 1;
9565 D(p->level--);
9566 return NULL;
9567 }
9568 goto done;
9569 }
9570 p->mark = _mark;
9571 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9573 }
9574 _res = NULL;
9575 done:
9576 D(p->level--);
9577 return _res;
9578}
9579
9580// class_def: decorators class_def_raw | class_def_raw
9581static stmt_ty
9582class_def_rule(Parser *p)
9583{
9584 D(p->level++);
9585 if (p->error_indicator) {
9586 D(p->level--);
9587 return NULL;
9588 }
9589 stmt_ty _res = NULL;
9590 int _mark = p->mark;
9591 { // decorators class_def_raw
9592 if (p->error_indicator) {
9593 D(p->level--);
9594 return NULL;
9595 }
9596 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 +01009597 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009598 stmt_ty b;
9599 if (
9600 (a = decorators_rule(p)) // decorators
9601 &&
9602 (b = class_def_raw_rule(p)) // class_def_raw
9603 )
9604 {
9605 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9606 _res = _PyPegen_class_def_decorators ( p , a , b );
9607 if (_res == NULL && PyErr_Occurred()) {
9608 p->error_indicator = 1;
9609 D(p->level--);
9610 return NULL;
9611 }
9612 goto done;
9613 }
9614 p->mark = _mark;
9615 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9617 }
9618 { // class_def_raw
9619 if (p->error_indicator) {
9620 D(p->level--);
9621 return NULL;
9622 }
9623 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9624 stmt_ty class_def_raw_var;
9625 if (
9626 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9627 )
9628 {
9629 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9630 _res = class_def_raw_var;
9631 goto done;
9632 }
9633 p->mark = _mark;
9634 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9636 }
9637 _res = NULL;
9638 done:
9639 D(p->level--);
9640 return _res;
9641}
9642
Pablo Galindo56c95df2021-04-21 15:28:21 +01009643// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009644static stmt_ty
9645class_def_raw_rule(Parser *p)
9646{
9647 D(p->level++);
9648 if (p->error_indicator) {
9649 D(p->level--);
9650 return NULL;
9651 }
9652 stmt_ty _res = NULL;
9653 int _mark = p->mark;
9654 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9655 p->error_indicator = 1;
9656 D(p->level--);
9657 return NULL;
9658 }
9659 int _start_lineno = p->tokens[_mark]->lineno;
9660 UNUSED(_start_lineno); // Only used by EXTRA macro
9661 int _start_col_offset = p->tokens[_mark]->col_offset;
9662 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009663 if (p->call_invalid_rules) { // invalid_class_def_raw
9664 if (p->error_indicator) {
9665 D(p->level--);
9666 return NULL;
9667 }
9668 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9669 void *invalid_class_def_raw_var;
9670 if (
9671 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9672 )
9673 {
9674 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9675 _res = invalid_class_def_raw_var;
9676 goto done;
9677 }
9678 p->mark = _mark;
9679 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9681 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009682 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009683 if (p->error_indicator) {
9684 D(p->level--);
9685 return NULL;
9686 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009687 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 +01009688 Token * _keyword;
9689 Token * _literal;
9690 expr_ty a;
9691 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009692 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009693 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009694 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009695 &&
9696 (a = _PyPegen_name_token(p)) // NAME
9697 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009698 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009699 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009700 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009701 &&
9702 (c = block_rule(p)) // block
9703 )
9704 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009705 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 +01009706 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9707 if (_token == NULL) {
9708 D(p->level--);
9709 return NULL;
9710 }
9711 int _end_lineno = _token->end_lineno;
9712 UNUSED(_end_lineno); // Only used by EXTRA macro
9713 int _end_col_offset = _token->end_col_offset;
9714 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009715 _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 +01009716 if (_res == NULL && PyErr_Occurred()) {
9717 p->error_indicator = 1;
9718 D(p->level--);
9719 return NULL;
9720 }
9721 goto done;
9722 }
9723 p->mark = _mark;
9724 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009726 }
9727 _res = NULL;
9728 done:
9729 D(p->level--);
9730 return _res;
9731}
9732
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009733// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009734static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009735block_rule(Parser *p)
9736{
9737 D(p->level++);
9738 if (p->error_indicator) {
9739 D(p->level--);
9740 return NULL;
9741 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009742 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009743 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9744 D(p->level--);
9745 return _res;
9746 }
9747 int _mark = p->mark;
9748 { // NEWLINE INDENT statements DEDENT
9749 if (p->error_indicator) {
9750 D(p->level--);
9751 return NULL;
9752 }
9753 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 +01009754 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009755 Token * dedent_var;
9756 Token * indent_var;
9757 Token * newline_var;
9758 if (
9759 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9760 &&
9761 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9762 &&
9763 (a = statements_rule(p)) // statements
9764 &&
9765 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9766 )
9767 {
9768 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9769 _res = a;
9770 if (_res == NULL && PyErr_Occurred()) {
9771 p->error_indicator = 1;
9772 D(p->level--);
9773 return NULL;
9774 }
9775 goto done;
9776 }
9777 p->mark = _mark;
9778 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9780 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009781 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009782 if (p->error_indicator) {
9783 D(p->level--);
9784 return NULL;
9785 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009786 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9787 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009788 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009789 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009790 )
9791 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009792 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9793 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009794 goto done;
9795 }
9796 p->mark = _mark;
9797 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009799 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009800 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009801 if (p->error_indicator) {
9802 D(p->level--);
9803 return NULL;
9804 }
9805 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9806 void *invalid_block_var;
9807 if (
9808 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9809 )
9810 {
9811 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9812 _res = invalid_block_var;
9813 goto done;
9814 }
9815 p->mark = _mark;
9816 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9818 }
9819 _res = NULL;
9820 done:
9821 _PyPegen_insert_memo(p, _mark, block_type, _res);
9822 D(p->level--);
9823 return _res;
9824}
9825
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009826// star_expressions:
9827// | star_expression ((',' star_expression))+ ','?
9828// | star_expression ','
9829// | star_expression
9830static expr_ty
9831star_expressions_rule(Parser *p)
9832{
9833 D(p->level++);
9834 if (p->error_indicator) {
9835 D(p->level--);
9836 return NULL;
9837 }
9838 expr_ty _res = NULL;
9839 int _mark = p->mark;
9840 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9841 p->error_indicator = 1;
9842 D(p->level--);
9843 return NULL;
9844 }
9845 int _start_lineno = p->tokens[_mark]->lineno;
9846 UNUSED(_start_lineno); // Only used by EXTRA macro
9847 int _start_col_offset = p->tokens[_mark]->col_offset;
9848 UNUSED(_start_col_offset); // Only used by EXTRA macro
9849 { // star_expression ((',' star_expression))+ ','?
9850 if (p->error_indicator) {
9851 D(p->level--);
9852 return NULL;
9853 }
9854 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9855 void *_opt_var;
9856 UNUSED(_opt_var); // Silence compiler warnings
9857 expr_ty a;
9858 asdl_seq * b;
9859 if (
9860 (a = star_expression_rule(p)) // star_expression
9861 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009862 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009863 &&
9864 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9865 )
9866 {
9867 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9868 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9869 if (_token == NULL) {
9870 D(p->level--);
9871 return NULL;
9872 }
9873 int _end_lineno = _token->end_lineno;
9874 UNUSED(_end_lineno); // Only used by EXTRA macro
9875 int _end_col_offset = _token->end_col_offset;
9876 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009877 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009878 if (_res == NULL && PyErr_Occurred()) {
9879 p->error_indicator = 1;
9880 D(p->level--);
9881 return NULL;
9882 }
9883 goto done;
9884 }
9885 p->mark = _mark;
9886 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9888 }
9889 { // star_expression ','
9890 if (p->error_indicator) {
9891 D(p->level--);
9892 return NULL;
9893 }
9894 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9895 Token * _literal;
9896 expr_ty a;
9897 if (
9898 (a = star_expression_rule(p)) // star_expression
9899 &&
9900 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9901 )
9902 {
9903 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9904 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9905 if (_token == NULL) {
9906 D(p->level--);
9907 return NULL;
9908 }
9909 int _end_lineno = _token->end_lineno;
9910 UNUSED(_end_lineno); // Only used by EXTRA macro
9911 int _end_col_offset = _token->end_col_offset;
9912 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009913 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009914 if (_res == NULL && PyErr_Occurred()) {
9915 p->error_indicator = 1;
9916 D(p->level--);
9917 return NULL;
9918 }
9919 goto done;
9920 }
9921 p->mark = _mark;
9922 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9924 }
9925 { // star_expression
9926 if (p->error_indicator) {
9927 D(p->level--);
9928 return NULL;
9929 }
9930 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9931 expr_ty star_expression_var;
9932 if (
9933 (star_expression_var = star_expression_rule(p)) // star_expression
9934 )
9935 {
9936 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9937 _res = star_expression_var;
9938 goto done;
9939 }
9940 p->mark = _mark;
9941 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9943 }
9944 _res = NULL;
9945 done:
9946 D(p->level--);
9947 return _res;
9948}
9949
9950// star_expression: '*' bitwise_or | expression
9951static expr_ty
9952star_expression_rule(Parser *p)
9953{
9954 D(p->level++);
9955 if (p->error_indicator) {
9956 D(p->level--);
9957 return NULL;
9958 }
9959 expr_ty _res = NULL;
9960 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9961 D(p->level--);
9962 return _res;
9963 }
9964 int _mark = p->mark;
9965 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9966 p->error_indicator = 1;
9967 D(p->level--);
9968 return NULL;
9969 }
9970 int _start_lineno = p->tokens[_mark]->lineno;
9971 UNUSED(_start_lineno); // Only used by EXTRA macro
9972 int _start_col_offset = p->tokens[_mark]->col_offset;
9973 UNUSED(_start_col_offset); // Only used by EXTRA macro
9974 { // '*' bitwise_or
9975 if (p->error_indicator) {
9976 D(p->level--);
9977 return NULL;
9978 }
9979 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9980 Token * _literal;
9981 expr_ty a;
9982 if (
9983 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9984 &&
9985 (a = bitwise_or_rule(p)) // bitwise_or
9986 )
9987 {
9988 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
9989 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9990 if (_token == NULL) {
9991 D(p->level--);
9992 return NULL;
9993 }
9994 int _end_lineno = _token->end_lineno;
9995 UNUSED(_end_lineno); // Only used by EXTRA macro
9996 int _end_col_offset = _token->end_col_offset;
9997 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009998 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009999 if (_res == NULL && PyErr_Occurred()) {
10000 p->error_indicator = 1;
10001 D(p->level--);
10002 return NULL;
10003 }
10004 goto done;
10005 }
10006 p->mark = _mark;
10007 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10009 }
10010 { // expression
10011 if (p->error_indicator) {
10012 D(p->level--);
10013 return NULL;
10014 }
10015 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10016 expr_ty expression_var;
10017 if (
10018 (expression_var = expression_rule(p)) // expression
10019 )
10020 {
10021 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10022 _res = expression_var;
10023 goto done;
10024 }
10025 p->mark = _mark;
10026 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10028 }
10029 _res = NULL;
10030 done:
10031 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10032 D(p->level--);
10033 return _res;
10034}
10035
10036// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010037static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010038star_named_expressions_rule(Parser *p)
10039{
10040 D(p->level++);
10041 if (p->error_indicator) {
10042 D(p->level--);
10043 return NULL;
10044 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010045 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010046 int _mark = p->mark;
10047 { // ','.star_named_expression+ ','?
10048 if (p->error_indicator) {
10049 D(p->level--);
10050 return NULL;
10051 }
10052 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10053 void *_opt_var;
10054 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010055 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010056 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010057 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010058 &&
10059 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10060 )
10061 {
10062 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10063 _res = a;
10064 if (_res == NULL && PyErr_Occurred()) {
10065 p->error_indicator = 1;
10066 D(p->level--);
10067 return NULL;
10068 }
10069 goto done;
10070 }
10071 p->mark = _mark;
10072 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10074 }
10075 _res = NULL;
10076 done:
10077 D(p->level--);
10078 return _res;
10079}
10080
10081// star_named_expression: '*' bitwise_or | named_expression
10082static expr_ty
10083star_named_expression_rule(Parser *p)
10084{
10085 D(p->level++);
10086 if (p->error_indicator) {
10087 D(p->level--);
10088 return NULL;
10089 }
10090 expr_ty _res = NULL;
10091 int _mark = p->mark;
10092 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10093 p->error_indicator = 1;
10094 D(p->level--);
10095 return NULL;
10096 }
10097 int _start_lineno = p->tokens[_mark]->lineno;
10098 UNUSED(_start_lineno); // Only used by EXTRA macro
10099 int _start_col_offset = p->tokens[_mark]->col_offset;
10100 UNUSED(_start_col_offset); // Only used by EXTRA macro
10101 { // '*' bitwise_or
10102 if (p->error_indicator) {
10103 D(p->level--);
10104 return NULL;
10105 }
10106 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10107 Token * _literal;
10108 expr_ty a;
10109 if (
10110 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10111 &&
10112 (a = bitwise_or_rule(p)) // bitwise_or
10113 )
10114 {
10115 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10116 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10117 if (_token == NULL) {
10118 D(p->level--);
10119 return NULL;
10120 }
10121 int _end_lineno = _token->end_lineno;
10122 UNUSED(_end_lineno); // Only used by EXTRA macro
10123 int _end_col_offset = _token->end_col_offset;
10124 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010125 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010126 if (_res == NULL && PyErr_Occurred()) {
10127 p->error_indicator = 1;
10128 D(p->level--);
10129 return NULL;
10130 }
10131 goto done;
10132 }
10133 p->mark = _mark;
10134 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10136 }
10137 { // named_expression
10138 if (p->error_indicator) {
10139 D(p->level--);
10140 return NULL;
10141 }
10142 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10143 expr_ty named_expression_var;
10144 if (
10145 (named_expression_var = named_expression_rule(p)) // named_expression
10146 )
10147 {
10148 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10149 _res = named_expression_var;
10150 goto done;
10151 }
10152 p->mark = _mark;
10153 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10155 }
10156 _res = NULL;
10157 done:
10158 D(p->level--);
10159 return _res;
10160}
10161
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010162// assigment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010163static expr_ty
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010164assigment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010165{
10166 D(p->level++);
10167 if (p->error_indicator) {
10168 D(p->level--);
10169 return NULL;
10170 }
10171 expr_ty _res = NULL;
10172 int _mark = p->mark;
10173 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10174 p->error_indicator = 1;
10175 D(p->level--);
10176 return NULL;
10177 }
10178 int _start_lineno = p->tokens[_mark]->lineno;
10179 UNUSED(_start_lineno); // Only used by EXTRA macro
10180 int _start_col_offset = p->tokens[_mark]->col_offset;
10181 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010182 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010183 if (p->error_indicator) {
10184 D(p->level--);
10185 return NULL;
10186 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010187 D(fprintf(stderr, "%*c> assigment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010188 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010189 Token * _literal;
10190 expr_ty a;
10191 expr_ty b;
10192 if (
10193 (a = _PyPegen_name_token(p)) // NAME
10194 &&
10195 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10196 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010197 (_cut_var = 1)
10198 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010199 (b = expression_rule(p)) // expression
10200 )
10201 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010202 D(fprintf(stderr, "%*c+ assigment_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010203 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10204 if (_token == NULL) {
10205 D(p->level--);
10206 return NULL;
10207 }
10208 int _end_lineno = _token->end_lineno;
10209 UNUSED(_end_lineno); // Only used by EXTRA macro
10210 int _end_col_offset = _token->end_col_offset;
10211 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010212 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010213 if (_res == NULL && PyErr_Occurred()) {
10214 p->error_indicator = 1;
10215 D(p->level--);
10216 return NULL;
10217 }
10218 goto done;
10219 }
10220 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010221 D(fprintf(stderr, "%*c%s assigment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10223 if (_cut_var) {
10224 D(p->level--);
10225 return NULL;
10226 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010227 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010228 _res = NULL;
10229 done:
10230 D(p->level--);
10231 return _res;
10232}
10233
10234// named_expression: assigment_expression | invalid_named_expression | expression !':='
10235static expr_ty
10236named_expression_rule(Parser *p)
10237{
10238 D(p->level++);
10239 if (p->error_indicator) {
10240 D(p->level--);
10241 return NULL;
10242 }
10243 expr_ty _res = NULL;
10244 int _mark = p->mark;
10245 { // assigment_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, "assigment_expression"));
10251 expr_ty assigment_expression_var;
10252 if (
10253 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
10254 )
10255 {
10256 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10257 _res = assigment_expression_var;
10258 goto done;
10259 }
10260 p->mark = _mark;
10261 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
10263 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010264 if (p->call_invalid_rules) { // invalid_named_expression
10265 if (p->error_indicator) {
10266 D(p->level--);
10267 return NULL;
10268 }
10269 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10270 void *invalid_named_expression_var;
10271 if (
10272 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10273 )
10274 {
10275 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10276 _res = invalid_named_expression_var;
10277 goto done;
10278 }
10279 p->mark = _mark;
10280 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
10282 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010283 { // expression !':='
10284 if (p->error_indicator) {
10285 D(p->level--);
10286 return NULL;
10287 }
10288 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10289 expr_ty expression_var;
10290 if (
10291 (expression_var = expression_rule(p)) // expression
10292 &&
10293 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10294 )
10295 {
10296 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10297 _res = expression_var;
10298 goto done;
10299 }
10300 p->mark = _mark;
10301 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10303 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010304 _res = NULL;
10305 done:
10306 D(p->level--);
10307 return _res;
10308}
10309
10310// annotated_rhs: yield_expr | star_expressions
10311static expr_ty
10312annotated_rhs_rule(Parser *p)
10313{
10314 D(p->level++);
10315 if (p->error_indicator) {
10316 D(p->level--);
10317 return NULL;
10318 }
10319 expr_ty _res = NULL;
10320 int _mark = p->mark;
10321 { // yield_expr
10322 if (p->error_indicator) {
10323 D(p->level--);
10324 return NULL;
10325 }
10326 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10327 expr_ty yield_expr_var;
10328 if (
10329 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10330 )
10331 {
10332 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10333 _res = yield_expr_var;
10334 goto done;
10335 }
10336 p->mark = _mark;
10337 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10339 }
10340 { // star_expressions
10341 if (p->error_indicator) {
10342 D(p->level--);
10343 return NULL;
10344 }
10345 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10346 expr_ty star_expressions_var;
10347 if (
10348 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10349 )
10350 {
10351 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10352 _res = star_expressions_var;
10353 goto done;
10354 }
10355 p->mark = _mark;
10356 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10358 }
10359 _res = NULL;
10360 done:
10361 D(p->level--);
10362 return _res;
10363}
10364
10365// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10366static expr_ty
10367expressions_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 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10377 p->error_indicator = 1;
10378 D(p->level--);
10379 return NULL;
10380 }
10381 int _start_lineno = p->tokens[_mark]->lineno;
10382 UNUSED(_start_lineno); // Only used by EXTRA macro
10383 int _start_col_offset = p->tokens[_mark]->col_offset;
10384 UNUSED(_start_col_offset); // Only used by EXTRA macro
10385 { // expression ((',' expression))+ ','?
10386 if (p->error_indicator) {
10387 D(p->level--);
10388 return NULL;
10389 }
10390 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10391 void *_opt_var;
10392 UNUSED(_opt_var); // Silence compiler warnings
10393 expr_ty a;
10394 asdl_seq * b;
10395 if (
10396 (a = expression_rule(p)) // expression
10397 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010398 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010399 &&
10400 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10401 )
10402 {
10403 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10404 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10405 if (_token == NULL) {
10406 D(p->level--);
10407 return NULL;
10408 }
10409 int _end_lineno = _token->end_lineno;
10410 UNUSED(_end_lineno); // Only used by EXTRA macro
10411 int _end_col_offset = _token->end_col_offset;
10412 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010413 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010414 if (_res == NULL && PyErr_Occurred()) {
10415 p->error_indicator = 1;
10416 D(p->level--);
10417 return NULL;
10418 }
10419 goto done;
10420 }
10421 p->mark = _mark;
10422 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10423 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10424 }
10425 { // expression ','
10426 if (p->error_indicator) {
10427 D(p->level--);
10428 return NULL;
10429 }
10430 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10431 Token * _literal;
10432 expr_ty a;
10433 if (
10434 (a = expression_rule(p)) // expression
10435 &&
10436 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10437 )
10438 {
10439 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10440 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10441 if (_token == NULL) {
10442 D(p->level--);
10443 return NULL;
10444 }
10445 int _end_lineno = _token->end_lineno;
10446 UNUSED(_end_lineno); // Only used by EXTRA macro
10447 int _end_col_offset = _token->end_col_offset;
10448 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010449 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010450 if (_res == NULL && PyErr_Occurred()) {
10451 p->error_indicator = 1;
10452 D(p->level--);
10453 return NULL;
10454 }
10455 goto done;
10456 }
10457 p->mark = _mark;
10458 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10460 }
10461 { // expression
10462 if (p->error_indicator) {
10463 D(p->level--);
10464 return NULL;
10465 }
10466 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10467 expr_ty expression_var;
10468 if (
10469 (expression_var = expression_rule(p)) // expression
10470 )
10471 {
10472 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10473 _res = expression_var;
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"));
10479 }
10480 _res = NULL;
10481 done:
10482 D(p->level--);
10483 return _res;
10484}
10485
Pablo Galindob2802482021-04-15 21:38:45 +010010486// expression:
10487// | invalid_expression
10488// | disjunction 'if' disjunction 'else' expression
10489// | disjunction
10490// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010491static expr_ty
10492expression_rule(Parser *p)
10493{
10494 D(p->level++);
10495 if (p->error_indicator) {
10496 D(p->level--);
10497 return NULL;
10498 }
10499 expr_ty _res = NULL;
10500 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10501 D(p->level--);
10502 return _res;
10503 }
10504 int _mark = p->mark;
10505 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10506 p->error_indicator = 1;
10507 D(p->level--);
10508 return NULL;
10509 }
10510 int _start_lineno = p->tokens[_mark]->lineno;
10511 UNUSED(_start_lineno); // Only used by EXTRA macro
10512 int _start_col_offset = p->tokens[_mark]->col_offset;
10513 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010514 if (p->call_invalid_rules) { // invalid_expression
10515 if (p->error_indicator) {
10516 D(p->level--);
10517 return NULL;
10518 }
10519 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10520 void *invalid_expression_var;
10521 if (
10522 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10523 )
10524 {
10525 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10526 _res = invalid_expression_var;
10527 goto done;
10528 }
10529 p->mark = _mark;
10530 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10532 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010533 { // disjunction 'if' disjunction 'else' expression
10534 if (p->error_indicator) {
10535 D(p->level--);
10536 return NULL;
10537 }
10538 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10539 Token * _keyword;
10540 Token * _keyword_1;
10541 expr_ty a;
10542 expr_ty b;
10543 expr_ty c;
10544 if (
10545 (a = disjunction_rule(p)) // disjunction
10546 &&
10547 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10548 &&
10549 (b = disjunction_rule(p)) // disjunction
10550 &&
10551 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10552 &&
10553 (c = expression_rule(p)) // expression
10554 )
10555 {
10556 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10557 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10558 if (_token == NULL) {
10559 D(p->level--);
10560 return NULL;
10561 }
10562 int _end_lineno = _token->end_lineno;
10563 UNUSED(_end_lineno); // Only used by EXTRA macro
10564 int _end_col_offset = _token->end_col_offset;
10565 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010566 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010567 if (_res == NULL && PyErr_Occurred()) {
10568 p->error_indicator = 1;
10569 D(p->level--);
10570 return NULL;
10571 }
10572 goto done;
10573 }
10574 p->mark = _mark;
10575 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10576 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10577 }
10578 { // disjunction
10579 if (p->error_indicator) {
10580 D(p->level--);
10581 return NULL;
10582 }
10583 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10584 expr_ty disjunction_var;
10585 if (
10586 (disjunction_var = disjunction_rule(p)) // disjunction
10587 )
10588 {
10589 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10590 _res = disjunction_var;
10591 goto done;
10592 }
10593 p->mark = _mark;
10594 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10596 }
10597 { // lambdef
10598 if (p->error_indicator) {
10599 D(p->level--);
10600 return NULL;
10601 }
10602 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10603 expr_ty lambdef_var;
10604 if (
10605 (lambdef_var = lambdef_rule(p)) // lambdef
10606 )
10607 {
10608 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10609 _res = lambdef_var;
10610 goto done;
10611 }
10612 p->mark = _mark;
10613 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10615 }
10616 _res = NULL;
10617 done:
10618 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10619 D(p->level--);
10620 return _res;
10621}
10622
10623// lambdef: 'lambda' lambda_params? ':' expression
10624static expr_ty
10625lambdef_rule(Parser *p)
10626{
10627 D(p->level++);
10628 if (p->error_indicator) {
10629 D(p->level--);
10630 return NULL;
10631 }
10632 expr_ty _res = NULL;
10633 int _mark = p->mark;
10634 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10635 p->error_indicator = 1;
10636 D(p->level--);
10637 return NULL;
10638 }
10639 int _start_lineno = p->tokens[_mark]->lineno;
10640 UNUSED(_start_lineno); // Only used by EXTRA macro
10641 int _start_col_offset = p->tokens[_mark]->col_offset;
10642 UNUSED(_start_col_offset); // Only used by EXTRA macro
10643 { // 'lambda' lambda_params? ':' expression
10644 if (p->error_indicator) {
10645 D(p->level--);
10646 return NULL;
10647 }
10648 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10649 Token * _keyword;
10650 Token * _literal;
10651 void *a;
10652 expr_ty b;
10653 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010654 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010655 &&
10656 (a = lambda_params_rule(p), 1) // lambda_params?
10657 &&
10658 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10659 &&
10660 (b = expression_rule(p)) // expression
10661 )
10662 {
10663 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10664 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10665 if (_token == NULL) {
10666 D(p->level--);
10667 return NULL;
10668 }
10669 int _end_lineno = _token->end_lineno;
10670 UNUSED(_end_lineno); // Only used by EXTRA macro
10671 int _end_col_offset = _token->end_col_offset;
10672 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010673 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010674 if (_res == NULL && PyErr_Occurred()) {
10675 p->error_indicator = 1;
10676 D(p->level--);
10677 return NULL;
10678 }
10679 goto done;
10680 }
10681 p->mark = _mark;
10682 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10684 }
10685 _res = NULL;
10686 done:
10687 D(p->level--);
10688 return _res;
10689}
10690
10691// lambda_params: invalid_lambda_parameters | lambda_parameters
10692static arguments_ty
10693lambda_params_rule(Parser *p)
10694{
10695 D(p->level++);
10696 if (p->error_indicator) {
10697 D(p->level--);
10698 return NULL;
10699 }
10700 arguments_ty _res = NULL;
10701 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010702 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010703 if (p->error_indicator) {
10704 D(p->level--);
10705 return NULL;
10706 }
10707 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10708 void *invalid_lambda_parameters_var;
10709 if (
10710 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10711 )
10712 {
10713 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10714 _res = invalid_lambda_parameters_var;
10715 goto done;
10716 }
10717 p->mark = _mark;
10718 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10720 }
10721 { // lambda_parameters
10722 if (p->error_indicator) {
10723 D(p->level--);
10724 return NULL;
10725 }
10726 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10727 arguments_ty lambda_parameters_var;
10728 if (
10729 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10730 )
10731 {
10732 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10733 _res = lambda_parameters_var;
10734 goto done;
10735 }
10736 p->mark = _mark;
10737 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10739 }
10740 _res = NULL;
10741 done:
10742 D(p->level--);
10743 return _res;
10744}
10745
10746// lambda_parameters:
10747// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10748// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10749// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10750// | lambda_param_with_default+ lambda_star_etc?
10751// | lambda_star_etc
10752static arguments_ty
10753lambda_parameters_rule(Parser *p)
10754{
10755 D(p->level++);
10756 if (p->error_indicator) {
10757 D(p->level--);
10758 return NULL;
10759 }
10760 arguments_ty _res = NULL;
10761 int _mark = p->mark;
10762 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10763 if (p->error_indicator) {
10764 D(p->level--);
10765 return NULL;
10766 }
10767 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 +010010768 asdl_arg_seq* a;
10769 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010770 asdl_seq * c;
10771 void *d;
10772 if (
10773 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10774 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010775 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010776 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010777 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010778 &&
10779 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10780 )
10781 {
10782 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?"));
10783 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10784 if (_res == NULL && PyErr_Occurred()) {
10785 p->error_indicator = 1;
10786 D(p->level--);
10787 return NULL;
10788 }
10789 goto done;
10790 }
10791 p->mark = _mark;
10792 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10794 }
10795 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10796 if (p->error_indicator) {
10797 D(p->level--);
10798 return NULL;
10799 }
10800 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?"));
10801 SlashWithDefault* a;
10802 asdl_seq * b;
10803 void *c;
10804 if (
10805 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10806 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010807 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010808 &&
10809 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10810 )
10811 {
10812 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?"));
10813 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10814 if (_res == NULL && PyErr_Occurred()) {
10815 p->error_indicator = 1;
10816 D(p->level--);
10817 return NULL;
10818 }
10819 goto done;
10820 }
10821 p->mark = _mark;
10822 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10824 }
10825 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10826 if (p->error_indicator) {
10827 D(p->level--);
10828 return NULL;
10829 }
10830 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 +010010831 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010832 asdl_seq * b;
10833 void *c;
10834 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010835 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010836 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010837 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010838 &&
10839 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10840 )
10841 {
10842 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?"));
10843 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10844 if (_res == NULL && PyErr_Occurred()) {
10845 p->error_indicator = 1;
10846 D(p->level--);
10847 return NULL;
10848 }
10849 goto done;
10850 }
10851 p->mark = _mark;
10852 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10854 }
10855 { // lambda_param_with_default+ lambda_star_etc?
10856 if (p->error_indicator) {
10857 D(p->level--);
10858 return NULL;
10859 }
10860 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10861 asdl_seq * a;
10862 void *b;
10863 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010864 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010865 &&
10866 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10867 )
10868 {
10869 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10870 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10871 if (_res == NULL && PyErr_Occurred()) {
10872 p->error_indicator = 1;
10873 D(p->level--);
10874 return NULL;
10875 }
10876 goto done;
10877 }
10878 p->mark = _mark;
10879 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10881 }
10882 { // lambda_star_etc
10883 if (p->error_indicator) {
10884 D(p->level--);
10885 return NULL;
10886 }
10887 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10888 StarEtc* a;
10889 if (
10890 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10891 )
10892 {
10893 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10894 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10895 if (_res == NULL && PyErr_Occurred()) {
10896 p->error_indicator = 1;
10897 D(p->level--);
10898 return NULL;
10899 }
10900 goto done;
10901 }
10902 p->mark = _mark;
10903 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10904 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10905 }
10906 _res = NULL;
10907 done:
10908 D(p->level--);
10909 return _res;
10910}
10911
10912// lambda_slash_no_default:
10913// | lambda_param_no_default+ '/' ','
10914// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010915static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010916lambda_slash_no_default_rule(Parser *p)
10917{
10918 D(p->level++);
10919 if (p->error_indicator) {
10920 D(p->level--);
10921 return NULL;
10922 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010923 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010924 int _mark = p->mark;
10925 { // lambda_param_no_default+ '/' ','
10926 if (p->error_indicator) {
10927 D(p->level--);
10928 return NULL;
10929 }
10930 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10931 Token * _literal;
10932 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010933 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010934 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010935 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010936 &&
10937 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10938 &&
10939 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10940 )
10941 {
10942 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10943 _res = a;
10944 if (_res == NULL && PyErr_Occurred()) {
10945 p->error_indicator = 1;
10946 D(p->level--);
10947 return NULL;
10948 }
10949 goto done;
10950 }
10951 p->mark = _mark;
10952 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10954 }
10955 { // lambda_param_no_default+ '/' &':'
10956 if (p->error_indicator) {
10957 D(p->level--);
10958 return NULL;
10959 }
10960 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10961 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010962 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010963 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010964 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010965 &&
10966 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10967 &&
10968 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10969 )
10970 {
10971 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10972 _res = a;
10973 if (_res == NULL && PyErr_Occurred()) {
10974 p->error_indicator = 1;
10975 D(p->level--);
10976 return NULL;
10977 }
10978 goto done;
10979 }
10980 p->mark = _mark;
10981 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10983 }
10984 _res = NULL;
10985 done:
10986 D(p->level--);
10987 return _res;
10988}
10989
10990// lambda_slash_with_default:
10991// | lambda_param_no_default* lambda_param_with_default+ '/' ','
10992// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
10993static SlashWithDefault*
10994lambda_slash_with_default_rule(Parser *p)
10995{
10996 D(p->level++);
10997 if (p->error_indicator) {
10998 D(p->level--);
10999 return NULL;
11000 }
11001 SlashWithDefault* _res = NULL;
11002 int _mark = p->mark;
11003 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11004 if (p->error_indicator) {
11005 D(p->level--);
11006 return NULL;
11007 }
11008 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+ '/' ','"));
11009 Token * _literal;
11010 Token * _literal_1;
11011 asdl_seq * a;
11012 asdl_seq * b;
11013 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011014 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011015 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011016 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011017 &&
11018 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11019 &&
11020 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11021 )
11022 {
11023 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 +010011024 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011025 if (_res == NULL && PyErr_Occurred()) {
11026 p->error_indicator = 1;
11027 D(p->level--);
11028 return NULL;
11029 }
11030 goto done;
11031 }
11032 p->mark = _mark;
11033 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11035 }
11036 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11037 if (p->error_indicator) {
11038 D(p->level--);
11039 return NULL;
11040 }
11041 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+ '/' &':'"));
11042 Token * _literal;
11043 asdl_seq * a;
11044 asdl_seq * b;
11045 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011046 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011047 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011048 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011049 &&
11050 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11051 &&
11052 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11053 )
11054 {
11055 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 +010011056 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011057 if (_res == NULL && PyErr_Occurred()) {
11058 p->error_indicator = 1;
11059 D(p->level--);
11060 return NULL;
11061 }
11062 goto done;
11063 }
11064 p->mark = _mark;
11065 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11067 }
11068 _res = NULL;
11069 done:
11070 D(p->level--);
11071 return _res;
11072}
11073
11074// lambda_star_etc:
11075// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11076// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11077// | lambda_kwds
11078// | invalid_lambda_star_etc
11079static StarEtc*
11080lambda_star_etc_rule(Parser *p)
11081{
11082 D(p->level++);
11083 if (p->error_indicator) {
11084 D(p->level--);
11085 return NULL;
11086 }
11087 StarEtc* _res = NULL;
11088 int _mark = p->mark;
11089 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11090 if (p->error_indicator) {
11091 D(p->level--);
11092 return NULL;
11093 }
11094 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?"));
11095 Token * _literal;
11096 arg_ty a;
11097 asdl_seq * b;
11098 void *c;
11099 if (
11100 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11101 &&
11102 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11103 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011104 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011105 &&
11106 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11107 )
11108 {
11109 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?"));
11110 _res = _PyPegen_star_etc ( p , a , b , c );
11111 if (_res == NULL && PyErr_Occurred()) {
11112 p->error_indicator = 1;
11113 D(p->level--);
11114 return NULL;
11115 }
11116 goto done;
11117 }
11118 p->mark = _mark;
11119 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11120 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11121 }
11122 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11123 if (p->error_indicator) {
11124 D(p->level--);
11125 return NULL;
11126 }
11127 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11128 Token * _literal;
11129 Token * _literal_1;
11130 asdl_seq * b;
11131 void *c;
11132 if (
11133 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11134 &&
11135 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11136 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011137 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011138 &&
11139 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11140 )
11141 {
11142 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11143 _res = _PyPegen_star_etc ( p , NULL , b , c );
11144 if (_res == NULL && PyErr_Occurred()) {
11145 p->error_indicator = 1;
11146 D(p->level--);
11147 return NULL;
11148 }
11149 goto done;
11150 }
11151 p->mark = _mark;
11152 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11154 }
11155 { // lambda_kwds
11156 if (p->error_indicator) {
11157 D(p->level--);
11158 return NULL;
11159 }
11160 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11161 arg_ty a;
11162 if (
11163 (a = lambda_kwds_rule(p)) // lambda_kwds
11164 )
11165 {
11166 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11167 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11168 if (_res == NULL && PyErr_Occurred()) {
11169 p->error_indicator = 1;
11170 D(p->level--);
11171 return NULL;
11172 }
11173 goto done;
11174 }
11175 p->mark = _mark;
11176 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11178 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011179 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011180 if (p->error_indicator) {
11181 D(p->level--);
11182 return NULL;
11183 }
11184 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11185 void *invalid_lambda_star_etc_var;
11186 if (
11187 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11188 )
11189 {
11190 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11191 _res = invalid_lambda_star_etc_var;
11192 goto done;
11193 }
11194 p->mark = _mark;
11195 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11197 }
11198 _res = NULL;
11199 done:
11200 D(p->level--);
11201 return _res;
11202}
11203
11204// lambda_kwds: '**' lambda_param_no_default
11205static arg_ty
11206lambda_kwds_rule(Parser *p)
11207{
11208 D(p->level++);
11209 if (p->error_indicator) {
11210 D(p->level--);
11211 return NULL;
11212 }
11213 arg_ty _res = NULL;
11214 int _mark = p->mark;
11215 { // '**' lambda_param_no_default
11216 if (p->error_indicator) {
11217 D(p->level--);
11218 return NULL;
11219 }
11220 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11221 Token * _literal;
11222 arg_ty a;
11223 if (
11224 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11225 &&
11226 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11227 )
11228 {
11229 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11230 _res = a;
11231 if (_res == NULL && PyErr_Occurred()) {
11232 p->error_indicator = 1;
11233 D(p->level--);
11234 return NULL;
11235 }
11236 goto done;
11237 }
11238 p->mark = _mark;
11239 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11241 }
11242 _res = NULL;
11243 done:
11244 D(p->level--);
11245 return _res;
11246}
11247
11248// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11249static arg_ty
11250lambda_param_no_default_rule(Parser *p)
11251{
11252 D(p->level++);
11253 if (p->error_indicator) {
11254 D(p->level--);
11255 return NULL;
11256 }
11257 arg_ty _res = NULL;
11258 int _mark = p->mark;
11259 { // lambda_param ','
11260 if (p->error_indicator) {
11261 D(p->level--);
11262 return NULL;
11263 }
11264 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11265 Token * _literal;
11266 arg_ty a;
11267 if (
11268 (a = lambda_param_rule(p)) // lambda_param
11269 &&
11270 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11271 )
11272 {
11273 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11274 _res = a;
11275 if (_res == NULL && PyErr_Occurred()) {
11276 p->error_indicator = 1;
11277 D(p->level--);
11278 return NULL;
11279 }
11280 goto done;
11281 }
11282 p->mark = _mark;
11283 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11285 }
11286 { // lambda_param &':'
11287 if (p->error_indicator) {
11288 D(p->level--);
11289 return NULL;
11290 }
11291 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11292 arg_ty a;
11293 if (
11294 (a = lambda_param_rule(p)) // lambda_param
11295 &&
11296 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11297 )
11298 {
11299 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11300 _res = a;
11301 if (_res == NULL && PyErr_Occurred()) {
11302 p->error_indicator = 1;
11303 D(p->level--);
11304 return NULL;
11305 }
11306 goto done;
11307 }
11308 p->mark = _mark;
11309 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11311 }
11312 _res = NULL;
11313 done:
11314 D(p->level--);
11315 return _res;
11316}
11317
11318// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11319static NameDefaultPair*
11320lambda_param_with_default_rule(Parser *p)
11321{
11322 D(p->level++);
11323 if (p->error_indicator) {
11324 D(p->level--);
11325 return NULL;
11326 }
11327 NameDefaultPair* _res = NULL;
11328 int _mark = p->mark;
11329 { // lambda_param default ','
11330 if (p->error_indicator) {
11331 D(p->level--);
11332 return NULL;
11333 }
11334 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11335 Token * _literal;
11336 arg_ty a;
11337 expr_ty c;
11338 if (
11339 (a = lambda_param_rule(p)) // lambda_param
11340 &&
11341 (c = default_rule(p)) // default
11342 &&
11343 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11344 )
11345 {
11346 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11347 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11348 if (_res == NULL && PyErr_Occurred()) {
11349 p->error_indicator = 1;
11350 D(p->level--);
11351 return NULL;
11352 }
11353 goto done;
11354 }
11355 p->mark = _mark;
11356 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11358 }
11359 { // lambda_param default &':'
11360 if (p->error_indicator) {
11361 D(p->level--);
11362 return NULL;
11363 }
11364 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11365 arg_ty a;
11366 expr_ty c;
11367 if (
11368 (a = lambda_param_rule(p)) // lambda_param
11369 &&
11370 (c = default_rule(p)) // default
11371 &&
11372 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11373 )
11374 {
11375 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11376 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11377 if (_res == NULL && PyErr_Occurred()) {
11378 p->error_indicator = 1;
11379 D(p->level--);
11380 return NULL;
11381 }
11382 goto done;
11383 }
11384 p->mark = _mark;
11385 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11387 }
11388 _res = NULL;
11389 done:
11390 D(p->level--);
11391 return _res;
11392}
11393
11394// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11395static NameDefaultPair*
11396lambda_param_maybe_default_rule(Parser *p)
11397{
11398 D(p->level++);
11399 if (p->error_indicator) {
11400 D(p->level--);
11401 return NULL;
11402 }
11403 NameDefaultPair* _res = NULL;
11404 int _mark = p->mark;
11405 { // lambda_param default? ','
11406 if (p->error_indicator) {
11407 D(p->level--);
11408 return NULL;
11409 }
11410 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11411 Token * _literal;
11412 arg_ty a;
11413 void *c;
11414 if (
11415 (a = lambda_param_rule(p)) // lambda_param
11416 &&
11417 (c = default_rule(p), 1) // default?
11418 &&
11419 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11420 )
11421 {
11422 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11423 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11424 if (_res == NULL && PyErr_Occurred()) {
11425 p->error_indicator = 1;
11426 D(p->level--);
11427 return NULL;
11428 }
11429 goto done;
11430 }
11431 p->mark = _mark;
11432 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11433 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11434 }
11435 { // lambda_param default? &':'
11436 if (p->error_indicator) {
11437 D(p->level--);
11438 return NULL;
11439 }
11440 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11441 arg_ty a;
11442 void *c;
11443 if (
11444 (a = lambda_param_rule(p)) // lambda_param
11445 &&
11446 (c = default_rule(p), 1) // default?
11447 &&
11448 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11449 )
11450 {
11451 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11452 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11453 if (_res == NULL && PyErr_Occurred()) {
11454 p->error_indicator = 1;
11455 D(p->level--);
11456 return NULL;
11457 }
11458 goto done;
11459 }
11460 p->mark = _mark;
11461 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11463 }
11464 _res = NULL;
11465 done:
11466 D(p->level--);
11467 return _res;
11468}
11469
11470// lambda_param: NAME
11471static arg_ty
11472lambda_param_rule(Parser *p)
11473{
11474 D(p->level++);
11475 if (p->error_indicator) {
11476 D(p->level--);
11477 return NULL;
11478 }
11479 arg_ty _res = NULL;
11480 int _mark = p->mark;
11481 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11482 p->error_indicator = 1;
11483 D(p->level--);
11484 return NULL;
11485 }
11486 int _start_lineno = p->tokens[_mark]->lineno;
11487 UNUSED(_start_lineno); // Only used by EXTRA macro
11488 int _start_col_offset = p->tokens[_mark]->col_offset;
11489 UNUSED(_start_col_offset); // Only used by EXTRA macro
11490 { // NAME
11491 if (p->error_indicator) {
11492 D(p->level--);
11493 return NULL;
11494 }
11495 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11496 expr_ty a;
11497 if (
11498 (a = _PyPegen_name_token(p)) // NAME
11499 )
11500 {
11501 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11502 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11503 if (_token == NULL) {
11504 D(p->level--);
11505 return NULL;
11506 }
11507 int _end_lineno = _token->end_lineno;
11508 UNUSED(_end_lineno); // Only used by EXTRA macro
11509 int _end_col_offset = _token->end_col_offset;
11510 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011511 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011512 if (_res == NULL && PyErr_Occurred()) {
11513 p->error_indicator = 1;
11514 D(p->level--);
11515 return NULL;
11516 }
11517 goto done;
11518 }
11519 p->mark = _mark;
11520 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11522 }
11523 _res = NULL;
11524 done:
11525 D(p->level--);
11526 return _res;
11527}
11528
11529// disjunction: conjunction (('or' conjunction))+ | conjunction
11530static expr_ty
11531disjunction_rule(Parser *p)
11532{
11533 D(p->level++);
11534 if (p->error_indicator) {
11535 D(p->level--);
11536 return NULL;
11537 }
11538 expr_ty _res = NULL;
11539 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11540 D(p->level--);
11541 return _res;
11542 }
11543 int _mark = p->mark;
11544 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11545 p->error_indicator = 1;
11546 D(p->level--);
11547 return NULL;
11548 }
11549 int _start_lineno = p->tokens[_mark]->lineno;
11550 UNUSED(_start_lineno); // Only used by EXTRA macro
11551 int _start_col_offset = p->tokens[_mark]->col_offset;
11552 UNUSED(_start_col_offset); // Only used by EXTRA macro
11553 { // conjunction (('or' conjunction))+
11554 if (p->error_indicator) {
11555 D(p->level--);
11556 return NULL;
11557 }
11558 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11559 expr_ty a;
11560 asdl_seq * b;
11561 if (
11562 (a = conjunction_rule(p)) // conjunction
11563 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011564 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011565 )
11566 {
11567 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11568 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11569 if (_token == NULL) {
11570 D(p->level--);
11571 return NULL;
11572 }
11573 int _end_lineno = _token->end_lineno;
11574 UNUSED(_end_lineno); // Only used by EXTRA macro
11575 int _end_col_offset = _token->end_col_offset;
11576 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011577 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011578 if (_res == NULL && PyErr_Occurred()) {
11579 p->error_indicator = 1;
11580 D(p->level--);
11581 return NULL;
11582 }
11583 goto done;
11584 }
11585 p->mark = _mark;
11586 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11588 }
11589 { // conjunction
11590 if (p->error_indicator) {
11591 D(p->level--);
11592 return NULL;
11593 }
11594 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11595 expr_ty conjunction_var;
11596 if (
11597 (conjunction_var = conjunction_rule(p)) // conjunction
11598 )
11599 {
11600 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11601 _res = conjunction_var;
11602 goto done;
11603 }
11604 p->mark = _mark;
11605 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11607 }
11608 _res = NULL;
11609 done:
11610 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11611 D(p->level--);
11612 return _res;
11613}
11614
11615// conjunction: inversion (('and' inversion))+ | inversion
11616static expr_ty
11617conjunction_rule(Parser *p)
11618{
11619 D(p->level++);
11620 if (p->error_indicator) {
11621 D(p->level--);
11622 return NULL;
11623 }
11624 expr_ty _res = NULL;
11625 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11626 D(p->level--);
11627 return _res;
11628 }
11629 int _mark = p->mark;
11630 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11631 p->error_indicator = 1;
11632 D(p->level--);
11633 return NULL;
11634 }
11635 int _start_lineno = p->tokens[_mark]->lineno;
11636 UNUSED(_start_lineno); // Only used by EXTRA macro
11637 int _start_col_offset = p->tokens[_mark]->col_offset;
11638 UNUSED(_start_col_offset); // Only used by EXTRA macro
11639 { // inversion (('and' inversion))+
11640 if (p->error_indicator) {
11641 D(p->level--);
11642 return NULL;
11643 }
11644 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11645 expr_ty a;
11646 asdl_seq * b;
11647 if (
11648 (a = inversion_rule(p)) // inversion
11649 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011650 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011651 )
11652 {
11653 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11654 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11655 if (_token == NULL) {
11656 D(p->level--);
11657 return NULL;
11658 }
11659 int _end_lineno = _token->end_lineno;
11660 UNUSED(_end_lineno); // Only used by EXTRA macro
11661 int _end_col_offset = _token->end_col_offset;
11662 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011663 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011664 if (_res == NULL && PyErr_Occurred()) {
11665 p->error_indicator = 1;
11666 D(p->level--);
11667 return NULL;
11668 }
11669 goto done;
11670 }
11671 p->mark = _mark;
11672 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11674 }
11675 { // inversion
11676 if (p->error_indicator) {
11677 D(p->level--);
11678 return NULL;
11679 }
11680 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11681 expr_ty inversion_var;
11682 if (
11683 (inversion_var = inversion_rule(p)) // inversion
11684 )
11685 {
11686 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11687 _res = inversion_var;
11688 goto done;
11689 }
11690 p->mark = _mark;
11691 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11693 }
11694 _res = NULL;
11695 done:
11696 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11697 D(p->level--);
11698 return _res;
11699}
11700
11701// inversion: 'not' inversion | comparison
11702static expr_ty
11703inversion_rule(Parser *p)
11704{
11705 D(p->level++);
11706 if (p->error_indicator) {
11707 D(p->level--);
11708 return NULL;
11709 }
11710 expr_ty _res = NULL;
11711 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11712 D(p->level--);
11713 return _res;
11714 }
11715 int _mark = p->mark;
11716 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11717 p->error_indicator = 1;
11718 D(p->level--);
11719 return NULL;
11720 }
11721 int _start_lineno = p->tokens[_mark]->lineno;
11722 UNUSED(_start_lineno); // Only used by EXTRA macro
11723 int _start_col_offset = p->tokens[_mark]->col_offset;
11724 UNUSED(_start_col_offset); // Only used by EXTRA macro
11725 { // 'not' inversion
11726 if (p->error_indicator) {
11727 D(p->level--);
11728 return NULL;
11729 }
11730 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11731 Token * _keyword;
11732 expr_ty a;
11733 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011734 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011735 &&
11736 (a = inversion_rule(p)) // inversion
11737 )
11738 {
11739 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11740 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11741 if (_token == NULL) {
11742 D(p->level--);
11743 return NULL;
11744 }
11745 int _end_lineno = _token->end_lineno;
11746 UNUSED(_end_lineno); // Only used by EXTRA macro
11747 int _end_col_offset = _token->end_col_offset;
11748 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011749 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011750 if (_res == NULL && PyErr_Occurred()) {
11751 p->error_indicator = 1;
11752 D(p->level--);
11753 return NULL;
11754 }
11755 goto done;
11756 }
11757 p->mark = _mark;
11758 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11760 }
11761 { // comparison
11762 if (p->error_indicator) {
11763 D(p->level--);
11764 return NULL;
11765 }
11766 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11767 expr_ty comparison_var;
11768 if (
11769 (comparison_var = comparison_rule(p)) // comparison
11770 )
11771 {
11772 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11773 _res = comparison_var;
11774 goto done;
11775 }
11776 p->mark = _mark;
11777 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11779 }
11780 _res = NULL;
11781 done:
11782 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11783 D(p->level--);
11784 return _res;
11785}
11786
11787// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11788static expr_ty
11789comparison_rule(Parser *p)
11790{
11791 D(p->level++);
11792 if (p->error_indicator) {
11793 D(p->level--);
11794 return NULL;
11795 }
11796 expr_ty _res = NULL;
11797 int _mark = p->mark;
11798 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11799 p->error_indicator = 1;
11800 D(p->level--);
11801 return NULL;
11802 }
11803 int _start_lineno = p->tokens[_mark]->lineno;
11804 UNUSED(_start_lineno); // Only used by EXTRA macro
11805 int _start_col_offset = p->tokens[_mark]->col_offset;
11806 UNUSED(_start_col_offset); // Only used by EXTRA macro
11807 { // bitwise_or compare_op_bitwise_or_pair+
11808 if (p->error_indicator) {
11809 D(p->level--);
11810 return NULL;
11811 }
11812 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11813 expr_ty a;
11814 asdl_seq * b;
11815 if (
11816 (a = bitwise_or_rule(p)) // bitwise_or
11817 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011818 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011819 )
11820 {
11821 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11822 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11823 if (_token == NULL) {
11824 D(p->level--);
11825 return NULL;
11826 }
11827 int _end_lineno = _token->end_lineno;
11828 UNUSED(_end_lineno); // Only used by EXTRA macro
11829 int _end_col_offset = _token->end_col_offset;
11830 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011831 _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 +010011832 if (_res == NULL && PyErr_Occurred()) {
11833 p->error_indicator = 1;
11834 D(p->level--);
11835 return NULL;
11836 }
11837 goto done;
11838 }
11839 p->mark = _mark;
11840 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11842 }
11843 { // bitwise_or
11844 if (p->error_indicator) {
11845 D(p->level--);
11846 return NULL;
11847 }
11848 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11849 expr_ty bitwise_or_var;
11850 if (
11851 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11852 )
11853 {
11854 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11855 _res = bitwise_or_var;
11856 goto done;
11857 }
11858 p->mark = _mark;
11859 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11860 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11861 }
11862 _res = NULL;
11863 done:
11864 D(p->level--);
11865 return _res;
11866}
11867
11868// compare_op_bitwise_or_pair:
11869// | eq_bitwise_or
11870// | noteq_bitwise_or
11871// | lte_bitwise_or
11872// | lt_bitwise_or
11873// | gte_bitwise_or
11874// | gt_bitwise_or
11875// | notin_bitwise_or
11876// | in_bitwise_or
11877// | isnot_bitwise_or
11878// | is_bitwise_or
11879static CmpopExprPair*
11880compare_op_bitwise_or_pair_rule(Parser *p)
11881{
11882 D(p->level++);
11883 if (p->error_indicator) {
11884 D(p->level--);
11885 return NULL;
11886 }
11887 CmpopExprPair* _res = NULL;
11888 int _mark = p->mark;
11889 { // eq_bitwise_or
11890 if (p->error_indicator) {
11891 D(p->level--);
11892 return NULL;
11893 }
11894 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11895 CmpopExprPair* eq_bitwise_or_var;
11896 if (
11897 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11898 )
11899 {
11900 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11901 _res = eq_bitwise_or_var;
11902 goto done;
11903 }
11904 p->mark = _mark;
11905 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11907 }
11908 { // noteq_bitwise_or
11909 if (p->error_indicator) {
11910 D(p->level--);
11911 return NULL;
11912 }
11913 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11914 CmpopExprPair* noteq_bitwise_or_var;
11915 if (
11916 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11917 )
11918 {
11919 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11920 _res = noteq_bitwise_or_var;
11921 goto done;
11922 }
11923 p->mark = _mark;
11924 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11926 }
11927 { // lte_bitwise_or
11928 if (p->error_indicator) {
11929 D(p->level--);
11930 return NULL;
11931 }
11932 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11933 CmpopExprPair* lte_bitwise_or_var;
11934 if (
11935 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11936 )
11937 {
11938 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11939 _res = lte_bitwise_or_var;
11940 goto done;
11941 }
11942 p->mark = _mark;
11943 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11945 }
11946 { // lt_bitwise_or
11947 if (p->error_indicator) {
11948 D(p->level--);
11949 return NULL;
11950 }
11951 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11952 CmpopExprPair* lt_bitwise_or_var;
11953 if (
11954 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11955 )
11956 {
11957 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11958 _res = lt_bitwise_or_var;
11959 goto done;
11960 }
11961 p->mark = _mark;
11962 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11964 }
11965 { // gte_bitwise_or
11966 if (p->error_indicator) {
11967 D(p->level--);
11968 return NULL;
11969 }
11970 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11971 CmpopExprPair* gte_bitwise_or_var;
11972 if (
11973 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11974 )
11975 {
11976 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11977 _res = gte_bitwise_or_var;
11978 goto done;
11979 }
11980 p->mark = _mark;
11981 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
11983 }
11984 { // gt_bitwise_or
11985 if (p->error_indicator) {
11986 D(p->level--);
11987 return NULL;
11988 }
11989 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11990 CmpopExprPair* gt_bitwise_or_var;
11991 if (
11992 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
11993 )
11994 {
11995 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
11996 _res = gt_bitwise_or_var;
11997 goto done;
11998 }
11999 p->mark = _mark;
12000 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12002 }
12003 { // notin_bitwise_or
12004 if (p->error_indicator) {
12005 D(p->level--);
12006 return NULL;
12007 }
12008 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12009 CmpopExprPair* notin_bitwise_or_var;
12010 if (
12011 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12012 )
12013 {
12014 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12015 _res = notin_bitwise_or_var;
12016 goto done;
12017 }
12018 p->mark = _mark;
12019 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12021 }
12022 { // in_bitwise_or
12023 if (p->error_indicator) {
12024 D(p->level--);
12025 return NULL;
12026 }
12027 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12028 CmpopExprPair* in_bitwise_or_var;
12029 if (
12030 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12031 )
12032 {
12033 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12034 _res = in_bitwise_or_var;
12035 goto done;
12036 }
12037 p->mark = _mark;
12038 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12040 }
12041 { // isnot_bitwise_or
12042 if (p->error_indicator) {
12043 D(p->level--);
12044 return NULL;
12045 }
12046 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12047 CmpopExprPair* isnot_bitwise_or_var;
12048 if (
12049 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12050 )
12051 {
12052 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12053 _res = isnot_bitwise_or_var;
12054 goto done;
12055 }
12056 p->mark = _mark;
12057 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12058 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12059 }
12060 { // is_bitwise_or
12061 if (p->error_indicator) {
12062 D(p->level--);
12063 return NULL;
12064 }
12065 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12066 CmpopExprPair* is_bitwise_or_var;
12067 if (
12068 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12069 )
12070 {
12071 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12072 _res = is_bitwise_or_var;
12073 goto done;
12074 }
12075 p->mark = _mark;
12076 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12078 }
12079 _res = NULL;
12080 done:
12081 D(p->level--);
12082 return _res;
12083}
12084
12085// eq_bitwise_or: '==' bitwise_or
12086static CmpopExprPair*
12087eq_bitwise_or_rule(Parser *p)
12088{
12089 D(p->level++);
12090 if (p->error_indicator) {
12091 D(p->level--);
12092 return NULL;
12093 }
12094 CmpopExprPair* _res = NULL;
12095 int _mark = p->mark;
12096 { // '==' bitwise_or
12097 if (p->error_indicator) {
12098 D(p->level--);
12099 return NULL;
12100 }
12101 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12102 Token * _literal;
12103 expr_ty a;
12104 if (
12105 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12106 &&
12107 (a = bitwise_or_rule(p)) // bitwise_or
12108 )
12109 {
12110 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12111 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12112 if (_res == NULL && PyErr_Occurred()) {
12113 p->error_indicator = 1;
12114 D(p->level--);
12115 return NULL;
12116 }
12117 goto done;
12118 }
12119 p->mark = _mark;
12120 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12121 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12122 }
12123 _res = NULL;
12124 done:
12125 D(p->level--);
12126 return _res;
12127}
12128
12129// noteq_bitwise_or: ('!=') bitwise_or
12130static CmpopExprPair*
12131noteq_bitwise_or_rule(Parser *p)
12132{
12133 D(p->level++);
12134 if (p->error_indicator) {
12135 D(p->level--);
12136 return NULL;
12137 }
12138 CmpopExprPair* _res = NULL;
12139 int _mark = p->mark;
12140 { // ('!=') bitwise_or
12141 if (p->error_indicator) {
12142 D(p->level--);
12143 return NULL;
12144 }
12145 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 -080012146 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012147 expr_ty a;
12148 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012149 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012150 &&
12151 (a = bitwise_or_rule(p)) // bitwise_or
12152 )
12153 {
12154 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12155 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12156 if (_res == NULL && PyErr_Occurred()) {
12157 p->error_indicator = 1;
12158 D(p->level--);
12159 return NULL;
12160 }
12161 goto done;
12162 }
12163 p->mark = _mark;
12164 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12166 }
12167 _res = NULL;
12168 done:
12169 D(p->level--);
12170 return _res;
12171}
12172
12173// lte_bitwise_or: '<=' bitwise_or
12174static CmpopExprPair*
12175lte_bitwise_or_rule(Parser *p)
12176{
12177 D(p->level++);
12178 if (p->error_indicator) {
12179 D(p->level--);
12180 return NULL;
12181 }
12182 CmpopExprPair* _res = NULL;
12183 int _mark = p->mark;
12184 { // '<=' bitwise_or
12185 if (p->error_indicator) {
12186 D(p->level--);
12187 return NULL;
12188 }
12189 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12190 Token * _literal;
12191 expr_ty a;
12192 if (
12193 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12194 &&
12195 (a = bitwise_or_rule(p)) // bitwise_or
12196 )
12197 {
12198 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12199 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12200 if (_res == NULL && PyErr_Occurred()) {
12201 p->error_indicator = 1;
12202 D(p->level--);
12203 return NULL;
12204 }
12205 goto done;
12206 }
12207 p->mark = _mark;
12208 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12210 }
12211 _res = NULL;
12212 done:
12213 D(p->level--);
12214 return _res;
12215}
12216
12217// lt_bitwise_or: '<' bitwise_or
12218static CmpopExprPair*
12219lt_bitwise_or_rule(Parser *p)
12220{
12221 D(p->level++);
12222 if (p->error_indicator) {
12223 D(p->level--);
12224 return NULL;
12225 }
12226 CmpopExprPair* _res = NULL;
12227 int _mark = p->mark;
12228 { // '<' bitwise_or
12229 if (p->error_indicator) {
12230 D(p->level--);
12231 return NULL;
12232 }
12233 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12234 Token * _literal;
12235 expr_ty a;
12236 if (
12237 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12238 &&
12239 (a = bitwise_or_rule(p)) // bitwise_or
12240 )
12241 {
12242 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12243 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12244 if (_res == NULL && PyErr_Occurred()) {
12245 p->error_indicator = 1;
12246 D(p->level--);
12247 return NULL;
12248 }
12249 goto done;
12250 }
12251 p->mark = _mark;
12252 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12254 }
12255 _res = NULL;
12256 done:
12257 D(p->level--);
12258 return _res;
12259}
12260
12261// gte_bitwise_or: '>=' bitwise_or
12262static CmpopExprPair*
12263gte_bitwise_or_rule(Parser *p)
12264{
12265 D(p->level++);
12266 if (p->error_indicator) {
12267 D(p->level--);
12268 return NULL;
12269 }
12270 CmpopExprPair* _res = NULL;
12271 int _mark = p->mark;
12272 { // '>=' bitwise_or
12273 if (p->error_indicator) {
12274 D(p->level--);
12275 return NULL;
12276 }
12277 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12278 Token * _literal;
12279 expr_ty a;
12280 if (
12281 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12282 &&
12283 (a = bitwise_or_rule(p)) // bitwise_or
12284 )
12285 {
12286 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12287 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12288 if (_res == NULL && PyErr_Occurred()) {
12289 p->error_indicator = 1;
12290 D(p->level--);
12291 return NULL;
12292 }
12293 goto done;
12294 }
12295 p->mark = _mark;
12296 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12298 }
12299 _res = NULL;
12300 done:
12301 D(p->level--);
12302 return _res;
12303}
12304
12305// gt_bitwise_or: '>' bitwise_or
12306static CmpopExprPair*
12307gt_bitwise_or_rule(Parser *p)
12308{
12309 D(p->level++);
12310 if (p->error_indicator) {
12311 D(p->level--);
12312 return NULL;
12313 }
12314 CmpopExprPair* _res = NULL;
12315 int _mark = p->mark;
12316 { // '>' bitwise_or
12317 if (p->error_indicator) {
12318 D(p->level--);
12319 return NULL;
12320 }
12321 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12322 Token * _literal;
12323 expr_ty a;
12324 if (
12325 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12326 &&
12327 (a = bitwise_or_rule(p)) // bitwise_or
12328 )
12329 {
12330 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12331 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12332 if (_res == NULL && PyErr_Occurred()) {
12333 p->error_indicator = 1;
12334 D(p->level--);
12335 return NULL;
12336 }
12337 goto done;
12338 }
12339 p->mark = _mark;
12340 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12342 }
12343 _res = NULL;
12344 done:
12345 D(p->level--);
12346 return _res;
12347}
12348
12349// notin_bitwise_or: 'not' 'in' bitwise_or
12350static CmpopExprPair*
12351notin_bitwise_or_rule(Parser *p)
12352{
12353 D(p->level++);
12354 if (p->error_indicator) {
12355 D(p->level--);
12356 return NULL;
12357 }
12358 CmpopExprPair* _res = NULL;
12359 int _mark = p->mark;
12360 { // 'not' 'in' bitwise_or
12361 if (p->error_indicator) {
12362 D(p->level--);
12363 return NULL;
12364 }
12365 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12366 Token * _keyword;
12367 Token * _keyword_1;
12368 expr_ty a;
12369 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012370 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012371 &&
12372 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12373 &&
12374 (a = bitwise_or_rule(p)) // bitwise_or
12375 )
12376 {
12377 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12378 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12379 if (_res == NULL && PyErr_Occurred()) {
12380 p->error_indicator = 1;
12381 D(p->level--);
12382 return NULL;
12383 }
12384 goto done;
12385 }
12386 p->mark = _mark;
12387 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12389 }
12390 _res = NULL;
12391 done:
12392 D(p->level--);
12393 return _res;
12394}
12395
12396// in_bitwise_or: 'in' bitwise_or
12397static CmpopExprPair*
12398in_bitwise_or_rule(Parser *p)
12399{
12400 D(p->level++);
12401 if (p->error_indicator) {
12402 D(p->level--);
12403 return NULL;
12404 }
12405 CmpopExprPair* _res = NULL;
12406 int _mark = p->mark;
12407 { // 'in' bitwise_or
12408 if (p->error_indicator) {
12409 D(p->level--);
12410 return NULL;
12411 }
12412 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12413 Token * _keyword;
12414 expr_ty a;
12415 if (
12416 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12417 &&
12418 (a = bitwise_or_rule(p)) // bitwise_or
12419 )
12420 {
12421 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12422 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12423 if (_res == NULL && PyErr_Occurred()) {
12424 p->error_indicator = 1;
12425 D(p->level--);
12426 return NULL;
12427 }
12428 goto done;
12429 }
12430 p->mark = _mark;
12431 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12433 }
12434 _res = NULL;
12435 done:
12436 D(p->level--);
12437 return _res;
12438}
12439
12440// isnot_bitwise_or: 'is' 'not' bitwise_or
12441static CmpopExprPair*
12442isnot_bitwise_or_rule(Parser *p)
12443{
12444 D(p->level++);
12445 if (p->error_indicator) {
12446 D(p->level--);
12447 return NULL;
12448 }
12449 CmpopExprPair* _res = NULL;
12450 int _mark = p->mark;
12451 { // 'is' 'not' bitwise_or
12452 if (p->error_indicator) {
12453 D(p->level--);
12454 return NULL;
12455 }
12456 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12457 Token * _keyword;
12458 Token * _keyword_1;
12459 expr_ty a;
12460 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012461 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012462 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012463 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012464 &&
12465 (a = bitwise_or_rule(p)) // bitwise_or
12466 )
12467 {
12468 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12469 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12470 if (_res == NULL && PyErr_Occurred()) {
12471 p->error_indicator = 1;
12472 D(p->level--);
12473 return NULL;
12474 }
12475 goto done;
12476 }
12477 p->mark = _mark;
12478 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12480 }
12481 _res = NULL;
12482 done:
12483 D(p->level--);
12484 return _res;
12485}
12486
12487// is_bitwise_or: 'is' bitwise_or
12488static CmpopExprPair*
12489is_bitwise_or_rule(Parser *p)
12490{
12491 D(p->level++);
12492 if (p->error_indicator) {
12493 D(p->level--);
12494 return NULL;
12495 }
12496 CmpopExprPair* _res = NULL;
12497 int _mark = p->mark;
12498 { // 'is' bitwise_or
12499 if (p->error_indicator) {
12500 D(p->level--);
12501 return NULL;
12502 }
12503 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12504 Token * _keyword;
12505 expr_ty a;
12506 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012507 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012508 &&
12509 (a = bitwise_or_rule(p)) // bitwise_or
12510 )
12511 {
12512 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12513 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12514 if (_res == NULL && PyErr_Occurred()) {
12515 p->error_indicator = 1;
12516 D(p->level--);
12517 return NULL;
12518 }
12519 goto done;
12520 }
12521 p->mark = _mark;
12522 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12524 }
12525 _res = NULL;
12526 done:
12527 D(p->level--);
12528 return _res;
12529}
12530
12531// Left-recursive
12532// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12533static expr_ty bitwise_or_raw(Parser *);
12534static expr_ty
12535bitwise_or_rule(Parser *p)
12536{
12537 D(p->level++);
12538 expr_ty _res = NULL;
12539 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12540 D(p->level--);
12541 return _res;
12542 }
12543 int _mark = p->mark;
12544 int _resmark = p->mark;
12545 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012546 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12547 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012548 D(p->level--);
12549 return _res;
12550 }
12551 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012552 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012553 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012554 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012555 if (p->error_indicator)
12556 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012557 if (_raw == NULL || p->mark <= _resmark)
12558 break;
12559 _resmark = p->mark;
12560 _res = _raw;
12561 }
12562 p->mark = _resmark;
12563 D(p->level--);
12564 return _res;
12565}
12566static expr_ty
12567bitwise_or_raw(Parser *p)
12568{
12569 D(p->level++);
12570 if (p->error_indicator) {
12571 D(p->level--);
12572 return NULL;
12573 }
12574 expr_ty _res = NULL;
12575 int _mark = p->mark;
12576 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12577 p->error_indicator = 1;
12578 D(p->level--);
12579 return NULL;
12580 }
12581 int _start_lineno = p->tokens[_mark]->lineno;
12582 UNUSED(_start_lineno); // Only used by EXTRA macro
12583 int _start_col_offset = p->tokens[_mark]->col_offset;
12584 UNUSED(_start_col_offset); // Only used by EXTRA macro
12585 { // bitwise_or '|' bitwise_xor
12586 if (p->error_indicator) {
12587 D(p->level--);
12588 return NULL;
12589 }
12590 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12591 Token * _literal;
12592 expr_ty a;
12593 expr_ty b;
12594 if (
12595 (a = bitwise_or_rule(p)) // bitwise_or
12596 &&
12597 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12598 &&
12599 (b = bitwise_xor_rule(p)) // bitwise_xor
12600 )
12601 {
12602 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12603 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12604 if (_token == NULL) {
12605 D(p->level--);
12606 return NULL;
12607 }
12608 int _end_lineno = _token->end_lineno;
12609 UNUSED(_end_lineno); // Only used by EXTRA macro
12610 int _end_col_offset = _token->end_col_offset;
12611 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012612 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012613 if (_res == NULL && PyErr_Occurred()) {
12614 p->error_indicator = 1;
12615 D(p->level--);
12616 return NULL;
12617 }
12618 goto done;
12619 }
12620 p->mark = _mark;
12621 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12623 }
12624 { // bitwise_xor
12625 if (p->error_indicator) {
12626 D(p->level--);
12627 return NULL;
12628 }
12629 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12630 expr_ty bitwise_xor_var;
12631 if (
12632 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12633 )
12634 {
12635 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12636 _res = bitwise_xor_var;
12637 goto done;
12638 }
12639 p->mark = _mark;
12640 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12642 }
12643 _res = NULL;
12644 done:
12645 D(p->level--);
12646 return _res;
12647}
12648
12649// Left-recursive
12650// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12651static expr_ty bitwise_xor_raw(Parser *);
12652static expr_ty
12653bitwise_xor_rule(Parser *p)
12654{
12655 D(p->level++);
12656 expr_ty _res = NULL;
12657 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12658 D(p->level--);
12659 return _res;
12660 }
12661 int _mark = p->mark;
12662 int _resmark = p->mark;
12663 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012664 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12665 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012666 D(p->level--);
12667 return _res;
12668 }
12669 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012670 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012671 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012672 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012673 if (p->error_indicator)
12674 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012675 if (_raw == NULL || p->mark <= _resmark)
12676 break;
12677 _resmark = p->mark;
12678 _res = _raw;
12679 }
12680 p->mark = _resmark;
12681 D(p->level--);
12682 return _res;
12683}
12684static expr_ty
12685bitwise_xor_raw(Parser *p)
12686{
12687 D(p->level++);
12688 if (p->error_indicator) {
12689 D(p->level--);
12690 return NULL;
12691 }
12692 expr_ty _res = NULL;
12693 int _mark = p->mark;
12694 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12695 p->error_indicator = 1;
12696 D(p->level--);
12697 return NULL;
12698 }
12699 int _start_lineno = p->tokens[_mark]->lineno;
12700 UNUSED(_start_lineno); // Only used by EXTRA macro
12701 int _start_col_offset = p->tokens[_mark]->col_offset;
12702 UNUSED(_start_col_offset); // Only used by EXTRA macro
12703 { // bitwise_xor '^' bitwise_and
12704 if (p->error_indicator) {
12705 D(p->level--);
12706 return NULL;
12707 }
12708 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12709 Token * _literal;
12710 expr_ty a;
12711 expr_ty b;
12712 if (
12713 (a = bitwise_xor_rule(p)) // bitwise_xor
12714 &&
12715 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12716 &&
12717 (b = bitwise_and_rule(p)) // bitwise_and
12718 )
12719 {
12720 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12721 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12722 if (_token == NULL) {
12723 D(p->level--);
12724 return NULL;
12725 }
12726 int _end_lineno = _token->end_lineno;
12727 UNUSED(_end_lineno); // Only used by EXTRA macro
12728 int _end_col_offset = _token->end_col_offset;
12729 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012730 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012731 if (_res == NULL && PyErr_Occurred()) {
12732 p->error_indicator = 1;
12733 D(p->level--);
12734 return NULL;
12735 }
12736 goto done;
12737 }
12738 p->mark = _mark;
12739 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12741 }
12742 { // bitwise_and
12743 if (p->error_indicator) {
12744 D(p->level--);
12745 return NULL;
12746 }
12747 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12748 expr_ty bitwise_and_var;
12749 if (
12750 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12751 )
12752 {
12753 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12754 _res = bitwise_and_var;
12755 goto done;
12756 }
12757 p->mark = _mark;
12758 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12760 }
12761 _res = NULL;
12762 done:
12763 D(p->level--);
12764 return _res;
12765}
12766
12767// Left-recursive
12768// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12769static expr_ty bitwise_and_raw(Parser *);
12770static expr_ty
12771bitwise_and_rule(Parser *p)
12772{
12773 D(p->level++);
12774 expr_ty _res = NULL;
12775 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12776 D(p->level--);
12777 return _res;
12778 }
12779 int _mark = p->mark;
12780 int _resmark = p->mark;
12781 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012782 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12783 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012784 D(p->level--);
12785 return _res;
12786 }
12787 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012788 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012789 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012790 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012791 if (p->error_indicator)
12792 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012793 if (_raw == NULL || p->mark <= _resmark)
12794 break;
12795 _resmark = p->mark;
12796 _res = _raw;
12797 }
12798 p->mark = _resmark;
12799 D(p->level--);
12800 return _res;
12801}
12802static expr_ty
12803bitwise_and_raw(Parser *p)
12804{
12805 D(p->level++);
12806 if (p->error_indicator) {
12807 D(p->level--);
12808 return NULL;
12809 }
12810 expr_ty _res = NULL;
12811 int _mark = p->mark;
12812 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12813 p->error_indicator = 1;
12814 D(p->level--);
12815 return NULL;
12816 }
12817 int _start_lineno = p->tokens[_mark]->lineno;
12818 UNUSED(_start_lineno); // Only used by EXTRA macro
12819 int _start_col_offset = p->tokens[_mark]->col_offset;
12820 UNUSED(_start_col_offset); // Only used by EXTRA macro
12821 { // bitwise_and '&' shift_expr
12822 if (p->error_indicator) {
12823 D(p->level--);
12824 return NULL;
12825 }
12826 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12827 Token * _literal;
12828 expr_ty a;
12829 expr_ty b;
12830 if (
12831 (a = bitwise_and_rule(p)) // bitwise_and
12832 &&
12833 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12834 &&
12835 (b = shift_expr_rule(p)) // shift_expr
12836 )
12837 {
12838 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12840 if (_token == NULL) {
12841 D(p->level--);
12842 return NULL;
12843 }
12844 int _end_lineno = _token->end_lineno;
12845 UNUSED(_end_lineno); // Only used by EXTRA macro
12846 int _end_col_offset = _token->end_col_offset;
12847 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012848 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012849 if (_res == NULL && PyErr_Occurred()) {
12850 p->error_indicator = 1;
12851 D(p->level--);
12852 return NULL;
12853 }
12854 goto done;
12855 }
12856 p->mark = _mark;
12857 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12859 }
12860 { // shift_expr
12861 if (p->error_indicator) {
12862 D(p->level--);
12863 return NULL;
12864 }
12865 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12866 expr_ty shift_expr_var;
12867 if (
12868 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12869 )
12870 {
12871 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12872 _res = shift_expr_var;
12873 goto done;
12874 }
12875 p->mark = _mark;
12876 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12878 }
12879 _res = NULL;
12880 done:
12881 D(p->level--);
12882 return _res;
12883}
12884
12885// Left-recursive
12886// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12887static expr_ty shift_expr_raw(Parser *);
12888static expr_ty
12889shift_expr_rule(Parser *p)
12890{
12891 D(p->level++);
12892 expr_ty _res = NULL;
12893 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12894 D(p->level--);
12895 return _res;
12896 }
12897 int _mark = p->mark;
12898 int _resmark = p->mark;
12899 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012900 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12901 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012902 D(p->level--);
12903 return _res;
12904 }
12905 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012906 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012907 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012908 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012909 if (p->error_indicator)
12910 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012911 if (_raw == NULL || p->mark <= _resmark)
12912 break;
12913 _resmark = p->mark;
12914 _res = _raw;
12915 }
12916 p->mark = _resmark;
12917 D(p->level--);
12918 return _res;
12919}
12920static expr_ty
12921shift_expr_raw(Parser *p)
12922{
12923 D(p->level++);
12924 if (p->error_indicator) {
12925 D(p->level--);
12926 return NULL;
12927 }
12928 expr_ty _res = NULL;
12929 int _mark = p->mark;
12930 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12931 p->error_indicator = 1;
12932 D(p->level--);
12933 return NULL;
12934 }
12935 int _start_lineno = p->tokens[_mark]->lineno;
12936 UNUSED(_start_lineno); // Only used by EXTRA macro
12937 int _start_col_offset = p->tokens[_mark]->col_offset;
12938 UNUSED(_start_col_offset); // Only used by EXTRA macro
12939 { // shift_expr '<<' sum
12940 if (p->error_indicator) {
12941 D(p->level--);
12942 return NULL;
12943 }
12944 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12945 Token * _literal;
12946 expr_ty a;
12947 expr_ty b;
12948 if (
12949 (a = shift_expr_rule(p)) // shift_expr
12950 &&
12951 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12952 &&
12953 (b = sum_rule(p)) // sum
12954 )
12955 {
12956 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12957 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12958 if (_token == NULL) {
12959 D(p->level--);
12960 return NULL;
12961 }
12962 int _end_lineno = _token->end_lineno;
12963 UNUSED(_end_lineno); // Only used by EXTRA macro
12964 int _end_col_offset = _token->end_col_offset;
12965 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012966 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012967 if (_res == NULL && PyErr_Occurred()) {
12968 p->error_indicator = 1;
12969 D(p->level--);
12970 return NULL;
12971 }
12972 goto done;
12973 }
12974 p->mark = _mark;
12975 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12977 }
12978 { // shift_expr '>>' sum
12979 if (p->error_indicator) {
12980 D(p->level--);
12981 return NULL;
12982 }
12983 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12984 Token * _literal;
12985 expr_ty a;
12986 expr_ty b;
12987 if (
12988 (a = shift_expr_rule(p)) // shift_expr
12989 &&
12990 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
12991 &&
12992 (b = sum_rule(p)) // sum
12993 )
12994 {
12995 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
12996 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12997 if (_token == NULL) {
12998 D(p->level--);
12999 return NULL;
13000 }
13001 int _end_lineno = _token->end_lineno;
13002 UNUSED(_end_lineno); // Only used by EXTRA macro
13003 int _end_col_offset = _token->end_col_offset;
13004 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013005 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013006 if (_res == NULL && PyErr_Occurred()) {
13007 p->error_indicator = 1;
13008 D(p->level--);
13009 return NULL;
13010 }
13011 goto done;
13012 }
13013 p->mark = _mark;
13014 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13016 }
13017 { // sum
13018 if (p->error_indicator) {
13019 D(p->level--);
13020 return NULL;
13021 }
13022 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13023 expr_ty sum_var;
13024 if (
13025 (sum_var = sum_rule(p)) // sum
13026 )
13027 {
13028 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13029 _res = sum_var;
13030 goto done;
13031 }
13032 p->mark = _mark;
13033 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13035 }
13036 _res = NULL;
13037 done:
13038 D(p->level--);
13039 return _res;
13040}
13041
13042// Left-recursive
13043// sum: sum '+' term | sum '-' term | term
13044static expr_ty sum_raw(Parser *);
13045static expr_ty
13046sum_rule(Parser *p)
13047{
13048 D(p->level++);
13049 expr_ty _res = NULL;
13050 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13051 D(p->level--);
13052 return _res;
13053 }
13054 int _mark = p->mark;
13055 int _resmark = p->mark;
13056 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013057 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13058 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013059 D(p->level--);
13060 return _res;
13061 }
13062 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013063 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013064 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013065 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013066 if (p->error_indicator)
13067 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013068 if (_raw == NULL || p->mark <= _resmark)
13069 break;
13070 _resmark = p->mark;
13071 _res = _raw;
13072 }
13073 p->mark = _resmark;
13074 D(p->level--);
13075 return _res;
13076}
13077static expr_ty
13078sum_raw(Parser *p)
13079{
13080 D(p->level++);
13081 if (p->error_indicator) {
13082 D(p->level--);
13083 return NULL;
13084 }
13085 expr_ty _res = NULL;
13086 int _mark = p->mark;
13087 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13088 p->error_indicator = 1;
13089 D(p->level--);
13090 return NULL;
13091 }
13092 int _start_lineno = p->tokens[_mark]->lineno;
13093 UNUSED(_start_lineno); // Only used by EXTRA macro
13094 int _start_col_offset = p->tokens[_mark]->col_offset;
13095 UNUSED(_start_col_offset); // Only used by EXTRA macro
13096 { // sum '+' term
13097 if (p->error_indicator) {
13098 D(p->level--);
13099 return NULL;
13100 }
13101 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13102 Token * _literal;
13103 expr_ty a;
13104 expr_ty b;
13105 if (
13106 (a = sum_rule(p)) // sum
13107 &&
13108 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13109 &&
13110 (b = term_rule(p)) // term
13111 )
13112 {
13113 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13114 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13115 if (_token == NULL) {
13116 D(p->level--);
13117 return NULL;
13118 }
13119 int _end_lineno = _token->end_lineno;
13120 UNUSED(_end_lineno); // Only used by EXTRA macro
13121 int _end_col_offset = _token->end_col_offset;
13122 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013123 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013124 if (_res == NULL && PyErr_Occurred()) {
13125 p->error_indicator = 1;
13126 D(p->level--);
13127 return NULL;
13128 }
13129 goto done;
13130 }
13131 p->mark = _mark;
13132 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13134 }
13135 { // sum '-' term
13136 if (p->error_indicator) {
13137 D(p->level--);
13138 return NULL;
13139 }
13140 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13141 Token * _literal;
13142 expr_ty a;
13143 expr_ty b;
13144 if (
13145 (a = sum_rule(p)) // sum
13146 &&
13147 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13148 &&
13149 (b = term_rule(p)) // term
13150 )
13151 {
13152 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13153 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13154 if (_token == NULL) {
13155 D(p->level--);
13156 return NULL;
13157 }
13158 int _end_lineno = _token->end_lineno;
13159 UNUSED(_end_lineno); // Only used by EXTRA macro
13160 int _end_col_offset = _token->end_col_offset;
13161 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013162 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013163 if (_res == NULL && PyErr_Occurred()) {
13164 p->error_indicator = 1;
13165 D(p->level--);
13166 return NULL;
13167 }
13168 goto done;
13169 }
13170 p->mark = _mark;
13171 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13173 }
13174 { // term
13175 if (p->error_indicator) {
13176 D(p->level--);
13177 return NULL;
13178 }
13179 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13180 expr_ty term_var;
13181 if (
13182 (term_var = term_rule(p)) // term
13183 )
13184 {
13185 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13186 _res = term_var;
13187 goto done;
13188 }
13189 p->mark = _mark;
13190 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13192 }
13193 _res = NULL;
13194 done:
13195 D(p->level--);
13196 return _res;
13197}
13198
13199// Left-recursive
13200// term:
13201// | term '*' factor
13202// | term '/' factor
13203// | term '//' factor
13204// | term '%' factor
13205// | term '@' factor
13206// | factor
13207static expr_ty term_raw(Parser *);
13208static expr_ty
13209term_rule(Parser *p)
13210{
13211 D(p->level++);
13212 expr_ty _res = NULL;
13213 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13214 D(p->level--);
13215 return _res;
13216 }
13217 int _mark = p->mark;
13218 int _resmark = p->mark;
13219 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013220 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13221 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013222 D(p->level--);
13223 return _res;
13224 }
13225 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013226 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013227 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013228 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013229 if (p->error_indicator)
13230 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013231 if (_raw == NULL || p->mark <= _resmark)
13232 break;
13233 _resmark = p->mark;
13234 _res = _raw;
13235 }
13236 p->mark = _resmark;
13237 D(p->level--);
13238 return _res;
13239}
13240static expr_ty
13241term_raw(Parser *p)
13242{
13243 D(p->level++);
13244 if (p->error_indicator) {
13245 D(p->level--);
13246 return NULL;
13247 }
13248 expr_ty _res = NULL;
13249 int _mark = p->mark;
13250 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13251 p->error_indicator = 1;
13252 D(p->level--);
13253 return NULL;
13254 }
13255 int _start_lineno = p->tokens[_mark]->lineno;
13256 UNUSED(_start_lineno); // Only used by EXTRA macro
13257 int _start_col_offset = p->tokens[_mark]->col_offset;
13258 UNUSED(_start_col_offset); // Only used by EXTRA macro
13259 { // term '*' factor
13260 if (p->error_indicator) {
13261 D(p->level--);
13262 return NULL;
13263 }
13264 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13265 Token * _literal;
13266 expr_ty a;
13267 expr_ty b;
13268 if (
13269 (a = term_rule(p)) // term
13270 &&
13271 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13272 &&
13273 (b = factor_rule(p)) // factor
13274 )
13275 {
13276 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13277 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13278 if (_token == NULL) {
13279 D(p->level--);
13280 return NULL;
13281 }
13282 int _end_lineno = _token->end_lineno;
13283 UNUSED(_end_lineno); // Only used by EXTRA macro
13284 int _end_col_offset = _token->end_col_offset;
13285 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013286 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013287 if (_res == NULL && PyErr_Occurred()) {
13288 p->error_indicator = 1;
13289 D(p->level--);
13290 return NULL;
13291 }
13292 goto done;
13293 }
13294 p->mark = _mark;
13295 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13297 }
13298 { // term '/' factor
13299 if (p->error_indicator) {
13300 D(p->level--);
13301 return NULL;
13302 }
13303 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13304 Token * _literal;
13305 expr_ty a;
13306 expr_ty b;
13307 if (
13308 (a = term_rule(p)) // term
13309 &&
13310 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13311 &&
13312 (b = factor_rule(p)) // factor
13313 )
13314 {
13315 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13316 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13317 if (_token == NULL) {
13318 D(p->level--);
13319 return NULL;
13320 }
13321 int _end_lineno = _token->end_lineno;
13322 UNUSED(_end_lineno); // Only used by EXTRA macro
13323 int _end_col_offset = _token->end_col_offset;
13324 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013325 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013326 if (_res == NULL && PyErr_Occurred()) {
13327 p->error_indicator = 1;
13328 D(p->level--);
13329 return NULL;
13330 }
13331 goto done;
13332 }
13333 p->mark = _mark;
13334 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13336 }
13337 { // term '//' factor
13338 if (p->error_indicator) {
13339 D(p->level--);
13340 return NULL;
13341 }
13342 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13343 Token * _literal;
13344 expr_ty a;
13345 expr_ty b;
13346 if (
13347 (a = term_rule(p)) // term
13348 &&
13349 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13350 &&
13351 (b = factor_rule(p)) // factor
13352 )
13353 {
13354 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13355 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13356 if (_token == NULL) {
13357 D(p->level--);
13358 return NULL;
13359 }
13360 int _end_lineno = _token->end_lineno;
13361 UNUSED(_end_lineno); // Only used by EXTRA macro
13362 int _end_col_offset = _token->end_col_offset;
13363 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013364 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013365 if (_res == NULL && PyErr_Occurred()) {
13366 p->error_indicator = 1;
13367 D(p->level--);
13368 return NULL;
13369 }
13370 goto done;
13371 }
13372 p->mark = _mark;
13373 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13375 }
13376 { // term '%' factor
13377 if (p->error_indicator) {
13378 D(p->level--);
13379 return NULL;
13380 }
13381 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13382 Token * _literal;
13383 expr_ty a;
13384 expr_ty b;
13385 if (
13386 (a = term_rule(p)) // term
13387 &&
13388 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13389 &&
13390 (b = factor_rule(p)) // factor
13391 )
13392 {
13393 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13394 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13395 if (_token == NULL) {
13396 D(p->level--);
13397 return NULL;
13398 }
13399 int _end_lineno = _token->end_lineno;
13400 UNUSED(_end_lineno); // Only used by EXTRA macro
13401 int _end_col_offset = _token->end_col_offset;
13402 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013403 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013404 if (_res == NULL && PyErr_Occurred()) {
13405 p->error_indicator = 1;
13406 D(p->level--);
13407 return NULL;
13408 }
13409 goto done;
13410 }
13411 p->mark = _mark;
13412 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13414 }
13415 { // term '@' factor
13416 if (p->error_indicator) {
13417 D(p->level--);
13418 return NULL;
13419 }
13420 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13421 Token * _literal;
13422 expr_ty a;
13423 expr_ty b;
13424 if (
13425 (a = term_rule(p)) // term
13426 &&
13427 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13428 &&
13429 (b = factor_rule(p)) // factor
13430 )
13431 {
13432 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13433 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13434 if (_token == NULL) {
13435 D(p->level--);
13436 return NULL;
13437 }
13438 int _end_lineno = _token->end_lineno;
13439 UNUSED(_end_lineno); // Only used by EXTRA macro
13440 int _end_col_offset = _token->end_col_offset;
13441 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013442 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013443 if (_res == NULL && PyErr_Occurred()) {
13444 p->error_indicator = 1;
13445 D(p->level--);
13446 return NULL;
13447 }
13448 goto done;
13449 }
13450 p->mark = _mark;
13451 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13453 }
13454 { // factor
13455 if (p->error_indicator) {
13456 D(p->level--);
13457 return NULL;
13458 }
13459 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13460 expr_ty factor_var;
13461 if (
13462 (factor_var = factor_rule(p)) // factor
13463 )
13464 {
13465 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13466 _res = factor_var;
13467 goto done;
13468 }
13469 p->mark = _mark;
13470 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13472 }
13473 _res = NULL;
13474 done:
13475 D(p->level--);
13476 return _res;
13477}
13478
13479// factor: '+' factor | '-' factor | '~' factor | power
13480static expr_ty
13481factor_rule(Parser *p)
13482{
13483 D(p->level++);
13484 if (p->error_indicator) {
13485 D(p->level--);
13486 return NULL;
13487 }
13488 expr_ty _res = NULL;
13489 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13490 D(p->level--);
13491 return _res;
13492 }
13493 int _mark = p->mark;
13494 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13495 p->error_indicator = 1;
13496 D(p->level--);
13497 return NULL;
13498 }
13499 int _start_lineno = p->tokens[_mark]->lineno;
13500 UNUSED(_start_lineno); // Only used by EXTRA macro
13501 int _start_col_offset = p->tokens[_mark]->col_offset;
13502 UNUSED(_start_col_offset); // Only used by EXTRA macro
13503 { // '+' factor
13504 if (p->error_indicator) {
13505 D(p->level--);
13506 return NULL;
13507 }
13508 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13509 Token * _literal;
13510 expr_ty a;
13511 if (
13512 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13513 &&
13514 (a = factor_rule(p)) // factor
13515 )
13516 {
13517 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13518 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13519 if (_token == NULL) {
13520 D(p->level--);
13521 return NULL;
13522 }
13523 int _end_lineno = _token->end_lineno;
13524 UNUSED(_end_lineno); // Only used by EXTRA macro
13525 int _end_col_offset = _token->end_col_offset;
13526 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013527 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013528 if (_res == NULL && PyErr_Occurred()) {
13529 p->error_indicator = 1;
13530 D(p->level--);
13531 return NULL;
13532 }
13533 goto done;
13534 }
13535 p->mark = _mark;
13536 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13538 }
13539 { // '-' factor
13540 if (p->error_indicator) {
13541 D(p->level--);
13542 return NULL;
13543 }
13544 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13545 Token * _literal;
13546 expr_ty a;
13547 if (
13548 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13549 &&
13550 (a = factor_rule(p)) // factor
13551 )
13552 {
13553 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13554 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13555 if (_token == NULL) {
13556 D(p->level--);
13557 return NULL;
13558 }
13559 int _end_lineno = _token->end_lineno;
13560 UNUSED(_end_lineno); // Only used by EXTRA macro
13561 int _end_col_offset = _token->end_col_offset;
13562 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013563 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013564 if (_res == NULL && PyErr_Occurred()) {
13565 p->error_indicator = 1;
13566 D(p->level--);
13567 return NULL;
13568 }
13569 goto done;
13570 }
13571 p->mark = _mark;
13572 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13574 }
13575 { // '~' factor
13576 if (p->error_indicator) {
13577 D(p->level--);
13578 return NULL;
13579 }
13580 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13581 Token * _literal;
13582 expr_ty a;
13583 if (
13584 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13585 &&
13586 (a = factor_rule(p)) // factor
13587 )
13588 {
13589 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13590 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13591 if (_token == NULL) {
13592 D(p->level--);
13593 return NULL;
13594 }
13595 int _end_lineno = _token->end_lineno;
13596 UNUSED(_end_lineno); // Only used by EXTRA macro
13597 int _end_col_offset = _token->end_col_offset;
13598 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013599 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013600 if (_res == NULL && PyErr_Occurred()) {
13601 p->error_indicator = 1;
13602 D(p->level--);
13603 return NULL;
13604 }
13605 goto done;
13606 }
13607 p->mark = _mark;
13608 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13609 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13610 }
13611 { // power
13612 if (p->error_indicator) {
13613 D(p->level--);
13614 return NULL;
13615 }
13616 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13617 expr_ty power_var;
13618 if (
13619 (power_var = power_rule(p)) // power
13620 )
13621 {
13622 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13623 _res = power_var;
13624 goto done;
13625 }
13626 p->mark = _mark;
13627 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13629 }
13630 _res = NULL;
13631 done:
13632 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13633 D(p->level--);
13634 return _res;
13635}
13636
13637// power: await_primary '**' factor | await_primary
13638static expr_ty
13639power_rule(Parser *p)
13640{
13641 D(p->level++);
13642 if (p->error_indicator) {
13643 D(p->level--);
13644 return NULL;
13645 }
13646 expr_ty _res = NULL;
13647 int _mark = p->mark;
13648 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13649 p->error_indicator = 1;
13650 D(p->level--);
13651 return NULL;
13652 }
13653 int _start_lineno = p->tokens[_mark]->lineno;
13654 UNUSED(_start_lineno); // Only used by EXTRA macro
13655 int _start_col_offset = p->tokens[_mark]->col_offset;
13656 UNUSED(_start_col_offset); // Only used by EXTRA macro
13657 { // await_primary '**' factor
13658 if (p->error_indicator) {
13659 D(p->level--);
13660 return NULL;
13661 }
13662 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13663 Token * _literal;
13664 expr_ty a;
13665 expr_ty b;
13666 if (
13667 (a = await_primary_rule(p)) // await_primary
13668 &&
13669 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13670 &&
13671 (b = factor_rule(p)) // factor
13672 )
13673 {
13674 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13675 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13676 if (_token == NULL) {
13677 D(p->level--);
13678 return NULL;
13679 }
13680 int _end_lineno = _token->end_lineno;
13681 UNUSED(_end_lineno); // Only used by EXTRA macro
13682 int _end_col_offset = _token->end_col_offset;
13683 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013684 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013685 if (_res == NULL && PyErr_Occurred()) {
13686 p->error_indicator = 1;
13687 D(p->level--);
13688 return NULL;
13689 }
13690 goto done;
13691 }
13692 p->mark = _mark;
13693 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13695 }
13696 { // await_primary
13697 if (p->error_indicator) {
13698 D(p->level--);
13699 return NULL;
13700 }
13701 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13702 expr_ty await_primary_var;
13703 if (
13704 (await_primary_var = await_primary_rule(p)) // await_primary
13705 )
13706 {
13707 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13708 _res = await_primary_var;
13709 goto done;
13710 }
13711 p->mark = _mark;
13712 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13714 }
13715 _res = NULL;
13716 done:
13717 D(p->level--);
13718 return _res;
13719}
13720
13721// await_primary: AWAIT primary | primary
13722static expr_ty
13723await_primary_rule(Parser *p)
13724{
13725 D(p->level++);
13726 if (p->error_indicator) {
13727 D(p->level--);
13728 return NULL;
13729 }
13730 expr_ty _res = NULL;
13731 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13732 D(p->level--);
13733 return _res;
13734 }
13735 int _mark = p->mark;
13736 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13737 p->error_indicator = 1;
13738 D(p->level--);
13739 return NULL;
13740 }
13741 int _start_lineno = p->tokens[_mark]->lineno;
13742 UNUSED(_start_lineno); // Only used by EXTRA macro
13743 int _start_col_offset = p->tokens[_mark]->col_offset;
13744 UNUSED(_start_col_offset); // Only used by EXTRA macro
13745 { // AWAIT primary
13746 if (p->error_indicator) {
13747 D(p->level--);
13748 return NULL;
13749 }
13750 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13751 expr_ty a;
13752 Token * await_var;
13753 if (
13754 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13755 &&
13756 (a = primary_rule(p)) // primary
13757 )
13758 {
13759 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13760 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13761 if (_token == NULL) {
13762 D(p->level--);
13763 return NULL;
13764 }
13765 int _end_lineno = _token->end_lineno;
13766 UNUSED(_end_lineno); // Only used by EXTRA macro
13767 int _end_col_offset = _token->end_col_offset;
13768 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013769 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013770 if (_res == NULL && PyErr_Occurred()) {
13771 p->error_indicator = 1;
13772 D(p->level--);
13773 return NULL;
13774 }
13775 goto done;
13776 }
13777 p->mark = _mark;
13778 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13779 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13780 }
13781 { // primary
13782 if (p->error_indicator) {
13783 D(p->level--);
13784 return NULL;
13785 }
13786 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13787 expr_ty primary_var;
13788 if (
13789 (primary_var = primary_rule(p)) // primary
13790 )
13791 {
13792 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13793 _res = primary_var;
13794 goto done;
13795 }
13796 p->mark = _mark;
13797 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13799 }
13800 _res = NULL;
13801 done:
13802 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13803 D(p->level--);
13804 return _res;
13805}
13806
13807// Left-recursive
13808// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013809// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013810// | primary '.' NAME
13811// | primary genexp
13812// | primary '(' arguments? ')'
13813// | primary '[' slices ']'
13814// | atom
13815static expr_ty primary_raw(Parser *);
13816static expr_ty
13817primary_rule(Parser *p)
13818{
13819 D(p->level++);
13820 expr_ty _res = NULL;
13821 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13822 D(p->level--);
13823 return _res;
13824 }
13825 int _mark = p->mark;
13826 int _resmark = p->mark;
13827 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013828 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13829 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013830 D(p->level--);
13831 return _res;
13832 }
13833 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013834 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013835 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013836 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013837 if (p->error_indicator)
13838 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013839 if (_raw == NULL || p->mark <= _resmark)
13840 break;
13841 _resmark = p->mark;
13842 _res = _raw;
13843 }
13844 p->mark = _resmark;
13845 D(p->level--);
13846 return _res;
13847}
13848static expr_ty
13849primary_raw(Parser *p)
13850{
13851 D(p->level++);
13852 if (p->error_indicator) {
13853 D(p->level--);
13854 return NULL;
13855 }
13856 expr_ty _res = NULL;
13857 int _mark = p->mark;
13858 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13859 p->error_indicator = 1;
13860 D(p->level--);
13861 return NULL;
13862 }
13863 int _start_lineno = p->tokens[_mark]->lineno;
13864 UNUSED(_start_lineno); // Only used by EXTRA macro
13865 int _start_col_offset = p->tokens[_mark]->col_offset;
13866 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013867 if (p->call_invalid_rules) { // invalid_primary
13868 if (p->error_indicator) {
13869 D(p->level--);
13870 return NULL;
13871 }
13872 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13873 void *invalid_primary_var;
13874 if (
13875 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13876 )
13877 {
13878 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13879 _res = invalid_primary_var;
13880 goto done;
13881 }
13882 p->mark = _mark;
13883 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13885 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013886 { // primary '.' NAME
13887 if (p->error_indicator) {
13888 D(p->level--);
13889 return NULL;
13890 }
13891 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13892 Token * _literal;
13893 expr_ty a;
13894 expr_ty b;
13895 if (
13896 (a = primary_rule(p)) // primary
13897 &&
13898 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13899 &&
13900 (b = _PyPegen_name_token(p)) // NAME
13901 )
13902 {
13903 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13904 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13905 if (_token == NULL) {
13906 D(p->level--);
13907 return NULL;
13908 }
13909 int _end_lineno = _token->end_lineno;
13910 UNUSED(_end_lineno); // Only used by EXTRA macro
13911 int _end_col_offset = _token->end_col_offset;
13912 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013913 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013914 if (_res == NULL && PyErr_Occurred()) {
13915 p->error_indicator = 1;
13916 D(p->level--);
13917 return NULL;
13918 }
13919 goto done;
13920 }
13921 p->mark = _mark;
13922 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13924 }
13925 { // primary genexp
13926 if (p->error_indicator) {
13927 D(p->level--);
13928 return NULL;
13929 }
13930 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13931 expr_ty a;
13932 expr_ty b;
13933 if (
13934 (a = primary_rule(p)) // primary
13935 &&
13936 (b = genexp_rule(p)) // genexp
13937 )
13938 {
13939 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13941 if (_token == NULL) {
13942 D(p->level--);
13943 return NULL;
13944 }
13945 int _end_lineno = _token->end_lineno;
13946 UNUSED(_end_lineno); // Only used by EXTRA macro
13947 int _end_col_offset = _token->end_col_offset;
13948 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013949 _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 +010013950 if (_res == NULL && PyErr_Occurred()) {
13951 p->error_indicator = 1;
13952 D(p->level--);
13953 return NULL;
13954 }
13955 goto done;
13956 }
13957 p->mark = _mark;
13958 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13960 }
13961 { // primary '(' arguments? ')'
13962 if (p->error_indicator) {
13963 D(p->level--);
13964 return NULL;
13965 }
13966 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13967 Token * _literal;
13968 Token * _literal_1;
13969 expr_ty a;
13970 void *b;
13971 if (
13972 (a = primary_rule(p)) // primary
13973 &&
13974 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13975 &&
13976 (b = arguments_rule(p), 1) // arguments?
13977 &&
13978 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
13979 )
13980 {
13981 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13982 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13983 if (_token == NULL) {
13984 D(p->level--);
13985 return NULL;
13986 }
13987 int _end_lineno = _token->end_lineno;
13988 UNUSED(_end_lineno); // Only used by EXTRA macro
13989 int _end_col_offset = _token->end_col_offset;
13990 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013991 _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 +010013992 if (_res == NULL && PyErr_Occurred()) {
13993 p->error_indicator = 1;
13994 D(p->level--);
13995 return NULL;
13996 }
13997 goto done;
13998 }
13999 p->mark = _mark;
14000 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14002 }
14003 { // primary '[' slices ']'
14004 if (p->error_indicator) {
14005 D(p->level--);
14006 return NULL;
14007 }
14008 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14009 Token * _literal;
14010 Token * _literal_1;
14011 expr_ty a;
14012 expr_ty b;
14013 if (
14014 (a = primary_rule(p)) // primary
14015 &&
14016 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14017 &&
14018 (b = slices_rule(p)) // slices
14019 &&
14020 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14021 )
14022 {
14023 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14024 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14025 if (_token == NULL) {
14026 D(p->level--);
14027 return NULL;
14028 }
14029 int _end_lineno = _token->end_lineno;
14030 UNUSED(_end_lineno); // Only used by EXTRA macro
14031 int _end_col_offset = _token->end_col_offset;
14032 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014033 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014034 if (_res == NULL && PyErr_Occurred()) {
14035 p->error_indicator = 1;
14036 D(p->level--);
14037 return NULL;
14038 }
14039 goto done;
14040 }
14041 p->mark = _mark;
14042 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14044 }
14045 { // atom
14046 if (p->error_indicator) {
14047 D(p->level--);
14048 return NULL;
14049 }
14050 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14051 expr_ty atom_var;
14052 if (
14053 (atom_var = atom_rule(p)) // atom
14054 )
14055 {
14056 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14057 _res = atom_var;
14058 goto done;
14059 }
14060 p->mark = _mark;
14061 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14063 }
14064 _res = NULL;
14065 done:
14066 D(p->level--);
14067 return _res;
14068}
14069
14070// slices: slice !',' | ','.slice+ ','?
14071static expr_ty
14072slices_rule(Parser *p)
14073{
14074 D(p->level++);
14075 if (p->error_indicator) {
14076 D(p->level--);
14077 return NULL;
14078 }
14079 expr_ty _res = NULL;
14080 int _mark = p->mark;
14081 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14082 p->error_indicator = 1;
14083 D(p->level--);
14084 return NULL;
14085 }
14086 int _start_lineno = p->tokens[_mark]->lineno;
14087 UNUSED(_start_lineno); // Only used by EXTRA macro
14088 int _start_col_offset = p->tokens[_mark]->col_offset;
14089 UNUSED(_start_col_offset); // Only used by EXTRA macro
14090 { // slice !','
14091 if (p->error_indicator) {
14092 D(p->level--);
14093 return NULL;
14094 }
14095 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14096 expr_ty a;
14097 if (
14098 (a = slice_rule(p)) // slice
14099 &&
14100 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14101 )
14102 {
14103 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14104 _res = a;
14105 if (_res == NULL && PyErr_Occurred()) {
14106 p->error_indicator = 1;
14107 D(p->level--);
14108 return NULL;
14109 }
14110 goto done;
14111 }
14112 p->mark = _mark;
14113 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14115 }
14116 { // ','.slice+ ','?
14117 if (p->error_indicator) {
14118 D(p->level--);
14119 return NULL;
14120 }
14121 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14122 void *_opt_var;
14123 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014124 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014125 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014126 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014127 &&
14128 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14129 )
14130 {
14131 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14132 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14133 if (_token == NULL) {
14134 D(p->level--);
14135 return NULL;
14136 }
14137 int _end_lineno = _token->end_lineno;
14138 UNUSED(_end_lineno); // Only used by EXTRA macro
14139 int _end_col_offset = _token->end_col_offset;
14140 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014141 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014142 if (_res == NULL && PyErr_Occurred()) {
14143 p->error_indicator = 1;
14144 D(p->level--);
14145 return NULL;
14146 }
14147 goto done;
14148 }
14149 p->mark = _mark;
14150 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14152 }
14153 _res = NULL;
14154 done:
14155 D(p->level--);
14156 return _res;
14157}
14158
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014159// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014160static expr_ty
14161slice_rule(Parser *p)
14162{
14163 D(p->level++);
14164 if (p->error_indicator) {
14165 D(p->level--);
14166 return NULL;
14167 }
14168 expr_ty _res = NULL;
14169 int _mark = p->mark;
14170 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14171 p->error_indicator = 1;
14172 D(p->level--);
14173 return NULL;
14174 }
14175 int _start_lineno = p->tokens[_mark]->lineno;
14176 UNUSED(_start_lineno); // Only used by EXTRA macro
14177 int _start_col_offset = p->tokens[_mark]->col_offset;
14178 UNUSED(_start_col_offset); // Only used by EXTRA macro
14179 { // expression? ':' expression? [':' expression?]
14180 if (p->error_indicator) {
14181 D(p->level--);
14182 return NULL;
14183 }
14184 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14185 Token * _literal;
14186 void *a;
14187 void *b;
14188 void *c;
14189 if (
14190 (a = expression_rule(p), 1) // expression?
14191 &&
14192 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14193 &&
14194 (b = expression_rule(p), 1) // expression?
14195 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014196 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014197 )
14198 {
14199 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14200 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14201 if (_token == NULL) {
14202 D(p->level--);
14203 return NULL;
14204 }
14205 int _end_lineno = _token->end_lineno;
14206 UNUSED(_end_lineno); // Only used by EXTRA macro
14207 int _end_col_offset = _token->end_col_offset;
14208 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014209 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014210 if (_res == NULL && PyErr_Occurred()) {
14211 p->error_indicator = 1;
14212 D(p->level--);
14213 return NULL;
14214 }
14215 goto done;
14216 }
14217 p->mark = _mark;
14218 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14220 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014221 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014222 if (p->error_indicator) {
14223 D(p->level--);
14224 return NULL;
14225 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014226 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014227 expr_ty a;
14228 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014229 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014230 )
14231 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014232 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014233 _res = a;
14234 if (_res == NULL && PyErr_Occurred()) {
14235 p->error_indicator = 1;
14236 D(p->level--);
14237 return NULL;
14238 }
14239 goto done;
14240 }
14241 p->mark = _mark;
14242 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014244 }
14245 _res = NULL;
14246 done:
14247 D(p->level--);
14248 return _res;
14249}
14250
14251// atom:
14252// | NAME
14253// | 'True'
14254// | 'False'
14255// | 'None'
14256// | &STRING strings
14257// | NUMBER
14258// | &'(' (tuple | group | genexp)
14259// | &'[' (list | listcomp)
14260// | &'{' (dict | set | dictcomp | setcomp)
14261// | '...'
14262static expr_ty
14263atom_rule(Parser *p)
14264{
14265 D(p->level++);
14266 if (p->error_indicator) {
14267 D(p->level--);
14268 return NULL;
14269 }
14270 expr_ty _res = NULL;
14271 int _mark = p->mark;
14272 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14273 p->error_indicator = 1;
14274 D(p->level--);
14275 return NULL;
14276 }
14277 int _start_lineno = p->tokens[_mark]->lineno;
14278 UNUSED(_start_lineno); // Only used by EXTRA macro
14279 int _start_col_offset = p->tokens[_mark]->col_offset;
14280 UNUSED(_start_col_offset); // Only used by EXTRA macro
14281 { // NAME
14282 if (p->error_indicator) {
14283 D(p->level--);
14284 return NULL;
14285 }
14286 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14287 expr_ty name_var;
14288 if (
14289 (name_var = _PyPegen_name_token(p)) // NAME
14290 )
14291 {
14292 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14293 _res = name_var;
14294 goto done;
14295 }
14296 p->mark = _mark;
14297 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14299 }
14300 { // 'True'
14301 if (p->error_indicator) {
14302 D(p->level--);
14303 return NULL;
14304 }
14305 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14306 Token * _keyword;
14307 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014308 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014309 )
14310 {
14311 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14312 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14313 if (_token == NULL) {
14314 D(p->level--);
14315 return NULL;
14316 }
14317 int _end_lineno = _token->end_lineno;
14318 UNUSED(_end_lineno); // Only used by EXTRA macro
14319 int _end_col_offset = _token->end_col_offset;
14320 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014321 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014322 if (_res == NULL && PyErr_Occurred()) {
14323 p->error_indicator = 1;
14324 D(p->level--);
14325 return NULL;
14326 }
14327 goto done;
14328 }
14329 p->mark = _mark;
14330 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14332 }
14333 { // 'False'
14334 if (p->error_indicator) {
14335 D(p->level--);
14336 return NULL;
14337 }
14338 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14339 Token * _keyword;
14340 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014341 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014342 )
14343 {
14344 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14345 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14346 if (_token == NULL) {
14347 D(p->level--);
14348 return NULL;
14349 }
14350 int _end_lineno = _token->end_lineno;
14351 UNUSED(_end_lineno); // Only used by EXTRA macro
14352 int _end_col_offset = _token->end_col_offset;
14353 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014354 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014355 if (_res == NULL && PyErr_Occurred()) {
14356 p->error_indicator = 1;
14357 D(p->level--);
14358 return NULL;
14359 }
14360 goto done;
14361 }
14362 p->mark = _mark;
14363 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14365 }
14366 { // 'None'
14367 if (p->error_indicator) {
14368 D(p->level--);
14369 return NULL;
14370 }
14371 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14372 Token * _keyword;
14373 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014374 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014375 )
14376 {
14377 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14378 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14379 if (_token == NULL) {
14380 D(p->level--);
14381 return NULL;
14382 }
14383 int _end_lineno = _token->end_lineno;
14384 UNUSED(_end_lineno); // Only used by EXTRA macro
14385 int _end_col_offset = _token->end_col_offset;
14386 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014387 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014388 if (_res == NULL && PyErr_Occurred()) {
14389 p->error_indicator = 1;
14390 D(p->level--);
14391 return NULL;
14392 }
14393 goto done;
14394 }
14395 p->mark = _mark;
14396 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14397 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
14398 }
14399 { // &STRING strings
14400 if (p->error_indicator) {
14401 D(p->level--);
14402 return NULL;
14403 }
14404 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14405 expr_ty strings_var;
14406 if (
14407 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14408 &&
14409 (strings_var = strings_rule(p)) // strings
14410 )
14411 {
14412 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14413 _res = strings_var;
14414 goto done;
14415 }
14416 p->mark = _mark;
14417 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14419 }
14420 { // NUMBER
14421 if (p->error_indicator) {
14422 D(p->level--);
14423 return NULL;
14424 }
14425 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14426 expr_ty number_var;
14427 if (
14428 (number_var = _PyPegen_number_token(p)) // NUMBER
14429 )
14430 {
14431 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14432 _res = number_var;
14433 goto done;
14434 }
14435 p->mark = _mark;
14436 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
14438 }
14439 { // &'(' (tuple | group | genexp)
14440 if (p->error_indicator) {
14441 D(p->level--);
14442 return NULL;
14443 }
14444 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014445 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014446 if (
14447 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14448 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014449 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014450 )
14451 {
14452 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 -080014453 _res = _tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014454 goto done;
14455 }
14456 p->mark = _mark;
14457 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
14459 }
14460 { // &'[' (list | listcomp)
14461 if (p->error_indicator) {
14462 D(p->level--);
14463 return NULL;
14464 }
14465 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014466 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014467 if (
14468 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14469 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014470 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014471 )
14472 {
14473 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014474 _res = _tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014475 goto done;
14476 }
14477 p->mark = _mark;
14478 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
14480 }
14481 { // &'{' (dict | set | dictcomp | setcomp)
14482 if (p->error_indicator) {
14483 D(p->level--);
14484 return NULL;
14485 }
14486 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 -080014487 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014488 if (
14489 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14490 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014491 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014492 )
14493 {
14494 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 -080014495 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014496 goto done;
14497 }
14498 p->mark = _mark;
14499 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14501 }
14502 { // '...'
14503 if (p->error_indicator) {
14504 D(p->level--);
14505 return NULL;
14506 }
14507 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14508 Token * _literal;
14509 if (
14510 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14511 )
14512 {
14513 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14514 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14515 if (_token == NULL) {
14516 D(p->level--);
14517 return NULL;
14518 }
14519 int _end_lineno = _token->end_lineno;
14520 UNUSED(_end_lineno); // Only used by EXTRA macro
14521 int _end_col_offset = _token->end_col_offset;
14522 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014523 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014524 if (_res == NULL && PyErr_Occurred()) {
14525 p->error_indicator = 1;
14526 D(p->level--);
14527 return NULL;
14528 }
14529 goto done;
14530 }
14531 p->mark = _mark;
14532 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14533 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14534 }
14535 _res = NULL;
14536 done:
14537 D(p->level--);
14538 return _res;
14539}
14540
14541// strings: STRING+
14542static expr_ty
14543strings_rule(Parser *p)
14544{
14545 D(p->level++);
14546 if (p->error_indicator) {
14547 D(p->level--);
14548 return NULL;
14549 }
14550 expr_ty _res = NULL;
14551 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14552 D(p->level--);
14553 return _res;
14554 }
14555 int _mark = p->mark;
14556 { // STRING+
14557 if (p->error_indicator) {
14558 D(p->level--);
14559 return NULL;
14560 }
14561 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14562 asdl_seq * a;
14563 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014564 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014565 )
14566 {
14567 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14568 _res = _PyPegen_concatenate_strings ( p , a );
14569 if (_res == NULL && PyErr_Occurred()) {
14570 p->error_indicator = 1;
14571 D(p->level--);
14572 return NULL;
14573 }
14574 goto done;
14575 }
14576 p->mark = _mark;
14577 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14579 }
14580 _res = NULL;
14581 done:
14582 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14583 D(p->level--);
14584 return _res;
14585}
14586
14587// list: '[' star_named_expressions? ']'
14588static expr_ty
14589list_rule(Parser *p)
14590{
14591 D(p->level++);
14592 if (p->error_indicator) {
14593 D(p->level--);
14594 return NULL;
14595 }
14596 expr_ty _res = NULL;
14597 int _mark = p->mark;
14598 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14599 p->error_indicator = 1;
14600 D(p->level--);
14601 return NULL;
14602 }
14603 int _start_lineno = p->tokens[_mark]->lineno;
14604 UNUSED(_start_lineno); // Only used by EXTRA macro
14605 int _start_col_offset = p->tokens[_mark]->col_offset;
14606 UNUSED(_start_col_offset); // Only used by EXTRA macro
14607 { // '[' star_named_expressions? ']'
14608 if (p->error_indicator) {
14609 D(p->level--);
14610 return NULL;
14611 }
14612 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14613 Token * _literal;
14614 Token * _literal_1;
14615 void *a;
14616 if (
14617 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14618 &&
14619 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14620 &&
14621 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14622 )
14623 {
14624 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14625 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14626 if (_token == NULL) {
14627 D(p->level--);
14628 return NULL;
14629 }
14630 int _end_lineno = _token->end_lineno;
14631 UNUSED(_end_lineno); // Only used by EXTRA macro
14632 int _end_col_offset = _token->end_col_offset;
14633 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014634 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014635 if (_res == NULL && PyErr_Occurred()) {
14636 p->error_indicator = 1;
14637 D(p->level--);
14638 return NULL;
14639 }
14640 goto done;
14641 }
14642 p->mark = _mark;
14643 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14645 }
14646 _res = NULL;
14647 done:
14648 D(p->level--);
14649 return _res;
14650}
14651
Pablo Galindo835f14f2021-01-31 22:52:56 +000014652// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014653static expr_ty
14654listcomp_rule(Parser *p)
14655{
14656 D(p->level++);
14657 if (p->error_indicator) {
14658 D(p->level--);
14659 return NULL;
14660 }
14661 expr_ty _res = NULL;
14662 int _mark = p->mark;
14663 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14664 p->error_indicator = 1;
14665 D(p->level--);
14666 return NULL;
14667 }
14668 int _start_lineno = p->tokens[_mark]->lineno;
14669 UNUSED(_start_lineno); // Only used by EXTRA macro
14670 int _start_col_offset = p->tokens[_mark]->col_offset;
14671 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014672 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014673 if (p->error_indicator) {
14674 D(p->level--);
14675 return NULL;
14676 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014677 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 +010014678 Token * _literal;
14679 Token * _literal_1;
14680 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014681 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014682 if (
14683 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14684 &&
14685 (a = named_expression_rule(p)) // named_expression
14686 &&
14687 (b = for_if_clauses_rule(p)) // for_if_clauses
14688 &&
14689 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14690 )
14691 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014692 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 +010014693 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14694 if (_token == NULL) {
14695 D(p->level--);
14696 return NULL;
14697 }
14698 int _end_lineno = _token->end_lineno;
14699 UNUSED(_end_lineno); // Only used by EXTRA macro
14700 int _end_col_offset = _token->end_col_offset;
14701 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014702 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014703 if (_res == NULL && PyErr_Occurred()) {
14704 p->error_indicator = 1;
14705 D(p->level--);
14706 return NULL;
14707 }
14708 goto done;
14709 }
14710 p->mark = _mark;
14711 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014712 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014713 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014714 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014715 if (p->error_indicator) {
14716 D(p->level--);
14717 return NULL;
14718 }
14719 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14720 void *invalid_comprehension_var;
14721 if (
14722 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14723 )
14724 {
14725 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14726 _res = invalid_comprehension_var;
14727 goto done;
14728 }
14729 p->mark = _mark;
14730 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14732 }
14733 _res = NULL;
14734 done:
14735 D(p->level--);
14736 return _res;
14737}
14738
14739// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14740static expr_ty
14741tuple_rule(Parser *p)
14742{
14743 D(p->level++);
14744 if (p->error_indicator) {
14745 D(p->level--);
14746 return NULL;
14747 }
14748 expr_ty _res = NULL;
14749 int _mark = p->mark;
14750 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14751 p->error_indicator = 1;
14752 D(p->level--);
14753 return NULL;
14754 }
14755 int _start_lineno = p->tokens[_mark]->lineno;
14756 UNUSED(_start_lineno); // Only used by EXTRA macro
14757 int _start_col_offset = p->tokens[_mark]->col_offset;
14758 UNUSED(_start_col_offset); // Only used by EXTRA macro
14759 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14760 if (p->error_indicator) {
14761 D(p->level--);
14762 return NULL;
14763 }
14764 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14765 Token * _literal;
14766 Token * _literal_1;
14767 void *a;
14768 if (
14769 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14770 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014771 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014772 &&
14773 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14774 )
14775 {
14776 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14777 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14778 if (_token == NULL) {
14779 D(p->level--);
14780 return NULL;
14781 }
14782 int _end_lineno = _token->end_lineno;
14783 UNUSED(_end_lineno); // Only used by EXTRA macro
14784 int _end_col_offset = _token->end_col_offset;
14785 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014786 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014787 if (_res == NULL && PyErr_Occurred()) {
14788 p->error_indicator = 1;
14789 D(p->level--);
14790 return NULL;
14791 }
14792 goto done;
14793 }
14794 p->mark = _mark;
14795 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14797 }
14798 _res = NULL;
14799 done:
14800 D(p->level--);
14801 return _res;
14802}
14803
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014804// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014805static expr_ty
14806group_rule(Parser *p)
14807{
14808 D(p->level++);
14809 if (p->error_indicator) {
14810 D(p->level--);
14811 return NULL;
14812 }
14813 expr_ty _res = NULL;
14814 int _mark = p->mark;
14815 { // '(' (yield_expr | named_expression) ')'
14816 if (p->error_indicator) {
14817 D(p->level--);
14818 return NULL;
14819 }
14820 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14821 Token * _literal;
14822 Token * _literal_1;
14823 void *a;
14824 if (
14825 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14826 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014827 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014828 &&
14829 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14830 )
14831 {
14832 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14833 _res = a;
14834 if (_res == NULL && PyErr_Occurred()) {
14835 p->error_indicator = 1;
14836 D(p->level--);
14837 return NULL;
14838 }
14839 goto done;
14840 }
14841 p->mark = _mark;
14842 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14844 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014845 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014846 if (p->error_indicator) {
14847 D(p->level--);
14848 return NULL;
14849 }
14850 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14851 void *invalid_group_var;
14852 if (
14853 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14854 )
14855 {
14856 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14857 _res = invalid_group_var;
14858 goto done;
14859 }
14860 p->mark = _mark;
14861 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14863 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014864 _res = NULL;
14865 done:
14866 D(p->level--);
14867 return _res;
14868}
14869
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014870// genexp:
14871// | '(' (assigment_expression | expression !':=') for_if_clauses ')'
14872// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014873static expr_ty
14874genexp_rule(Parser *p)
14875{
14876 D(p->level++);
14877 if (p->error_indicator) {
14878 D(p->level--);
14879 return NULL;
14880 }
14881 expr_ty _res = NULL;
14882 int _mark = p->mark;
14883 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14884 p->error_indicator = 1;
14885 D(p->level--);
14886 return NULL;
14887 }
14888 int _start_lineno = p->tokens[_mark]->lineno;
14889 UNUSED(_start_lineno); // Only used by EXTRA macro
14890 int _start_col_offset = p->tokens[_mark]->col_offset;
14891 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014892 { // '(' (assigment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014893 if (p->error_indicator) {
14894 D(p->level--);
14895 return NULL;
14896 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014897 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014898 Token * _literal;
14899 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014900 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014901 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014902 if (
14903 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14904 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014905 (a = _tmp_117_rule(p)) // assigment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014906 &&
14907 (b = for_if_clauses_rule(p)) // for_if_clauses
14908 &&
14909 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14910 )
14911 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014912 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014913 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14914 if (_token == NULL) {
14915 D(p->level--);
14916 return NULL;
14917 }
14918 int _end_lineno = _token->end_lineno;
14919 UNUSED(_end_lineno); // Only used by EXTRA macro
14920 int _end_col_offset = _token->end_col_offset;
14921 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014922 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014923 if (_res == NULL && PyErr_Occurred()) {
14924 p->error_indicator = 1;
14925 D(p->level--);
14926 return NULL;
14927 }
14928 goto done;
14929 }
14930 p->mark = _mark;
14931 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014933 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014934 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014935 if (p->error_indicator) {
14936 D(p->level--);
14937 return NULL;
14938 }
14939 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14940 void *invalid_comprehension_var;
14941 if (
14942 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14943 )
14944 {
14945 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14946 _res = invalid_comprehension_var;
14947 goto done;
14948 }
14949 p->mark = _mark;
14950 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14952 }
14953 _res = NULL;
14954 done:
14955 D(p->level--);
14956 return _res;
14957}
14958
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014959// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014960static expr_ty
14961set_rule(Parser *p)
14962{
14963 D(p->level++);
14964 if (p->error_indicator) {
14965 D(p->level--);
14966 return NULL;
14967 }
14968 expr_ty _res = NULL;
14969 int _mark = p->mark;
14970 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14971 p->error_indicator = 1;
14972 D(p->level--);
14973 return NULL;
14974 }
14975 int _start_lineno = p->tokens[_mark]->lineno;
14976 UNUSED(_start_lineno); // Only used by EXTRA macro
14977 int _start_col_offset = p->tokens[_mark]->col_offset;
14978 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014979 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014980 if (p->error_indicator) {
14981 D(p->level--);
14982 return NULL;
14983 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014984 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014985 Token * _literal;
14986 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014987 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014988 if (
14989 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14990 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014991 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014992 &&
14993 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14994 )
14995 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014996 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 +010014997 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14998 if (_token == NULL) {
14999 D(p->level--);
15000 return NULL;
15001 }
15002 int _end_lineno = _token->end_lineno;
15003 UNUSED(_end_lineno); // Only used by EXTRA macro
15004 int _end_col_offset = _token->end_col_offset;
15005 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015006 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015007 if (_res == NULL && PyErr_Occurred()) {
15008 p->error_indicator = 1;
15009 D(p->level--);
15010 return NULL;
15011 }
15012 goto done;
15013 }
15014 p->mark = _mark;
15015 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015017 }
15018 _res = NULL;
15019 done:
15020 D(p->level--);
15021 return _res;
15022}
15023
Pablo Galindo835f14f2021-01-31 22:52:56 +000015024// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015025static expr_ty
15026setcomp_rule(Parser *p)
15027{
15028 D(p->level++);
15029 if (p->error_indicator) {
15030 D(p->level--);
15031 return NULL;
15032 }
15033 expr_ty _res = NULL;
15034 int _mark = p->mark;
15035 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15036 p->error_indicator = 1;
15037 D(p->level--);
15038 return NULL;
15039 }
15040 int _start_lineno = p->tokens[_mark]->lineno;
15041 UNUSED(_start_lineno); // Only used by EXTRA macro
15042 int _start_col_offset = p->tokens[_mark]->col_offset;
15043 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015044 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015045 if (p->error_indicator) {
15046 D(p->level--);
15047 return NULL;
15048 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015049 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 +010015050 Token * _literal;
15051 Token * _literal_1;
15052 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015053 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015054 if (
15055 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15056 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015057 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015058 &&
15059 (b = for_if_clauses_rule(p)) // for_if_clauses
15060 &&
15061 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15062 )
15063 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015064 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 +010015065 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15066 if (_token == NULL) {
15067 D(p->level--);
15068 return NULL;
15069 }
15070 int _end_lineno = _token->end_lineno;
15071 UNUSED(_end_lineno); // Only used by EXTRA macro
15072 int _end_col_offset = _token->end_col_offset;
15073 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015074 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015075 if (_res == NULL && PyErr_Occurred()) {
15076 p->error_indicator = 1;
15077 D(p->level--);
15078 return NULL;
15079 }
15080 goto done;
15081 }
15082 p->mark = _mark;
15083 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015085 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015086 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015087 if (p->error_indicator) {
15088 D(p->level--);
15089 return NULL;
15090 }
15091 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15092 void *invalid_comprehension_var;
15093 if (
15094 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15095 )
15096 {
15097 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15098 _res = invalid_comprehension_var;
15099 goto done;
15100 }
15101 p->mark = _mark;
15102 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15104 }
15105 _res = NULL;
15106 done:
15107 D(p->level--);
15108 return _res;
15109}
15110
Pablo Galindoda743502021-04-15 14:06:39 +010015111// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015112static expr_ty
15113dict_rule(Parser *p)
15114{
15115 D(p->level++);
15116 if (p->error_indicator) {
15117 D(p->level--);
15118 return NULL;
15119 }
15120 expr_ty _res = NULL;
15121 int _mark = p->mark;
15122 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15123 p->error_indicator = 1;
15124 D(p->level--);
15125 return NULL;
15126 }
15127 int _start_lineno = p->tokens[_mark]->lineno;
15128 UNUSED(_start_lineno); // Only used by EXTRA macro
15129 int _start_col_offset = p->tokens[_mark]->col_offset;
15130 UNUSED(_start_col_offset); // Only used by EXTRA macro
15131 { // '{' double_starred_kvpairs? '}'
15132 if (p->error_indicator) {
15133 D(p->level--);
15134 return NULL;
15135 }
15136 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15137 Token * _literal;
15138 Token * _literal_1;
15139 void *a;
15140 if (
15141 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15142 &&
15143 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15144 &&
15145 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15146 )
15147 {
15148 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15149 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15150 if (_token == NULL) {
15151 D(p->level--);
15152 return NULL;
15153 }
15154 int _end_lineno = _token->end_lineno;
15155 UNUSED(_end_lineno); // Only used by EXTRA macro
15156 int _end_col_offset = _token->end_col_offset;
15157 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015158 _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 +010015159 if (_res == NULL && PyErr_Occurred()) {
15160 p->error_indicator = 1;
15161 D(p->level--);
15162 return NULL;
15163 }
15164 goto done;
15165 }
15166 p->mark = _mark;
15167 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15169 }
Pablo Galindoda743502021-04-15 14:06:39 +010015170 { // '{' invalid_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, "'{' invalid_double_starred_kvpairs '}'"));
15176 Token * _literal;
15177 Token * _literal_1;
15178 void *invalid_double_starred_kvpairs_var;
15179 if (
15180 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15181 &&
15182 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_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, "'{' invalid_double_starred_kvpairs '}'"));
15188 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15189 goto done;
15190 }
15191 p->mark = _mark;
15192 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15194 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015195 _res = NULL;
15196 done:
15197 D(p->level--);
15198 return _res;
15199}
15200
15201// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15202static expr_ty
15203dictcomp_rule(Parser *p)
15204{
15205 D(p->level++);
15206 if (p->error_indicator) {
15207 D(p->level--);
15208 return NULL;
15209 }
15210 expr_ty _res = NULL;
15211 int _mark = p->mark;
15212 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15213 p->error_indicator = 1;
15214 D(p->level--);
15215 return NULL;
15216 }
15217 int _start_lineno = p->tokens[_mark]->lineno;
15218 UNUSED(_start_lineno); // Only used by EXTRA macro
15219 int _start_col_offset = p->tokens[_mark]->col_offset;
15220 UNUSED(_start_col_offset); // Only used by EXTRA macro
15221 { // '{' kvpair for_if_clauses '}'
15222 if (p->error_indicator) {
15223 D(p->level--);
15224 return NULL;
15225 }
15226 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15227 Token * _literal;
15228 Token * _literal_1;
15229 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015230 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015231 if (
15232 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15233 &&
15234 (a = kvpair_rule(p)) // kvpair
15235 &&
15236 (b = for_if_clauses_rule(p)) // for_if_clauses
15237 &&
15238 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15239 )
15240 {
15241 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15243 if (_token == NULL) {
15244 D(p->level--);
15245 return NULL;
15246 }
15247 int _end_lineno = _token->end_lineno;
15248 UNUSED(_end_lineno); // Only used by EXTRA macro
15249 int _end_col_offset = _token->end_col_offset;
15250 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015251 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015252 if (_res == NULL && PyErr_Occurred()) {
15253 p->error_indicator = 1;
15254 D(p->level--);
15255 return NULL;
15256 }
15257 goto done;
15258 }
15259 p->mark = _mark;
15260 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15262 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015263 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015264 if (p->error_indicator) {
15265 D(p->level--);
15266 return NULL;
15267 }
15268 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15269 void *invalid_dict_comprehension_var;
15270 if (
15271 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15272 )
15273 {
15274 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15275 _res = invalid_dict_comprehension_var;
15276 goto done;
15277 }
15278 p->mark = _mark;
15279 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15281 }
15282 _res = NULL;
15283 done:
15284 D(p->level--);
15285 return _res;
15286}
15287
15288// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15289static asdl_seq*
15290double_starred_kvpairs_rule(Parser *p)
15291{
15292 D(p->level++);
15293 if (p->error_indicator) {
15294 D(p->level--);
15295 return NULL;
15296 }
15297 asdl_seq* _res = NULL;
15298 int _mark = p->mark;
15299 { // ','.double_starred_kvpair+ ','?
15300 if (p->error_indicator) {
15301 D(p->level--);
15302 return NULL;
15303 }
15304 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15305 void *_opt_var;
15306 UNUSED(_opt_var); // Silence compiler warnings
15307 asdl_seq * a;
15308 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015309 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015310 &&
15311 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15312 )
15313 {
15314 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15315 _res = a;
15316 if (_res == NULL && PyErr_Occurred()) {
15317 p->error_indicator = 1;
15318 D(p->level--);
15319 return NULL;
15320 }
15321 goto done;
15322 }
15323 p->mark = _mark;
15324 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15326 }
15327 _res = NULL;
15328 done:
15329 D(p->level--);
15330 return _res;
15331}
15332
15333// double_starred_kvpair: '**' bitwise_or | kvpair
15334static KeyValuePair*
15335double_starred_kvpair_rule(Parser *p)
15336{
15337 D(p->level++);
15338 if (p->error_indicator) {
15339 D(p->level--);
15340 return NULL;
15341 }
15342 KeyValuePair* _res = NULL;
15343 int _mark = p->mark;
15344 { // '**' bitwise_or
15345 if (p->error_indicator) {
15346 D(p->level--);
15347 return NULL;
15348 }
15349 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15350 Token * _literal;
15351 expr_ty a;
15352 if (
15353 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15354 &&
15355 (a = bitwise_or_rule(p)) // bitwise_or
15356 )
15357 {
15358 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15359 _res = _PyPegen_key_value_pair ( p , NULL , a );
15360 if (_res == NULL && PyErr_Occurred()) {
15361 p->error_indicator = 1;
15362 D(p->level--);
15363 return NULL;
15364 }
15365 goto done;
15366 }
15367 p->mark = _mark;
15368 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15370 }
15371 { // kvpair
15372 if (p->error_indicator) {
15373 D(p->level--);
15374 return NULL;
15375 }
15376 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15377 KeyValuePair* kvpair_var;
15378 if (
15379 (kvpair_var = kvpair_rule(p)) // kvpair
15380 )
15381 {
15382 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15383 _res = kvpair_var;
15384 goto done;
15385 }
15386 p->mark = _mark;
15387 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15389 }
15390 _res = NULL;
15391 done:
15392 D(p->level--);
15393 return _res;
15394}
15395
15396// kvpair: expression ':' expression
15397static KeyValuePair*
15398kvpair_rule(Parser *p)
15399{
15400 D(p->level++);
15401 if (p->error_indicator) {
15402 D(p->level--);
15403 return NULL;
15404 }
15405 KeyValuePair* _res = NULL;
15406 int _mark = p->mark;
15407 { // expression ':' expression
15408 if (p->error_indicator) {
15409 D(p->level--);
15410 return NULL;
15411 }
15412 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15413 Token * _literal;
15414 expr_ty a;
15415 expr_ty b;
15416 if (
15417 (a = expression_rule(p)) // expression
15418 &&
15419 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15420 &&
15421 (b = expression_rule(p)) // expression
15422 )
15423 {
15424 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15425 _res = _PyPegen_key_value_pair ( p , a , b );
15426 if (_res == NULL && PyErr_Occurred()) {
15427 p->error_indicator = 1;
15428 D(p->level--);
15429 return NULL;
15430 }
15431 goto done;
15432 }
15433 p->mark = _mark;
15434 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15436 }
15437 _res = NULL;
15438 done:
15439 D(p->level--);
15440 return _res;
15441}
15442
15443// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015444static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015445for_if_clauses_rule(Parser *p)
15446{
15447 D(p->level++);
15448 if (p->error_indicator) {
15449 D(p->level--);
15450 return NULL;
15451 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015452 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015453 int _mark = p->mark;
15454 { // for_if_clause+
15455 if (p->error_indicator) {
15456 D(p->level--);
15457 return NULL;
15458 }
15459 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 +010015460 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015461 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015462 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015463 )
15464 {
15465 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 +010015466 _res = a;
15467 if (_res == NULL && PyErr_Occurred()) {
15468 p->error_indicator = 1;
15469 D(p->level--);
15470 return NULL;
15471 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015472 goto done;
15473 }
15474 p->mark = _mark;
15475 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15476 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15477 }
15478 _res = NULL;
15479 done:
15480 D(p->level--);
15481 return _res;
15482}
15483
15484// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015485// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15486// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15487// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015488static comprehension_ty
15489for_if_clause_rule(Parser *p)
15490{
15491 D(p->level++);
15492 if (p->error_indicator) {
15493 D(p->level--);
15494 return NULL;
15495 }
15496 comprehension_ty _res = NULL;
15497 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015498 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015499 if (p->error_indicator) {
15500 D(p->level--);
15501 return NULL;
15502 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015503 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15504 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015505 Token * _keyword;
15506 Token * _keyword_1;
15507 expr_ty a;
15508 Token * async_var;
15509 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015510 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015511 if (
15512 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15513 &&
15514 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15515 &&
15516 (a = star_targets_rule(p)) // star_targets
15517 &&
15518 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15519 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015520 (_cut_var = 1)
15521 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015522 (b = disjunction_rule(p)) // disjunction
15523 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015524 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015525 )
15526 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015527 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 +020015528 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015529 if (_res == NULL && PyErr_Occurred()) {
15530 p->error_indicator = 1;
15531 D(p->level--);
15532 return NULL;
15533 }
15534 goto done;
15535 }
15536 p->mark = _mark;
15537 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015538 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15539 if (_cut_var) {
15540 D(p->level--);
15541 return NULL;
15542 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015543 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015544 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015545 if (p->error_indicator) {
15546 D(p->level--);
15547 return NULL;
15548 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015549 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15550 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015551 Token * _keyword;
15552 Token * _keyword_1;
15553 expr_ty a;
15554 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015555 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015556 if (
15557 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15558 &&
15559 (a = star_targets_rule(p)) // star_targets
15560 &&
15561 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15562 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015563 (_cut_var = 1)
15564 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015565 (b = disjunction_rule(p)) // disjunction
15566 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015567 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015568 )
15569 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015570 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 +020015571 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015572 if (_res == NULL && PyErr_Occurred()) {
15573 p->error_indicator = 1;
15574 D(p->level--);
15575 return NULL;
15576 }
15577 goto done;
15578 }
15579 p->mark = _mark;
15580 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15582 if (_cut_var) {
15583 D(p->level--);
15584 return NULL;
15585 }
15586 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015587 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015588 if (p->error_indicator) {
15589 D(p->level--);
15590 return NULL;
15591 }
15592 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15593 void *invalid_for_target_var;
15594 if (
15595 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15596 )
15597 {
15598 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15599 _res = invalid_for_target_var;
15600 goto done;
15601 }
15602 p->mark = _mark;
15603 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015605 }
15606 _res = NULL;
15607 done:
15608 D(p->level--);
15609 return _res;
15610}
15611
15612// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15613static expr_ty
15614yield_expr_rule(Parser *p)
15615{
15616 D(p->level++);
15617 if (p->error_indicator) {
15618 D(p->level--);
15619 return NULL;
15620 }
15621 expr_ty _res = NULL;
15622 int _mark = p->mark;
15623 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15624 p->error_indicator = 1;
15625 D(p->level--);
15626 return NULL;
15627 }
15628 int _start_lineno = p->tokens[_mark]->lineno;
15629 UNUSED(_start_lineno); // Only used by EXTRA macro
15630 int _start_col_offset = p->tokens[_mark]->col_offset;
15631 UNUSED(_start_col_offset); // Only used by EXTRA macro
15632 { // 'yield' 'from' expression
15633 if (p->error_indicator) {
15634 D(p->level--);
15635 return NULL;
15636 }
15637 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15638 Token * _keyword;
15639 Token * _keyword_1;
15640 expr_ty a;
15641 if (
15642 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15643 &&
15644 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15645 &&
15646 (a = expression_rule(p)) // expression
15647 )
15648 {
15649 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15650 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15651 if (_token == NULL) {
15652 D(p->level--);
15653 return NULL;
15654 }
15655 int _end_lineno = _token->end_lineno;
15656 UNUSED(_end_lineno); // Only used by EXTRA macro
15657 int _end_col_offset = _token->end_col_offset;
15658 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015659 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015660 if (_res == NULL && PyErr_Occurred()) {
15661 p->error_indicator = 1;
15662 D(p->level--);
15663 return NULL;
15664 }
15665 goto done;
15666 }
15667 p->mark = _mark;
15668 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15670 }
15671 { // 'yield' star_expressions?
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' star_expressions?"));
15677 Token * _keyword;
15678 void *a;
15679 if (
15680 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15681 &&
15682 (a = star_expressions_rule(p), 1) // star_expressions?
15683 )
15684 {
15685 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15686 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15687 if (_token == NULL) {
15688 D(p->level--);
15689 return NULL;
15690 }
15691 int _end_lineno = _token->end_lineno;
15692 UNUSED(_end_lineno); // Only used by EXTRA macro
15693 int _end_col_offset = _token->end_col_offset;
15694 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015695 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015696 if (_res == NULL && PyErr_Occurred()) {
15697 p->error_indicator = 1;
15698 D(p->level--);
15699 return NULL;
15700 }
15701 goto done;
15702 }
15703 p->mark = _mark;
15704 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15706 }
15707 _res = NULL;
15708 done:
15709 D(p->level--);
15710 return _res;
15711}
15712
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015713// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015714static expr_ty
15715arguments_rule(Parser *p)
15716{
15717 D(p->level++);
15718 if (p->error_indicator) {
15719 D(p->level--);
15720 return NULL;
15721 }
15722 expr_ty _res = NULL;
15723 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15724 D(p->level--);
15725 return _res;
15726 }
15727 int _mark = p->mark;
15728 { // args ','? &')'
15729 if (p->error_indicator) {
15730 D(p->level--);
15731 return NULL;
15732 }
15733 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15734 void *_opt_var;
15735 UNUSED(_opt_var); // Silence compiler warnings
15736 expr_ty a;
15737 if (
15738 (a = args_rule(p)) // args
15739 &&
15740 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15741 &&
15742 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15743 )
15744 {
15745 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15746 _res = a;
15747 if (_res == NULL && PyErr_Occurred()) {
15748 p->error_indicator = 1;
15749 D(p->level--);
15750 return NULL;
15751 }
15752 goto done;
15753 }
15754 p->mark = _mark;
15755 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15757 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015758 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015759 if (p->error_indicator) {
15760 D(p->level--);
15761 return NULL;
15762 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015763 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15764 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015765 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015766 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015767 )
15768 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015769 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15770 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015771 goto done;
15772 }
15773 p->mark = _mark;
15774 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015776 }
15777 _res = NULL;
15778 done:
15779 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15780 D(p->level--);
15781 return _res;
15782}
15783
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015784// args:
15785// | ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
15786// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015787static expr_ty
15788args_rule(Parser *p)
15789{
15790 D(p->level++);
15791 if (p->error_indicator) {
15792 D(p->level--);
15793 return NULL;
15794 }
15795 expr_ty _res = NULL;
15796 int _mark = p->mark;
15797 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15798 p->error_indicator = 1;
15799 D(p->level--);
15800 return NULL;
15801 }
15802 int _start_lineno = p->tokens[_mark]->lineno;
15803 UNUSED(_start_lineno); // Only used by EXTRA macro
15804 int _start_col_offset = p->tokens[_mark]->col_offset;
15805 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015806 { // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015807 if (p->error_indicator) {
15808 D(p->level--);
15809 return NULL;
15810 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015811 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010015812 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015813 void *b;
15814 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015815 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015816 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015817 (b = _tmp_125_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015818 )
15819 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015820 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo315a61f2020-09-03 15:29:32 +010015821 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15822 if (_token == NULL) {
15823 D(p->level--);
15824 return NULL;
15825 }
15826 int _end_lineno = _token->end_lineno;
15827 UNUSED(_end_lineno); // Only used by EXTRA macro
15828 int _end_col_offset = _token->end_col_offset;
15829 UNUSED(_end_col_offset); // Only used by EXTRA macro
15830 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015831 if (_res == NULL && PyErr_Occurred()) {
15832 p->error_indicator = 1;
15833 D(p->level--);
15834 return NULL;
15835 }
15836 goto done;
15837 }
15838 p->mark = _mark;
15839 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015841 }
15842 { // kwargs
15843 if (p->error_indicator) {
15844 D(p->level--);
15845 return NULL;
15846 }
15847 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15848 asdl_seq* a;
15849 if (
15850 (a = kwargs_rule(p)) // kwargs
15851 )
15852 {
15853 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15854 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15855 if (_token == NULL) {
15856 D(p->level--);
15857 return NULL;
15858 }
15859 int _end_lineno = _token->end_lineno;
15860 UNUSED(_end_lineno); // Only used by EXTRA macro
15861 int _end_col_offset = _token->end_col_offset;
15862 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015863 _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 +010015864 if (_res == NULL && PyErr_Occurred()) {
15865 p->error_indicator = 1;
15866 D(p->level--);
15867 return NULL;
15868 }
15869 goto done;
15870 }
15871 p->mark = _mark;
15872 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15874 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015875 _res = NULL;
15876 done:
15877 D(p->level--);
15878 return _res;
15879}
15880
15881// kwargs:
15882// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15883// | ','.kwarg_or_starred+
15884// | ','.kwarg_or_double_starred+
15885static asdl_seq*
15886kwargs_rule(Parser *p)
15887{
15888 D(p->level++);
15889 if (p->error_indicator) {
15890 D(p->level--);
15891 return NULL;
15892 }
15893 asdl_seq* _res = NULL;
15894 int _mark = p->mark;
15895 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15896 if (p->error_indicator) {
15897 D(p->level--);
15898 return NULL;
15899 }
15900 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15901 Token * _literal;
15902 asdl_seq * a;
15903 asdl_seq * b;
15904 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015905 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015906 &&
15907 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15908 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015909 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015910 )
15911 {
15912 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15913 _res = _PyPegen_join_sequences ( p , a , b );
15914 if (_res == NULL && PyErr_Occurred()) {
15915 p->error_indicator = 1;
15916 D(p->level--);
15917 return NULL;
15918 }
15919 goto done;
15920 }
15921 p->mark = _mark;
15922 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15924 }
15925 { // ','.kwarg_or_starred+
15926 if (p->error_indicator) {
15927 D(p->level--);
15928 return NULL;
15929 }
15930 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015931 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015932 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015933 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015934 )
15935 {
15936 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015937 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015938 goto done;
15939 }
15940 p->mark = _mark;
15941 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15943 }
15944 { // ','.kwarg_or_double_starred+
15945 if (p->error_indicator) {
15946 D(p->level--);
15947 return NULL;
15948 }
15949 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015950 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015951 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015952 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015953 )
15954 {
15955 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015956 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015957 goto done;
15958 }
15959 p->mark = _mark;
15960 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15962 }
15963 _res = NULL;
15964 done:
15965 D(p->level--);
15966 return _res;
15967}
15968
15969// starred_expression: '*' expression
15970static expr_ty
15971starred_expression_rule(Parser *p)
15972{
15973 D(p->level++);
15974 if (p->error_indicator) {
15975 D(p->level--);
15976 return NULL;
15977 }
15978 expr_ty _res = NULL;
15979 int _mark = p->mark;
15980 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15981 p->error_indicator = 1;
15982 D(p->level--);
15983 return NULL;
15984 }
15985 int _start_lineno = p->tokens[_mark]->lineno;
15986 UNUSED(_start_lineno); // Only used by EXTRA macro
15987 int _start_col_offset = p->tokens[_mark]->col_offset;
15988 UNUSED(_start_col_offset); // Only used by EXTRA macro
15989 { // '*' expression
15990 if (p->error_indicator) {
15991 D(p->level--);
15992 return NULL;
15993 }
15994 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
15995 Token * _literal;
15996 expr_ty a;
15997 if (
15998 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15999 &&
16000 (a = expression_rule(p)) // expression
16001 )
16002 {
16003 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16004 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16005 if (_token == NULL) {
16006 D(p->level--);
16007 return NULL;
16008 }
16009 int _end_lineno = _token->end_lineno;
16010 UNUSED(_end_lineno); // Only used by EXTRA macro
16011 int _end_col_offset = _token->end_col_offset;
16012 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016013 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016014 if (_res == NULL && PyErr_Occurred()) {
16015 p->error_indicator = 1;
16016 D(p->level--);
16017 return NULL;
16018 }
16019 goto done;
16020 }
16021 p->mark = _mark;
16022 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16024 }
16025 _res = NULL;
16026 done:
16027 D(p->level--);
16028 return _res;
16029}
16030
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016031// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016032static KeywordOrStarred*
16033kwarg_or_starred_rule(Parser *p)
16034{
16035 D(p->level++);
16036 if (p->error_indicator) {
16037 D(p->level--);
16038 return NULL;
16039 }
16040 KeywordOrStarred* _res = NULL;
16041 int _mark = p->mark;
16042 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16043 p->error_indicator = 1;
16044 D(p->level--);
16045 return NULL;
16046 }
16047 int _start_lineno = p->tokens[_mark]->lineno;
16048 UNUSED(_start_lineno); // Only used by EXTRA macro
16049 int _start_col_offset = p->tokens[_mark]->col_offset;
16050 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016051 if (p->call_invalid_rules) { // invalid_kwarg
16052 if (p->error_indicator) {
16053 D(p->level--);
16054 return NULL;
16055 }
16056 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16057 void *invalid_kwarg_var;
16058 if (
16059 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16060 )
16061 {
16062 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16063 _res = invalid_kwarg_var;
16064 goto done;
16065 }
16066 p->mark = _mark;
16067 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16068 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16069 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016070 { // NAME '=' expression
16071 if (p->error_indicator) {
16072 D(p->level--);
16073 return NULL;
16074 }
16075 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16076 Token * _literal;
16077 expr_ty a;
16078 expr_ty b;
16079 if (
16080 (a = _PyPegen_name_token(p)) // NAME
16081 &&
16082 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16083 &&
16084 (b = expression_rule(p)) // expression
16085 )
16086 {
16087 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16088 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16089 if (_token == NULL) {
16090 D(p->level--);
16091 return NULL;
16092 }
16093 int _end_lineno = _token->end_lineno;
16094 UNUSED(_end_lineno); // Only used by EXTRA macro
16095 int _end_col_offset = _token->end_col_offset;
16096 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016097 _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 +010016098 if (_res == NULL && PyErr_Occurred()) {
16099 p->error_indicator = 1;
16100 D(p->level--);
16101 return NULL;
16102 }
16103 goto done;
16104 }
16105 p->mark = _mark;
16106 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16108 }
16109 { // starred_expression
16110 if (p->error_indicator) {
16111 D(p->level--);
16112 return NULL;
16113 }
16114 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16115 expr_ty a;
16116 if (
16117 (a = starred_expression_rule(p)) // starred_expression
16118 )
16119 {
16120 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16121 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16122 if (_res == NULL && PyErr_Occurred()) {
16123 p->error_indicator = 1;
16124 D(p->level--);
16125 return NULL;
16126 }
16127 goto done;
16128 }
16129 p->mark = _mark;
16130 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16131 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16132 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016133 _res = NULL;
16134 done:
16135 D(p->level--);
16136 return _res;
16137}
16138
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016139// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016140static KeywordOrStarred*
16141kwarg_or_double_starred_rule(Parser *p)
16142{
16143 D(p->level++);
16144 if (p->error_indicator) {
16145 D(p->level--);
16146 return NULL;
16147 }
16148 KeywordOrStarred* _res = NULL;
16149 int _mark = p->mark;
16150 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16151 p->error_indicator = 1;
16152 D(p->level--);
16153 return NULL;
16154 }
16155 int _start_lineno = p->tokens[_mark]->lineno;
16156 UNUSED(_start_lineno); // Only used by EXTRA macro
16157 int _start_col_offset = p->tokens[_mark]->col_offset;
16158 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016159 if (p->call_invalid_rules) { // invalid_kwarg
16160 if (p->error_indicator) {
16161 D(p->level--);
16162 return NULL;
16163 }
16164 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16165 void *invalid_kwarg_var;
16166 if (
16167 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16168 )
16169 {
16170 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16171 _res = invalid_kwarg_var;
16172 goto done;
16173 }
16174 p->mark = _mark;
16175 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16177 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016178 { // NAME '=' expression
16179 if (p->error_indicator) {
16180 D(p->level--);
16181 return NULL;
16182 }
16183 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16184 Token * _literal;
16185 expr_ty a;
16186 expr_ty b;
16187 if (
16188 (a = _PyPegen_name_token(p)) // NAME
16189 &&
16190 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16191 &&
16192 (b = expression_rule(p)) // expression
16193 )
16194 {
16195 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16196 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16197 if (_token == NULL) {
16198 D(p->level--);
16199 return NULL;
16200 }
16201 int _end_lineno = _token->end_lineno;
16202 UNUSED(_end_lineno); // Only used by EXTRA macro
16203 int _end_col_offset = _token->end_col_offset;
16204 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016205 _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 +010016206 if (_res == NULL && PyErr_Occurred()) {
16207 p->error_indicator = 1;
16208 D(p->level--);
16209 return NULL;
16210 }
16211 goto done;
16212 }
16213 p->mark = _mark;
16214 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16216 }
16217 { // '**' expression
16218 if (p->error_indicator) {
16219 D(p->level--);
16220 return NULL;
16221 }
16222 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16223 Token * _literal;
16224 expr_ty a;
16225 if (
16226 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16227 &&
16228 (a = expression_rule(p)) // expression
16229 )
16230 {
16231 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16232 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16233 if (_token == NULL) {
16234 D(p->level--);
16235 return NULL;
16236 }
16237 int _end_lineno = _token->end_lineno;
16238 UNUSED(_end_lineno); // Only used by EXTRA macro
16239 int _end_col_offset = _token->end_col_offset;
16240 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016241 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016242 if (_res == NULL && PyErr_Occurred()) {
16243 p->error_indicator = 1;
16244 D(p->level--);
16245 return NULL;
16246 }
16247 goto done;
16248 }
16249 p->mark = _mark;
16250 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16252 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016253 _res = NULL;
16254 done:
16255 D(p->level--);
16256 return _res;
16257}
16258
16259// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16260static expr_ty
16261star_targets_rule(Parser *p)
16262{
16263 D(p->level++);
16264 if (p->error_indicator) {
16265 D(p->level--);
16266 return NULL;
16267 }
16268 expr_ty _res = NULL;
16269 int _mark = p->mark;
16270 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16271 p->error_indicator = 1;
16272 D(p->level--);
16273 return NULL;
16274 }
16275 int _start_lineno = p->tokens[_mark]->lineno;
16276 UNUSED(_start_lineno); // Only used by EXTRA macro
16277 int _start_col_offset = p->tokens[_mark]->col_offset;
16278 UNUSED(_start_col_offset); // Only used by EXTRA macro
16279 { // star_target !','
16280 if (p->error_indicator) {
16281 D(p->level--);
16282 return NULL;
16283 }
16284 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16285 expr_ty a;
16286 if (
16287 (a = star_target_rule(p)) // star_target
16288 &&
16289 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16290 )
16291 {
16292 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16293 _res = a;
16294 if (_res == NULL && PyErr_Occurred()) {
16295 p->error_indicator = 1;
16296 D(p->level--);
16297 return NULL;
16298 }
16299 goto done;
16300 }
16301 p->mark = _mark;
16302 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16304 }
16305 { // star_target ((',' star_target))* ','?
16306 if (p->error_indicator) {
16307 D(p->level--);
16308 return NULL;
16309 }
16310 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16311 void *_opt_var;
16312 UNUSED(_opt_var); // Silence compiler warnings
16313 expr_ty a;
16314 asdl_seq * b;
16315 if (
16316 (a = star_target_rule(p)) // star_target
16317 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016318 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016319 &&
16320 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16321 )
16322 {
16323 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16324 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16325 if (_token == NULL) {
16326 D(p->level--);
16327 return NULL;
16328 }
16329 int _end_lineno = _token->end_lineno;
16330 UNUSED(_end_lineno); // Only used by EXTRA macro
16331 int _end_col_offset = _token->end_col_offset;
16332 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016333 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016334 if (_res == NULL && PyErr_Occurred()) {
16335 p->error_indicator = 1;
16336 D(p->level--);
16337 return NULL;
16338 }
16339 goto done;
16340 }
16341 p->mark = _mark;
16342 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16344 }
16345 _res = NULL;
16346 done:
16347 D(p->level--);
16348 return _res;
16349}
16350
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016351// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016352static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016353star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016354{
16355 D(p->level++);
16356 if (p->error_indicator) {
16357 D(p->level--);
16358 return NULL;
16359 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016360 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016361 int _mark = p->mark;
16362 { // ','.star_target+ ','?
16363 if (p->error_indicator) {
16364 D(p->level--);
16365 return NULL;
16366 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016367 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 +010016368 void *_opt_var;
16369 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016370 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016371 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016372 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016373 &&
16374 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16375 )
16376 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016377 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 +010016378 _res = a;
16379 if (_res == NULL && PyErr_Occurred()) {
16380 p->error_indicator = 1;
16381 D(p->level--);
16382 return NULL;
16383 }
16384 goto done;
16385 }
16386 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016387 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16389 }
16390 _res = NULL;
16391 done:
16392 D(p->level--);
16393 return _res;
16394}
16395
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016396// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16397static asdl_expr_seq*
16398star_targets_tuple_seq_rule(Parser *p)
16399{
16400 D(p->level++);
16401 if (p->error_indicator) {
16402 D(p->level--);
16403 return NULL;
16404 }
16405 asdl_expr_seq* _res = NULL;
16406 int _mark = p->mark;
16407 { // star_target ((',' star_target))+ ','?
16408 if (p->error_indicator) {
16409 D(p->level--);
16410 return NULL;
16411 }
16412 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16413 void *_opt_var;
16414 UNUSED(_opt_var); // Silence compiler warnings
16415 expr_ty a;
16416 asdl_seq * b;
16417 if (
16418 (a = star_target_rule(p)) // star_target
16419 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016420 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016421 &&
16422 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16423 )
16424 {
16425 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16426 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16427 if (_res == NULL && PyErr_Occurred()) {
16428 p->error_indicator = 1;
16429 D(p->level--);
16430 return NULL;
16431 }
16432 goto done;
16433 }
16434 p->mark = _mark;
16435 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16437 }
16438 { // star_target ','
16439 if (p->error_indicator) {
16440 D(p->level--);
16441 return NULL;
16442 }
16443 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16444 Token * _literal;
16445 expr_ty a;
16446 if (
16447 (a = star_target_rule(p)) // star_target
16448 &&
16449 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16450 )
16451 {
16452 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16453 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16454 if (_res == NULL && PyErr_Occurred()) {
16455 p->error_indicator = 1;
16456 D(p->level--);
16457 return NULL;
16458 }
16459 goto done;
16460 }
16461 p->mark = _mark;
16462 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16464 }
16465 _res = NULL;
16466 done:
16467 D(p->level--);
16468 return _res;
16469}
16470
16471// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016472static expr_ty
16473star_target_rule(Parser *p)
16474{
16475 D(p->level++);
16476 if (p->error_indicator) {
16477 D(p->level--);
16478 return NULL;
16479 }
16480 expr_ty _res = NULL;
16481 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16482 D(p->level--);
16483 return _res;
16484 }
16485 int _mark = p->mark;
16486 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16487 p->error_indicator = 1;
16488 D(p->level--);
16489 return NULL;
16490 }
16491 int _start_lineno = p->tokens[_mark]->lineno;
16492 UNUSED(_start_lineno); // Only used by EXTRA macro
16493 int _start_col_offset = p->tokens[_mark]->col_offset;
16494 UNUSED(_start_col_offset); // Only used by EXTRA macro
16495 { // '*' (!'*' star_target)
16496 if (p->error_indicator) {
16497 D(p->level--);
16498 return NULL;
16499 }
16500 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16501 Token * _literal;
16502 void *a;
16503 if (
16504 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16505 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016506 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016507 )
16508 {
16509 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16510 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16511 if (_token == NULL) {
16512 D(p->level--);
16513 return NULL;
16514 }
16515 int _end_lineno = _token->end_lineno;
16516 UNUSED(_end_lineno); // Only used by EXTRA macro
16517 int _end_col_offset = _token->end_col_offset;
16518 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016519 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016520 if (_res == NULL && PyErr_Occurred()) {
16521 p->error_indicator = 1;
16522 D(p->level--);
16523 return NULL;
16524 }
16525 goto done;
16526 }
16527 p->mark = _mark;
16528 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16530 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016531 { // target_with_star_atom
16532 if (p->error_indicator) {
16533 D(p->level--);
16534 return NULL;
16535 }
16536 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16537 expr_ty target_with_star_atom_var;
16538 if (
16539 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16540 )
16541 {
16542 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16543 _res = target_with_star_atom_var;
16544 goto done;
16545 }
16546 p->mark = _mark;
16547 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16549 }
16550 _res = NULL;
16551 done:
16552 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16553 D(p->level--);
16554 return _res;
16555}
16556
16557// target_with_star_atom:
16558// | t_primary '.' NAME !t_lookahead
16559// | t_primary '[' slices ']' !t_lookahead
16560// | star_atom
16561static expr_ty
16562target_with_star_atom_rule(Parser *p)
16563{
16564 D(p->level++);
16565 if (p->error_indicator) {
16566 D(p->level--);
16567 return NULL;
16568 }
16569 expr_ty _res = NULL;
16570 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16571 D(p->level--);
16572 return _res;
16573 }
16574 int _mark = p->mark;
16575 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16576 p->error_indicator = 1;
16577 D(p->level--);
16578 return NULL;
16579 }
16580 int _start_lineno = p->tokens[_mark]->lineno;
16581 UNUSED(_start_lineno); // Only used by EXTRA macro
16582 int _start_col_offset = p->tokens[_mark]->col_offset;
16583 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016584 { // t_primary '.' NAME !t_lookahead
16585 if (p->error_indicator) {
16586 D(p->level--);
16587 return NULL;
16588 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016589 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 +010016590 Token * _literal;
16591 expr_ty a;
16592 expr_ty b;
16593 if (
16594 (a = t_primary_rule(p)) // t_primary
16595 &&
16596 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16597 &&
16598 (b = _PyPegen_name_token(p)) // NAME
16599 &&
16600 _PyPegen_lookahead(0, t_lookahead_rule, p)
16601 )
16602 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016603 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 +010016604 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16605 if (_token == NULL) {
16606 D(p->level--);
16607 return NULL;
16608 }
16609 int _end_lineno = _token->end_lineno;
16610 UNUSED(_end_lineno); // Only used by EXTRA macro
16611 int _end_col_offset = _token->end_col_offset;
16612 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016613 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016614 if (_res == NULL && PyErr_Occurred()) {
16615 p->error_indicator = 1;
16616 D(p->level--);
16617 return NULL;
16618 }
16619 goto done;
16620 }
16621 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016622 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16624 }
16625 { // t_primary '[' slices ']' !t_lookahead
16626 if (p->error_indicator) {
16627 D(p->level--);
16628 return NULL;
16629 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016630 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 +010016631 Token * _literal;
16632 Token * _literal_1;
16633 expr_ty a;
16634 expr_ty b;
16635 if (
16636 (a = t_primary_rule(p)) // t_primary
16637 &&
16638 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16639 &&
16640 (b = slices_rule(p)) // slices
16641 &&
16642 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16643 &&
16644 _PyPegen_lookahead(0, t_lookahead_rule, p)
16645 )
16646 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016647 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 +010016648 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16649 if (_token == NULL) {
16650 D(p->level--);
16651 return NULL;
16652 }
16653 int _end_lineno = _token->end_lineno;
16654 UNUSED(_end_lineno); // Only used by EXTRA macro
16655 int _end_col_offset = _token->end_col_offset;
16656 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016657 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016658 if (_res == NULL && PyErr_Occurred()) {
16659 p->error_indicator = 1;
16660 D(p->level--);
16661 return NULL;
16662 }
16663 goto done;
16664 }
16665 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016666 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16668 }
16669 { // star_atom
16670 if (p->error_indicator) {
16671 D(p->level--);
16672 return NULL;
16673 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016674 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 +010016675 expr_ty star_atom_var;
16676 if (
16677 (star_atom_var = star_atom_rule(p)) // star_atom
16678 )
16679 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016680 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 +010016681 _res = star_atom_var;
16682 goto done;
16683 }
16684 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016685 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16687 }
16688 _res = NULL;
16689 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016690 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016691 D(p->level--);
16692 return _res;
16693}
16694
16695// star_atom:
16696// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016697// | '(' target_with_star_atom ')'
16698// | '(' star_targets_tuple_seq? ')'
16699// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016700static expr_ty
16701star_atom_rule(Parser *p)
16702{
16703 D(p->level++);
16704 if (p->error_indicator) {
16705 D(p->level--);
16706 return NULL;
16707 }
16708 expr_ty _res = NULL;
16709 int _mark = p->mark;
16710 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16711 p->error_indicator = 1;
16712 D(p->level--);
16713 return NULL;
16714 }
16715 int _start_lineno = p->tokens[_mark]->lineno;
16716 UNUSED(_start_lineno); // Only used by EXTRA macro
16717 int _start_col_offset = p->tokens[_mark]->col_offset;
16718 UNUSED(_start_col_offset); // Only used by EXTRA macro
16719 { // NAME
16720 if (p->error_indicator) {
16721 D(p->level--);
16722 return NULL;
16723 }
16724 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16725 expr_ty a;
16726 if (
16727 (a = _PyPegen_name_token(p)) // NAME
16728 )
16729 {
16730 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16731 _res = _PyPegen_set_expr_context ( p , a , Store );
16732 if (_res == NULL && PyErr_Occurred()) {
16733 p->error_indicator = 1;
16734 D(p->level--);
16735 return NULL;
16736 }
16737 goto done;
16738 }
16739 p->mark = _mark;
16740 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16742 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016743 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016744 if (p->error_indicator) {
16745 D(p->level--);
16746 return NULL;
16747 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016748 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 +010016749 Token * _literal;
16750 Token * _literal_1;
16751 expr_ty a;
16752 if (
16753 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16754 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016755 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016756 &&
16757 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16758 )
16759 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016760 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 +010016761 _res = _PyPegen_set_expr_context ( p , a , Store );
16762 if (_res == NULL && PyErr_Occurred()) {
16763 p->error_indicator = 1;
16764 D(p->level--);
16765 return NULL;
16766 }
16767 goto done;
16768 }
16769 p->mark = _mark;
16770 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016772 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016773 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016774 if (p->error_indicator) {
16775 D(p->level--);
16776 return NULL;
16777 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016778 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 +010016779 Token * _literal;
16780 Token * _literal_1;
16781 void *a;
16782 if (
16783 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16784 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016785 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016786 &&
16787 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16788 )
16789 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016790 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 +010016791 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16792 if (_token == NULL) {
16793 D(p->level--);
16794 return NULL;
16795 }
16796 int _end_lineno = _token->end_lineno;
16797 UNUSED(_end_lineno); // Only used by EXTRA macro
16798 int _end_col_offset = _token->end_col_offset;
16799 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016800 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016801 if (_res == NULL && PyErr_Occurred()) {
16802 p->error_indicator = 1;
16803 D(p->level--);
16804 return NULL;
16805 }
16806 goto done;
16807 }
16808 p->mark = _mark;
16809 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016811 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016812 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016813 if (p->error_indicator) {
16814 D(p->level--);
16815 return NULL;
16816 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016817 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 +010016818 Token * _literal;
16819 Token * _literal_1;
16820 void *a;
16821 if (
16822 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16823 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016824 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016825 &&
16826 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16827 )
16828 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016829 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 +010016830 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16831 if (_token == NULL) {
16832 D(p->level--);
16833 return NULL;
16834 }
16835 int _end_lineno = _token->end_lineno;
16836 UNUSED(_end_lineno); // Only used by EXTRA macro
16837 int _end_col_offset = _token->end_col_offset;
16838 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016839 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016840 if (_res == NULL && PyErr_Occurred()) {
16841 p->error_indicator = 1;
16842 D(p->level--);
16843 return NULL;
16844 }
16845 goto done;
16846 }
16847 p->mark = _mark;
16848 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016849 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016850 }
16851 _res = NULL;
16852 done:
16853 D(p->level--);
16854 return _res;
16855}
16856
16857// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16858static expr_ty
16859single_target_rule(Parser *p)
16860{
16861 D(p->level++);
16862 if (p->error_indicator) {
16863 D(p->level--);
16864 return NULL;
16865 }
16866 expr_ty _res = NULL;
16867 int _mark = p->mark;
16868 { // single_subscript_attribute_target
16869 if (p->error_indicator) {
16870 D(p->level--);
16871 return NULL;
16872 }
16873 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16874 expr_ty single_subscript_attribute_target_var;
16875 if (
16876 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16877 )
16878 {
16879 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16880 _res = single_subscript_attribute_target_var;
16881 goto done;
16882 }
16883 p->mark = _mark;
16884 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16886 }
16887 { // NAME
16888 if (p->error_indicator) {
16889 D(p->level--);
16890 return NULL;
16891 }
16892 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16893 expr_ty a;
16894 if (
16895 (a = _PyPegen_name_token(p)) // NAME
16896 )
16897 {
16898 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16899 _res = _PyPegen_set_expr_context ( p , a , Store );
16900 if (_res == NULL && PyErr_Occurred()) {
16901 p->error_indicator = 1;
16902 D(p->level--);
16903 return NULL;
16904 }
16905 goto done;
16906 }
16907 p->mark = _mark;
16908 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16910 }
16911 { // '(' single_target ')'
16912 if (p->error_indicator) {
16913 D(p->level--);
16914 return NULL;
16915 }
16916 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16917 Token * _literal;
16918 Token * _literal_1;
16919 expr_ty a;
16920 if (
16921 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16922 &&
16923 (a = single_target_rule(p)) // single_target
16924 &&
16925 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16926 )
16927 {
16928 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16929 _res = a;
16930 if (_res == NULL && PyErr_Occurred()) {
16931 p->error_indicator = 1;
16932 D(p->level--);
16933 return NULL;
16934 }
16935 goto done;
16936 }
16937 p->mark = _mark;
16938 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16940 }
16941 _res = NULL;
16942 done:
16943 D(p->level--);
16944 return _res;
16945}
16946
16947// single_subscript_attribute_target:
16948// | t_primary '.' NAME !t_lookahead
16949// | t_primary '[' slices ']' !t_lookahead
16950static expr_ty
16951single_subscript_attribute_target_rule(Parser *p)
16952{
16953 D(p->level++);
16954 if (p->error_indicator) {
16955 D(p->level--);
16956 return NULL;
16957 }
16958 expr_ty _res = NULL;
16959 int _mark = p->mark;
16960 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16961 p->error_indicator = 1;
16962 D(p->level--);
16963 return NULL;
16964 }
16965 int _start_lineno = p->tokens[_mark]->lineno;
16966 UNUSED(_start_lineno); // Only used by EXTRA macro
16967 int _start_col_offset = p->tokens[_mark]->col_offset;
16968 UNUSED(_start_col_offset); // Only used by EXTRA macro
16969 { // t_primary '.' NAME !t_lookahead
16970 if (p->error_indicator) {
16971 D(p->level--);
16972 return NULL;
16973 }
16974 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16975 Token * _literal;
16976 expr_ty a;
16977 expr_ty b;
16978 if (
16979 (a = t_primary_rule(p)) // t_primary
16980 &&
16981 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16982 &&
16983 (b = _PyPegen_name_token(p)) // NAME
16984 &&
16985 _PyPegen_lookahead(0, t_lookahead_rule, p)
16986 )
16987 {
16988 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16989 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16990 if (_token == NULL) {
16991 D(p->level--);
16992 return NULL;
16993 }
16994 int _end_lineno = _token->end_lineno;
16995 UNUSED(_end_lineno); // Only used by EXTRA macro
16996 int _end_col_offset = _token->end_col_offset;
16997 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016998 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016999 if (_res == NULL && PyErr_Occurred()) {
17000 p->error_indicator = 1;
17001 D(p->level--);
17002 return NULL;
17003 }
17004 goto done;
17005 }
17006 p->mark = _mark;
17007 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17009 }
17010 { // t_primary '[' slices ']' !t_lookahead
17011 if (p->error_indicator) {
17012 D(p->level--);
17013 return NULL;
17014 }
17015 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17016 Token * _literal;
17017 Token * _literal_1;
17018 expr_ty a;
17019 expr_ty b;
17020 if (
17021 (a = t_primary_rule(p)) // t_primary
17022 &&
17023 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17024 &&
17025 (b = slices_rule(p)) // slices
17026 &&
17027 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17028 &&
17029 _PyPegen_lookahead(0, t_lookahead_rule, p)
17030 )
17031 {
17032 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17033 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17034 if (_token == NULL) {
17035 D(p->level--);
17036 return NULL;
17037 }
17038 int _end_lineno = _token->end_lineno;
17039 UNUSED(_end_lineno); // Only used by EXTRA macro
17040 int _end_col_offset = _token->end_col_offset;
17041 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017042 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017043 if (_res == NULL && PyErr_Occurred()) {
17044 p->error_indicator = 1;
17045 D(p->level--);
17046 return NULL;
17047 }
17048 goto done;
17049 }
17050 p->mark = _mark;
17051 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17053 }
17054 _res = NULL;
17055 done:
17056 D(p->level--);
17057 return _res;
17058}
17059
17060// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017061static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017062del_targets_rule(Parser *p)
17063{
17064 D(p->level++);
17065 if (p->error_indicator) {
17066 D(p->level--);
17067 return NULL;
17068 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017069 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017070 int _mark = p->mark;
17071 { // ','.del_target+ ','?
17072 if (p->error_indicator) {
17073 D(p->level--);
17074 return NULL;
17075 }
17076 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17077 void *_opt_var;
17078 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017079 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017080 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017081 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017082 &&
17083 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17084 )
17085 {
17086 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17087 _res = a;
17088 if (_res == NULL && PyErr_Occurred()) {
17089 p->error_indicator = 1;
17090 D(p->level--);
17091 return NULL;
17092 }
17093 goto done;
17094 }
17095 p->mark = _mark;
17096 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17098 }
17099 _res = NULL;
17100 done:
17101 D(p->level--);
17102 return _res;
17103}
17104
17105// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017106// | t_primary '.' NAME !t_lookahead
17107// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017108// | del_t_atom
17109static expr_ty
17110del_target_rule(Parser *p)
17111{
17112 D(p->level++);
17113 if (p->error_indicator) {
17114 D(p->level--);
17115 return NULL;
17116 }
17117 expr_ty _res = NULL;
17118 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17119 D(p->level--);
17120 return _res;
17121 }
17122 int _mark = p->mark;
17123 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17124 p->error_indicator = 1;
17125 D(p->level--);
17126 return NULL;
17127 }
17128 int _start_lineno = p->tokens[_mark]->lineno;
17129 UNUSED(_start_lineno); // Only used by EXTRA macro
17130 int _start_col_offset = p->tokens[_mark]->col_offset;
17131 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017132 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017133 if (p->error_indicator) {
17134 D(p->level--);
17135 return NULL;
17136 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017137 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 +010017138 Token * _literal;
17139 expr_ty a;
17140 expr_ty b;
17141 if (
17142 (a = t_primary_rule(p)) // t_primary
17143 &&
17144 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17145 &&
17146 (b = _PyPegen_name_token(p)) // NAME
17147 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017148 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017149 )
17150 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017151 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 +010017152 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17153 if (_token == NULL) {
17154 D(p->level--);
17155 return NULL;
17156 }
17157 int _end_lineno = _token->end_lineno;
17158 UNUSED(_end_lineno); // Only used by EXTRA macro
17159 int _end_col_offset = _token->end_col_offset;
17160 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017161 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017162 if (_res == NULL && PyErr_Occurred()) {
17163 p->error_indicator = 1;
17164 D(p->level--);
17165 return NULL;
17166 }
17167 goto done;
17168 }
17169 p->mark = _mark;
17170 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017172 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017173 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017174 if (p->error_indicator) {
17175 D(p->level--);
17176 return NULL;
17177 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017178 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 +010017179 Token * _literal;
17180 Token * _literal_1;
17181 expr_ty a;
17182 expr_ty b;
17183 if (
17184 (a = t_primary_rule(p)) // t_primary
17185 &&
17186 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17187 &&
17188 (b = slices_rule(p)) // slices
17189 &&
17190 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17191 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017192 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017193 )
17194 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017195 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 +010017196 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17197 if (_token == NULL) {
17198 D(p->level--);
17199 return NULL;
17200 }
17201 int _end_lineno = _token->end_lineno;
17202 UNUSED(_end_lineno); // Only used by EXTRA macro
17203 int _end_col_offset = _token->end_col_offset;
17204 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017205 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017206 if (_res == NULL && PyErr_Occurred()) {
17207 p->error_indicator = 1;
17208 D(p->level--);
17209 return NULL;
17210 }
17211 goto done;
17212 }
17213 p->mark = _mark;
17214 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017216 }
17217 { // del_t_atom
17218 if (p->error_indicator) {
17219 D(p->level--);
17220 return NULL;
17221 }
17222 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17223 expr_ty del_t_atom_var;
17224 if (
17225 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17226 )
17227 {
17228 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17229 _res = del_t_atom_var;
17230 goto done;
17231 }
17232 p->mark = _mark;
17233 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17235 }
17236 _res = NULL;
17237 done:
17238 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17239 D(p->level--);
17240 return _res;
17241}
17242
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017243// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017244static expr_ty
17245del_t_atom_rule(Parser *p)
17246{
17247 D(p->level++);
17248 if (p->error_indicator) {
17249 D(p->level--);
17250 return NULL;
17251 }
17252 expr_ty _res = NULL;
17253 int _mark = p->mark;
17254 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17255 p->error_indicator = 1;
17256 D(p->level--);
17257 return NULL;
17258 }
17259 int _start_lineno = p->tokens[_mark]->lineno;
17260 UNUSED(_start_lineno); // Only used by EXTRA macro
17261 int _start_col_offset = p->tokens[_mark]->col_offset;
17262 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017263 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017264 if (p->error_indicator) {
17265 D(p->level--);
17266 return NULL;
17267 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017268 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017269 expr_ty a;
17270 if (
17271 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017272 )
17273 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017274 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 +010017275 _res = _PyPegen_set_expr_context ( p , a , Del );
17276 if (_res == NULL && PyErr_Occurred()) {
17277 p->error_indicator = 1;
17278 D(p->level--);
17279 return NULL;
17280 }
17281 goto done;
17282 }
17283 p->mark = _mark;
17284 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017286 }
17287 { // '(' del_target ')'
17288 if (p->error_indicator) {
17289 D(p->level--);
17290 return NULL;
17291 }
17292 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17293 Token * _literal;
17294 Token * _literal_1;
17295 expr_ty a;
17296 if (
17297 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17298 &&
17299 (a = del_target_rule(p)) // del_target
17300 &&
17301 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17302 )
17303 {
17304 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17305 _res = _PyPegen_set_expr_context ( p , a , Del );
17306 if (_res == NULL && PyErr_Occurred()) {
17307 p->error_indicator = 1;
17308 D(p->level--);
17309 return NULL;
17310 }
17311 goto done;
17312 }
17313 p->mark = _mark;
17314 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17316 }
17317 { // '(' del_targets? ')'
17318 if (p->error_indicator) {
17319 D(p->level--);
17320 return NULL;
17321 }
17322 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17323 Token * _literal;
17324 Token * _literal_1;
17325 void *a;
17326 if (
17327 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17328 &&
17329 (a = del_targets_rule(p), 1) // del_targets?
17330 &&
17331 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17332 )
17333 {
17334 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17335 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17336 if (_token == NULL) {
17337 D(p->level--);
17338 return NULL;
17339 }
17340 int _end_lineno = _token->end_lineno;
17341 UNUSED(_end_lineno); // Only used by EXTRA macro
17342 int _end_col_offset = _token->end_col_offset;
17343 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017344 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017345 if (_res == NULL && PyErr_Occurred()) {
17346 p->error_indicator = 1;
17347 D(p->level--);
17348 return NULL;
17349 }
17350 goto done;
17351 }
17352 p->mark = _mark;
17353 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17355 }
17356 { // '[' del_targets? ']'
17357 if (p->error_indicator) {
17358 D(p->level--);
17359 return NULL;
17360 }
17361 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17362 Token * _literal;
17363 Token * _literal_1;
17364 void *a;
17365 if (
17366 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17367 &&
17368 (a = del_targets_rule(p), 1) // del_targets?
17369 &&
17370 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17371 )
17372 {
17373 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17374 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17375 if (_token == NULL) {
17376 D(p->level--);
17377 return NULL;
17378 }
17379 int _end_lineno = _token->end_lineno;
17380 UNUSED(_end_lineno); // Only used by EXTRA macro
17381 int _end_col_offset = _token->end_col_offset;
17382 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017383 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017384 if (_res == NULL && PyErr_Occurred()) {
17385 p->error_indicator = 1;
17386 D(p->level--);
17387 return NULL;
17388 }
17389 goto done;
17390 }
17391 p->mark = _mark;
17392 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17394 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017395 _res = NULL;
17396 done:
17397 D(p->level--);
17398 return _res;
17399}
17400
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017401// Left-recursive
17402// t_primary:
17403// | t_primary '.' NAME &t_lookahead
17404// | t_primary '[' slices ']' &t_lookahead
17405// | t_primary genexp &t_lookahead
17406// | t_primary '(' arguments? ')' &t_lookahead
17407// | atom &t_lookahead
17408static expr_ty t_primary_raw(Parser *);
17409static expr_ty
17410t_primary_rule(Parser *p)
17411{
17412 D(p->level++);
17413 expr_ty _res = NULL;
17414 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17415 D(p->level--);
17416 return _res;
17417 }
17418 int _mark = p->mark;
17419 int _resmark = p->mark;
17420 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017421 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17422 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017423 D(p->level--);
17424 return _res;
17425 }
17426 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017427 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017428 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017429 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017430 if (p->error_indicator)
17431 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017432 if (_raw == NULL || p->mark <= _resmark)
17433 break;
17434 _resmark = p->mark;
17435 _res = _raw;
17436 }
17437 p->mark = _resmark;
17438 D(p->level--);
17439 return _res;
17440}
17441static expr_ty
17442t_primary_raw(Parser *p)
17443{
17444 D(p->level++);
17445 if (p->error_indicator) {
17446 D(p->level--);
17447 return NULL;
17448 }
17449 expr_ty _res = NULL;
17450 int _mark = p->mark;
17451 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17452 p->error_indicator = 1;
17453 D(p->level--);
17454 return NULL;
17455 }
17456 int _start_lineno = p->tokens[_mark]->lineno;
17457 UNUSED(_start_lineno); // Only used by EXTRA macro
17458 int _start_col_offset = p->tokens[_mark]->col_offset;
17459 UNUSED(_start_col_offset); // Only used by EXTRA macro
17460 { // t_primary '.' NAME &t_lookahead
17461 if (p->error_indicator) {
17462 D(p->level--);
17463 return NULL;
17464 }
17465 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17466 Token * _literal;
17467 expr_ty a;
17468 expr_ty b;
17469 if (
17470 (a = t_primary_rule(p)) // t_primary
17471 &&
17472 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17473 &&
17474 (b = _PyPegen_name_token(p)) // NAME
17475 &&
17476 _PyPegen_lookahead(1, t_lookahead_rule, p)
17477 )
17478 {
17479 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17480 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17481 if (_token == NULL) {
17482 D(p->level--);
17483 return NULL;
17484 }
17485 int _end_lineno = _token->end_lineno;
17486 UNUSED(_end_lineno); // Only used by EXTRA macro
17487 int _end_col_offset = _token->end_col_offset;
17488 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017489 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017490 if (_res == NULL && PyErr_Occurred()) {
17491 p->error_indicator = 1;
17492 D(p->level--);
17493 return NULL;
17494 }
17495 goto done;
17496 }
17497 p->mark = _mark;
17498 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17500 }
17501 { // t_primary '[' slices ']' &t_lookahead
17502 if (p->error_indicator) {
17503 D(p->level--);
17504 return NULL;
17505 }
17506 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17507 Token * _literal;
17508 Token * _literal_1;
17509 expr_ty a;
17510 expr_ty b;
17511 if (
17512 (a = t_primary_rule(p)) // t_primary
17513 &&
17514 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17515 &&
17516 (b = slices_rule(p)) // slices
17517 &&
17518 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17519 &&
17520 _PyPegen_lookahead(1, t_lookahead_rule, p)
17521 )
17522 {
17523 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17524 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17525 if (_token == NULL) {
17526 D(p->level--);
17527 return NULL;
17528 }
17529 int _end_lineno = _token->end_lineno;
17530 UNUSED(_end_lineno); // Only used by EXTRA macro
17531 int _end_col_offset = _token->end_col_offset;
17532 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017533 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017534 if (_res == NULL && PyErr_Occurred()) {
17535 p->error_indicator = 1;
17536 D(p->level--);
17537 return NULL;
17538 }
17539 goto done;
17540 }
17541 p->mark = _mark;
17542 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17544 }
17545 { // t_primary genexp &t_lookahead
17546 if (p->error_indicator) {
17547 D(p->level--);
17548 return NULL;
17549 }
17550 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17551 expr_ty a;
17552 expr_ty b;
17553 if (
17554 (a = t_primary_rule(p)) // t_primary
17555 &&
17556 (b = genexp_rule(p)) // genexp
17557 &&
17558 _PyPegen_lookahead(1, t_lookahead_rule, p)
17559 )
17560 {
17561 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17562 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17563 if (_token == NULL) {
17564 D(p->level--);
17565 return NULL;
17566 }
17567 int _end_lineno = _token->end_lineno;
17568 UNUSED(_end_lineno); // Only used by EXTRA macro
17569 int _end_col_offset = _token->end_col_offset;
17570 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017571 _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 +010017572 if (_res == NULL && PyErr_Occurred()) {
17573 p->error_indicator = 1;
17574 D(p->level--);
17575 return NULL;
17576 }
17577 goto done;
17578 }
17579 p->mark = _mark;
17580 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17582 }
17583 { // t_primary '(' arguments? ')' &t_lookahead
17584 if (p->error_indicator) {
17585 D(p->level--);
17586 return NULL;
17587 }
17588 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17589 Token * _literal;
17590 Token * _literal_1;
17591 expr_ty a;
17592 void *b;
17593 if (
17594 (a = t_primary_rule(p)) // t_primary
17595 &&
17596 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17597 &&
17598 (b = arguments_rule(p), 1) // arguments?
17599 &&
17600 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17601 &&
17602 _PyPegen_lookahead(1, t_lookahead_rule, p)
17603 )
17604 {
17605 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17606 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17607 if (_token == NULL) {
17608 D(p->level--);
17609 return NULL;
17610 }
17611 int _end_lineno = _token->end_lineno;
17612 UNUSED(_end_lineno); // Only used by EXTRA macro
17613 int _end_col_offset = _token->end_col_offset;
17614 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017615 _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 +010017616 if (_res == NULL && PyErr_Occurred()) {
17617 p->error_indicator = 1;
17618 D(p->level--);
17619 return NULL;
17620 }
17621 goto done;
17622 }
17623 p->mark = _mark;
17624 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17626 }
17627 { // atom &t_lookahead
17628 if (p->error_indicator) {
17629 D(p->level--);
17630 return NULL;
17631 }
17632 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17633 expr_ty a;
17634 if (
17635 (a = atom_rule(p)) // atom
17636 &&
17637 _PyPegen_lookahead(1, t_lookahead_rule, p)
17638 )
17639 {
17640 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17641 _res = a;
17642 if (_res == NULL && PyErr_Occurred()) {
17643 p->error_indicator = 1;
17644 D(p->level--);
17645 return NULL;
17646 }
17647 goto done;
17648 }
17649 p->mark = _mark;
17650 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17652 }
17653 _res = NULL;
17654 done:
17655 D(p->level--);
17656 return _res;
17657}
17658
17659// t_lookahead: '(' | '[' | '.'
17660static void *
17661t_lookahead_rule(Parser *p)
17662{
17663 D(p->level++);
17664 if (p->error_indicator) {
17665 D(p->level--);
17666 return NULL;
17667 }
17668 void * _res = NULL;
17669 int _mark = p->mark;
17670 { // '('
17671 if (p->error_indicator) {
17672 D(p->level--);
17673 return NULL;
17674 }
17675 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17676 Token * _literal;
17677 if (
17678 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17679 )
17680 {
17681 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17682 _res = _literal;
17683 goto done;
17684 }
17685 p->mark = _mark;
17686 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17687 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17688 }
17689 { // '['
17690 if (p->error_indicator) {
17691 D(p->level--);
17692 return NULL;
17693 }
17694 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17695 Token * _literal;
17696 if (
17697 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17698 )
17699 {
17700 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17701 _res = _literal;
17702 goto done;
17703 }
17704 p->mark = _mark;
17705 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17706 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17707 }
17708 { // '.'
17709 if (p->error_indicator) {
17710 D(p->level--);
17711 return NULL;
17712 }
17713 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17714 Token * _literal;
17715 if (
17716 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17717 )
17718 {
17719 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17720 _res = _literal;
17721 goto done;
17722 }
17723 p->mark = _mark;
17724 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17726 }
17727 _res = NULL;
17728 done:
17729 D(p->level--);
17730 return _res;
17731}
17732
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017733// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017734// | args ',' '*'
17735// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017736// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017737// | args for_if_clauses
17738// | args ',' expression for_if_clauses
17739// | args ',' args
17740static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017741invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017742{
17743 D(p->level++);
17744 if (p->error_indicator) {
17745 D(p->level--);
17746 return NULL;
17747 }
17748 void * _res = NULL;
17749 int _mark = p->mark;
17750 { // args ',' '*'
17751 if (p->error_indicator) {
17752 D(p->level--);
17753 return NULL;
17754 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017755 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017756 Token * _literal;
17757 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017758 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017759 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010017760 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017761 &&
17762 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17763 &&
17764 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17765 )
17766 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017767 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017768 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017769 if (_res == NULL && PyErr_Occurred()) {
17770 p->error_indicator = 1;
17771 D(p->level--);
17772 return NULL;
17773 }
17774 goto done;
17775 }
17776 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017777 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17779 }
17780 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17781 if (p->error_indicator) {
17782 D(p->level--);
17783 return NULL;
17784 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017785 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 +010017786 Token * _literal;
17787 void *_opt_var;
17788 UNUSED(_opt_var); // Silence compiler warnings
17789 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017790 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017791 if (
17792 (a = expression_rule(p)) // expression
17793 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017794 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017795 &&
17796 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17797 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070017798 (_opt_var = _tmp_141_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017799 )
17800 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017801 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 +010017802 _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 +010017803 if (_res == NULL && PyErr_Occurred()) {
17804 p->error_indicator = 1;
17805 D(p->level--);
17806 return NULL;
17807 }
17808 goto done;
17809 }
17810 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017811 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17813 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017814 { // NAME '=' expression for_if_clauses
17815 if (p->error_indicator) {
17816 D(p->level--);
17817 return NULL;
17818 }
17819 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17820 expr_ty a;
17821 Token * b;
17822 expr_ty expression_var;
17823 asdl_comprehension_seq* for_if_clauses_var;
17824 if (
17825 (a = _PyPegen_name_token(p)) // NAME
17826 &&
17827 (b = _PyPegen_expect_token(p, 22)) // token='='
17828 &&
17829 (expression_var = expression_rule(p)) // expression
17830 &&
17831 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17832 )
17833 {
17834 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17835 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17836 if (_res == NULL && PyErr_Occurred()) {
17837 p->error_indicator = 1;
17838 D(p->level--);
17839 return NULL;
17840 }
17841 goto done;
17842 }
17843 p->mark = _mark;
17844 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
17845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
17846 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017847 { // args for_if_clauses
17848 if (p->error_indicator) {
17849 D(p->level--);
17850 return NULL;
17851 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017852 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 +010017853 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017854 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017855 if (
17856 (a = args_rule(p)) // args
17857 &&
17858 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17859 )
17860 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017861 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 +010017862 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17863 if (_res == NULL && PyErr_Occurred()) {
17864 p->error_indicator = 1;
17865 D(p->level--);
17866 return NULL;
17867 }
17868 goto done;
17869 }
17870 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017871 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17873 }
17874 { // args ',' expression for_if_clauses
17875 if (p->error_indicator) {
17876 D(p->level--);
17877 return NULL;
17878 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017879 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 +010017880 Token * _literal;
17881 expr_ty a;
17882 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017883 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017884 if (
17885 (args_var = args_rule(p)) // args
17886 &&
17887 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17888 &&
17889 (a = expression_rule(p)) // expression
17890 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017891 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017892 )
17893 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017894 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 +010017895 _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 +010017896 if (_res == NULL && PyErr_Occurred()) {
17897 p->error_indicator = 1;
17898 D(p->level--);
17899 return NULL;
17900 }
17901 goto done;
17902 }
17903 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017904 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17906 }
17907 { // args ',' args
17908 if (p->error_indicator) {
17909 D(p->level--);
17910 return NULL;
17911 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017912 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017913 Token * _literal;
17914 expr_ty a;
17915 expr_ty args_var;
17916 if (
17917 (a = args_rule(p)) // args
17918 &&
17919 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17920 &&
17921 (args_var = args_rule(p)) // args
17922 )
17923 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017924 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 +010017925 _res = _PyPegen_arguments_parsing_error ( p , a );
17926 if (_res == NULL && PyErr_Occurred()) {
17927 p->error_indicator = 1;
17928 D(p->level--);
17929 return NULL;
17930 }
17931 goto done;
17932 }
17933 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017934 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017935 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17936 }
17937 _res = NULL;
17938 done:
17939 D(p->level--);
17940 return _res;
17941}
17942
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017943// invalid_kwarg: NAME '=' expression for_if_clauses | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017944static void *
17945invalid_kwarg_rule(Parser *p)
17946{
17947 D(p->level++);
17948 if (p->error_indicator) {
17949 D(p->level--);
17950 return NULL;
17951 }
17952 void * _res = NULL;
17953 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017954 { // NAME '=' expression for_if_clauses
17955 if (p->error_indicator) {
17956 D(p->level--);
17957 return NULL;
17958 }
17959 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17960 expr_ty a;
17961 Token * b;
17962 expr_ty expression_var;
17963 asdl_comprehension_seq* for_if_clauses_var;
17964 if (
17965 (a = _PyPegen_name_token(p)) // NAME
17966 &&
17967 (b = _PyPegen_expect_token(p, 22)) // token='='
17968 &&
17969 (expression_var = expression_rule(p)) // expression
17970 &&
17971 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17972 )
17973 {
17974 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17975 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17976 if (_res == NULL && PyErr_Occurred()) {
17977 p->error_indicator = 1;
17978 D(p->level--);
17979 return NULL;
17980 }
17981 goto done;
17982 }
17983 p->mark = _mark;
17984 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
17985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
17986 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070017987 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017988 if (p->error_indicator) {
17989 D(p->level--);
17990 return NULL;
17991 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070017992 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017993 expr_ty a;
17994 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017995 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070017996 _PyPegen_lookahead(0, _tmp_142_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070017997 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017998 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017999 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018000 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018001 )
18002 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018003 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 +010018004 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018005 if (_res == NULL && PyErr_Occurred()) {
18006 p->error_indicator = 1;
18007 D(p->level--);
18008 return NULL;
18009 }
18010 goto done;
18011 }
18012 p->mark = _mark;
18013 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018015 }
18016 _res = NULL;
18017 done:
18018 D(p->level--);
18019 return _res;
18020}
18021
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018022// expression_without_invalid:
18023// | disjunction 'if' disjunction 'else' expression
18024// | disjunction
18025// | lambdef
18026static expr_ty
18027expression_without_invalid_rule(Parser *p)
18028{
18029 D(p->level++);
18030 if (p->error_indicator) {
18031 D(p->level--);
18032 return NULL;
18033 }
18034 expr_ty _res = NULL;
18035 int _mark = p->mark;
18036 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18037 p->error_indicator = 1;
18038 D(p->level--);
18039 return NULL;
18040 }
18041 int _start_lineno = p->tokens[_mark]->lineno;
18042 UNUSED(_start_lineno); // Only used by EXTRA macro
18043 int _start_col_offset = p->tokens[_mark]->col_offset;
18044 UNUSED(_start_col_offset); // Only used by EXTRA macro
18045 { // disjunction 'if' disjunction 'else' expression
18046 if (p->error_indicator) {
18047 D(p->level--);
18048 return NULL;
18049 }
18050 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18051 Token * _keyword;
18052 Token * _keyword_1;
18053 expr_ty a;
18054 expr_ty b;
18055 expr_ty c;
18056 if (
18057 (a = disjunction_rule(p)) // disjunction
18058 &&
18059 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18060 &&
18061 (b = disjunction_rule(p)) // disjunction
18062 &&
18063 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18064 &&
18065 (c = expression_rule(p)) // expression
18066 )
18067 {
18068 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18069 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18070 if (_token == NULL) {
18071 D(p->level--);
18072 return NULL;
18073 }
18074 int _end_lineno = _token->end_lineno;
18075 UNUSED(_end_lineno); // Only used by EXTRA macro
18076 int _end_col_offset = _token->end_col_offset;
18077 UNUSED(_end_col_offset); // Only used by EXTRA macro
18078 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18079 if (_res == NULL && PyErr_Occurred()) {
18080 p->error_indicator = 1;
18081 D(p->level--);
18082 return NULL;
18083 }
18084 goto done;
18085 }
18086 p->mark = _mark;
18087 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18089 }
18090 { // disjunction
18091 if (p->error_indicator) {
18092 D(p->level--);
18093 return NULL;
18094 }
18095 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18096 expr_ty disjunction_var;
18097 if (
18098 (disjunction_var = disjunction_rule(p)) // disjunction
18099 )
18100 {
18101 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18102 _res = disjunction_var;
18103 goto done;
18104 }
18105 p->mark = _mark;
18106 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18108 }
18109 { // lambdef
18110 if (p->error_indicator) {
18111 D(p->level--);
18112 return NULL;
18113 }
18114 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18115 expr_ty lambdef_var;
18116 if (
18117 (lambdef_var = lambdef_rule(p)) // lambdef
18118 )
18119 {
18120 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18121 _res = lambdef_var;
18122 goto done;
18123 }
18124 p->mark = _mark;
18125 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18127 }
18128 _res = NULL;
18129 done:
18130 D(p->level--);
18131 return _res;
18132}
18133
18134// invalid_expression:
18135// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018136static void *
18137invalid_expression_rule(Parser *p)
18138{
18139 D(p->level++);
18140 if (p->error_indicator) {
18141 D(p->level--);
18142 return NULL;
18143 }
18144 void * _res = NULL;
18145 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018146 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018147 if (p->error_indicator) {
18148 D(p->level--);
18149 return NULL;
18150 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018151 D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018152 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018153 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018154 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018155 _PyPegen_lookahead(0, _tmp_143_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018156 &&
18157 (a = disjunction_rule(p)) // disjunction
18158 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018159 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018160 )
18161 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018162 D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018163 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018164 if (_res == NULL && PyErr_Occurred()) {
18165 p->error_indicator = 1;
18166 D(p->level--);
18167 return NULL;
18168 }
18169 goto done;
18170 }
18171 p->mark = _mark;
18172 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018174 }
18175 _res = NULL;
18176 done:
18177 D(p->level--);
18178 return _res;
18179}
18180
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018181// invalid_named_expression:
18182// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018183// | NAME '=' bitwise_or !('=' | ':=')
18184// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018185static void *
18186invalid_named_expression_rule(Parser *p)
18187{
18188 D(p->level++);
18189 if (p->error_indicator) {
18190 D(p->level--);
18191 return NULL;
18192 }
18193 void * _res = NULL;
18194 int _mark = p->mark;
18195 { // expression ':=' expression
18196 if (p->error_indicator) {
18197 D(p->level--);
18198 return NULL;
18199 }
18200 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18201 Token * _literal;
18202 expr_ty a;
18203 expr_ty expression_var;
18204 if (
18205 (a = expression_rule(p)) // expression
18206 &&
18207 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18208 &&
18209 (expression_var = expression_rule(p)) // expression
18210 )
18211 {
18212 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18213 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18214 if (_res == NULL && PyErr_Occurred()) {
18215 p->error_indicator = 1;
18216 D(p->level--);
18217 return NULL;
18218 }
18219 goto done;
18220 }
18221 p->mark = _mark;
18222 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18224 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018225 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018226 if (p->error_indicator) {
18227 D(p->level--);
18228 return NULL;
18229 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018230 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 +010018231 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018232 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018233 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018234 if (
18235 (a = _PyPegen_name_token(p)) // NAME
18236 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018237 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018238 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018239 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018240 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018241 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018242 )
18243 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018244 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
18245 _res = p -> in_raw_rule ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018246 if (_res == NULL && PyErr_Occurred()) {
18247 p->error_indicator = 1;
18248 D(p->level--);
18249 return NULL;
18250 }
18251 goto done;
18252 }
18253 p->mark = _mark;
18254 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018256 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018257 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018258 if (p->error_indicator) {
18259 D(p->level--);
18260 return NULL;
18261 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018262 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018263 expr_ty a;
18264 Token * b;
18265 expr_ty bitwise_or_var;
18266 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018267 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018268 &&
18269 (a = bitwise_or_rule(p)) // bitwise_or
18270 &&
18271 (b = _PyPegen_expect_token(p, 22)) // token='='
18272 &&
18273 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18274 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018275 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018276 )
18277 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018278 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 !('=' | ':=')"));
18279 _res = p -> in_raw_rule ? NULL : RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot assign to %s here. Maybe you meant '==' instead of '='?" , _PyPegen_get_expr_name ( a ) );
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018280 if (_res == NULL && PyErr_Occurred()) {
18281 p->error_indicator = 1;
18282 D(p->level--);
18283 return NULL;
18284 }
18285 goto done;
18286 }
18287 p->mark = _mark;
18288 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018290 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018291 _res = NULL;
18292 done:
18293 D(p->level--);
18294 return _res;
18295}
18296
18297// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018298// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018299// | star_named_expression ',' star_named_expressions* ':' expression
18300// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018301// | ((star_targets '='))* star_expressions '='
18302// | ((star_targets '='))* yield_expr '='
18303// | star_expressions augassign (yield_expr | star_expressions)
18304static void *
18305invalid_assignment_rule(Parser *p)
18306{
18307 D(p->level++);
18308 if (p->error_indicator) {
18309 D(p->level--);
18310 return NULL;
18311 }
18312 void * _res = NULL;
18313 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018314 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018315 if (p->error_indicator) {
18316 D(p->level--);
18317 return NULL;
18318 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018319 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 +010018320 Token * _literal;
18321 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018322 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018323 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018324 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018325 &&
18326 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018327 &&
18328 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018329 )
18330 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018331 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18332 _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 +010018333 if (_res == NULL && PyErr_Occurred()) {
18334 p->error_indicator = 1;
18335 D(p->level--);
18336 return NULL;
18337 }
18338 goto done;
18339 }
18340 p->mark = _mark;
18341 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018342 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018343 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018344 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018345 if (p->error_indicator) {
18346 D(p->level--);
18347 return NULL;
18348 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018349 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 +010018350 Token * _literal;
18351 Token * _literal_1;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018352 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018353 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018354 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018355 if (
18356 (a = star_named_expression_rule(p)) // star_named_expression
18357 &&
18358 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18359 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018360 (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018361 &&
18362 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018363 &&
18364 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018365 )
18366 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018367 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 +010018368 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18369 if (_res == NULL && PyErr_Occurred()) {
18370 p->error_indicator = 1;
18371 D(p->level--);
18372 return NULL;
18373 }
18374 goto done;
18375 }
18376 p->mark = _mark;
18377 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018379 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018380 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018381 if (p->error_indicator) {
18382 D(p->level--);
18383 return NULL;
18384 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018385 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018386 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018387 expr_ty a;
18388 expr_ty expression_var;
18389 if (
18390 (a = expression_rule(p)) // expression
18391 &&
18392 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18393 &&
18394 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018395 )
18396 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018397 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 +010018398 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18399 if (_res == NULL && PyErr_Occurred()) {
18400 p->error_indicator = 1;
18401 D(p->level--);
18402 return NULL;
18403 }
18404 goto done;
18405 }
18406 p->mark = _mark;
18407 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018409 }
18410 { // ((star_targets '='))* star_expressions '='
18411 if (p->error_indicator) {
18412 D(p->level--);
18413 return NULL;
18414 }
18415 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18416 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018417 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018418 expr_ty a;
18419 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018420 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018421 &&
18422 (a = star_expressions_rule(p)) // star_expressions
18423 &&
18424 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18425 )
18426 {
18427 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 +030018428 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018429 if (_res == NULL && PyErr_Occurred()) {
18430 p->error_indicator = 1;
18431 D(p->level--);
18432 return NULL;
18433 }
18434 goto done;
18435 }
18436 p->mark = _mark;
18437 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18439 }
18440 { // ((star_targets '='))* yield_expr '='
18441 if (p->error_indicator) {
18442 D(p->level--);
18443 return NULL;
18444 }
18445 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18446 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018447 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018448 expr_ty a;
18449 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018450 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018451 &&
18452 (a = yield_expr_rule(p)) // yield_expr
18453 &&
18454 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18455 )
18456 {
18457 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18458 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18459 if (_res == NULL && PyErr_Occurred()) {
18460 p->error_indicator = 1;
18461 D(p->level--);
18462 return NULL;
18463 }
18464 goto done;
18465 }
18466 p->mark = _mark;
18467 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18469 }
18470 { // star_expressions augassign (yield_expr | star_expressions)
18471 if (p->error_indicator) {
18472 D(p->level--);
18473 return NULL;
18474 }
18475 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018476 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018477 expr_ty a;
18478 AugOperator* augassign_var;
18479 if (
18480 (a = star_expressions_rule(p)) // star_expressions
18481 &&
18482 (augassign_var = augassign_rule(p)) // augassign
18483 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018484 (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018485 )
18486 {
18487 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18488 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18489 if (_res == NULL && PyErr_Occurred()) {
18490 p->error_indicator = 1;
18491 D(p->level--);
18492 return NULL;
18493 }
18494 goto done;
18495 }
18496 p->mark = _mark;
18497 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18499 }
18500 _res = NULL;
18501 done:
18502 D(p->level--);
18503 return _res;
18504}
18505
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018506// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18507static expr_ty
18508invalid_ann_assign_target_rule(Parser *p)
18509{
18510 D(p->level++);
18511 if (p->error_indicator) {
18512 D(p->level--);
18513 return NULL;
18514 }
18515 expr_ty _res = NULL;
18516 int _mark = p->mark;
18517 { // list
18518 if (p->error_indicator) {
18519 D(p->level--);
18520 return NULL;
18521 }
18522 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18523 expr_ty list_var;
18524 if (
18525 (list_var = list_rule(p)) // list
18526 )
18527 {
18528 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18529 _res = list_var;
18530 goto done;
18531 }
18532 p->mark = _mark;
18533 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18534 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18535 }
18536 { // tuple
18537 if (p->error_indicator) {
18538 D(p->level--);
18539 return NULL;
18540 }
18541 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18542 expr_ty tuple_var;
18543 if (
18544 (tuple_var = tuple_rule(p)) // tuple
18545 )
18546 {
18547 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18548 _res = tuple_var;
18549 goto done;
18550 }
18551 p->mark = _mark;
18552 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18554 }
18555 { // '(' invalid_ann_assign_target ')'
18556 if (p->error_indicator) {
18557 D(p->level--);
18558 return NULL;
18559 }
18560 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18561 Token * _literal;
18562 Token * _literal_1;
18563 expr_ty a;
18564 if (
18565 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18566 &&
18567 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18568 &&
18569 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18570 )
18571 {
18572 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18573 _res = a;
18574 if (_res == NULL && PyErr_Occurred()) {
18575 p->error_indicator = 1;
18576 D(p->level--);
18577 return NULL;
18578 }
18579 goto done;
18580 }
18581 p->mark = _mark;
18582 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18584 }
18585 _res = NULL;
18586 done:
18587 D(p->level--);
18588 return _res;
18589}
18590
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018591// invalid_del_stmt: 'del' star_expressions
18592static void *
18593invalid_del_stmt_rule(Parser *p)
18594{
18595 D(p->level++);
18596 if (p->error_indicator) {
18597 D(p->level--);
18598 return NULL;
18599 }
18600 void * _res = NULL;
18601 int _mark = p->mark;
18602 { // 'del' star_expressions
18603 if (p->error_indicator) {
18604 D(p->level--);
18605 return NULL;
18606 }
18607 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18608 Token * _keyword;
18609 expr_ty a;
18610 if (
18611 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18612 &&
18613 (a = star_expressions_rule(p)) // star_expressions
18614 )
18615 {
18616 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 +030018617 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018618 if (_res == NULL && PyErr_Occurred()) {
18619 p->error_indicator = 1;
18620 D(p->level--);
18621 return NULL;
18622 }
18623 goto done;
18624 }
18625 p->mark = _mark;
18626 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18628 }
18629 _res = NULL;
18630 done:
18631 D(p->level--);
18632 return _res;
18633}
18634
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018635// invalid_block: NEWLINE !INDENT
18636static void *
18637invalid_block_rule(Parser *p)
18638{
18639 D(p->level++);
18640 if (p->error_indicator) {
18641 D(p->level--);
18642 return NULL;
18643 }
18644 void * _res = NULL;
18645 int _mark = p->mark;
18646 { // NEWLINE !INDENT
18647 if (p->error_indicator) {
18648 D(p->level--);
18649 return NULL;
18650 }
18651 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18652 Token * newline_var;
18653 if (
18654 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18655 &&
18656 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18657 )
18658 {
18659 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18660 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18661 if (_res == NULL && PyErr_Occurred()) {
18662 p->error_indicator = 1;
18663 D(p->level--);
18664 return NULL;
18665 }
18666 goto done;
18667 }
18668 p->mark = _mark;
18669 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18671 }
18672 _res = NULL;
18673 done:
18674 D(p->level--);
18675 return _res;
18676}
18677
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018678// Left-recursive
18679// invalid_primary: primary '{'
18680static void *
18681invalid_primary_rule(Parser *p)
18682{
18683 D(p->level++);
18684 if (p->error_indicator) {
18685 D(p->level--);
18686 return NULL;
18687 }
18688 void * _res = NULL;
18689 int _mark = p->mark;
18690 { // primary '{'
18691 if (p->error_indicator) {
18692 D(p->level--);
18693 return NULL;
18694 }
18695 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18696 Token * a;
18697 expr_ty primary_var;
18698 if (
18699 (primary_var = primary_rule(p)) // primary
18700 &&
18701 (a = _PyPegen_expect_token(p, 25)) // token='{'
18702 )
18703 {
18704 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18705 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18706 if (_res == NULL && PyErr_Occurred()) {
18707 p->error_indicator = 1;
18708 D(p->level--);
18709 return NULL;
18710 }
18711 goto done;
18712 }
18713 p->mark = _mark;
18714 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18716 }
18717 _res = NULL;
18718 done:
18719 D(p->level--);
18720 return _res;
18721}
18722
Pablo Galindo835f14f2021-01-31 22:52:56 +000018723// invalid_comprehension:
18724// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018725// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18726// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018727static void *
18728invalid_comprehension_rule(Parser *p)
18729{
18730 D(p->level++);
18731 if (p->error_indicator) {
18732 D(p->level--);
18733 return NULL;
18734 }
18735 void * _res = NULL;
18736 int _mark = p->mark;
18737 { // ('[' | '(' | '{') starred_expression for_if_clauses
18738 if (p->error_indicator) {
18739 D(p->level--);
18740 return NULL;
18741 }
18742 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018743 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018744 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018745 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018746 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018747 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018748 &&
18749 (a = starred_expression_rule(p)) // starred_expression
18750 &&
18751 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18752 )
18753 {
18754 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18755 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18756 if (_res == NULL && PyErr_Occurred()) {
18757 p->error_indicator = 1;
18758 D(p->level--);
18759 return NULL;
18760 }
18761 goto done;
18762 }
18763 p->mark = _mark;
18764 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18766 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018767 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018768 if (p->error_indicator) {
18769 D(p->level--);
18770 return NULL;
18771 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018772 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 +000018773 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018774 void *_tmp_152_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018775 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018776 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018777 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018778 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018779 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018780 &&
18781 (a = star_named_expression_rule(p)) // star_named_expression
18782 &&
18783 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18784 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018785 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018786 &&
18787 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018788 )
18789 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018790 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"));
18791 _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 +000018792 if (_res == NULL && PyErr_Occurred()) {
18793 p->error_indicator = 1;
18794 D(p->level--);
18795 return NULL;
18796 }
18797 goto done;
18798 }
18799 p->mark = _mark;
18800 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18802 }
18803 { // ('[' | '{') star_named_expression ',' for_if_clauses
18804 if (p->error_indicator) {
18805 D(p->level--);
18806 return NULL;
18807 }
18808 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018809 void *_tmp_153_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018810 expr_ty a;
18811 Token * b;
18812 asdl_comprehension_seq* for_if_clauses_var;
18813 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018814 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010018815 &&
18816 (a = star_named_expression_rule(p)) // star_named_expression
18817 &&
18818 (b = _PyPegen_expect_token(p, 12)) // token=','
18819 &&
18820 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18821 )
18822 {
18823 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18824 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
18825 if (_res == NULL && PyErr_Occurred()) {
18826 p->error_indicator = 1;
18827 D(p->level--);
18828 return NULL;
18829 }
18830 goto done;
18831 }
18832 p->mark = _mark;
18833 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018835 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018836 _res = NULL;
18837 done:
18838 D(p->level--);
18839 return _res;
18840}
18841
18842// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18843static void *
18844invalid_dict_comprehension_rule(Parser *p)
18845{
18846 D(p->level++);
18847 if (p->error_indicator) {
18848 D(p->level--);
18849 return NULL;
18850 }
18851 void * _res = NULL;
18852 int _mark = p->mark;
18853 { // '{' '**' bitwise_or for_if_clauses '}'
18854 if (p->error_indicator) {
18855 D(p->level--);
18856 return NULL;
18857 }
18858 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18859 Token * _literal;
18860 Token * _literal_1;
18861 Token * a;
18862 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018863 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018864 if (
18865 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18866 &&
18867 (a = _PyPegen_expect_token(p, 35)) // token='**'
18868 &&
18869 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18870 &&
18871 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18872 &&
18873 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18874 )
18875 {
18876 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18877 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18878 if (_res == NULL && PyErr_Occurred()) {
18879 p->error_indicator = 1;
18880 D(p->level--);
18881 return NULL;
18882 }
18883 goto done;
18884 }
18885 p->mark = _mark;
18886 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18887 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18888 }
18889 _res = NULL;
18890 done:
18891 D(p->level--);
18892 return _res;
18893}
18894
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018895// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018896static void *
18897invalid_parameters_rule(Parser *p)
18898{
18899 D(p->level++);
18900 if (p->error_indicator) {
18901 D(p->level--);
18902 return NULL;
18903 }
18904 void * _res = NULL;
18905 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018906 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018907 if (p->error_indicator) {
18908 D(p->level--);
18909 return NULL;
18910 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018911 D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018912 asdl_seq * _loop0_154_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018913 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018914 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018915 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018916 (_loop0_154_var = _loop0_154_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018917 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018918 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018919 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018920 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018921 )
18922 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018923 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 +010018924 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018925 if (_res == NULL && PyErr_Occurred()) {
18926 p->error_indicator = 1;
18927 D(p->level--);
18928 return NULL;
18929 }
18930 goto done;
18931 }
18932 p->mark = _mark;
18933 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
18935 }
18936 _res = NULL;
18937 done:
18938 D(p->level--);
18939 return _res;
18940}
18941
18942// invalid_parameters_helper: slash_with_default | param_with_default+
18943static void *
18944invalid_parameters_helper_rule(Parser *p)
18945{
18946 D(p->level++);
18947 if (p->error_indicator) {
18948 D(p->level--);
18949 return NULL;
18950 }
18951 void * _res = NULL;
18952 int _mark = p->mark;
18953 { // slash_with_default
18954 if (p->error_indicator) {
18955 D(p->level--);
18956 return NULL;
18957 }
18958 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18959 SlashWithDefault* a;
18960 if (
18961 (a = slash_with_default_rule(p)) // slash_with_default
18962 )
18963 {
18964 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18965 _res = _PyPegen_singleton_seq ( p , a );
18966 if (_res == NULL && PyErr_Occurred()) {
18967 p->error_indicator = 1;
18968 D(p->level--);
18969 return NULL;
18970 }
18971 goto done;
18972 }
18973 p->mark = _mark;
18974 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
18976 }
18977 { // param_with_default+
18978 if (p->error_indicator) {
18979 D(p->level--);
18980 return NULL;
18981 }
18982 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018983 asdl_seq * _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018984 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018985 (_loop1_155_var = _loop1_155_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018986 )
18987 {
18988 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018989 _res = _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018990 goto done;
18991 }
18992 p->mark = _mark;
18993 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18994 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018995 }
18996 _res = NULL;
18997 done:
18998 D(p->level--);
18999 return _res;
19000}
19001
19002// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019003// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019004static void *
19005invalid_lambda_parameters_rule(Parser *p)
19006{
19007 D(p->level++);
19008 if (p->error_indicator) {
19009 D(p->level--);
19010 return NULL;
19011 }
19012 void * _res = NULL;
19013 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019014 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019015 if (p->error_indicator) {
19016 D(p->level--);
19017 return NULL;
19018 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019019 D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019020 asdl_seq * _loop0_156_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019021 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019022 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019023 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019024 (_loop0_156_var = _loop0_156_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019025 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019026 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019027 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019028 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019029 )
19030 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019031 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 +010019032 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019033 if (_res == NULL && PyErr_Occurred()) {
19034 p->error_indicator = 1;
19035 D(p->level--);
19036 return NULL;
19037 }
19038 goto done;
19039 }
19040 p->mark = _mark;
19041 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19043 }
19044 _res = NULL;
19045 done:
19046 D(p->level--);
19047 return _res;
19048}
19049
19050// invalid_lambda_parameters_helper:
19051// | lambda_slash_with_default
19052// | lambda_param_with_default+
19053static void *
19054invalid_lambda_parameters_helper_rule(Parser *p)
19055{
19056 D(p->level++);
19057 if (p->error_indicator) {
19058 D(p->level--);
19059 return NULL;
19060 }
19061 void * _res = NULL;
19062 int _mark = p->mark;
19063 { // lambda_slash_with_default
19064 if (p->error_indicator) {
19065 D(p->level--);
19066 return NULL;
19067 }
19068 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19069 SlashWithDefault* a;
19070 if (
19071 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19072 )
19073 {
19074 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19075 _res = _PyPegen_singleton_seq ( p , a );
19076 if (_res == NULL && PyErr_Occurred()) {
19077 p->error_indicator = 1;
19078 D(p->level--);
19079 return NULL;
19080 }
19081 goto done;
19082 }
19083 p->mark = _mark;
19084 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19086 }
19087 { // lambda_param_with_default+
19088 if (p->error_indicator) {
19089 D(p->level--);
19090 return NULL;
19091 }
19092 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019093 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019094 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019095 (_loop1_157_var = _loop1_157_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019096 )
19097 {
19098 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019099 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019100 goto done;
19101 }
19102 p->mark = _mark;
19103 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019105 }
19106 _res = NULL;
19107 done:
19108 D(p->level--);
19109 return _res;
19110}
19111
19112// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19113static void *
19114invalid_star_etc_rule(Parser *p)
19115{
19116 D(p->level++);
19117 if (p->error_indicator) {
19118 D(p->level--);
19119 return NULL;
19120 }
19121 void * _res = NULL;
19122 int _mark = p->mark;
19123 { // '*' (')' | ',' (')' | '**'))
19124 if (p->error_indicator) {
19125 D(p->level--);
19126 return NULL;
19127 }
19128 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019129 void *_tmp_158_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019130 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019131 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019132 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019133 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019134 (_tmp_158_var = _tmp_158_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019135 )
19136 {
19137 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019138 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019139 if (_res == NULL && PyErr_Occurred()) {
19140 p->error_indicator = 1;
19141 D(p->level--);
19142 return NULL;
19143 }
19144 goto done;
19145 }
19146 p->mark = _mark;
19147 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19149 }
19150 { // '*' ',' TYPE_COMMENT
19151 if (p->error_indicator) {
19152 D(p->level--);
19153 return NULL;
19154 }
19155 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19156 Token * _literal;
19157 Token * _literal_1;
19158 Token * type_comment_var;
19159 if (
19160 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19161 &&
19162 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19163 &&
19164 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19165 )
19166 {
19167 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19168 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19169 if (_res == NULL && PyErr_Occurred()) {
19170 p->error_indicator = 1;
19171 D(p->level--);
19172 return NULL;
19173 }
19174 goto done;
19175 }
19176 p->mark = _mark;
19177 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19178 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19179 }
19180 _res = NULL;
19181 done:
19182 D(p->level--);
19183 return _res;
19184}
19185
19186// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19187static void *
19188invalid_lambda_star_etc_rule(Parser *p)
19189{
19190 D(p->level++);
19191 if (p->error_indicator) {
19192 D(p->level--);
19193 return NULL;
19194 }
19195 void * _res = NULL;
19196 int _mark = p->mark;
19197 { // '*' (':' | ',' (':' | '**'))
19198 if (p->error_indicator) {
19199 D(p->level--);
19200 return NULL;
19201 }
19202 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19203 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019204 void *_tmp_159_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019205 if (
19206 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19207 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019208 (_tmp_159_var = _tmp_159_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019209 )
19210 {
19211 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19212 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19213 if (_res == NULL && PyErr_Occurred()) {
19214 p->error_indicator = 1;
19215 D(p->level--);
19216 return NULL;
19217 }
19218 goto done;
19219 }
19220 p->mark = _mark;
19221 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19223 }
19224 _res = NULL;
19225 done:
19226 D(p->level--);
19227 return _res;
19228}
19229
19230// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19231static void *
19232invalid_double_type_comments_rule(Parser *p)
19233{
19234 D(p->level++);
19235 if (p->error_indicator) {
19236 D(p->level--);
19237 return NULL;
19238 }
19239 void * _res = NULL;
19240 int _mark = p->mark;
19241 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19242 if (p->error_indicator) {
19243 D(p->level--);
19244 return NULL;
19245 }
19246 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19247 Token * indent_var;
19248 Token * newline_var;
19249 Token * newline_var_1;
19250 Token * type_comment_var;
19251 Token * type_comment_var_1;
19252 if (
19253 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19254 &&
19255 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19256 &&
19257 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19258 &&
19259 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19260 &&
19261 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19262 )
19263 {
19264 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"));
19265 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19266 if (_res == NULL && PyErr_Occurred()) {
19267 p->error_indicator = 1;
19268 D(p->level--);
19269 return NULL;
19270 }
19271 goto done;
19272 }
19273 p->mark = _mark;
19274 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19276 }
19277 _res = NULL;
19278 done:
19279 D(p->level--);
19280 return _res;
19281}
19282
Pablo Galindo58fb1562021-02-02 19:54:22 +000019283// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019284static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019285invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019286{
19287 D(p->level++);
19288 if (p->error_indicator) {
19289 D(p->level--);
19290 return NULL;
19291 }
19292 void * _res = NULL;
19293 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019294 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019295 if (p->error_indicator) {
19296 D(p->level--);
19297 return NULL;
19298 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019299 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 +030019300 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019301 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019302 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019303 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019304 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019305 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019306 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19307 &&
19308 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019309 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019310 _PyPegen_lookahead(1, _tmp_160_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019311 )
19312 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019313 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 +030019314 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019315 if (_res == NULL && PyErr_Occurred()) {
19316 p->error_indicator = 1;
19317 D(p->level--);
19318 return NULL;
19319 }
19320 goto done;
19321 }
19322 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019323 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019325 }
19326 _res = NULL;
19327 done:
19328 D(p->level--);
19329 return _res;
19330}
19331
19332// invalid_for_target: ASYNC? 'for' star_expressions
19333static void *
19334invalid_for_target_rule(Parser *p)
19335{
19336 D(p->level++);
19337 if (p->error_indicator) {
19338 D(p->level--);
19339 return NULL;
19340 }
19341 void * _res = NULL;
19342 int _mark = p->mark;
19343 { // ASYNC? 'for' star_expressions
19344 if (p->error_indicator) {
19345 D(p->level--);
19346 return NULL;
19347 }
19348 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19349 Token * _keyword;
19350 void *_opt_var;
19351 UNUSED(_opt_var); // Silence compiler warnings
19352 expr_ty a;
19353 if (
19354 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19355 &&
19356 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19357 &&
19358 (a = star_expressions_rule(p)) // star_expressions
19359 )
19360 {
19361 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 +030019362 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019363 if (_res == NULL && PyErr_Occurred()) {
19364 p->error_indicator = 1;
19365 D(p->level--);
19366 return NULL;
19367 }
19368 goto done;
19369 }
19370 p->mark = _mark;
19371 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19373 }
19374 _res = NULL;
19375 done:
19376 D(p->level--);
19377 return _res;
19378}
19379
Pablo Galindo8efad612021-03-24 19:34:17 +000019380// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019381static void *
19382invalid_group_rule(Parser *p)
19383{
19384 D(p->level++);
19385 if (p->error_indicator) {
19386 D(p->level--);
19387 return NULL;
19388 }
19389 void * _res = NULL;
19390 int _mark = p->mark;
19391 { // '(' starred_expression ')'
19392 if (p->error_indicator) {
19393 D(p->level--);
19394 return NULL;
19395 }
19396 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19397 Token * _literal;
19398 Token * _literal_1;
19399 expr_ty a;
19400 if (
19401 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19402 &&
19403 (a = starred_expression_rule(p)) // starred_expression
19404 &&
19405 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19406 )
19407 {
19408 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 +010019409 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019410 if (_res == NULL && PyErr_Occurred()) {
19411 p->error_indicator = 1;
19412 D(p->level--);
19413 return NULL;
19414 }
19415 goto done;
19416 }
19417 p->mark = _mark;
19418 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019420 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019421 { // '(' '**' expression ')'
19422 if (p->error_indicator) {
19423 D(p->level--);
19424 return NULL;
19425 }
19426 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19427 Token * _literal;
19428 Token * _literal_1;
19429 Token * a;
19430 expr_ty expression_var;
19431 if (
19432 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19433 &&
19434 (a = _PyPegen_expect_token(p, 35)) // token='**'
19435 &&
19436 (expression_var = expression_rule(p)) // expression
19437 &&
19438 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19439 )
19440 {
19441 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019442 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019443 if (_res == NULL && PyErr_Occurred()) {
19444 p->error_indicator = 1;
19445 D(p->level--);
19446 return NULL;
19447 }
19448 goto done;
19449 }
19450 p->mark = _mark;
19451 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19453 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019454 _res = NULL;
19455 done:
19456 D(p->level--);
19457 return _res;
19458}
19459
19460// invalid_import_from_targets: import_from_as_names ','
19461static void *
19462invalid_import_from_targets_rule(Parser *p)
19463{
19464 D(p->level++);
19465 if (p->error_indicator) {
19466 D(p->level--);
19467 return NULL;
19468 }
19469 void * _res = NULL;
19470 int _mark = p->mark;
19471 { // import_from_as_names ','
19472 if (p->error_indicator) {
19473 D(p->level--);
19474 return NULL;
19475 }
19476 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19477 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019478 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019479 if (
19480 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19481 &&
19482 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19483 )
19484 {
19485 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19486 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19487 if (_res == NULL && PyErr_Occurred()) {
19488 p->error_indicator = 1;
19489 D(p->level--);
19490 return NULL;
19491 }
19492 goto done;
19493 }
19494 p->mark = _mark;
19495 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19497 }
19498 _res = NULL;
19499 done:
19500 D(p->level--);
19501 return _res;
19502}
19503
Pablo Galindo58fb1562021-02-02 19:54:22 +000019504// invalid_with_stmt:
19505// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19506// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19507static void *
19508invalid_with_stmt_rule(Parser *p)
19509{
19510 D(p->level++);
19511 if (p->error_indicator) {
19512 D(p->level--);
19513 return NULL;
19514 }
19515 void * _res = NULL;
19516 int _mark = p->mark;
19517 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19518 if (p->error_indicator) {
19519 D(p->level--);
19520 return NULL;
19521 }
19522 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019523 asdl_seq * _gather_161_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019524 Token * _keyword;
19525 Token * _literal;
19526 void *_opt_var;
19527 UNUSED(_opt_var); // Silence compiler warnings
19528 if (
19529 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19530 &&
19531 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19532 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019533 (_gather_161_var = _gather_161_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019534 &&
19535 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19536 )
19537 {
19538 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019539 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_161_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019540 goto done;
19541 }
19542 p->mark = _mark;
19543 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19545 }
19546 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19547 if (p->error_indicator) {
19548 D(p->level--);
19549 return NULL;
19550 }
19551 D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019552 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019553 Token * _keyword;
19554 Token * _literal;
19555 Token * _literal_1;
19556 Token * _literal_2;
19557 void *_opt_var;
19558 UNUSED(_opt_var); // Silence compiler warnings
19559 void *_opt_var_1;
19560 UNUSED(_opt_var_1); // Silence compiler warnings
19561 if (
19562 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19563 &&
19564 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19565 &&
19566 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19567 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019568 (_gather_163_var = _gather_163_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019569 &&
19570 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19571 &&
19572 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19573 &&
19574 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19575 )
19576 {
19577 D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019578 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_163_var, _opt_var_1, _literal_1, _literal_2);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019579 goto done;
19580 }
19581 p->mark = _mark;
19582 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19584 }
19585 _res = NULL;
19586 done:
19587 D(p->level--);
19588 return _res;
19589}
19590
Pablo Galindo56c95df2021-04-21 15:28:21 +010019591// invalid_with_stmt_indent:
19592// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19593// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019594static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019595invalid_with_stmt_indent_rule(Parser *p)
19596{
19597 D(p->level++);
19598 if (p->error_indicator) {
19599 D(p->level--);
19600 return NULL;
19601 }
19602 void * _res = NULL;
19603 int _mark = p->mark;
19604 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19605 if (p->error_indicator) {
19606 D(p->level--);
19607 return NULL;
19608 }
19609 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019610 asdl_seq * _gather_165_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019611 Token * _literal;
19612 void *_opt_var;
19613 UNUSED(_opt_var); // Silence compiler warnings
19614 Token * a;
19615 Token * newline_var;
19616 if (
19617 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19618 &&
19619 (a = _PyPegen_expect_token(p, 519)) // token='with'
19620 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019621 (_gather_165_var = _gather_165_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019622 &&
19623 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19624 &&
19625 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19626 &&
19627 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19628 )
19629 {
19630 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"));
19631 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19632 if (_res == NULL && PyErr_Occurred()) {
19633 p->error_indicator = 1;
19634 D(p->level--);
19635 return NULL;
19636 }
19637 goto done;
19638 }
19639 p->mark = _mark;
19640 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19642 }
19643 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19644 if (p->error_indicator) {
19645 D(p->level--);
19646 return NULL;
19647 }
19648 D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019649 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019650 Token * _literal;
19651 Token * _literal_1;
19652 Token * _literal_2;
19653 void *_opt_var;
19654 UNUSED(_opt_var); // Silence compiler warnings
19655 void *_opt_var_1;
19656 UNUSED(_opt_var_1); // Silence compiler warnings
19657 Token * a;
19658 Token * newline_var;
19659 if (
19660 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19661 &&
19662 (a = _PyPegen_expect_token(p, 519)) // token='with'
19663 &&
19664 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19665 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019666 (_gather_167_var = _gather_167_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019667 &&
19668 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19669 &&
19670 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19671 &&
19672 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19673 &&
19674 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19675 &&
19676 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19677 )
19678 {
19679 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"));
19680 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19681 if (_res == NULL && PyErr_Occurred()) {
19682 p->error_indicator = 1;
19683 D(p->level--);
19684 return NULL;
19685 }
19686 goto done;
19687 }
19688 p->mark = _mark;
19689 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19691 }
19692 _res = NULL;
19693 done:
19694 D(p->level--);
19695 return _res;
19696}
19697
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019698// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
Pablo Galindo56c95df2021-04-21 15:28:21 +010019699static void *
19700invalid_try_stmt_rule(Parser *p)
19701{
19702 D(p->level++);
19703 if (p->error_indicator) {
19704 D(p->level--);
19705 return NULL;
19706 }
19707 void * _res = NULL;
19708 int _mark = p->mark;
19709 { // 'try' ':' NEWLINE !INDENT
19710 if (p->error_indicator) {
19711 D(p->level--);
19712 return NULL;
19713 }
19714 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19715 Token * _literal;
19716 Token * a;
19717 Token * newline_var;
19718 if (
19719 (a = _PyPegen_expect_token(p, 511)) // token='try'
19720 &&
19721 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19722 &&
19723 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19724 &&
19725 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19726 )
19727 {
19728 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19729 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19730 if (_res == NULL && PyErr_Occurred()) {
19731 p->error_indicator = 1;
19732 D(p->level--);
19733 return NULL;
19734 }
19735 goto done;
19736 }
19737 p->mark = _mark;
19738 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19740 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019741 { // 'try' ':' block !('except' | 'finally')
19742 if (p->error_indicator) {
19743 D(p->level--);
19744 return NULL;
19745 }
19746 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19747 Token * _keyword;
19748 Token * _literal;
19749 asdl_stmt_seq* block_var;
19750 if (
19751 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
19752 &&
19753 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19754 &&
19755 (block_var = block_rule(p)) // block
19756 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019757 _PyPegen_lookahead(0, _tmp_169_rule, p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019758 )
19759 {
19760 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19761 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
19762 if (_res == NULL && PyErr_Occurred()) {
19763 p->error_indicator = 1;
19764 D(p->level--);
19765 return NULL;
19766 }
19767 goto done;
19768 }
19769 p->mark = _mark;
19770 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19772 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019773 _res = NULL;
19774 done:
19775 D(p->level--);
19776 return _res;
19777}
19778
19779// invalid_except_stmt:
19780// | 'except' expression ',' expressions ['as' NAME] ':'
19781// | 'except' expression ['as' NAME] NEWLINE
19782// | 'except' NEWLINE
19783static void *
19784invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019785{
19786 D(p->level++);
19787 if (p->error_indicator) {
19788 D(p->level--);
19789 return NULL;
19790 }
19791 void * _res = NULL;
19792 int _mark = p->mark;
19793 { // 'except' expression ',' expressions ['as' NAME] ':'
19794 if (p->error_indicator) {
19795 D(p->level--);
19796 return NULL;
19797 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019798 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 +000019799 Token * _keyword;
19800 Token * _literal;
19801 Token * _literal_1;
19802 void *_opt_var;
19803 UNUSED(_opt_var); // Silence compiler warnings
19804 expr_ty a;
19805 expr_ty expressions_var;
19806 if (
19807 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19808 &&
19809 (a = expression_rule(p)) // expression
19810 &&
19811 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19812 &&
19813 (expressions_var = expressions_rule(p)) // expressions
19814 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019815 (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019816 &&
19817 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19818 )
19819 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019820 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 -070019821 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019822 if (_res == NULL && PyErr_Occurred()) {
19823 p->error_indicator = 1;
19824 D(p->level--);
19825 return NULL;
19826 }
19827 goto done;
19828 }
19829 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019830 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19832 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019833 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019834 if (p->error_indicator) {
19835 D(p->level--);
19836 return NULL;
19837 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019838 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 +000019839 void *_opt_var;
19840 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010019841 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019842 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019843 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019844 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019845 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019846 &&
19847 (expression_var = expression_rule(p)) // expression
19848 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019849 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019850 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019851 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019852 )
19853 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019854 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
19855 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19856 if (_res == NULL && PyErr_Occurred()) {
19857 p->error_indicator = 1;
19858 D(p->level--);
19859 return NULL;
19860 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019861 goto done;
19862 }
19863 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019864 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019866 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019867 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019868 if (p->error_indicator) {
19869 D(p->level--);
19870 return NULL;
19871 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019872 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19873 Token * a;
19874 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019875 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019876 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019877 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019878 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019879 )
19880 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019881 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19882 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19883 if (_res == NULL && PyErr_Occurred()) {
19884 p->error_indicator = 1;
19885 D(p->level--);
19886 return NULL;
19887 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019888 goto done;
19889 }
19890 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019891 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019893 }
19894 _res = NULL;
19895 done:
19896 D(p->level--);
19897 return _res;
19898}
19899
Pablo Galindo56c95df2021-04-21 15:28:21 +010019900// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
19901static void *
19902invalid_finally_stmt_rule(Parser *p)
19903{
19904 D(p->level++);
19905 if (p->error_indicator) {
19906 D(p->level--);
19907 return NULL;
19908 }
19909 void * _res = NULL;
19910 int _mark = p->mark;
19911 { // 'finally' ':' NEWLINE !INDENT
19912 if (p->error_indicator) {
19913 D(p->level--);
19914 return NULL;
19915 }
19916 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19917 Token * _literal;
19918 Token * a;
19919 Token * newline_var;
19920 if (
19921 (a = _PyPegen_expect_token(p, 522)) // token='finally'
19922 &&
19923 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19924 &&
19925 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19926 &&
19927 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19928 )
19929 {
19930 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19931 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
19932 if (_res == NULL && PyErr_Occurred()) {
19933 p->error_indicator = 1;
19934 D(p->level--);
19935 return NULL;
19936 }
19937 goto done;
19938 }
19939 p->mark = _mark;
19940 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19941 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19942 }
19943 _res = NULL;
19944 done:
19945 D(p->level--);
19946 return _res;
19947}
19948
19949// invalid_except_stmt_indent:
19950// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19951// | 'except' ':' NEWLINE !INDENT
19952static void *
19953invalid_except_stmt_indent_rule(Parser *p)
19954{
19955 D(p->level++);
19956 if (p->error_indicator) {
19957 D(p->level--);
19958 return NULL;
19959 }
19960 void * _res = NULL;
19961 int _mark = p->mark;
19962 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19963 if (p->error_indicator) {
19964 D(p->level--);
19965 return NULL;
19966 }
19967 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
19968 Token * _literal;
19969 void *_opt_var;
19970 UNUSED(_opt_var); // Silence compiler warnings
19971 Token * a;
19972 expr_ty expression_var;
19973 Token * newline_var;
19974 if (
19975 (a = _PyPegen_expect_token(p, 521)) // token='except'
19976 &&
19977 (expression_var = expression_rule(p)) // expression
19978 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019979 (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010019980 &&
19981 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19982 &&
19983 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19984 &&
19985 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19986 )
19987 {
19988 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
19989 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
19990 if (_res == NULL && PyErr_Occurred()) {
19991 p->error_indicator = 1;
19992 D(p->level--);
19993 return NULL;
19994 }
19995 goto done;
19996 }
19997 p->mark = _mark;
19998 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19999 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20000 }
20001 { // 'except' ':' NEWLINE !INDENT
20002 if (p->error_indicator) {
20003 D(p->level--);
20004 return NULL;
20005 }
20006 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20007 Token * _literal;
20008 Token * a;
20009 Token * newline_var;
20010 if (
20011 (a = _PyPegen_expect_token(p, 521)) // token='except'
20012 &&
20013 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20014 &&
20015 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20016 &&
20017 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20018 )
20019 {
20020 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20021 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20022 if (_res == NULL && PyErr_Occurred()) {
20023 p->error_indicator = 1;
20024 D(p->level--);
20025 return NULL;
20026 }
20027 goto done;
20028 }
20029 p->mark = _mark;
20030 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20032 }
20033 _res = NULL;
20034 done:
20035 D(p->level--);
20036 return _res;
20037}
20038
20039// invalid_match_stmt:
20040// | "match" subject_expr !':'
20041// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020042static void *
20043invalid_match_stmt_rule(Parser *p)
20044{
20045 D(p->level++);
20046 if (p->error_indicator) {
20047 D(p->level--);
20048 return NULL;
20049 }
20050 void * _res = NULL;
20051 int _mark = p->mark;
20052 { // "match" subject_expr !':'
20053 if (p->error_indicator) {
20054 D(p->level--);
20055 return NULL;
20056 }
20057 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20058 expr_ty _keyword;
20059 expr_ty subject_expr_var;
20060 if (
20061 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20062 &&
20063 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20064 &&
20065 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20066 )
20067 {
20068 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20069 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20070 if (_res == NULL && PyErr_Occurred()) {
20071 p->error_indicator = 1;
20072 D(p->level--);
20073 return NULL;
20074 }
20075 goto done;
20076 }
20077 p->mark = _mark;
20078 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20080 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020081 { // "match" subject_expr ':' NEWLINE !INDENT
20082 if (p->error_indicator) {
20083 D(p->level--);
20084 return NULL;
20085 }
20086 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20087 Token * _literal;
20088 expr_ty a;
20089 Token * newline_var;
20090 expr_ty subject;
20091 if (
20092 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20093 &&
20094 (subject = subject_expr_rule(p)) // subject_expr
20095 &&
20096 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20097 &&
20098 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20099 &&
20100 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20101 )
20102 {
20103 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20104 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20105 if (_res == NULL && PyErr_Occurred()) {
20106 p->error_indicator = 1;
20107 D(p->level--);
20108 return NULL;
20109 }
20110 goto done;
20111 }
20112 p->mark = _mark;
20113 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20115 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020116 _res = NULL;
20117 done:
20118 D(p->level--);
20119 return _res;
20120}
20121
Pablo Galindo56c95df2021-04-21 15:28:21 +010020122// invalid_case_block:
20123// | "case" patterns guard? !':'
20124// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020125static void *
20126invalid_case_block_rule(Parser *p)
20127{
20128 D(p->level++);
20129 if (p->error_indicator) {
20130 D(p->level--);
20131 return NULL;
20132 }
20133 void * _res = NULL;
20134 int _mark = p->mark;
20135 { // "case" patterns guard? !':'
20136 if (p->error_indicator) {
20137 D(p->level--);
20138 return NULL;
20139 }
20140 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20141 expr_ty _keyword;
20142 void *_opt_var;
20143 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020144 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020145 if (
20146 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20147 &&
20148 (patterns_var = patterns_rule(p)) // patterns
20149 &&
20150 (_opt_var = guard_rule(p), 1) // guard?
20151 &&
20152 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20153 )
20154 {
20155 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20156 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20157 if (_res == NULL && PyErr_Occurred()) {
20158 p->error_indicator = 1;
20159 D(p->level--);
20160 return NULL;
20161 }
20162 goto done;
20163 }
20164 p->mark = _mark;
20165 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20166 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20167 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020168 { // "case" patterns guard? ':' NEWLINE !INDENT
20169 if (p->error_indicator) {
20170 D(p->level--);
20171 return NULL;
20172 }
20173 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20174 Token * _literal;
20175 void *_opt_var;
20176 UNUSED(_opt_var); // Silence compiler warnings
20177 expr_ty a;
20178 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020179 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020180 if (
20181 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20182 &&
20183 (patterns_var = patterns_rule(p)) // patterns
20184 &&
20185 (_opt_var = guard_rule(p), 1) // guard?
20186 &&
20187 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20188 &&
20189 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20190 &&
20191 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20192 )
20193 {
20194 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20195 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20196 if (_res == NULL && PyErr_Occurred()) {
20197 p->error_indicator = 1;
20198 D(p->level--);
20199 return NULL;
20200 }
20201 goto done;
20202 }
20203 p->mark = _mark;
20204 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20206 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020207 _res = NULL;
20208 done:
20209 D(p->level--);
20210 return _res;
20211}
20212
Pablo Galindo56c95df2021-04-21 15:28:21 +010020213// invalid_if_stmt:
20214// | 'if' named_expression NEWLINE
20215// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020216static void *
20217invalid_if_stmt_rule(Parser *p)
20218{
20219 D(p->level++);
20220 if (p->error_indicator) {
20221 D(p->level--);
20222 return NULL;
20223 }
20224 void * _res = NULL;
20225 int _mark = p->mark;
20226 { // 'if' named_expression NEWLINE
20227 if (p->error_indicator) {
20228 D(p->level--);
20229 return NULL;
20230 }
20231 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20232 Token * _keyword;
20233 expr_ty named_expression_var;
20234 Token * newline_var;
20235 if (
20236 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20237 &&
20238 (named_expression_var = named_expression_rule(p)) // named_expression
20239 &&
20240 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20241 )
20242 {
20243 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20244 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20245 if (_res == NULL && PyErr_Occurred()) {
20246 p->error_indicator = 1;
20247 D(p->level--);
20248 return NULL;
20249 }
20250 goto done;
20251 }
20252 p->mark = _mark;
20253 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20255 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020256 { // 'if' named_expression ':' NEWLINE !INDENT
20257 if (p->error_indicator) {
20258 D(p->level--);
20259 return NULL;
20260 }
20261 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20262 Token * _literal;
20263 Token * a;
20264 expr_ty a_1;
20265 Token * newline_var;
20266 if (
20267 (a = _PyPegen_expect_token(p, 510)) // token='if'
20268 &&
20269 (a_1 = named_expression_rule(p)) // named_expression
20270 &&
20271 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20272 &&
20273 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20274 &&
20275 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20276 )
20277 {
20278 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20279 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20280 if (_res == NULL && PyErr_Occurred()) {
20281 p->error_indicator = 1;
20282 D(p->level--);
20283 return NULL;
20284 }
20285 goto done;
20286 }
20287 p->mark = _mark;
20288 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20290 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020291 _res = NULL;
20292 done:
20293 D(p->level--);
20294 return _res;
20295}
20296
Pablo Galindo56c95df2021-04-21 15:28:21 +010020297// invalid_elif_stmt:
20298// | 'elif' named_expression NEWLINE
20299// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020300static void *
20301invalid_elif_stmt_rule(Parser *p)
20302{
20303 D(p->level++);
20304 if (p->error_indicator) {
20305 D(p->level--);
20306 return NULL;
20307 }
20308 void * _res = NULL;
20309 int _mark = p->mark;
20310 { // 'elif' named_expression NEWLINE
20311 if (p->error_indicator) {
20312 D(p->level--);
20313 return NULL;
20314 }
20315 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20316 Token * _keyword;
20317 expr_ty named_expression_var;
20318 Token * newline_var;
20319 if (
20320 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20321 &&
20322 (named_expression_var = named_expression_rule(p)) // named_expression
20323 &&
20324 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20325 )
20326 {
20327 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20328 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20329 if (_res == NULL && PyErr_Occurred()) {
20330 p->error_indicator = 1;
20331 D(p->level--);
20332 return NULL;
20333 }
20334 goto done;
20335 }
20336 p->mark = _mark;
20337 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20339 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020340 { // 'elif' named_expression ':' NEWLINE !INDENT
20341 if (p->error_indicator) {
20342 D(p->level--);
20343 return NULL;
20344 }
20345 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20346 Token * _literal;
20347 Token * a;
20348 expr_ty named_expression_var;
20349 Token * newline_var;
20350 if (
20351 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20352 &&
20353 (named_expression_var = named_expression_rule(p)) // named_expression
20354 &&
20355 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20356 &&
20357 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20358 &&
20359 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20360 )
20361 {
20362 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20363 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20364 if (_res == NULL && PyErr_Occurred()) {
20365 p->error_indicator = 1;
20366 D(p->level--);
20367 return NULL;
20368 }
20369 goto done;
20370 }
20371 p->mark = _mark;
20372 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20374 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020375 _res = NULL;
20376 done:
20377 D(p->level--);
20378 return _res;
20379}
20380
Pablo Galindo56c95df2021-04-21 15:28:21 +010020381// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20382static void *
20383invalid_else_stmt_rule(Parser *p)
20384{
20385 D(p->level++);
20386 if (p->error_indicator) {
20387 D(p->level--);
20388 return NULL;
20389 }
20390 void * _res = NULL;
20391 int _mark = p->mark;
20392 { // 'else' ':' NEWLINE !INDENT
20393 if (p->error_indicator) {
20394 D(p->level--);
20395 return NULL;
20396 }
20397 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20398 Token * _literal;
20399 Token * a;
20400 Token * newline_var;
20401 if (
20402 (a = _PyPegen_expect_token(p, 516)) // token='else'
20403 &&
20404 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20405 &&
20406 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20407 &&
20408 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20409 )
20410 {
20411 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20412 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20413 if (_res == NULL && PyErr_Occurred()) {
20414 p->error_indicator = 1;
20415 D(p->level--);
20416 return NULL;
20417 }
20418 goto done;
20419 }
20420 p->mark = _mark;
20421 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20423 }
20424 _res = NULL;
20425 done:
20426 D(p->level--);
20427 return _res;
20428}
20429
20430// invalid_while_stmt:
20431// | 'while' named_expression NEWLINE
20432// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020433static void *
20434invalid_while_stmt_rule(Parser *p)
20435{
20436 D(p->level++);
20437 if (p->error_indicator) {
20438 D(p->level--);
20439 return NULL;
20440 }
20441 void * _res = NULL;
20442 int _mark = p->mark;
20443 { // 'while' named_expression NEWLINE
20444 if (p->error_indicator) {
20445 D(p->level--);
20446 return NULL;
20447 }
20448 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20449 Token * _keyword;
20450 expr_ty named_expression_var;
20451 Token * newline_var;
20452 if (
20453 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20454 &&
20455 (named_expression_var = named_expression_rule(p)) // named_expression
20456 &&
20457 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20458 )
20459 {
20460 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20461 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20462 if (_res == NULL && PyErr_Occurred()) {
20463 p->error_indicator = 1;
20464 D(p->level--);
20465 return NULL;
20466 }
20467 goto done;
20468 }
20469 p->mark = _mark;
20470 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20472 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020473 { // 'while' named_expression ':' NEWLINE !INDENT
20474 if (p->error_indicator) {
20475 D(p->level--);
20476 return NULL;
20477 }
20478 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20479 Token * _literal;
20480 Token * a;
20481 expr_ty named_expression_var;
20482 Token * newline_var;
20483 if (
20484 (a = _PyPegen_expect_token(p, 512)) // token='while'
20485 &&
20486 (named_expression_var = named_expression_rule(p)) // named_expression
20487 &&
20488 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20489 &&
20490 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20491 &&
20492 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20493 )
20494 {
20495 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20496 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20497 if (_res == NULL && PyErr_Occurred()) {
20498 p->error_indicator = 1;
20499 D(p->level--);
20500 return NULL;
20501 }
20502 goto done;
20503 }
20504 p->mark = _mark;
20505 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20507 }
20508 _res = NULL;
20509 done:
20510 D(p->level--);
20511 return _res;
20512}
20513
20514// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20515static void *
20516invalid_for_stmt_rule(Parser *p)
20517{
20518 D(p->level++);
20519 if (p->error_indicator) {
20520 D(p->level--);
20521 return NULL;
20522 }
20523 void * _res = NULL;
20524 int _mark = p->mark;
20525 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20526 if (p->error_indicator) {
20527 D(p->level--);
20528 return NULL;
20529 }
20530 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"));
20531 Token * _keyword;
20532 Token * _literal;
20533 void *_opt_var;
20534 UNUSED(_opt_var); // Silence compiler warnings
20535 Token * a;
20536 Token * newline_var;
20537 expr_ty star_expressions_var;
20538 expr_ty star_targets_var;
20539 if (
20540 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20541 &&
20542 (a = _PyPegen_expect_token(p, 517)) // token='for'
20543 &&
20544 (star_targets_var = star_targets_rule(p)) // star_targets
20545 &&
20546 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20547 &&
20548 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20549 &&
20550 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20551 &&
20552 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20553 &&
20554 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20555 )
20556 {
20557 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"));
20558 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20559 if (_res == NULL && PyErr_Occurred()) {
20560 p->error_indicator = 1;
20561 D(p->level--);
20562 return NULL;
20563 }
20564 goto done;
20565 }
20566 p->mark = _mark;
20567 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20569 }
20570 _res = NULL;
20571 done:
20572 D(p->level--);
20573 return _res;
20574}
20575
20576// invalid_def_raw:
20577// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20578static void *
20579invalid_def_raw_rule(Parser *p)
20580{
20581 D(p->level++);
20582 if (p->error_indicator) {
20583 D(p->level--);
20584 return NULL;
20585 }
20586 void * _res = NULL;
20587 int _mark = p->mark;
20588 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20589 if (p->error_indicator) {
20590 D(p->level--);
20591 return NULL;
20592 }
20593 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20594 Token * _literal;
20595 Token * _literal_1;
20596 Token * _literal_2;
20597 void *_opt_var;
20598 UNUSED(_opt_var); // Silence compiler warnings
20599 void *_opt_var_1;
20600 UNUSED(_opt_var_1); // Silence compiler warnings
20601 void *_opt_var_2;
20602 UNUSED(_opt_var_2); // Silence compiler warnings
20603 Token * a;
20604 expr_ty name_var;
20605 Token * newline_var;
20606 if (
20607 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20608 &&
20609 (a = _PyPegen_expect_token(p, 526)) // token='def'
20610 &&
20611 (name_var = _PyPegen_name_token(p)) // NAME
20612 &&
20613 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20614 &&
20615 (_opt_var_1 = params_rule(p), 1) // params?
20616 &&
20617 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20618 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020619 (_opt_var_2 = _tmp_173_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020620 &&
20621 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20622 &&
20623 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20624 &&
20625 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20626 )
20627 {
20628 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20629 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20630 if (_res == NULL && PyErr_Occurred()) {
20631 p->error_indicator = 1;
20632 D(p->level--);
20633 return NULL;
20634 }
20635 goto done;
20636 }
20637 p->mark = _mark;
20638 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20640 }
20641 _res = NULL;
20642 done:
20643 D(p->level--);
20644 return _res;
20645}
20646
20647// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20648static void *
20649invalid_class_def_raw_rule(Parser *p)
20650{
20651 D(p->level++);
20652 if (p->error_indicator) {
20653 D(p->level--);
20654 return NULL;
20655 }
20656 void * _res = NULL;
20657 int _mark = p->mark;
20658 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20659 if (p->error_indicator) {
20660 D(p->level--);
20661 return NULL;
20662 }
20663 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20664 Token * _literal;
20665 void *_opt_var;
20666 UNUSED(_opt_var); // Silence compiler warnings
20667 Token * a;
20668 expr_ty name_var;
20669 Token * newline_var;
20670 if (
20671 (a = _PyPegen_expect_token(p, 527)) // token='class'
20672 &&
20673 (name_var = _PyPegen_name_token(p)) // NAME
20674 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020675 (_opt_var = _tmp_174_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010020676 &&
20677 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20678 &&
20679 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20680 &&
20681 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20682 )
20683 {
20684 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20685 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
20686 if (_res == NULL && PyErr_Occurred()) {
20687 p->error_indicator = 1;
20688 D(p->level--);
20689 return NULL;
20690 }
20691 goto done;
20692 }
20693 p->mark = _mark;
20694 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20696 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020697 _res = NULL;
20698 done:
20699 D(p->level--);
20700 return _res;
20701}
20702
Pablo Galindoda743502021-04-15 14:06:39 +010020703// invalid_double_starred_kvpairs:
20704// | ','.double_starred_kvpair+ ',' invalid_kvpair
20705// | expression ':' '*' bitwise_or
20706// | expression ':' &('}' | ',')
20707static void *
20708invalid_double_starred_kvpairs_rule(Parser *p)
20709{
20710 D(p->level++);
20711 if (p->error_indicator) {
20712 D(p->level--);
20713 return NULL;
20714 }
20715 void * _res = NULL;
20716 int _mark = p->mark;
20717 { // ','.double_starred_kvpair+ ',' invalid_kvpair
20718 if (p->error_indicator) {
20719 D(p->level--);
20720 return NULL;
20721 }
20722 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)3e137422021-06-10 15:31:09 -070020723 asdl_seq * _gather_175_var;
Pablo Galindoda743502021-04-15 14:06:39 +010020724 Token * _literal;
20725 void *invalid_kvpair_var;
20726 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020727 (_gather_175_var = _gather_175_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010020728 &&
20729 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20730 &&
20731 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
20732 )
20733 {
20734 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)3e137422021-06-10 15:31:09 -070020735 _res = _PyPegen_dummy_name(p, _gather_175_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010020736 goto done;
20737 }
20738 p->mark = _mark;
20739 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
20741 }
20742 { // expression ':' '*' bitwise_or
20743 if (p->error_indicator) {
20744 D(p->level--);
20745 return NULL;
20746 }
20747 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20748 Token * _literal;
20749 Token * a;
20750 expr_ty bitwise_or_var;
20751 expr_ty expression_var;
20752 if (
20753 (expression_var = expression_rule(p)) // expression
20754 &&
20755 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20756 &&
20757 (a = _PyPegen_expect_token(p, 16)) // token='*'
20758 &&
20759 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20760 )
20761 {
20762 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 +010020763 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020764 if (_res == NULL && PyErr_Occurred()) {
20765 p->error_indicator = 1;
20766 D(p->level--);
20767 return NULL;
20768 }
20769 goto done;
20770 }
20771 p->mark = _mark;
20772 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20774 }
20775 { // expression ':' &('}' | ',')
20776 if (p->error_indicator) {
20777 D(p->level--);
20778 return NULL;
20779 }
20780 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20781 Token * a;
20782 expr_ty expression_var;
20783 if (
20784 (expression_var = expression_rule(p)) // expression
20785 &&
20786 (a = _PyPegen_expect_token(p, 11)) // token=':'
20787 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020788 _PyPegen_lookahead(1, _tmp_177_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010020789 )
20790 {
20791 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20792 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20793 if (_res == NULL && PyErr_Occurred()) {
20794 p->error_indicator = 1;
20795 D(p->level--);
20796 return NULL;
20797 }
20798 goto done;
20799 }
20800 p->mark = _mark;
20801 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
20803 }
20804 _res = NULL;
20805 done:
20806 D(p->level--);
20807 return _res;
20808}
20809
20810// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
20811static void *
20812invalid_kvpair_rule(Parser *p)
20813{
20814 D(p->level++);
20815 if (p->error_indicator) {
20816 D(p->level--);
20817 return NULL;
20818 }
20819 void * _res = NULL;
20820 int _mark = p->mark;
20821 { // expression !(':')
20822 if (p->error_indicator) {
20823 D(p->level--);
20824 return NULL;
20825 }
20826 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
20827 expr_ty a;
20828 if (
20829 (a = expression_rule(p)) // expression
20830 &&
20831 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
20832 )
20833 {
20834 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020835 _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 +010020836 if (_res == NULL && PyErr_Occurred()) {
20837 p->error_indicator = 1;
20838 D(p->level--);
20839 return NULL;
20840 }
20841 goto done;
20842 }
20843 p->mark = _mark;
20844 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
20846 }
20847 { // expression ':' '*' bitwise_or
20848 if (p->error_indicator) {
20849 D(p->level--);
20850 return NULL;
20851 }
20852 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20853 Token * _literal;
20854 Token * a;
20855 expr_ty bitwise_or_var;
20856 expr_ty expression_var;
20857 if (
20858 (expression_var = expression_rule(p)) // expression
20859 &&
20860 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20861 &&
20862 (a = _PyPegen_expect_token(p, 16)) // token='*'
20863 &&
20864 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20865 )
20866 {
20867 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 +010020868 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020869 if (_res == NULL && PyErr_Occurred()) {
20870 p->error_indicator = 1;
20871 D(p->level--);
20872 return NULL;
20873 }
20874 goto done;
20875 }
20876 p->mark = _mark;
20877 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20879 }
20880 { // expression ':'
20881 if (p->error_indicator) {
20882 D(p->level--);
20883 return NULL;
20884 }
20885 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20886 Token * a;
20887 expr_ty expression_var;
20888 if (
20889 (expression_var = expression_rule(p)) // expression
20890 &&
20891 (a = _PyPegen_expect_token(p, 11)) // token=':'
20892 )
20893 {
20894 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20895 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20896 if (_res == NULL && PyErr_Occurred()) {
20897 p->error_indicator = 1;
20898 D(p->level--);
20899 return NULL;
20900 }
20901 goto done;
20902 }
20903 p->mark = _mark;
20904 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
20906 }
20907 _res = NULL;
20908 done:
20909 D(p->level--);
20910 return _res;
20911}
20912
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020913// _loop0_1: NEWLINE
20914static asdl_seq *
20915_loop0_1_rule(Parser *p)
20916{
20917 D(p->level++);
20918 if (p->error_indicator) {
20919 D(p->level--);
20920 return NULL;
20921 }
20922 void *_res = NULL;
20923 int _mark = p->mark;
20924 int _start_mark = p->mark;
20925 void **_children = PyMem_Malloc(sizeof(void *));
20926 if (!_children) {
20927 p->error_indicator = 1;
20928 PyErr_NoMemory();
20929 D(p->level--);
20930 return NULL;
20931 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020932 Py_ssize_t _children_capacity = 1;
20933 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020934 { // NEWLINE
20935 if (p->error_indicator) {
20936 D(p->level--);
20937 return NULL;
20938 }
20939 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
20940 Token * newline_var;
20941 while (
20942 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20943 )
20944 {
20945 _res = newline_var;
20946 if (_n == _children_capacity) {
20947 _children_capacity *= 2;
20948 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20949 if (!_new_children) {
20950 p->error_indicator = 1;
20951 PyErr_NoMemory();
20952 D(p->level--);
20953 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020954 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020955 _children = _new_children;
20956 }
20957 _children[_n++] = _res;
20958 _mark = p->mark;
20959 }
20960 p->mark = _mark;
20961 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
20962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
20963 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020964 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020965 if (!_seq) {
20966 PyMem_Free(_children);
20967 p->error_indicator = 1;
20968 PyErr_NoMemory();
20969 D(p->level--);
20970 return NULL;
20971 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010020972 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020973 PyMem_Free(_children);
20974 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
20975 D(p->level--);
20976 return _seq;
20977}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000020978
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010020979// _loop0_2: NEWLINE
20980static asdl_seq *
20981_loop0_2_rule(Parser *p)
20982{
20983 D(p->level++);
20984 if (p->error_indicator) {
20985 D(p->level--);
20986 return NULL;
20987 }
20988 void *_res = NULL;
20989 int _mark = p->mark;
20990 int _start_mark = p->mark;
20991 void **_children = PyMem_Malloc(sizeof(void *));
20992 if (!_children) {
20993 p->error_indicator = 1;
20994 PyErr_NoMemory();
20995 D(p->level--);
20996 return NULL;
20997 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010020998 Py_ssize_t _children_capacity = 1;
20999 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021000 { // NEWLINE
21001 if (p->error_indicator) {
21002 D(p->level--);
21003 return NULL;
21004 }
21005 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21006 Token * newline_var;
21007 while (
21008 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21009 )
21010 {
21011 _res = newline_var;
21012 if (_n == _children_capacity) {
21013 _children_capacity *= 2;
21014 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21015 if (!_new_children) {
21016 p->error_indicator = 1;
21017 PyErr_NoMemory();
21018 D(p->level--);
21019 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021020 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021021 _children = _new_children;
21022 }
21023 _children[_n++] = _res;
21024 _mark = p->mark;
21025 }
21026 p->mark = _mark;
21027 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21028 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21029 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021030 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021031 if (!_seq) {
21032 PyMem_Free(_children);
21033 p->error_indicator = 1;
21034 PyErr_NoMemory();
21035 D(p->level--);
21036 return NULL;
21037 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021038 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021039 PyMem_Free(_children);
21040 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21041 D(p->level--);
21042 return _seq;
21043}
21044
21045// _loop0_4: ',' expression
21046static asdl_seq *
21047_loop0_4_rule(Parser *p)
21048{
21049 D(p->level++);
21050 if (p->error_indicator) {
21051 D(p->level--);
21052 return NULL;
21053 }
21054 void *_res = NULL;
21055 int _mark = p->mark;
21056 int _start_mark = p->mark;
21057 void **_children = PyMem_Malloc(sizeof(void *));
21058 if (!_children) {
21059 p->error_indicator = 1;
21060 PyErr_NoMemory();
21061 D(p->level--);
21062 return NULL;
21063 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021064 Py_ssize_t _children_capacity = 1;
21065 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021066 { // ',' expression
21067 if (p->error_indicator) {
21068 D(p->level--);
21069 return NULL;
21070 }
21071 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21072 Token * _literal;
21073 expr_ty elem;
21074 while (
21075 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21076 &&
21077 (elem = expression_rule(p)) // expression
21078 )
21079 {
21080 _res = elem;
21081 if (_res == NULL && PyErr_Occurred()) {
21082 p->error_indicator = 1;
21083 PyMem_Free(_children);
21084 D(p->level--);
21085 return NULL;
21086 }
21087 if (_n == _children_capacity) {
21088 _children_capacity *= 2;
21089 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21090 if (!_new_children) {
21091 p->error_indicator = 1;
21092 PyErr_NoMemory();
21093 D(p->level--);
21094 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021095 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021096 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021097 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021098 _children[_n++] = _res;
21099 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021100 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021101 p->mark = _mark;
21102 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021104 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021105 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021106 if (!_seq) {
21107 PyMem_Free(_children);
21108 p->error_indicator = 1;
21109 PyErr_NoMemory();
21110 D(p->level--);
21111 return NULL;
21112 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021113 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021114 PyMem_Free(_children);
21115 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21116 D(p->level--);
21117 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021118}
21119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021120// _gather_3: expression _loop0_4
21121static asdl_seq *
21122_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021123{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021124 D(p->level++);
21125 if (p->error_indicator) {
21126 D(p->level--);
21127 return NULL;
21128 }
21129 asdl_seq * _res = NULL;
21130 int _mark = p->mark;
21131 { // expression _loop0_4
21132 if (p->error_indicator) {
21133 D(p->level--);
21134 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021135 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021136 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21137 expr_ty elem;
21138 asdl_seq * seq;
21139 if (
21140 (elem = expression_rule(p)) // expression
21141 &&
21142 (seq = _loop0_4_rule(p)) // _loop0_4
21143 )
21144 {
21145 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21146 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21147 goto done;
21148 }
21149 p->mark = _mark;
21150 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021152 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021153 _res = NULL;
21154 done:
21155 D(p->level--);
21156 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021157}
21158
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021159// _loop0_6: ',' expression
21160static asdl_seq *
21161_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021162{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021163 D(p->level++);
21164 if (p->error_indicator) {
21165 D(p->level--);
21166 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021167 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021168 void *_res = NULL;
21169 int _mark = p->mark;
21170 int _start_mark = p->mark;
21171 void **_children = PyMem_Malloc(sizeof(void *));
21172 if (!_children) {
21173 p->error_indicator = 1;
21174 PyErr_NoMemory();
21175 D(p->level--);
21176 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021177 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021178 Py_ssize_t _children_capacity = 1;
21179 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021180 { // ',' expression
21181 if (p->error_indicator) {
21182 D(p->level--);
21183 return NULL;
21184 }
21185 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21186 Token * _literal;
21187 expr_ty elem;
21188 while (
21189 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21190 &&
21191 (elem = expression_rule(p)) // expression
21192 )
21193 {
21194 _res = elem;
21195 if (_res == NULL && PyErr_Occurred()) {
21196 p->error_indicator = 1;
21197 PyMem_Free(_children);
21198 D(p->level--);
21199 return NULL;
21200 }
21201 if (_n == _children_capacity) {
21202 _children_capacity *= 2;
21203 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21204 if (!_new_children) {
21205 p->error_indicator = 1;
21206 PyErr_NoMemory();
21207 D(p->level--);
21208 return NULL;
21209 }
21210 _children = _new_children;
21211 }
21212 _children[_n++] = _res;
21213 _mark = p->mark;
21214 }
21215 p->mark = _mark;
21216 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21218 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021219 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021220 if (!_seq) {
21221 PyMem_Free(_children);
21222 p->error_indicator = 1;
21223 PyErr_NoMemory();
21224 D(p->level--);
21225 return NULL;
21226 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021227 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021228 PyMem_Free(_children);
21229 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21230 D(p->level--);
21231 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021232}
21233
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021234// _gather_5: expression _loop0_6
21235static asdl_seq *
21236_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021237{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021238 D(p->level++);
21239 if (p->error_indicator) {
21240 D(p->level--);
21241 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021242 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021243 asdl_seq * _res = NULL;
21244 int _mark = p->mark;
21245 { // expression _loop0_6
21246 if (p->error_indicator) {
21247 D(p->level--);
21248 return NULL;
21249 }
21250 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21251 expr_ty elem;
21252 asdl_seq * seq;
21253 if (
21254 (elem = expression_rule(p)) // expression
21255 &&
21256 (seq = _loop0_6_rule(p)) // _loop0_6
21257 )
21258 {
21259 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21260 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21261 goto done;
21262 }
21263 p->mark = _mark;
21264 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21266 }
21267 _res = NULL;
21268 done:
21269 D(p->level--);
21270 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021271}
21272
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021273// _loop0_8: ',' expression
21274static asdl_seq *
21275_loop0_8_rule(Parser *p)
21276{
21277 D(p->level++);
21278 if (p->error_indicator) {
21279 D(p->level--);
21280 return NULL;
21281 }
21282 void *_res = NULL;
21283 int _mark = p->mark;
21284 int _start_mark = p->mark;
21285 void **_children = PyMem_Malloc(sizeof(void *));
21286 if (!_children) {
21287 p->error_indicator = 1;
21288 PyErr_NoMemory();
21289 D(p->level--);
21290 return NULL;
21291 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021292 Py_ssize_t _children_capacity = 1;
21293 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021294 { // ',' expression
21295 if (p->error_indicator) {
21296 D(p->level--);
21297 return NULL;
21298 }
21299 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21300 Token * _literal;
21301 expr_ty elem;
21302 while (
21303 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21304 &&
21305 (elem = expression_rule(p)) // expression
21306 )
21307 {
21308 _res = elem;
21309 if (_res == NULL && PyErr_Occurred()) {
21310 p->error_indicator = 1;
21311 PyMem_Free(_children);
21312 D(p->level--);
21313 return NULL;
21314 }
21315 if (_n == _children_capacity) {
21316 _children_capacity *= 2;
21317 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21318 if (!_new_children) {
21319 p->error_indicator = 1;
21320 PyErr_NoMemory();
21321 D(p->level--);
21322 return NULL;
21323 }
21324 _children = _new_children;
21325 }
21326 _children[_n++] = _res;
21327 _mark = p->mark;
21328 }
21329 p->mark = _mark;
21330 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21332 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021333 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021334 if (!_seq) {
21335 PyMem_Free(_children);
21336 p->error_indicator = 1;
21337 PyErr_NoMemory();
21338 D(p->level--);
21339 return NULL;
21340 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021341 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021342 PyMem_Free(_children);
21343 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21344 D(p->level--);
21345 return _seq;
21346}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021347
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021348// _gather_7: expression _loop0_8
21349static asdl_seq *
21350_gather_7_rule(Parser *p)
21351{
21352 D(p->level++);
21353 if (p->error_indicator) {
21354 D(p->level--);
21355 return NULL;
21356 }
21357 asdl_seq * _res = NULL;
21358 int _mark = p->mark;
21359 { // expression _loop0_8
21360 if (p->error_indicator) {
21361 D(p->level--);
21362 return NULL;
21363 }
21364 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21365 expr_ty elem;
21366 asdl_seq * seq;
21367 if (
21368 (elem = expression_rule(p)) // expression
21369 &&
21370 (seq = _loop0_8_rule(p)) // _loop0_8
21371 )
21372 {
21373 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21374 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21375 goto done;
21376 }
21377 p->mark = _mark;
21378 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21380 }
21381 _res = NULL;
21382 done:
21383 D(p->level--);
21384 return _res;
21385}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021386
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021387// _loop0_10: ',' expression
21388static asdl_seq *
21389_loop0_10_rule(Parser *p)
21390{
21391 D(p->level++);
21392 if (p->error_indicator) {
21393 D(p->level--);
21394 return NULL;
21395 }
21396 void *_res = NULL;
21397 int _mark = p->mark;
21398 int _start_mark = p->mark;
21399 void **_children = PyMem_Malloc(sizeof(void *));
21400 if (!_children) {
21401 p->error_indicator = 1;
21402 PyErr_NoMemory();
21403 D(p->level--);
21404 return NULL;
21405 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021406 Py_ssize_t _children_capacity = 1;
21407 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021408 { // ',' expression
21409 if (p->error_indicator) {
21410 D(p->level--);
21411 return NULL;
21412 }
21413 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21414 Token * _literal;
21415 expr_ty elem;
21416 while (
21417 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21418 &&
21419 (elem = expression_rule(p)) // expression
21420 )
21421 {
21422 _res = elem;
21423 if (_res == NULL && PyErr_Occurred()) {
21424 p->error_indicator = 1;
21425 PyMem_Free(_children);
21426 D(p->level--);
21427 return NULL;
21428 }
21429 if (_n == _children_capacity) {
21430 _children_capacity *= 2;
21431 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21432 if (!_new_children) {
21433 p->error_indicator = 1;
21434 PyErr_NoMemory();
21435 D(p->level--);
21436 return NULL;
21437 }
21438 _children = _new_children;
21439 }
21440 _children[_n++] = _res;
21441 _mark = p->mark;
21442 }
21443 p->mark = _mark;
21444 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21446 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021447 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021448 if (!_seq) {
21449 PyMem_Free(_children);
21450 p->error_indicator = 1;
21451 PyErr_NoMemory();
21452 D(p->level--);
21453 return NULL;
21454 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021455 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021456 PyMem_Free(_children);
21457 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21458 D(p->level--);
21459 return _seq;
21460}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021461
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021462// _gather_9: expression _loop0_10
21463static asdl_seq *
21464_gather_9_rule(Parser *p)
21465{
21466 D(p->level++);
21467 if (p->error_indicator) {
21468 D(p->level--);
21469 return NULL;
21470 }
21471 asdl_seq * _res = NULL;
21472 int _mark = p->mark;
21473 { // expression _loop0_10
21474 if (p->error_indicator) {
21475 D(p->level--);
21476 return NULL;
21477 }
21478 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21479 expr_ty elem;
21480 asdl_seq * seq;
21481 if (
21482 (elem = expression_rule(p)) // expression
21483 &&
21484 (seq = _loop0_10_rule(p)) // _loop0_10
21485 )
21486 {
21487 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21488 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21489 goto done;
21490 }
21491 p->mark = _mark;
21492 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21494 }
21495 _res = NULL;
21496 done:
21497 D(p->level--);
21498 return _res;
21499}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021500
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021501// _loop1_11: statement
21502static asdl_seq *
21503_loop1_11_rule(Parser *p)
21504{
21505 D(p->level++);
21506 if (p->error_indicator) {
21507 D(p->level--);
21508 return NULL;
21509 }
21510 void *_res = NULL;
21511 int _mark = p->mark;
21512 int _start_mark = p->mark;
21513 void **_children = PyMem_Malloc(sizeof(void *));
21514 if (!_children) {
21515 p->error_indicator = 1;
21516 PyErr_NoMemory();
21517 D(p->level--);
21518 return NULL;
21519 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021520 Py_ssize_t _children_capacity = 1;
21521 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021522 { // statement
21523 if (p->error_indicator) {
21524 D(p->level--);
21525 return NULL;
21526 }
21527 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021528 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021529 while (
21530 (statement_var = statement_rule(p)) // statement
21531 )
21532 {
21533 _res = statement_var;
21534 if (_n == _children_capacity) {
21535 _children_capacity *= 2;
21536 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21537 if (!_new_children) {
21538 p->error_indicator = 1;
21539 PyErr_NoMemory();
21540 D(p->level--);
21541 return NULL;
21542 }
21543 _children = _new_children;
21544 }
21545 _children[_n++] = _res;
21546 _mark = p->mark;
21547 }
21548 p->mark = _mark;
21549 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21551 }
21552 if (_n == 0 || p->error_indicator) {
21553 PyMem_Free(_children);
21554 D(p->level--);
21555 return NULL;
21556 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021557 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021558 if (!_seq) {
21559 PyMem_Free(_children);
21560 p->error_indicator = 1;
21561 PyErr_NoMemory();
21562 D(p->level--);
21563 return NULL;
21564 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021565 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021566 PyMem_Free(_children);
21567 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21568 D(p->level--);
21569 return _seq;
21570}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021571
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021572// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021573static asdl_seq *
21574_loop0_13_rule(Parser *p)
21575{
21576 D(p->level++);
21577 if (p->error_indicator) {
21578 D(p->level--);
21579 return NULL;
21580 }
21581 void *_res = NULL;
21582 int _mark = p->mark;
21583 int _start_mark = p->mark;
21584 void **_children = PyMem_Malloc(sizeof(void *));
21585 if (!_children) {
21586 p->error_indicator = 1;
21587 PyErr_NoMemory();
21588 D(p->level--);
21589 return NULL;
21590 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021591 Py_ssize_t _children_capacity = 1;
21592 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021593 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021594 if (p->error_indicator) {
21595 D(p->level--);
21596 return NULL;
21597 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021598 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021599 Token * _literal;
21600 stmt_ty elem;
21601 while (
21602 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21603 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021604 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021605 )
21606 {
21607 _res = elem;
21608 if (_res == NULL && PyErr_Occurred()) {
21609 p->error_indicator = 1;
21610 PyMem_Free(_children);
21611 D(p->level--);
21612 return NULL;
21613 }
21614 if (_n == _children_capacity) {
21615 _children_capacity *= 2;
21616 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21617 if (!_new_children) {
21618 p->error_indicator = 1;
21619 PyErr_NoMemory();
21620 D(p->level--);
21621 return NULL;
21622 }
21623 _children = _new_children;
21624 }
21625 _children[_n++] = _res;
21626 _mark = p->mark;
21627 }
21628 p->mark = _mark;
21629 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021631 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021632 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021633 if (!_seq) {
21634 PyMem_Free(_children);
21635 p->error_indicator = 1;
21636 PyErr_NoMemory();
21637 D(p->level--);
21638 return NULL;
21639 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021640 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021641 PyMem_Free(_children);
21642 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21643 D(p->level--);
21644 return _seq;
21645}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021646
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021647// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021648static asdl_seq *
21649_gather_12_rule(Parser *p)
21650{
21651 D(p->level++);
21652 if (p->error_indicator) {
21653 D(p->level--);
21654 return NULL;
21655 }
21656 asdl_seq * _res = NULL;
21657 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021658 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021659 if (p->error_indicator) {
21660 D(p->level--);
21661 return NULL;
21662 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021663 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 +010021664 stmt_ty elem;
21665 asdl_seq * seq;
21666 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021667 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021668 &&
21669 (seq = _loop0_13_rule(p)) // _loop0_13
21670 )
21671 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021672 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 +010021673 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21674 goto done;
21675 }
21676 p->mark = _mark;
21677 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021679 }
21680 _res = NULL;
21681 done:
21682 D(p->level--);
21683 return _res;
21684}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021685
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021686// _tmp_14: 'import' | 'from'
21687static void *
21688_tmp_14_rule(Parser *p)
21689{
21690 D(p->level++);
21691 if (p->error_indicator) {
21692 D(p->level--);
21693 return NULL;
21694 }
21695 void * _res = NULL;
21696 int _mark = p->mark;
21697 { // 'import'
21698 if (p->error_indicator) {
21699 D(p->level--);
21700 return NULL;
21701 }
21702 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
21703 Token * _keyword;
21704 if (
21705 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
21706 )
21707 {
21708 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
21709 _res = _keyword;
21710 goto done;
21711 }
21712 p->mark = _mark;
21713 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
21715 }
21716 { // 'from'
21717 if (p->error_indicator) {
21718 D(p->level--);
21719 return NULL;
21720 }
21721 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
21722 Token * _keyword;
21723 if (
21724 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
21725 )
21726 {
21727 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
21728 _res = _keyword;
21729 goto done;
21730 }
21731 p->mark = _mark;
21732 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
21734 }
21735 _res = NULL;
21736 done:
21737 D(p->level--);
21738 return _res;
21739}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021740
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021741// _tmp_15: 'def' | '@' | ASYNC
21742static void *
21743_tmp_15_rule(Parser *p)
21744{
21745 D(p->level++);
21746 if (p->error_indicator) {
21747 D(p->level--);
21748 return NULL;
21749 }
21750 void * _res = NULL;
21751 int _mark = p->mark;
21752 { // 'def'
21753 if (p->error_indicator) {
21754 D(p->level--);
21755 return NULL;
21756 }
21757 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
21758 Token * _keyword;
21759 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021760 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021761 )
21762 {
21763 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
21764 _res = _keyword;
21765 goto done;
21766 }
21767 p->mark = _mark;
21768 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
21770 }
21771 { // '@'
21772 if (p->error_indicator) {
21773 D(p->level--);
21774 return NULL;
21775 }
21776 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21777 Token * _literal;
21778 if (
21779 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21780 )
21781 {
21782 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21783 _res = _literal;
21784 goto done;
21785 }
21786 p->mark = _mark;
21787 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21788 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21789 }
21790 { // ASYNC
21791 if (p->error_indicator) {
21792 D(p->level--);
21793 return NULL;
21794 }
21795 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21796 Token * async_var;
21797 if (
21798 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21799 )
21800 {
21801 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21802 _res = async_var;
21803 goto done;
21804 }
21805 p->mark = _mark;
21806 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21808 }
21809 _res = NULL;
21810 done:
21811 D(p->level--);
21812 return _res;
21813}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021814
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021815// _tmp_16: 'class' | '@'
21816static void *
21817_tmp_16_rule(Parser *p)
21818{
21819 D(p->level++);
21820 if (p->error_indicator) {
21821 D(p->level--);
21822 return NULL;
21823 }
21824 void * _res = NULL;
21825 int _mark = p->mark;
21826 { // 'class'
21827 if (p->error_indicator) {
21828 D(p->level--);
21829 return NULL;
21830 }
21831 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
21832 Token * _keyword;
21833 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021834 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021835 )
21836 {
21837 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
21838 _res = _keyword;
21839 goto done;
21840 }
21841 p->mark = _mark;
21842 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
21844 }
21845 { // '@'
21846 if (p->error_indicator) {
21847 D(p->level--);
21848 return NULL;
21849 }
21850 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21851 Token * _literal;
21852 if (
21853 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21854 )
21855 {
21856 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21857 _res = _literal;
21858 goto done;
21859 }
21860 p->mark = _mark;
21861 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21863 }
21864 _res = NULL;
21865 done:
21866 D(p->level--);
21867 return _res;
21868}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021869
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021870// _tmp_17: 'with' | ASYNC
21871static void *
21872_tmp_17_rule(Parser *p)
21873{
21874 D(p->level++);
21875 if (p->error_indicator) {
21876 D(p->level--);
21877 return NULL;
21878 }
21879 void * _res = NULL;
21880 int _mark = p->mark;
21881 { // 'with'
21882 if (p->error_indicator) {
21883 D(p->level--);
21884 return NULL;
21885 }
21886 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
21887 Token * _keyword;
21888 if (
21889 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
21890 )
21891 {
21892 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
21893 _res = _keyword;
21894 goto done;
21895 }
21896 p->mark = _mark;
21897 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
21898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
21899 }
21900 { // ASYNC
21901 if (p->error_indicator) {
21902 D(p->level--);
21903 return NULL;
21904 }
21905 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21906 Token * async_var;
21907 if (
21908 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21909 )
21910 {
21911 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21912 _res = async_var;
21913 goto done;
21914 }
21915 p->mark = _mark;
21916 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
21917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21918 }
21919 _res = NULL;
21920 done:
21921 D(p->level--);
21922 return _res;
21923}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021924
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021925// _tmp_18: 'for' | ASYNC
21926static void *
21927_tmp_18_rule(Parser *p)
21928{
21929 D(p->level++);
21930 if (p->error_indicator) {
21931 D(p->level--);
21932 return NULL;
21933 }
21934 void * _res = NULL;
21935 int _mark = p->mark;
21936 { // 'for'
21937 if (p->error_indicator) {
21938 D(p->level--);
21939 return NULL;
21940 }
21941 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
21942 Token * _keyword;
21943 if (
21944 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
21945 )
21946 {
21947 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
21948 _res = _keyword;
21949 goto done;
21950 }
21951 p->mark = _mark;
21952 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
21953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
21954 }
21955 { // ASYNC
21956 if (p->error_indicator) {
21957 D(p->level--);
21958 return NULL;
21959 }
21960 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21961 Token * async_var;
21962 if (
21963 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21964 )
21965 {
21966 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21967 _res = async_var;
21968 goto done;
21969 }
21970 p->mark = _mark;
21971 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
21972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21973 }
21974 _res = NULL;
21975 done:
21976 D(p->level--);
21977 return _res;
21978}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021979
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021980// _tmp_19: '=' annotated_rhs
21981static void *
21982_tmp_19_rule(Parser *p)
21983{
21984 D(p->level++);
21985 if (p->error_indicator) {
21986 D(p->level--);
21987 return NULL;
21988 }
21989 void * _res = NULL;
21990 int _mark = p->mark;
21991 { // '=' annotated_rhs
21992 if (p->error_indicator) {
21993 D(p->level--);
21994 return NULL;
21995 }
21996 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
21997 Token * _literal;
21998 expr_ty d;
21999 if (
22000 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22001 &&
22002 (d = annotated_rhs_rule(p)) // annotated_rhs
22003 )
22004 {
22005 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22006 _res = d;
22007 if (_res == NULL && PyErr_Occurred()) {
22008 p->error_indicator = 1;
22009 D(p->level--);
22010 return NULL;
22011 }
22012 goto done;
22013 }
22014 p->mark = _mark;
22015 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22017 }
22018 _res = NULL;
22019 done:
22020 D(p->level--);
22021 return _res;
22022}
22023
22024// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22025static void *
22026_tmp_20_rule(Parser *p)
22027{
22028 D(p->level++);
22029 if (p->error_indicator) {
22030 D(p->level--);
22031 return NULL;
22032 }
22033 void * _res = NULL;
22034 int _mark = p->mark;
22035 { // '(' single_target ')'
22036 if (p->error_indicator) {
22037 D(p->level--);
22038 return NULL;
22039 }
22040 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22041 Token * _literal;
22042 Token * _literal_1;
22043 expr_ty b;
22044 if (
22045 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22046 &&
22047 (b = single_target_rule(p)) // single_target
22048 &&
22049 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22050 )
22051 {
22052 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22053 _res = b;
22054 if (_res == NULL && PyErr_Occurred()) {
22055 p->error_indicator = 1;
22056 D(p->level--);
22057 return NULL;
22058 }
22059 goto done;
22060 }
22061 p->mark = _mark;
22062 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22064 }
22065 { // single_subscript_attribute_target
22066 if (p->error_indicator) {
22067 D(p->level--);
22068 return NULL;
22069 }
22070 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22071 expr_ty single_subscript_attribute_target_var;
22072 if (
22073 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22074 )
22075 {
22076 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22077 _res = single_subscript_attribute_target_var;
22078 goto done;
22079 }
22080 p->mark = _mark;
22081 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22083 }
22084 _res = NULL;
22085 done:
22086 D(p->level--);
22087 return _res;
22088}
22089
22090// _tmp_21: '=' annotated_rhs
22091static void *
22092_tmp_21_rule(Parser *p)
22093{
22094 D(p->level++);
22095 if (p->error_indicator) {
22096 D(p->level--);
22097 return NULL;
22098 }
22099 void * _res = NULL;
22100 int _mark = p->mark;
22101 { // '=' annotated_rhs
22102 if (p->error_indicator) {
22103 D(p->level--);
22104 return NULL;
22105 }
22106 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22107 Token * _literal;
22108 expr_ty d;
22109 if (
22110 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22111 &&
22112 (d = annotated_rhs_rule(p)) // annotated_rhs
22113 )
22114 {
22115 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22116 _res = d;
22117 if (_res == NULL && PyErr_Occurred()) {
22118 p->error_indicator = 1;
22119 D(p->level--);
22120 return NULL;
22121 }
22122 goto done;
22123 }
22124 p->mark = _mark;
22125 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22127 }
22128 _res = NULL;
22129 done:
22130 D(p->level--);
22131 return _res;
22132}
22133
22134// _loop1_22: (star_targets '=')
22135static asdl_seq *
22136_loop1_22_rule(Parser *p)
22137{
22138 D(p->level++);
22139 if (p->error_indicator) {
22140 D(p->level--);
22141 return NULL;
22142 }
22143 void *_res = NULL;
22144 int _mark = p->mark;
22145 int _start_mark = p->mark;
22146 void **_children = PyMem_Malloc(sizeof(void *));
22147 if (!_children) {
22148 p->error_indicator = 1;
22149 PyErr_NoMemory();
22150 D(p->level--);
22151 return NULL;
22152 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022153 Py_ssize_t _children_capacity = 1;
22154 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022155 { // (star_targets '=')
22156 if (p->error_indicator) {
22157 D(p->level--);
22158 return NULL;
22159 }
22160 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022161 void *_tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022162 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022163 (_tmp_178_var = _tmp_178_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022164 )
22165 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022166 _res = _tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022167 if (_n == _children_capacity) {
22168 _children_capacity *= 2;
22169 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22170 if (!_new_children) {
22171 p->error_indicator = 1;
22172 PyErr_NoMemory();
22173 D(p->level--);
22174 return NULL;
22175 }
22176 _children = _new_children;
22177 }
22178 _children[_n++] = _res;
22179 _mark = p->mark;
22180 }
22181 p->mark = _mark;
22182 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22184 }
22185 if (_n == 0 || p->error_indicator) {
22186 PyMem_Free(_children);
22187 D(p->level--);
22188 return NULL;
22189 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022190 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022191 if (!_seq) {
22192 PyMem_Free(_children);
22193 p->error_indicator = 1;
22194 PyErr_NoMemory();
22195 D(p->level--);
22196 return NULL;
22197 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022198 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022199 PyMem_Free(_children);
22200 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22201 D(p->level--);
22202 return _seq;
22203}
22204
22205// _tmp_23: yield_expr | star_expressions
22206static void *
22207_tmp_23_rule(Parser *p)
22208{
22209 D(p->level++);
22210 if (p->error_indicator) {
22211 D(p->level--);
22212 return NULL;
22213 }
22214 void * _res = NULL;
22215 int _mark = p->mark;
22216 { // yield_expr
22217 if (p->error_indicator) {
22218 D(p->level--);
22219 return NULL;
22220 }
22221 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22222 expr_ty yield_expr_var;
22223 if (
22224 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22225 )
22226 {
22227 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22228 _res = yield_expr_var;
22229 goto done;
22230 }
22231 p->mark = _mark;
22232 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22234 }
22235 { // star_expressions
22236 if (p->error_indicator) {
22237 D(p->level--);
22238 return NULL;
22239 }
22240 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22241 expr_ty star_expressions_var;
22242 if (
22243 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22244 )
22245 {
22246 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22247 _res = star_expressions_var;
22248 goto done;
22249 }
22250 p->mark = _mark;
22251 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22253 }
22254 _res = NULL;
22255 done:
22256 D(p->level--);
22257 return _res;
22258}
22259
22260// _tmp_24: yield_expr | star_expressions
22261static void *
22262_tmp_24_rule(Parser *p)
22263{
22264 D(p->level++);
22265 if (p->error_indicator) {
22266 D(p->level--);
22267 return NULL;
22268 }
22269 void * _res = NULL;
22270 int _mark = p->mark;
22271 { // yield_expr
22272 if (p->error_indicator) {
22273 D(p->level--);
22274 return NULL;
22275 }
22276 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22277 expr_ty yield_expr_var;
22278 if (
22279 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22280 )
22281 {
22282 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22283 _res = yield_expr_var;
22284 goto done;
22285 }
22286 p->mark = _mark;
22287 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22289 }
22290 { // star_expressions
22291 if (p->error_indicator) {
22292 D(p->level--);
22293 return NULL;
22294 }
22295 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22296 expr_ty star_expressions_var;
22297 if (
22298 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22299 )
22300 {
22301 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22302 _res = star_expressions_var;
22303 goto done;
22304 }
22305 p->mark = _mark;
22306 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22308 }
22309 _res = NULL;
22310 done:
22311 D(p->level--);
22312 return _res;
22313}
22314
22315// _loop0_26: ',' NAME
22316static asdl_seq *
22317_loop0_26_rule(Parser *p)
22318{
22319 D(p->level++);
22320 if (p->error_indicator) {
22321 D(p->level--);
22322 return NULL;
22323 }
22324 void *_res = NULL;
22325 int _mark = p->mark;
22326 int _start_mark = p->mark;
22327 void **_children = PyMem_Malloc(sizeof(void *));
22328 if (!_children) {
22329 p->error_indicator = 1;
22330 PyErr_NoMemory();
22331 D(p->level--);
22332 return NULL;
22333 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022334 Py_ssize_t _children_capacity = 1;
22335 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022336 { // ',' NAME
22337 if (p->error_indicator) {
22338 D(p->level--);
22339 return NULL;
22340 }
22341 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22342 Token * _literal;
22343 expr_ty elem;
22344 while (
22345 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22346 &&
22347 (elem = _PyPegen_name_token(p)) // NAME
22348 )
22349 {
22350 _res = elem;
22351 if (_res == NULL && PyErr_Occurred()) {
22352 p->error_indicator = 1;
22353 PyMem_Free(_children);
22354 D(p->level--);
22355 return NULL;
22356 }
22357 if (_n == _children_capacity) {
22358 _children_capacity *= 2;
22359 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22360 if (!_new_children) {
22361 p->error_indicator = 1;
22362 PyErr_NoMemory();
22363 D(p->level--);
22364 return NULL;
22365 }
22366 _children = _new_children;
22367 }
22368 _children[_n++] = _res;
22369 _mark = p->mark;
22370 }
22371 p->mark = _mark;
22372 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22374 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022375 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022376 if (!_seq) {
22377 PyMem_Free(_children);
22378 p->error_indicator = 1;
22379 PyErr_NoMemory();
22380 D(p->level--);
22381 return NULL;
22382 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022383 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022384 PyMem_Free(_children);
22385 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22386 D(p->level--);
22387 return _seq;
22388}
22389
22390// _gather_25: NAME _loop0_26
22391static asdl_seq *
22392_gather_25_rule(Parser *p)
22393{
22394 D(p->level++);
22395 if (p->error_indicator) {
22396 D(p->level--);
22397 return NULL;
22398 }
22399 asdl_seq * _res = NULL;
22400 int _mark = p->mark;
22401 { // NAME _loop0_26
22402 if (p->error_indicator) {
22403 D(p->level--);
22404 return NULL;
22405 }
22406 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22407 expr_ty elem;
22408 asdl_seq * seq;
22409 if (
22410 (elem = _PyPegen_name_token(p)) // NAME
22411 &&
22412 (seq = _loop0_26_rule(p)) // _loop0_26
22413 )
22414 {
22415 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22416 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22417 goto done;
22418 }
22419 p->mark = _mark;
22420 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22422 }
22423 _res = NULL;
22424 done:
22425 D(p->level--);
22426 return _res;
22427}
22428
22429// _loop0_28: ',' NAME
22430static asdl_seq *
22431_loop0_28_rule(Parser *p)
22432{
22433 D(p->level++);
22434 if (p->error_indicator) {
22435 D(p->level--);
22436 return NULL;
22437 }
22438 void *_res = NULL;
22439 int _mark = p->mark;
22440 int _start_mark = p->mark;
22441 void **_children = PyMem_Malloc(sizeof(void *));
22442 if (!_children) {
22443 p->error_indicator = 1;
22444 PyErr_NoMemory();
22445 D(p->level--);
22446 return NULL;
22447 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022448 Py_ssize_t _children_capacity = 1;
22449 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022450 { // ',' NAME
22451 if (p->error_indicator) {
22452 D(p->level--);
22453 return NULL;
22454 }
22455 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22456 Token * _literal;
22457 expr_ty elem;
22458 while (
22459 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22460 &&
22461 (elem = _PyPegen_name_token(p)) // NAME
22462 )
22463 {
22464 _res = elem;
22465 if (_res == NULL && PyErr_Occurred()) {
22466 p->error_indicator = 1;
22467 PyMem_Free(_children);
22468 D(p->level--);
22469 return NULL;
22470 }
22471 if (_n == _children_capacity) {
22472 _children_capacity *= 2;
22473 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22474 if (!_new_children) {
22475 p->error_indicator = 1;
22476 PyErr_NoMemory();
22477 D(p->level--);
22478 return NULL;
22479 }
22480 _children = _new_children;
22481 }
22482 _children[_n++] = _res;
22483 _mark = p->mark;
22484 }
22485 p->mark = _mark;
22486 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22488 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022489 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022490 if (!_seq) {
22491 PyMem_Free(_children);
22492 p->error_indicator = 1;
22493 PyErr_NoMemory();
22494 D(p->level--);
22495 return NULL;
22496 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022497 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022498 PyMem_Free(_children);
22499 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22500 D(p->level--);
22501 return _seq;
22502}
22503
22504// _gather_27: NAME _loop0_28
22505static asdl_seq *
22506_gather_27_rule(Parser *p)
22507{
22508 D(p->level++);
22509 if (p->error_indicator) {
22510 D(p->level--);
22511 return NULL;
22512 }
22513 asdl_seq * _res = NULL;
22514 int _mark = p->mark;
22515 { // NAME _loop0_28
22516 if (p->error_indicator) {
22517 D(p->level--);
22518 return NULL;
22519 }
22520 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22521 expr_ty elem;
22522 asdl_seq * seq;
22523 if (
22524 (elem = _PyPegen_name_token(p)) // NAME
22525 &&
22526 (seq = _loop0_28_rule(p)) // _loop0_28
22527 )
22528 {
22529 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22530 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22531 goto done;
22532 }
22533 p->mark = _mark;
22534 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22535 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22536 }
22537 _res = NULL;
22538 done:
22539 D(p->level--);
22540 return _res;
22541}
22542
22543// _tmp_29: ',' expression
22544static void *
22545_tmp_29_rule(Parser *p)
22546{
22547 D(p->level++);
22548 if (p->error_indicator) {
22549 D(p->level--);
22550 return NULL;
22551 }
22552 void * _res = NULL;
22553 int _mark = p->mark;
22554 { // ',' expression
22555 if (p->error_indicator) {
22556 D(p->level--);
22557 return NULL;
22558 }
22559 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22560 Token * _literal;
22561 expr_ty z;
22562 if (
22563 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22564 &&
22565 (z = expression_rule(p)) // expression
22566 )
22567 {
22568 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22569 _res = z;
22570 if (_res == NULL && PyErr_Occurred()) {
22571 p->error_indicator = 1;
22572 D(p->level--);
22573 return NULL;
22574 }
22575 goto done;
22576 }
22577 p->mark = _mark;
22578 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22580 }
22581 _res = NULL;
22582 done:
22583 D(p->level--);
22584 return _res;
22585}
22586
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022587// _tmp_30: ';' | NEWLINE
22588static void *
22589_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022590{
22591 D(p->level++);
22592 if (p->error_indicator) {
22593 D(p->level--);
22594 return NULL;
22595 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022596 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022597 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022598 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022599 if (p->error_indicator) {
22600 D(p->level--);
22601 return NULL;
22602 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022603 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22604 Token * _literal;
22605 if (
22606 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022607 )
22608 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022609 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22610 _res = _literal;
22611 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022612 }
22613 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022614 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22615 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022616 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022617 { // NEWLINE
22618 if (p->error_indicator) {
22619 D(p->level--);
22620 return NULL;
22621 }
22622 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22623 Token * newline_var;
22624 if (
22625 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22626 )
22627 {
22628 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22629 _res = newline_var;
22630 goto done;
22631 }
22632 p->mark = _mark;
22633 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22634 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022635 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022636 _res = NULL;
22637 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022638 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022639 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022640}
22641
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022642// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022643static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022644_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022645{
22646 D(p->level++);
22647 if (p->error_indicator) {
22648 D(p->level--);
22649 return NULL;
22650 }
22651 void *_res = NULL;
22652 int _mark = p->mark;
22653 int _start_mark = p->mark;
22654 void **_children = PyMem_Malloc(sizeof(void *));
22655 if (!_children) {
22656 p->error_indicator = 1;
22657 PyErr_NoMemory();
22658 D(p->level--);
22659 return NULL;
22660 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022661 Py_ssize_t _children_capacity = 1;
22662 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022663 { // ('.' | '...')
22664 if (p->error_indicator) {
22665 D(p->level--);
22666 return NULL;
22667 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022668 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022669 void *_tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022670 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022671 (_tmp_179_var = _tmp_179_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022672 )
22673 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022674 _res = _tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022675 if (_n == _children_capacity) {
22676 _children_capacity *= 2;
22677 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22678 if (!_new_children) {
22679 p->error_indicator = 1;
22680 PyErr_NoMemory();
22681 D(p->level--);
22682 return NULL;
22683 }
22684 _children = _new_children;
22685 }
22686 _children[_n++] = _res;
22687 _mark = p->mark;
22688 }
22689 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022690 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
22691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22692 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022693 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022694 if (!_seq) {
22695 PyMem_Free(_children);
22696 p->error_indicator = 1;
22697 PyErr_NoMemory();
22698 D(p->level--);
22699 return NULL;
22700 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022701 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022702 PyMem_Free(_children);
22703 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
22704 D(p->level--);
22705 return _seq;
22706}
22707
22708// _loop1_32: ('.' | '...')
22709static asdl_seq *
22710_loop1_32_rule(Parser *p)
22711{
22712 D(p->level++);
22713 if (p->error_indicator) {
22714 D(p->level--);
22715 return NULL;
22716 }
22717 void *_res = NULL;
22718 int _mark = p->mark;
22719 int _start_mark = p->mark;
22720 void **_children = PyMem_Malloc(sizeof(void *));
22721 if (!_children) {
22722 p->error_indicator = 1;
22723 PyErr_NoMemory();
22724 D(p->level--);
22725 return NULL;
22726 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022727 Py_ssize_t _children_capacity = 1;
22728 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022729 { // ('.' | '...')
22730 if (p->error_indicator) {
22731 D(p->level--);
22732 return NULL;
22733 }
22734 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022735 void *_tmp_180_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022736 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022737 (_tmp_180_var = _tmp_180_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022738 )
22739 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022740 _res = _tmp_180_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022741 if (_n == _children_capacity) {
22742 _children_capacity *= 2;
22743 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22744 if (!_new_children) {
22745 p->error_indicator = 1;
22746 PyErr_NoMemory();
22747 D(p->level--);
22748 return NULL;
22749 }
22750 _children = _new_children;
22751 }
22752 _children[_n++] = _res;
22753 _mark = p->mark;
22754 }
22755 p->mark = _mark;
22756 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22758 }
22759 if (_n == 0 || p->error_indicator) {
22760 PyMem_Free(_children);
22761 D(p->level--);
22762 return NULL;
22763 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022764 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022765 if (!_seq) {
22766 PyMem_Free(_children);
22767 p->error_indicator = 1;
22768 PyErr_NoMemory();
22769 D(p->level--);
22770 return NULL;
22771 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022772 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022773 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022774 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022775 D(p->level--);
22776 return _seq;
22777}
22778
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022779// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022780static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022781_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022782{
22783 D(p->level++);
22784 if (p->error_indicator) {
22785 D(p->level--);
22786 return NULL;
22787 }
22788 void *_res = NULL;
22789 int _mark = p->mark;
22790 int _start_mark = p->mark;
22791 void **_children = PyMem_Malloc(sizeof(void *));
22792 if (!_children) {
22793 p->error_indicator = 1;
22794 PyErr_NoMemory();
22795 D(p->level--);
22796 return NULL;
22797 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022798 Py_ssize_t _children_capacity = 1;
22799 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022800 { // ',' import_from_as_name
22801 if (p->error_indicator) {
22802 D(p->level--);
22803 return NULL;
22804 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022805 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 +010022806 Token * _literal;
22807 alias_ty elem;
22808 while (
22809 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22810 &&
22811 (elem = import_from_as_name_rule(p)) // import_from_as_name
22812 )
22813 {
22814 _res = elem;
22815 if (_res == NULL && PyErr_Occurred()) {
22816 p->error_indicator = 1;
22817 PyMem_Free(_children);
22818 D(p->level--);
22819 return NULL;
22820 }
22821 if (_n == _children_capacity) {
22822 _children_capacity *= 2;
22823 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22824 if (!_new_children) {
22825 p->error_indicator = 1;
22826 PyErr_NoMemory();
22827 D(p->level--);
22828 return NULL;
22829 }
22830 _children = _new_children;
22831 }
22832 _children[_n++] = _res;
22833 _mark = p->mark;
22834 }
22835 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022836 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022837 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
22838 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022839 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022840 if (!_seq) {
22841 PyMem_Free(_children);
22842 p->error_indicator = 1;
22843 PyErr_NoMemory();
22844 D(p->level--);
22845 return NULL;
22846 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022847 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022848 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022849 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022850 D(p->level--);
22851 return _seq;
22852}
22853
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022854// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022855static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022856_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022857{
22858 D(p->level++);
22859 if (p->error_indicator) {
22860 D(p->level--);
22861 return NULL;
22862 }
22863 asdl_seq * _res = NULL;
22864 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022865 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022866 if (p->error_indicator) {
22867 D(p->level--);
22868 return NULL;
22869 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022870 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 +010022871 alias_ty elem;
22872 asdl_seq * seq;
22873 if (
22874 (elem = import_from_as_name_rule(p)) // import_from_as_name
22875 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022876 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022877 )
22878 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022879 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 +010022880 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22881 goto done;
22882 }
22883 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022884 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
22885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022886 }
22887 _res = NULL;
22888 done:
22889 D(p->level--);
22890 return _res;
22891}
22892
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022893// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022894static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022895_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022896{
22897 D(p->level++);
22898 if (p->error_indicator) {
22899 D(p->level--);
22900 return NULL;
22901 }
22902 void * _res = NULL;
22903 int _mark = p->mark;
22904 { // 'as' NAME
22905 if (p->error_indicator) {
22906 D(p->level--);
22907 return NULL;
22908 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022909 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022910 Token * _keyword;
22911 expr_ty z;
22912 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022913 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022914 &&
22915 (z = _PyPegen_name_token(p)) // NAME
22916 )
22917 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022918 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 +010022919 _res = z;
22920 if (_res == NULL && PyErr_Occurred()) {
22921 p->error_indicator = 1;
22922 D(p->level--);
22923 return NULL;
22924 }
22925 goto done;
22926 }
22927 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022928 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022929 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
22930 }
22931 _res = NULL;
22932 done:
22933 D(p->level--);
22934 return _res;
22935}
22936
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022937// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022938static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022939_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022940{
22941 D(p->level++);
22942 if (p->error_indicator) {
22943 D(p->level--);
22944 return NULL;
22945 }
22946 void *_res = NULL;
22947 int _mark = p->mark;
22948 int _start_mark = p->mark;
22949 void **_children = PyMem_Malloc(sizeof(void *));
22950 if (!_children) {
22951 p->error_indicator = 1;
22952 PyErr_NoMemory();
22953 D(p->level--);
22954 return NULL;
22955 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022956 Py_ssize_t _children_capacity = 1;
22957 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022958 { // ',' dotted_as_name
22959 if (p->error_indicator) {
22960 D(p->level--);
22961 return NULL;
22962 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022963 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 +010022964 Token * _literal;
22965 alias_ty elem;
22966 while (
22967 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22968 &&
22969 (elem = dotted_as_name_rule(p)) // dotted_as_name
22970 )
22971 {
22972 _res = elem;
22973 if (_res == NULL && PyErr_Occurred()) {
22974 p->error_indicator = 1;
22975 PyMem_Free(_children);
22976 D(p->level--);
22977 return NULL;
22978 }
22979 if (_n == _children_capacity) {
22980 _children_capacity *= 2;
22981 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22982 if (!_new_children) {
22983 p->error_indicator = 1;
22984 PyErr_NoMemory();
22985 D(p->level--);
22986 return NULL;
22987 }
22988 _children = _new_children;
22989 }
22990 _children[_n++] = _res;
22991 _mark = p->mark;
22992 }
22993 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022994 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022995 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
22996 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022997 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022998 if (!_seq) {
22999 PyMem_Free(_children);
23000 p->error_indicator = 1;
23001 PyErr_NoMemory();
23002 D(p->level--);
23003 return NULL;
23004 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023005 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023006 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023007 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023008 D(p->level--);
23009 return _seq;
23010}
23011
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023012// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023013static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023014_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023015{
23016 D(p->level++);
23017 if (p->error_indicator) {
23018 D(p->level--);
23019 return NULL;
23020 }
23021 asdl_seq * _res = NULL;
23022 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023023 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023024 if (p->error_indicator) {
23025 D(p->level--);
23026 return NULL;
23027 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023028 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 +010023029 alias_ty elem;
23030 asdl_seq * seq;
23031 if (
23032 (elem = dotted_as_name_rule(p)) // dotted_as_name
23033 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023034 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023035 )
23036 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023037 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 +010023038 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23039 goto done;
23040 }
23041 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023042 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023044 }
23045 _res = NULL;
23046 done:
23047 D(p->level--);
23048 return _res;
23049}
23050
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023051// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023052static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023053_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023054{
23055 D(p->level++);
23056 if (p->error_indicator) {
23057 D(p->level--);
23058 return NULL;
23059 }
23060 void * _res = NULL;
23061 int _mark = p->mark;
23062 { // 'as' NAME
23063 if (p->error_indicator) {
23064 D(p->level--);
23065 return NULL;
23066 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023067 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023068 Token * _keyword;
23069 expr_ty z;
23070 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023071 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023072 &&
23073 (z = _PyPegen_name_token(p)) // NAME
23074 )
23075 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023076 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 +010023077 _res = z;
23078 if (_res == NULL && PyErr_Occurred()) {
23079 p->error_indicator = 1;
23080 D(p->level--);
23081 return NULL;
23082 }
23083 goto done;
23084 }
23085 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023086 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23088 }
23089 _res = NULL;
23090 done:
23091 D(p->level--);
23092 return _res;
23093}
23094
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023095// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023096static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023097_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023098{
23099 D(p->level++);
23100 if (p->error_indicator) {
23101 D(p->level--);
23102 return NULL;
23103 }
23104 void *_res = NULL;
23105 int _mark = p->mark;
23106 int _start_mark = p->mark;
23107 void **_children = PyMem_Malloc(sizeof(void *));
23108 if (!_children) {
23109 p->error_indicator = 1;
23110 PyErr_NoMemory();
23111 D(p->level--);
23112 return NULL;
23113 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023114 Py_ssize_t _children_capacity = 1;
23115 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023116 { // ',' with_item
23117 if (p->error_indicator) {
23118 D(p->level--);
23119 return NULL;
23120 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023121 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023122 Token * _literal;
23123 withitem_ty elem;
23124 while (
23125 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23126 &&
23127 (elem = with_item_rule(p)) // with_item
23128 )
23129 {
23130 _res = elem;
23131 if (_res == NULL && PyErr_Occurred()) {
23132 p->error_indicator = 1;
23133 PyMem_Free(_children);
23134 D(p->level--);
23135 return NULL;
23136 }
23137 if (_n == _children_capacity) {
23138 _children_capacity *= 2;
23139 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23140 if (!_new_children) {
23141 p->error_indicator = 1;
23142 PyErr_NoMemory();
23143 D(p->level--);
23144 return NULL;
23145 }
23146 _children = _new_children;
23147 }
23148 _children[_n++] = _res;
23149 _mark = p->mark;
23150 }
23151 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023152 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23154 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023155 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023156 if (!_seq) {
23157 PyMem_Free(_children);
23158 p->error_indicator = 1;
23159 PyErr_NoMemory();
23160 D(p->level--);
23161 return NULL;
23162 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023163 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023164 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023165 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023166 D(p->level--);
23167 return _seq;
23168}
23169
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023170// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023171static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023172_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023173{
23174 D(p->level++);
23175 if (p->error_indicator) {
23176 D(p->level--);
23177 return NULL;
23178 }
23179 asdl_seq * _res = NULL;
23180 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023181 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023182 if (p->error_indicator) {
23183 D(p->level--);
23184 return NULL;
23185 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023186 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 +010023187 withitem_ty elem;
23188 asdl_seq * seq;
23189 if (
23190 (elem = with_item_rule(p)) // with_item
23191 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023192 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023193 )
23194 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023195 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 +010023196 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23197 goto done;
23198 }
23199 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023200 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023202 }
23203 _res = NULL;
23204 done:
23205 D(p->level--);
23206 return _res;
23207}
23208
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023209// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023210static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023211_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023212{
23213 D(p->level++);
23214 if (p->error_indicator) {
23215 D(p->level--);
23216 return NULL;
23217 }
23218 void *_res = NULL;
23219 int _mark = p->mark;
23220 int _start_mark = p->mark;
23221 void **_children = PyMem_Malloc(sizeof(void *));
23222 if (!_children) {
23223 p->error_indicator = 1;
23224 PyErr_NoMemory();
23225 D(p->level--);
23226 return NULL;
23227 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023228 Py_ssize_t _children_capacity = 1;
23229 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023230 { // ',' with_item
23231 if (p->error_indicator) {
23232 D(p->level--);
23233 return NULL;
23234 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023235 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023236 Token * _literal;
23237 withitem_ty elem;
23238 while (
23239 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23240 &&
23241 (elem = with_item_rule(p)) // with_item
23242 )
23243 {
23244 _res = elem;
23245 if (_res == NULL && PyErr_Occurred()) {
23246 p->error_indicator = 1;
23247 PyMem_Free(_children);
23248 D(p->level--);
23249 return NULL;
23250 }
23251 if (_n == _children_capacity) {
23252 _children_capacity *= 2;
23253 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23254 if (!_new_children) {
23255 p->error_indicator = 1;
23256 PyErr_NoMemory();
23257 D(p->level--);
23258 return NULL;
23259 }
23260 _children = _new_children;
23261 }
23262 _children[_n++] = _res;
23263 _mark = p->mark;
23264 }
23265 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023266 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23268 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023269 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023270 if (!_seq) {
23271 PyMem_Free(_children);
23272 p->error_indicator = 1;
23273 PyErr_NoMemory();
23274 D(p->level--);
23275 return NULL;
23276 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023277 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023278 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023279 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023280 D(p->level--);
23281 return _seq;
23282}
23283
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023284// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023285static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023286_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023287{
23288 D(p->level++);
23289 if (p->error_indicator) {
23290 D(p->level--);
23291 return NULL;
23292 }
23293 asdl_seq * _res = NULL;
23294 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023295 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023296 if (p->error_indicator) {
23297 D(p->level--);
23298 return NULL;
23299 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023300 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 +010023301 withitem_ty elem;
23302 asdl_seq * seq;
23303 if (
23304 (elem = with_item_rule(p)) // with_item
23305 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023306 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023307 )
23308 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023309 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 +010023310 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23311 goto done;
23312 }
23313 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023314 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023316 }
23317 _res = NULL;
23318 done:
23319 D(p->level--);
23320 return _res;
23321}
23322
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023323// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023324static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023325_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023326{
23327 D(p->level++);
23328 if (p->error_indicator) {
23329 D(p->level--);
23330 return NULL;
23331 }
23332 void *_res = NULL;
23333 int _mark = p->mark;
23334 int _start_mark = p->mark;
23335 void **_children = PyMem_Malloc(sizeof(void *));
23336 if (!_children) {
23337 p->error_indicator = 1;
23338 PyErr_NoMemory();
23339 D(p->level--);
23340 return NULL;
23341 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023342 Py_ssize_t _children_capacity = 1;
23343 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023344 { // ',' with_item
23345 if (p->error_indicator) {
23346 D(p->level--);
23347 return NULL;
23348 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023349 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023350 Token * _literal;
23351 withitem_ty elem;
23352 while (
23353 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23354 &&
23355 (elem = with_item_rule(p)) // with_item
23356 )
23357 {
23358 _res = elem;
23359 if (_res == NULL && PyErr_Occurred()) {
23360 p->error_indicator = 1;
23361 PyMem_Free(_children);
23362 D(p->level--);
23363 return NULL;
23364 }
23365 if (_n == _children_capacity) {
23366 _children_capacity *= 2;
23367 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23368 if (!_new_children) {
23369 p->error_indicator = 1;
23370 PyErr_NoMemory();
23371 D(p->level--);
23372 return NULL;
23373 }
23374 _children = _new_children;
23375 }
23376 _children[_n++] = _res;
23377 _mark = p->mark;
23378 }
23379 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023380 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023381 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23382 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023383 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023384 if (!_seq) {
23385 PyMem_Free(_children);
23386 p->error_indicator = 1;
23387 PyErr_NoMemory();
23388 D(p->level--);
23389 return NULL;
23390 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023391 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023392 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023393 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023394 D(p->level--);
23395 return _seq;
23396}
23397
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023398// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023399static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023400_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023401{
23402 D(p->level++);
23403 if (p->error_indicator) {
23404 D(p->level--);
23405 return NULL;
23406 }
23407 asdl_seq * _res = NULL;
23408 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023409 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023410 if (p->error_indicator) {
23411 D(p->level--);
23412 return NULL;
23413 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023414 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 +010023415 withitem_ty elem;
23416 asdl_seq * seq;
23417 if (
23418 (elem = with_item_rule(p)) // with_item
23419 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023420 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023421 )
23422 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023423 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 +010023424 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23425 goto done;
23426 }
23427 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023428 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023430 }
23431 _res = NULL;
23432 done:
23433 D(p->level--);
23434 return _res;
23435}
23436
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023437// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023438static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023439_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023440{
23441 D(p->level++);
23442 if (p->error_indicator) {
23443 D(p->level--);
23444 return NULL;
23445 }
23446 void *_res = NULL;
23447 int _mark = p->mark;
23448 int _start_mark = p->mark;
23449 void **_children = PyMem_Malloc(sizeof(void *));
23450 if (!_children) {
23451 p->error_indicator = 1;
23452 PyErr_NoMemory();
23453 D(p->level--);
23454 return NULL;
23455 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023456 Py_ssize_t _children_capacity = 1;
23457 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023458 { // ',' with_item
23459 if (p->error_indicator) {
23460 D(p->level--);
23461 return NULL;
23462 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023463 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023464 Token * _literal;
23465 withitem_ty elem;
23466 while (
23467 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23468 &&
23469 (elem = with_item_rule(p)) // with_item
23470 )
23471 {
23472 _res = elem;
23473 if (_res == NULL && PyErr_Occurred()) {
23474 p->error_indicator = 1;
23475 PyMem_Free(_children);
23476 D(p->level--);
23477 return NULL;
23478 }
23479 if (_n == _children_capacity) {
23480 _children_capacity *= 2;
23481 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23482 if (!_new_children) {
23483 p->error_indicator = 1;
23484 PyErr_NoMemory();
23485 D(p->level--);
23486 return NULL;
23487 }
23488 _children = _new_children;
23489 }
23490 _children[_n++] = _res;
23491 _mark = p->mark;
23492 }
23493 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023494 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023495 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23496 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023497 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023498 if (!_seq) {
23499 PyMem_Free(_children);
23500 p->error_indicator = 1;
23501 PyErr_NoMemory();
23502 D(p->level--);
23503 return NULL;
23504 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023505 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023506 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023507 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023508 D(p->level--);
23509 return _seq;
23510}
23511
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023512// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023513static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023514_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023515{
23516 D(p->level++);
23517 if (p->error_indicator) {
23518 D(p->level--);
23519 return NULL;
23520 }
23521 asdl_seq * _res = NULL;
23522 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023523 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023524 if (p->error_indicator) {
23525 D(p->level--);
23526 return NULL;
23527 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023528 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 +010023529 withitem_ty elem;
23530 asdl_seq * seq;
23531 if (
23532 (elem = with_item_rule(p)) // with_item
23533 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023534 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023535 )
23536 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023537 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 +010023538 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23539 goto done;
23540 }
23541 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023542 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023544 }
23545 _res = NULL;
23546 done:
23547 D(p->level--);
23548 return _res;
23549}
23550
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023551// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023552static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023553_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023554{
23555 D(p->level++);
23556 if (p->error_indicator) {
23557 D(p->level--);
23558 return NULL;
23559 }
23560 void * _res = NULL;
23561 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023562 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023563 if (p->error_indicator) {
23564 D(p->level--);
23565 return NULL;
23566 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023567 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23568 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023569 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023570 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023571 )
23572 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023573 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23574 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023575 goto done;
23576 }
23577 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023578 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23580 }
23581 { // ')'
23582 if (p->error_indicator) {
23583 D(p->level--);
23584 return NULL;
23585 }
23586 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23587 Token * _literal;
23588 if (
23589 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23590 )
23591 {
23592 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23593 _res = _literal;
23594 goto done;
23595 }
23596 p->mark = _mark;
23597 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23599 }
23600 { // ':'
23601 if (p->error_indicator) {
23602 D(p->level--);
23603 return NULL;
23604 }
23605 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23606 Token * _literal;
23607 if (
23608 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23609 )
23610 {
23611 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23612 _res = _literal;
23613 goto done;
23614 }
23615 p->mark = _mark;
23616 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023618 }
23619 _res = NULL;
23620 done:
23621 D(p->level--);
23622 return _res;
23623}
23624
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023625// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023626static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023627_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023628{
23629 D(p->level++);
23630 if (p->error_indicator) {
23631 D(p->level--);
23632 return NULL;
23633 }
23634 void *_res = NULL;
23635 int _mark = p->mark;
23636 int _start_mark = p->mark;
23637 void **_children = PyMem_Malloc(sizeof(void *));
23638 if (!_children) {
23639 p->error_indicator = 1;
23640 PyErr_NoMemory();
23641 D(p->level--);
23642 return NULL;
23643 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023644 Py_ssize_t _children_capacity = 1;
23645 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023646 { // except_block
23647 if (p->error_indicator) {
23648 D(p->level--);
23649 return NULL;
23650 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023651 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023652 excepthandler_ty except_block_var;
23653 while (
23654 (except_block_var = except_block_rule(p)) // except_block
23655 )
23656 {
23657 _res = except_block_var;
23658 if (_n == _children_capacity) {
23659 _children_capacity *= 2;
23660 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23661 if (!_new_children) {
23662 p->error_indicator = 1;
23663 PyErr_NoMemory();
23664 D(p->level--);
23665 return NULL;
23666 }
23667 _children = _new_children;
23668 }
23669 _children[_n++] = _res;
23670 _mark = p->mark;
23671 }
23672 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023673 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23675 }
23676 if (_n == 0 || p->error_indicator) {
23677 PyMem_Free(_children);
23678 D(p->level--);
23679 return NULL;
23680 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023681 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023682 if (!_seq) {
23683 PyMem_Free(_children);
23684 p->error_indicator = 1;
23685 PyErr_NoMemory();
23686 D(p->level--);
23687 return NULL;
23688 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023689 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023690 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023691 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023692 D(p->level--);
23693 return _seq;
23694}
23695
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023696// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023697static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023698_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023699{
23700 D(p->level++);
23701 if (p->error_indicator) {
23702 D(p->level--);
23703 return NULL;
23704 }
23705 void * _res = NULL;
23706 int _mark = p->mark;
23707 { // 'as' NAME
23708 if (p->error_indicator) {
23709 D(p->level--);
23710 return NULL;
23711 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023712 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023713 Token * _keyword;
23714 expr_ty z;
23715 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023716 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023717 &&
23718 (z = _PyPegen_name_token(p)) // NAME
23719 )
23720 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023721 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 +010023722 _res = z;
23723 if (_res == NULL && PyErr_Occurred()) {
23724 p->error_indicator = 1;
23725 D(p->level--);
23726 return NULL;
23727 }
23728 goto done;
23729 }
23730 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023731 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23733 }
23734 _res = NULL;
23735 done:
23736 D(p->level--);
23737 return _res;
23738}
23739
Brandt Bucher145bf262021-02-26 14:51:55 -080023740// _loop1_50: case_block
23741static asdl_seq *
23742_loop1_50_rule(Parser *p)
23743{
23744 D(p->level++);
23745 if (p->error_indicator) {
23746 D(p->level--);
23747 return NULL;
23748 }
23749 void *_res = NULL;
23750 int _mark = p->mark;
23751 int _start_mark = p->mark;
23752 void **_children = PyMem_Malloc(sizeof(void *));
23753 if (!_children) {
23754 p->error_indicator = 1;
23755 PyErr_NoMemory();
23756 D(p->level--);
23757 return NULL;
23758 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023759 Py_ssize_t _children_capacity = 1;
23760 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023761 { // case_block
23762 if (p->error_indicator) {
23763 D(p->level--);
23764 return NULL;
23765 }
23766 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
23767 match_case_ty case_block_var;
23768 while (
23769 (case_block_var = case_block_rule(p)) // case_block
23770 )
23771 {
23772 _res = case_block_var;
23773 if (_n == _children_capacity) {
23774 _children_capacity *= 2;
23775 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23776 if (!_new_children) {
23777 p->error_indicator = 1;
23778 PyErr_NoMemory();
23779 D(p->level--);
23780 return NULL;
23781 }
23782 _children = _new_children;
23783 }
23784 _children[_n++] = _res;
23785 _mark = p->mark;
23786 }
23787 p->mark = _mark;
23788 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
23789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
23790 }
23791 if (_n == 0 || p->error_indicator) {
23792 PyMem_Free(_children);
23793 D(p->level--);
23794 return NULL;
23795 }
23796 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23797 if (!_seq) {
23798 PyMem_Free(_children);
23799 p->error_indicator = 1;
23800 PyErr_NoMemory();
23801 D(p->level--);
23802 return NULL;
23803 }
23804 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23805 PyMem_Free(_children);
23806 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
23807 D(p->level--);
23808 return _seq;
23809}
23810
23811// _loop0_52: '|' closed_pattern
23812static asdl_seq *
23813_loop0_52_rule(Parser *p)
23814{
23815 D(p->level++);
23816 if (p->error_indicator) {
23817 D(p->level--);
23818 return NULL;
23819 }
23820 void *_res = NULL;
23821 int _mark = p->mark;
23822 int _start_mark = p->mark;
23823 void **_children = PyMem_Malloc(sizeof(void *));
23824 if (!_children) {
23825 p->error_indicator = 1;
23826 PyErr_NoMemory();
23827 D(p->level--);
23828 return NULL;
23829 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023830 Py_ssize_t _children_capacity = 1;
23831 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023832 { // '|' closed_pattern
23833 if (p->error_indicator) {
23834 D(p->level--);
23835 return NULL;
23836 }
23837 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
23838 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100023839 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080023840 while (
23841 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
23842 &&
23843 (elem = closed_pattern_rule(p)) // closed_pattern
23844 )
23845 {
23846 _res = elem;
23847 if (_res == NULL && PyErr_Occurred()) {
23848 p->error_indicator = 1;
23849 PyMem_Free(_children);
23850 D(p->level--);
23851 return NULL;
23852 }
23853 if (_n == _children_capacity) {
23854 _children_capacity *= 2;
23855 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23856 if (!_new_children) {
23857 p->error_indicator = 1;
23858 PyErr_NoMemory();
23859 D(p->level--);
23860 return NULL;
23861 }
23862 _children = _new_children;
23863 }
23864 _children[_n++] = _res;
23865 _mark = p->mark;
23866 }
23867 p->mark = _mark;
23868 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
23869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
23870 }
23871 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23872 if (!_seq) {
23873 PyMem_Free(_children);
23874 p->error_indicator = 1;
23875 PyErr_NoMemory();
23876 D(p->level--);
23877 return NULL;
23878 }
23879 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23880 PyMem_Free(_children);
23881 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
23882 D(p->level--);
23883 return _seq;
23884}
23885
23886// _gather_51: closed_pattern _loop0_52
23887static asdl_seq *
23888_gather_51_rule(Parser *p)
23889{
23890 D(p->level++);
23891 if (p->error_indicator) {
23892 D(p->level--);
23893 return NULL;
23894 }
23895 asdl_seq * _res = NULL;
23896 int _mark = p->mark;
23897 { // closed_pattern _loop0_52
23898 if (p->error_indicator) {
23899 D(p->level--);
23900 return NULL;
23901 }
23902 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 +100023903 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080023904 asdl_seq * seq;
23905 if (
23906 (elem = closed_pattern_rule(p)) // closed_pattern
23907 &&
23908 (seq = _loop0_52_rule(p)) // _loop0_52
23909 )
23910 {
23911 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
23912 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23913 goto done;
23914 }
23915 p->mark = _mark;
23916 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
23917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
23918 }
23919 _res = NULL;
23920 done:
23921 D(p->level--);
23922 return _res;
23923}
23924
23925// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023926static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080023927_tmp_53_rule(Parser *p)
23928{
23929 D(p->level++);
23930 if (p->error_indicator) {
23931 D(p->level--);
23932 return NULL;
23933 }
23934 void * _res = NULL;
23935 int _mark = p->mark;
23936 { // '+'
23937 if (p->error_indicator) {
23938 D(p->level--);
23939 return NULL;
23940 }
23941 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
23942 Token * _literal;
23943 if (
23944 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
23945 )
23946 {
23947 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
23948 _res = _literal;
23949 goto done;
23950 }
23951 p->mark = _mark;
23952 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
23953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
23954 }
23955 { // '-'
23956 if (p->error_indicator) {
23957 D(p->level--);
23958 return NULL;
23959 }
23960 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
23961 Token * _literal;
23962 if (
23963 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
23964 )
23965 {
23966 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
23967 _res = _literal;
23968 goto done;
23969 }
23970 p->mark = _mark;
23971 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
23972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
23973 }
23974 _res = NULL;
23975 done:
23976 D(p->level--);
23977 return _res;
23978}
23979
Nick Coghlan1e7b8582021-04-29 15:58:44 +100023980// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080023981static void *
23982_tmp_54_rule(Parser *p)
23983{
23984 D(p->level++);
23985 if (p->error_indicator) {
23986 D(p->level--);
23987 return NULL;
23988 }
23989 void * _res = NULL;
23990 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100023991 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080023992 if (p->error_indicator) {
23993 D(p->level--);
23994 return NULL;
23995 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100023996 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080023997 Token * _literal;
23998 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100023999 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024000 )
24001 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024002 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024003 _res = _literal;
24004 goto done;
24005 }
24006 p->mark = _mark;
24007 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024009 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024010 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024011 if (p->error_indicator) {
24012 D(p->level--);
24013 return NULL;
24014 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024015 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024016 Token * _literal;
24017 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024018 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024019 )
24020 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024021 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024022 _res = _literal;
24023 goto done;
24024 }
24025 p->mark = _mark;
24026 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024028 }
24029 _res = NULL;
24030 done:
24031 D(p->level--);
24032 return _res;
24033}
24034
24035// _tmp_55: '.' | '(' | '='
24036static void *
24037_tmp_55_rule(Parser *p)
24038{
24039 D(p->level++);
24040 if (p->error_indicator) {
24041 D(p->level--);
24042 return NULL;
24043 }
24044 void * _res = NULL;
24045 int _mark = p->mark;
24046 { // '.'
24047 if (p->error_indicator) {
24048 D(p->level--);
24049 return NULL;
24050 }
24051 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24052 Token * _literal;
24053 if (
24054 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24055 )
24056 {
24057 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24058 _res = _literal;
24059 goto done;
24060 }
24061 p->mark = _mark;
24062 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24064 }
24065 { // '('
24066 if (p->error_indicator) {
24067 D(p->level--);
24068 return NULL;
24069 }
24070 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24071 Token * _literal;
24072 if (
24073 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24074 )
24075 {
24076 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24077 _res = _literal;
24078 goto done;
24079 }
24080 p->mark = _mark;
24081 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24083 }
24084 { // '='
24085 if (p->error_indicator) {
24086 D(p->level--);
24087 return NULL;
24088 }
24089 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24090 Token * _literal;
24091 if (
24092 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24093 )
24094 {
24095 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24096 _res = _literal;
24097 goto done;
24098 }
24099 p->mark = _mark;
24100 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24102 }
24103 _res = NULL;
24104 done:
24105 D(p->level--);
24106 return _res;
24107}
24108
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024109// _tmp_56: '.' | '(' | '='
24110static void *
24111_tmp_56_rule(Parser *p)
24112{
24113 D(p->level++);
24114 if (p->error_indicator) {
24115 D(p->level--);
24116 return NULL;
24117 }
24118 void * _res = NULL;
24119 int _mark = p->mark;
24120 { // '.'
24121 if (p->error_indicator) {
24122 D(p->level--);
24123 return NULL;
24124 }
24125 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24126 Token * _literal;
24127 if (
24128 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24129 )
24130 {
24131 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24132 _res = _literal;
24133 goto done;
24134 }
24135 p->mark = _mark;
24136 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24138 }
24139 { // '('
24140 if (p->error_indicator) {
24141 D(p->level--);
24142 return NULL;
24143 }
24144 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24145 Token * _literal;
24146 if (
24147 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24148 )
24149 {
24150 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24151 _res = _literal;
24152 goto done;
24153 }
24154 p->mark = _mark;
24155 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24157 }
24158 { // '='
24159 if (p->error_indicator) {
24160 D(p->level--);
24161 return NULL;
24162 }
24163 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24164 Token * _literal;
24165 if (
24166 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24167 )
24168 {
24169 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24170 _res = _literal;
24171 goto done;
24172 }
24173 p->mark = _mark;
24174 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24176 }
24177 _res = NULL;
24178 done:
24179 D(p->level--);
24180 return _res;
24181}
24182
24183// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024184static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024185_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024186{
24187 D(p->level++);
24188 if (p->error_indicator) {
24189 D(p->level--);
24190 return NULL;
24191 }
24192 void *_res = NULL;
24193 int _mark = p->mark;
24194 int _start_mark = p->mark;
24195 void **_children = PyMem_Malloc(sizeof(void *));
24196 if (!_children) {
24197 p->error_indicator = 1;
24198 PyErr_NoMemory();
24199 D(p->level--);
24200 return NULL;
24201 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024202 Py_ssize_t _children_capacity = 1;
24203 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024204 { // ',' maybe_star_pattern
24205 if (p->error_indicator) {
24206 D(p->level--);
24207 return NULL;
24208 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024209 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 -080024210 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024211 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024212 while (
24213 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24214 &&
24215 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24216 )
24217 {
24218 _res = elem;
24219 if (_res == NULL && PyErr_Occurred()) {
24220 p->error_indicator = 1;
24221 PyMem_Free(_children);
24222 D(p->level--);
24223 return NULL;
24224 }
24225 if (_n == _children_capacity) {
24226 _children_capacity *= 2;
24227 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24228 if (!_new_children) {
24229 p->error_indicator = 1;
24230 PyErr_NoMemory();
24231 D(p->level--);
24232 return NULL;
24233 }
24234 _children = _new_children;
24235 }
24236 _children[_n++] = _res;
24237 _mark = p->mark;
24238 }
24239 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024240 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24242 }
24243 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24244 if (!_seq) {
24245 PyMem_Free(_children);
24246 p->error_indicator = 1;
24247 PyErr_NoMemory();
24248 D(p->level--);
24249 return NULL;
24250 }
24251 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24252 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024253 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024254 D(p->level--);
24255 return _seq;
24256}
24257
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024258// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024259static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024260_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024261{
24262 D(p->level++);
24263 if (p->error_indicator) {
24264 D(p->level--);
24265 return NULL;
24266 }
24267 asdl_seq * _res = NULL;
24268 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024269 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024270 if (p->error_indicator) {
24271 D(p->level--);
24272 return NULL;
24273 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024274 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24275 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024276 asdl_seq * seq;
24277 if (
24278 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24279 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024280 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024281 )
24282 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024283 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 -080024284 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24285 goto done;
24286 }
24287 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024288 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24289 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024290 }
24291 _res = NULL;
24292 done:
24293 D(p->level--);
24294 return _res;
24295}
24296
24297// _loop0_60: ',' key_value_pattern
24298static asdl_seq *
24299_loop0_60_rule(Parser *p)
24300{
24301 D(p->level++);
24302 if (p->error_indicator) {
24303 D(p->level--);
24304 return NULL;
24305 }
24306 void *_res = NULL;
24307 int _mark = p->mark;
24308 int _start_mark = p->mark;
24309 void **_children = PyMem_Malloc(sizeof(void *));
24310 if (!_children) {
24311 p->error_indicator = 1;
24312 PyErr_NoMemory();
24313 D(p->level--);
24314 return NULL;
24315 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024316 Py_ssize_t _children_capacity = 1;
24317 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024318 { // ',' key_value_pattern
24319 if (p->error_indicator) {
24320 D(p->level--);
24321 return NULL;
24322 }
24323 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24324 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024325 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024326 while (
24327 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24328 &&
24329 (elem = key_value_pattern_rule(p)) // key_value_pattern
24330 )
24331 {
24332 _res = elem;
24333 if (_res == NULL && PyErr_Occurred()) {
24334 p->error_indicator = 1;
24335 PyMem_Free(_children);
24336 D(p->level--);
24337 return NULL;
24338 }
24339 if (_n == _children_capacity) {
24340 _children_capacity *= 2;
24341 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24342 if (!_new_children) {
24343 p->error_indicator = 1;
24344 PyErr_NoMemory();
24345 D(p->level--);
24346 return NULL;
24347 }
24348 _children = _new_children;
24349 }
24350 _children[_n++] = _res;
24351 _mark = p->mark;
24352 }
24353 p->mark = _mark;
24354 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24356 }
24357 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24358 if (!_seq) {
24359 PyMem_Free(_children);
24360 p->error_indicator = 1;
24361 PyErr_NoMemory();
24362 D(p->level--);
24363 return NULL;
24364 }
24365 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24366 PyMem_Free(_children);
24367 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24368 D(p->level--);
24369 return _seq;
24370}
24371
24372// _gather_59: key_value_pattern _loop0_60
24373static asdl_seq *
24374_gather_59_rule(Parser *p)
24375{
24376 D(p->level++);
24377 if (p->error_indicator) {
24378 D(p->level--);
24379 return NULL;
24380 }
24381 asdl_seq * _res = NULL;
24382 int _mark = p->mark;
24383 { // key_value_pattern _loop0_60
24384 if (p->error_indicator) {
24385 D(p->level--);
24386 return NULL;
24387 }
24388 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 +100024389 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024390 asdl_seq * seq;
24391 if (
24392 (elem = key_value_pattern_rule(p)) // key_value_pattern
24393 &&
24394 (seq = _loop0_60_rule(p)) // _loop0_60
24395 )
24396 {
24397 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24398 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24399 goto done;
24400 }
24401 p->mark = _mark;
24402 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24404 }
24405 _res = NULL;
24406 done:
24407 D(p->level--);
24408 return _res;
24409}
24410
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024411// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024412static void *
24413_tmp_61_rule(Parser *p)
24414{
24415 D(p->level++);
24416 if (p->error_indicator) {
24417 D(p->level--);
24418 return NULL;
24419 }
24420 void * _res = NULL;
24421 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024422 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024423 if (p->error_indicator) {
24424 D(p->level--);
24425 return NULL;
24426 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024427 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24428 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024429 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024430 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024431 )
24432 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024433 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24434 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024435 goto done;
24436 }
24437 p->mark = _mark;
24438 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024440 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024441 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024442 if (p->error_indicator) {
24443 D(p->level--);
24444 return NULL;
24445 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024446 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24447 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024448 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024449 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024450 )
24451 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024452 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24453 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024454 goto done;
24455 }
24456 p->mark = _mark;
24457 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024459 }
24460 _res = NULL;
24461 done:
24462 D(p->level--);
24463 return _res;
24464}
24465
24466// _loop0_63: ',' pattern
24467static asdl_seq *
24468_loop0_63_rule(Parser *p)
24469{
24470 D(p->level++);
24471 if (p->error_indicator) {
24472 D(p->level--);
24473 return NULL;
24474 }
24475 void *_res = NULL;
24476 int _mark = p->mark;
24477 int _start_mark = p->mark;
24478 void **_children = PyMem_Malloc(sizeof(void *));
24479 if (!_children) {
24480 p->error_indicator = 1;
24481 PyErr_NoMemory();
24482 D(p->level--);
24483 return NULL;
24484 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024485 Py_ssize_t _children_capacity = 1;
24486 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024487 { // ',' pattern
24488 if (p->error_indicator) {
24489 D(p->level--);
24490 return NULL;
24491 }
24492 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24493 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024494 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024495 while (
24496 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24497 &&
24498 (elem = pattern_rule(p)) // pattern
24499 )
24500 {
24501 _res = elem;
24502 if (_res == NULL && PyErr_Occurred()) {
24503 p->error_indicator = 1;
24504 PyMem_Free(_children);
24505 D(p->level--);
24506 return NULL;
24507 }
24508 if (_n == _children_capacity) {
24509 _children_capacity *= 2;
24510 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24511 if (!_new_children) {
24512 p->error_indicator = 1;
24513 PyErr_NoMemory();
24514 D(p->level--);
24515 return NULL;
24516 }
24517 _children = _new_children;
24518 }
24519 _children[_n++] = _res;
24520 _mark = p->mark;
24521 }
24522 p->mark = _mark;
24523 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24525 }
24526 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24527 if (!_seq) {
24528 PyMem_Free(_children);
24529 p->error_indicator = 1;
24530 PyErr_NoMemory();
24531 D(p->level--);
24532 return NULL;
24533 }
24534 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24535 PyMem_Free(_children);
24536 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24537 D(p->level--);
24538 return _seq;
24539}
24540
24541// _gather_62: pattern _loop0_63
24542static asdl_seq *
24543_gather_62_rule(Parser *p)
24544{
24545 D(p->level++);
24546 if (p->error_indicator) {
24547 D(p->level--);
24548 return NULL;
24549 }
24550 asdl_seq * _res = NULL;
24551 int _mark = p->mark;
24552 { // pattern _loop0_63
24553 if (p->error_indicator) {
24554 D(p->level--);
24555 return NULL;
24556 }
24557 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 +100024558 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024559 asdl_seq * seq;
24560 if (
24561 (elem = pattern_rule(p)) // pattern
24562 &&
24563 (seq = _loop0_63_rule(p)) // _loop0_63
24564 )
24565 {
24566 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24567 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24568 goto done;
24569 }
24570 p->mark = _mark;
24571 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24573 }
24574 _res = NULL;
24575 done:
24576 D(p->level--);
24577 return _res;
24578}
24579
24580// _loop0_65: ',' keyword_pattern
24581static asdl_seq *
24582_loop0_65_rule(Parser *p)
24583{
24584 D(p->level++);
24585 if (p->error_indicator) {
24586 D(p->level--);
24587 return NULL;
24588 }
24589 void *_res = NULL;
24590 int _mark = p->mark;
24591 int _start_mark = p->mark;
24592 void **_children = PyMem_Malloc(sizeof(void *));
24593 if (!_children) {
24594 p->error_indicator = 1;
24595 PyErr_NoMemory();
24596 D(p->level--);
24597 return NULL;
24598 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024599 Py_ssize_t _children_capacity = 1;
24600 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024601 { // ',' keyword_pattern
24602 if (p->error_indicator) {
24603 D(p->level--);
24604 return NULL;
24605 }
24606 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24607 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024608 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024609 while (
24610 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24611 &&
24612 (elem = keyword_pattern_rule(p)) // keyword_pattern
24613 )
24614 {
24615 _res = elem;
24616 if (_res == NULL && PyErr_Occurred()) {
24617 p->error_indicator = 1;
24618 PyMem_Free(_children);
24619 D(p->level--);
24620 return NULL;
24621 }
24622 if (_n == _children_capacity) {
24623 _children_capacity *= 2;
24624 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24625 if (!_new_children) {
24626 p->error_indicator = 1;
24627 PyErr_NoMemory();
24628 D(p->level--);
24629 return NULL;
24630 }
24631 _children = _new_children;
24632 }
24633 _children[_n++] = _res;
24634 _mark = p->mark;
24635 }
24636 p->mark = _mark;
24637 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24639 }
24640 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24641 if (!_seq) {
24642 PyMem_Free(_children);
24643 p->error_indicator = 1;
24644 PyErr_NoMemory();
24645 D(p->level--);
24646 return NULL;
24647 }
24648 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24649 PyMem_Free(_children);
24650 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24651 D(p->level--);
24652 return _seq;
24653}
24654
24655// _gather_64: keyword_pattern _loop0_65
24656static asdl_seq *
24657_gather_64_rule(Parser *p)
24658{
24659 D(p->level++);
24660 if (p->error_indicator) {
24661 D(p->level--);
24662 return NULL;
24663 }
24664 asdl_seq * _res = NULL;
24665 int _mark = p->mark;
24666 { // keyword_pattern _loop0_65
24667 if (p->error_indicator) {
24668 D(p->level--);
24669 return NULL;
24670 }
24671 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 +100024672 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024673 asdl_seq * seq;
24674 if (
24675 (elem = keyword_pattern_rule(p)) // keyword_pattern
24676 &&
24677 (seq = _loop0_65_rule(p)) // _loop0_65
24678 )
24679 {
24680 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24681 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24682 goto done;
24683 }
24684 p->mark = _mark;
24685 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
24686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
24687 }
24688 _res = NULL;
24689 done:
24690 D(p->level--);
24691 return _res;
24692}
24693
24694// _tmp_66: 'from' expression
24695static void *
24696_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024697{
24698 D(p->level++);
24699 if (p->error_indicator) {
24700 D(p->level--);
24701 return NULL;
24702 }
24703 void * _res = NULL;
24704 int _mark = p->mark;
24705 { // 'from' expression
24706 if (p->error_indicator) {
24707 D(p->level--);
24708 return NULL;
24709 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024710 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024711 Token * _keyword;
24712 expr_ty z;
24713 if (
24714 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
24715 &&
24716 (z = expression_rule(p)) // expression
24717 )
24718 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024719 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 +010024720 _res = z;
24721 if (_res == NULL && PyErr_Occurred()) {
24722 p->error_indicator = 1;
24723 D(p->level--);
24724 return NULL;
24725 }
24726 goto done;
24727 }
24728 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024729 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024731 }
24732 _res = NULL;
24733 done:
24734 D(p->level--);
24735 return _res;
24736}
24737
Brandt Bucher145bf262021-02-26 14:51:55 -080024738// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024739static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024740_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024741{
24742 D(p->level++);
24743 if (p->error_indicator) {
24744 D(p->level--);
24745 return NULL;
24746 }
24747 void * _res = NULL;
24748 int _mark = p->mark;
24749 { // '->' expression
24750 if (p->error_indicator) {
24751 D(p->level--);
24752 return NULL;
24753 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024754 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024755 Token * _literal;
24756 expr_ty z;
24757 if (
24758 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24759 &&
24760 (z = expression_rule(p)) // expression
24761 )
24762 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024763 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024764 _res = z;
24765 if (_res == NULL && PyErr_Occurred()) {
24766 p->error_indicator = 1;
24767 D(p->level--);
24768 return NULL;
24769 }
24770 goto done;
24771 }
24772 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024773 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24775 }
24776 _res = NULL;
24777 done:
24778 D(p->level--);
24779 return _res;
24780}
24781
Brandt Bucher145bf262021-02-26 14:51:55 -080024782// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024783static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024784_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024785{
24786 D(p->level++);
24787 if (p->error_indicator) {
24788 D(p->level--);
24789 return NULL;
24790 }
24791 void * _res = NULL;
24792 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024793 { // '->' expression
24794 if (p->error_indicator) {
24795 D(p->level--);
24796 return NULL;
24797 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024798 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024799 Token * _literal;
24800 expr_ty z;
24801 if (
24802 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24803 &&
24804 (z = expression_rule(p)) // expression
24805 )
24806 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024807 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024808 _res = z;
24809 if (_res == NULL && PyErr_Occurred()) {
24810 p->error_indicator = 1;
24811 D(p->level--);
24812 return NULL;
24813 }
24814 goto done;
24815 }
24816 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024817 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24819 }
24820 _res = NULL;
24821 done:
24822 D(p->level--);
24823 return _res;
24824}
24825
Brandt Bucher145bf262021-02-26 14:51:55 -080024826// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024827static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024828_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024829{
24830 D(p->level++);
24831 if (p->error_indicator) {
24832 D(p->level--);
24833 return NULL;
24834 }
24835 void * _res = NULL;
24836 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024837 { // NEWLINE INDENT
24838 if (p->error_indicator) {
24839 D(p->level--);
24840 return NULL;
24841 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024842 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024843 Token * indent_var;
24844 Token * newline_var;
24845 if (
24846 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24847 &&
24848 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
24849 )
24850 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024851 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 +010024852 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
24853 goto done;
24854 }
24855 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024856 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
24858 }
24859 _res = NULL;
24860 done:
24861 D(p->level--);
24862 return _res;
24863}
24864
Brandt Bucher145bf262021-02-26 14:51:55 -080024865// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024866static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024867_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024868{
24869 D(p->level++);
24870 if (p->error_indicator) {
24871 D(p->level--);
24872 return NULL;
24873 }
24874 void *_res = NULL;
24875 int _mark = p->mark;
24876 int _start_mark = p->mark;
24877 void **_children = PyMem_Malloc(sizeof(void *));
24878 if (!_children) {
24879 p->error_indicator = 1;
24880 PyErr_NoMemory();
24881 D(p->level--);
24882 return NULL;
24883 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024884 Py_ssize_t _children_capacity = 1;
24885 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024886 { // param_no_default
24887 if (p->error_indicator) {
24888 D(p->level--);
24889 return NULL;
24890 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024891 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 +010024892 arg_ty param_no_default_var;
24893 while (
24894 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24895 )
24896 {
24897 _res = param_no_default_var;
24898 if (_n == _children_capacity) {
24899 _children_capacity *= 2;
24900 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24901 if (!_new_children) {
24902 p->error_indicator = 1;
24903 PyErr_NoMemory();
24904 D(p->level--);
24905 return NULL;
24906 }
24907 _children = _new_children;
24908 }
24909 _children[_n++] = _res;
24910 _mark = p->mark;
24911 }
24912 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024913 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024915 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024916 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024917 if (!_seq) {
24918 PyMem_Free(_children);
24919 p->error_indicator = 1;
24920 PyErr_NoMemory();
24921 D(p->level--);
24922 return NULL;
24923 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024924 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024925 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024926 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024927 D(p->level--);
24928 return _seq;
24929}
24930
Brandt Bucher145bf262021-02-26 14:51:55 -080024931// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024932static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024933_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024934{
24935 D(p->level++);
24936 if (p->error_indicator) {
24937 D(p->level--);
24938 return NULL;
24939 }
24940 void *_res = NULL;
24941 int _mark = p->mark;
24942 int _start_mark = p->mark;
24943 void **_children = PyMem_Malloc(sizeof(void *));
24944 if (!_children) {
24945 p->error_indicator = 1;
24946 PyErr_NoMemory();
24947 D(p->level--);
24948 return NULL;
24949 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024950 Py_ssize_t _children_capacity = 1;
24951 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024952 { // param_with_default
24953 if (p->error_indicator) {
24954 D(p->level--);
24955 return NULL;
24956 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024957 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 +010024958 NameDefaultPair* param_with_default_var;
24959 while (
24960 (param_with_default_var = param_with_default_rule(p)) // param_with_default
24961 )
24962 {
24963 _res = param_with_default_var;
24964 if (_n == _children_capacity) {
24965 _children_capacity *= 2;
24966 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24967 if (!_new_children) {
24968 p->error_indicator = 1;
24969 PyErr_NoMemory();
24970 D(p->level--);
24971 return NULL;
24972 }
24973 _children = _new_children;
24974 }
24975 _children[_n++] = _res;
24976 _mark = p->mark;
24977 }
24978 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024979 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
24981 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024982 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024983 if (!_seq) {
24984 PyMem_Free(_children);
24985 p->error_indicator = 1;
24986 PyErr_NoMemory();
24987 D(p->level--);
24988 return NULL;
24989 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010024990 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024991 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080024992 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024993 D(p->level--);
24994 return _seq;
24995}
24996
Brandt Bucher145bf262021-02-26 14:51:55 -080024997// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024998static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024999_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025000{
25001 D(p->level++);
25002 if (p->error_indicator) {
25003 D(p->level--);
25004 return NULL;
25005 }
25006 void *_res = NULL;
25007 int _mark = p->mark;
25008 int _start_mark = p->mark;
25009 void **_children = PyMem_Malloc(sizeof(void *));
25010 if (!_children) {
25011 p->error_indicator = 1;
25012 PyErr_NoMemory();
25013 D(p->level--);
25014 return NULL;
25015 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025016 Py_ssize_t _children_capacity = 1;
25017 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025018 { // param_with_default
25019 if (p->error_indicator) {
25020 D(p->level--);
25021 return NULL;
25022 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025023 D(fprintf(stderr, "%*c> _loop0_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025024 NameDefaultPair* param_with_default_var;
25025 while (
25026 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25027 )
25028 {
25029 _res = param_with_default_var;
25030 if (_n == _children_capacity) {
25031 _children_capacity *= 2;
25032 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25033 if (!_new_children) {
25034 p->error_indicator = 1;
25035 PyErr_NoMemory();
25036 D(p->level--);
25037 return NULL;
25038 }
25039 _children = _new_children;
25040 }
25041 _children[_n++] = _res;
25042 _mark = p->mark;
25043 }
25044 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025045 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25047 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025048 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025049 if (!_seq) {
25050 PyMem_Free(_children);
25051 p->error_indicator = 1;
25052 PyErr_NoMemory();
25053 D(p->level--);
25054 return NULL;
25055 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025056 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025057 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025058 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025059 D(p->level--);
25060 return _seq;
25061}
25062
Brandt Bucher145bf262021-02-26 14:51:55 -080025063// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025064static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025065_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025066{
25067 D(p->level++);
25068 if (p->error_indicator) {
25069 D(p->level--);
25070 return NULL;
25071 }
25072 void *_res = NULL;
25073 int _mark = p->mark;
25074 int _start_mark = p->mark;
25075 void **_children = PyMem_Malloc(sizeof(void *));
25076 if (!_children) {
25077 p->error_indicator = 1;
25078 PyErr_NoMemory();
25079 D(p->level--);
25080 return NULL;
25081 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025082 Py_ssize_t _children_capacity = 1;
25083 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025084 { // param_no_default
25085 if (p->error_indicator) {
25086 D(p->level--);
25087 return NULL;
25088 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025089 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 +010025090 arg_ty param_no_default_var;
25091 while (
25092 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25093 )
25094 {
25095 _res = param_no_default_var;
25096 if (_n == _children_capacity) {
25097 _children_capacity *= 2;
25098 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25099 if (!_new_children) {
25100 p->error_indicator = 1;
25101 PyErr_NoMemory();
25102 D(p->level--);
25103 return NULL;
25104 }
25105 _children = _new_children;
25106 }
25107 _children[_n++] = _res;
25108 _mark = p->mark;
25109 }
25110 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025111 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25113 }
25114 if (_n == 0 || p->error_indicator) {
25115 PyMem_Free(_children);
25116 D(p->level--);
25117 return NULL;
25118 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025119 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025120 if (!_seq) {
25121 PyMem_Free(_children);
25122 p->error_indicator = 1;
25123 PyErr_NoMemory();
25124 D(p->level--);
25125 return NULL;
25126 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025127 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025128 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025129 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025130 D(p->level--);
25131 return _seq;
25132}
25133
Brandt Bucher145bf262021-02-26 14:51:55 -080025134// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025135static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025136_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025137{
25138 D(p->level++);
25139 if (p->error_indicator) {
25140 D(p->level--);
25141 return NULL;
25142 }
25143 void *_res = NULL;
25144 int _mark = p->mark;
25145 int _start_mark = p->mark;
25146 void **_children = PyMem_Malloc(sizeof(void *));
25147 if (!_children) {
25148 p->error_indicator = 1;
25149 PyErr_NoMemory();
25150 D(p->level--);
25151 return NULL;
25152 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025153 Py_ssize_t _children_capacity = 1;
25154 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025155 { // param_with_default
25156 if (p->error_indicator) {
25157 D(p->level--);
25158 return NULL;
25159 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025160 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 +010025161 NameDefaultPair* param_with_default_var;
25162 while (
25163 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25164 )
25165 {
25166 _res = param_with_default_var;
25167 if (_n == _children_capacity) {
25168 _children_capacity *= 2;
25169 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25170 if (!_new_children) {
25171 p->error_indicator = 1;
25172 PyErr_NoMemory();
25173 D(p->level--);
25174 return NULL;
25175 }
25176 _children = _new_children;
25177 }
25178 _children[_n++] = _res;
25179 _mark = p->mark;
25180 }
25181 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025182 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25184 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025185 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025186 if (!_seq) {
25187 PyMem_Free(_children);
25188 p->error_indicator = 1;
25189 PyErr_NoMemory();
25190 D(p->level--);
25191 return NULL;
25192 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025193 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025194 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025195 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025196 D(p->level--);
25197 return _seq;
25198}
25199
Brandt Bucher145bf262021-02-26 14:51:55 -080025200// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025201static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025202_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025203{
25204 D(p->level++);
25205 if (p->error_indicator) {
25206 D(p->level--);
25207 return NULL;
25208 }
25209 void *_res = NULL;
25210 int _mark = p->mark;
25211 int _start_mark = p->mark;
25212 void **_children = PyMem_Malloc(sizeof(void *));
25213 if (!_children) {
25214 p->error_indicator = 1;
25215 PyErr_NoMemory();
25216 D(p->level--);
25217 return NULL;
25218 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025219 Py_ssize_t _children_capacity = 1;
25220 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025221 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025222 if (p->error_indicator) {
25223 D(p->level--);
25224 return NULL;
25225 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025226 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 +030025227 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025228 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025229 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025230 )
25231 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025232 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025233 if (_n == _children_capacity) {
25234 _children_capacity *= 2;
25235 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25236 if (!_new_children) {
25237 p->error_indicator = 1;
25238 PyErr_NoMemory();
25239 D(p->level--);
25240 return NULL;
25241 }
25242 _children = _new_children;
25243 }
25244 _children[_n++] = _res;
25245 _mark = p->mark;
25246 }
25247 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025248 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025250 }
25251 if (_n == 0 || p->error_indicator) {
25252 PyMem_Free(_children);
25253 D(p->level--);
25254 return NULL;
25255 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025256 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025257 if (!_seq) {
25258 PyMem_Free(_children);
25259 p->error_indicator = 1;
25260 PyErr_NoMemory();
25261 D(p->level--);
25262 return NULL;
25263 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025264 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025265 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025266 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025267 D(p->level--);
25268 return _seq;
25269}
25270
Brandt Bucher145bf262021-02-26 14:51:55 -080025271// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025272static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025273_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025274{
25275 D(p->level++);
25276 if (p->error_indicator) {
25277 D(p->level--);
25278 return NULL;
25279 }
25280 void *_res = NULL;
25281 int _mark = p->mark;
25282 int _start_mark = p->mark;
25283 void **_children = PyMem_Malloc(sizeof(void *));
25284 if (!_children) {
25285 p->error_indicator = 1;
25286 PyErr_NoMemory();
25287 D(p->level--);
25288 return NULL;
25289 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025290 Py_ssize_t _children_capacity = 1;
25291 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025292 { // param_no_default
25293 if (p->error_indicator) {
25294 D(p->level--);
25295 return NULL;
25296 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025297 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 +010025298 arg_ty param_no_default_var;
25299 while (
25300 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25301 )
25302 {
25303 _res = param_no_default_var;
25304 if (_n == _children_capacity) {
25305 _children_capacity *= 2;
25306 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25307 if (!_new_children) {
25308 p->error_indicator = 1;
25309 PyErr_NoMemory();
25310 D(p->level--);
25311 return NULL;
25312 }
25313 _children = _new_children;
25314 }
25315 _children[_n++] = _res;
25316 _mark = p->mark;
25317 }
25318 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025319 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025320 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25321 }
25322 if (_n == 0 || p->error_indicator) {
25323 PyMem_Free(_children);
25324 D(p->level--);
25325 return NULL;
25326 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025327 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025328 if (!_seq) {
25329 PyMem_Free(_children);
25330 p->error_indicator = 1;
25331 PyErr_NoMemory();
25332 D(p->level--);
25333 return NULL;
25334 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025335 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025336 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025337 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025338 D(p->level--);
25339 return _seq;
25340}
25341
Brandt Bucher145bf262021-02-26 14:51:55 -080025342// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025343static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025344_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025345{
25346 D(p->level++);
25347 if (p->error_indicator) {
25348 D(p->level--);
25349 return NULL;
25350 }
25351 void *_res = NULL;
25352 int _mark = p->mark;
25353 int _start_mark = p->mark;
25354 void **_children = PyMem_Malloc(sizeof(void *));
25355 if (!_children) {
25356 p->error_indicator = 1;
25357 PyErr_NoMemory();
25358 D(p->level--);
25359 return NULL;
25360 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025361 Py_ssize_t _children_capacity = 1;
25362 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025363 { // param_no_default
25364 if (p->error_indicator) {
25365 D(p->level--);
25366 return NULL;
25367 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025368 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 +010025369 arg_ty param_no_default_var;
25370 while (
25371 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25372 )
25373 {
25374 _res = param_no_default_var;
25375 if (_n == _children_capacity) {
25376 _children_capacity *= 2;
25377 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25378 if (!_new_children) {
25379 p->error_indicator = 1;
25380 PyErr_NoMemory();
25381 D(p->level--);
25382 return NULL;
25383 }
25384 _children = _new_children;
25385 }
25386 _children[_n++] = _res;
25387 _mark = p->mark;
25388 }
25389 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025390 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25392 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025393 if (_n == 0 || p->error_indicator) {
25394 PyMem_Free(_children);
25395 D(p->level--);
25396 return NULL;
25397 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025398 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025399 if (!_seq) {
25400 PyMem_Free(_children);
25401 p->error_indicator = 1;
25402 PyErr_NoMemory();
25403 D(p->level--);
25404 return NULL;
25405 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025406 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025407 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025408 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025409 D(p->level--);
25410 return _seq;
25411}
25412
Brandt Bucher145bf262021-02-26 14:51:55 -080025413// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025414static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025415_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025416{
25417 D(p->level++);
25418 if (p->error_indicator) {
25419 D(p->level--);
25420 return NULL;
25421 }
25422 void *_res = NULL;
25423 int _mark = p->mark;
25424 int _start_mark = p->mark;
25425 void **_children = PyMem_Malloc(sizeof(void *));
25426 if (!_children) {
25427 p->error_indicator = 1;
25428 PyErr_NoMemory();
25429 D(p->level--);
25430 return NULL;
25431 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025432 Py_ssize_t _children_capacity = 1;
25433 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025434 { // param_no_default
25435 if (p->error_indicator) {
25436 D(p->level--);
25437 return NULL;
25438 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025439 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 +010025440 arg_ty param_no_default_var;
25441 while (
25442 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25443 )
25444 {
25445 _res = param_no_default_var;
25446 if (_n == _children_capacity) {
25447 _children_capacity *= 2;
25448 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25449 if (!_new_children) {
25450 p->error_indicator = 1;
25451 PyErr_NoMemory();
25452 D(p->level--);
25453 return NULL;
25454 }
25455 _children = _new_children;
25456 }
25457 _children[_n++] = _res;
25458 _mark = p->mark;
25459 }
25460 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025461 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25463 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025464 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025465 if (!_seq) {
25466 PyMem_Free(_children);
25467 p->error_indicator = 1;
25468 PyErr_NoMemory();
25469 D(p->level--);
25470 return NULL;
25471 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025472 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025473 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025474 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025475 D(p->level--);
25476 return _seq;
25477}
25478
Brandt Bucher145bf262021-02-26 14:51:55 -080025479// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025480static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025481_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025482{
25483 D(p->level++);
25484 if (p->error_indicator) {
25485 D(p->level--);
25486 return NULL;
25487 }
25488 void *_res = NULL;
25489 int _mark = p->mark;
25490 int _start_mark = p->mark;
25491 void **_children = PyMem_Malloc(sizeof(void *));
25492 if (!_children) {
25493 p->error_indicator = 1;
25494 PyErr_NoMemory();
25495 D(p->level--);
25496 return NULL;
25497 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025498 Py_ssize_t _children_capacity = 1;
25499 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025500 { // param_with_default
25501 if (p->error_indicator) {
25502 D(p->level--);
25503 return NULL;
25504 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025505 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 +010025506 NameDefaultPair* param_with_default_var;
25507 while (
25508 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25509 )
25510 {
25511 _res = param_with_default_var;
25512 if (_n == _children_capacity) {
25513 _children_capacity *= 2;
25514 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25515 if (!_new_children) {
25516 p->error_indicator = 1;
25517 PyErr_NoMemory();
25518 D(p->level--);
25519 return NULL;
25520 }
25521 _children = _new_children;
25522 }
25523 _children[_n++] = _res;
25524 _mark = p->mark;
25525 }
25526 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025527 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25529 }
25530 if (_n == 0 || p->error_indicator) {
25531 PyMem_Free(_children);
25532 D(p->level--);
25533 return NULL;
25534 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025535 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025536 if (!_seq) {
25537 PyMem_Free(_children);
25538 p->error_indicator = 1;
25539 PyErr_NoMemory();
25540 D(p->level--);
25541 return NULL;
25542 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025543 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025544 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025545 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025546 D(p->level--);
25547 return _seq;
25548}
25549
Brandt Bucher145bf262021-02-26 14:51:55 -080025550// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025551static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025552_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025553{
25554 D(p->level++);
25555 if (p->error_indicator) {
25556 D(p->level--);
25557 return NULL;
25558 }
25559 void *_res = NULL;
25560 int _mark = p->mark;
25561 int _start_mark = p->mark;
25562 void **_children = PyMem_Malloc(sizeof(void *));
25563 if (!_children) {
25564 p->error_indicator = 1;
25565 PyErr_NoMemory();
25566 D(p->level--);
25567 return NULL;
25568 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025569 Py_ssize_t _children_capacity = 1;
25570 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025571 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025572 if (p->error_indicator) {
25573 D(p->level--);
25574 return NULL;
25575 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025576 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 +030025577 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025578 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025579 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025580 )
25581 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025582 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025583 if (_n == _children_capacity) {
25584 _children_capacity *= 2;
25585 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25586 if (!_new_children) {
25587 p->error_indicator = 1;
25588 PyErr_NoMemory();
25589 D(p->level--);
25590 return NULL;
25591 }
25592 _children = _new_children;
25593 }
25594 _children[_n++] = _res;
25595 _mark = p->mark;
25596 }
25597 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025598 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025600 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025601 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025602 if (!_seq) {
25603 PyMem_Free(_children);
25604 p->error_indicator = 1;
25605 PyErr_NoMemory();
25606 D(p->level--);
25607 return NULL;
25608 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025609 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025610 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025611 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025612 D(p->level--);
25613 return _seq;
25614}
25615
Brandt Bucher145bf262021-02-26 14:51:55 -080025616// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025617static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025618_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025619{
25620 D(p->level++);
25621 if (p->error_indicator) {
25622 D(p->level--);
25623 return NULL;
25624 }
25625 void *_res = NULL;
25626 int _mark = p->mark;
25627 int _start_mark = p->mark;
25628 void **_children = PyMem_Malloc(sizeof(void *));
25629 if (!_children) {
25630 p->error_indicator = 1;
25631 PyErr_NoMemory();
25632 D(p->level--);
25633 return NULL;
25634 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025635 Py_ssize_t _children_capacity = 1;
25636 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025637 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025638 if (p->error_indicator) {
25639 D(p->level--);
25640 return NULL;
25641 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025642 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 +030025643 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025644 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025645 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025646 )
25647 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025648 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025649 if (_n == _children_capacity) {
25650 _children_capacity *= 2;
25651 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25652 if (!_new_children) {
25653 p->error_indicator = 1;
25654 PyErr_NoMemory();
25655 D(p->level--);
25656 return NULL;
25657 }
25658 _children = _new_children;
25659 }
25660 _children[_n++] = _res;
25661 _mark = p->mark;
25662 }
25663 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025664 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025666 }
25667 if (_n == 0 || p->error_indicator) {
25668 PyMem_Free(_children);
25669 D(p->level--);
25670 return NULL;
25671 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025672 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025673 if (!_seq) {
25674 PyMem_Free(_children);
25675 p->error_indicator = 1;
25676 PyErr_NoMemory();
25677 D(p->level--);
25678 return NULL;
25679 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025680 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025681 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025682 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025683 D(p->level--);
25684 return _seq;
25685}
25686
Brandt Bucher145bf262021-02-26 14:51:55 -080025687// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025688static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025689_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025690{
25691 D(p->level++);
25692 if (p->error_indicator) {
25693 D(p->level--);
25694 return NULL;
25695 }
25696 void *_res = NULL;
25697 int _mark = p->mark;
25698 int _start_mark = p->mark;
25699 void **_children = PyMem_Malloc(sizeof(void *));
25700 if (!_children) {
25701 p->error_indicator = 1;
25702 PyErr_NoMemory();
25703 D(p->level--);
25704 return NULL;
25705 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025706 Py_ssize_t _children_capacity = 1;
25707 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025708 { // param_maybe_default
25709 if (p->error_indicator) {
25710 D(p->level--);
25711 return NULL;
25712 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025713 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 +030025714 NameDefaultPair* param_maybe_default_var;
25715 while (
25716 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25717 )
25718 {
25719 _res = param_maybe_default_var;
25720 if (_n == _children_capacity) {
25721 _children_capacity *= 2;
25722 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25723 if (!_new_children) {
25724 p->error_indicator = 1;
25725 PyErr_NoMemory();
25726 D(p->level--);
25727 return NULL;
25728 }
25729 _children = _new_children;
25730 }
25731 _children[_n++] = _res;
25732 _mark = p->mark;
25733 }
25734 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025735 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25737 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025738 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025739 if (!_seq) {
25740 PyMem_Free(_children);
25741 p->error_indicator = 1;
25742 PyErr_NoMemory();
25743 D(p->level--);
25744 return NULL;
25745 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025746 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025747 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025748 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025749 D(p->level--);
25750 return _seq;
25751}
25752
Brandt Bucher145bf262021-02-26 14:51:55 -080025753// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025754static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025755_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025756{
25757 D(p->level++);
25758 if (p->error_indicator) {
25759 D(p->level--);
25760 return NULL;
25761 }
25762 void *_res = NULL;
25763 int _mark = p->mark;
25764 int _start_mark = p->mark;
25765 void **_children = PyMem_Malloc(sizeof(void *));
25766 if (!_children) {
25767 p->error_indicator = 1;
25768 PyErr_NoMemory();
25769 D(p->level--);
25770 return NULL;
25771 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025772 Py_ssize_t _children_capacity = 1;
25773 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025774 { // param_maybe_default
25775 if (p->error_indicator) {
25776 D(p->level--);
25777 return NULL;
25778 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025779 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 +030025780 NameDefaultPair* param_maybe_default_var;
25781 while (
25782 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25783 )
25784 {
25785 _res = param_maybe_default_var;
25786 if (_n == _children_capacity) {
25787 _children_capacity *= 2;
25788 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25789 if (!_new_children) {
25790 p->error_indicator = 1;
25791 PyErr_NoMemory();
25792 D(p->level--);
25793 return NULL;
25794 }
25795 _children = _new_children;
25796 }
25797 _children[_n++] = _res;
25798 _mark = p->mark;
25799 }
25800 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025801 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25803 }
25804 if (_n == 0 || p->error_indicator) {
25805 PyMem_Free(_children);
25806 D(p->level--);
25807 return NULL;
25808 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025809 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025810 if (!_seq) {
25811 PyMem_Free(_children);
25812 p->error_indicator = 1;
25813 PyErr_NoMemory();
25814 D(p->level--);
25815 return NULL;
25816 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025817 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025818 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025819 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025820 D(p->level--);
25821 return _seq;
25822}
25823
Brandt Bucher145bf262021-02-26 14:51:55 -080025824// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025825static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025826_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025827{
25828 D(p->level++);
25829 if (p->error_indicator) {
25830 D(p->level--);
25831 return NULL;
25832 }
25833 void *_res = NULL;
25834 int _mark = p->mark;
25835 int _start_mark = p->mark;
25836 void **_children = PyMem_Malloc(sizeof(void *));
25837 if (!_children) {
25838 p->error_indicator = 1;
25839 PyErr_NoMemory();
25840 D(p->level--);
25841 return NULL;
25842 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025843 Py_ssize_t _children_capacity = 1;
25844 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025845 { // ('@' named_expression NEWLINE)
25846 if (p->error_indicator) {
25847 D(p->level--);
25848 return NULL;
25849 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025850 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070025851 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025852 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070025853 (_tmp_181_var = _tmp_181_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025854 )
25855 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070025856 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025857 if (_n == _children_capacity) {
25858 _children_capacity *= 2;
25859 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25860 if (!_new_children) {
25861 p->error_indicator = 1;
25862 PyErr_NoMemory();
25863 D(p->level--);
25864 return NULL;
25865 }
25866 _children = _new_children;
25867 }
25868 _children[_n++] = _res;
25869 _mark = p->mark;
25870 }
25871 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025872 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
25874 }
25875 if (_n == 0 || p->error_indicator) {
25876 PyMem_Free(_children);
25877 D(p->level--);
25878 return NULL;
25879 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025880 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025881 if (!_seq) {
25882 PyMem_Free(_children);
25883 p->error_indicator = 1;
25884 PyErr_NoMemory();
25885 D(p->level--);
25886 return NULL;
25887 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025888 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025889 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025890 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025891 D(p->level--);
25892 return _seq;
25893}
25894
Brandt Bucher145bf262021-02-26 14:51:55 -080025895// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025896static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025897_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025898{
25899 D(p->level++);
25900 if (p->error_indicator) {
25901 D(p->level--);
25902 return NULL;
25903 }
25904 void * _res = NULL;
25905 int _mark = p->mark;
25906 { // '(' arguments? ')'
25907 if (p->error_indicator) {
25908 D(p->level--);
25909 return NULL;
25910 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025911 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025912 Token * _literal;
25913 Token * _literal_1;
25914 void *z;
25915 if (
25916 (_literal = _PyPegen_expect_token(p, 7)) // token='('
25917 &&
25918 (z = arguments_rule(p), 1) // arguments?
25919 &&
25920 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
25921 )
25922 {
Brandt Bucher145bf262021-02-26 14:51:55 -080025923 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025924 _res = z;
25925 if (_res == NULL && PyErr_Occurred()) {
25926 p->error_indicator = 1;
25927 D(p->level--);
25928 return NULL;
25929 }
25930 goto done;
25931 }
25932 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025933 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
25935 }
25936 _res = NULL;
25937 done:
25938 D(p->level--);
25939 return _res;
25940}
25941
Brandt Bucher145bf262021-02-26 14:51:55 -080025942// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025943static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025944_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025945{
25946 D(p->level++);
25947 if (p->error_indicator) {
25948 D(p->level--);
25949 return NULL;
25950 }
25951 void *_res = NULL;
25952 int _mark = p->mark;
25953 int _start_mark = p->mark;
25954 void **_children = PyMem_Malloc(sizeof(void *));
25955 if (!_children) {
25956 p->error_indicator = 1;
25957 PyErr_NoMemory();
25958 D(p->level--);
25959 return NULL;
25960 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025961 Py_ssize_t _children_capacity = 1;
25962 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025963 { // (',' star_expression)
25964 if (p->error_indicator) {
25965 D(p->level--);
25966 return NULL;
25967 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025968 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070025969 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025970 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070025971 (_tmp_182_var = _tmp_182_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025972 )
25973 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070025974 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025975 if (_n == _children_capacity) {
25976 _children_capacity *= 2;
25977 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25978 if (!_new_children) {
25979 p->error_indicator = 1;
25980 PyErr_NoMemory();
25981 D(p->level--);
25982 return NULL;
25983 }
25984 _children = _new_children;
25985 }
25986 _children[_n++] = _res;
25987 _mark = p->mark;
25988 }
25989 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025990 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
25992 }
25993 if (_n == 0 || p->error_indicator) {
25994 PyMem_Free(_children);
25995 D(p->level--);
25996 return NULL;
25997 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025998 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025999 if (!_seq) {
26000 PyMem_Free(_children);
26001 p->error_indicator = 1;
26002 PyErr_NoMemory();
26003 D(p->level--);
26004 return NULL;
26005 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026006 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026007 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026008 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026009 D(p->level--);
26010 return _seq;
26011}
26012
Brandt Bucher145bf262021-02-26 14:51:55 -080026013// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026014static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026015_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026016{
26017 D(p->level++);
26018 if (p->error_indicator) {
26019 D(p->level--);
26020 return NULL;
26021 }
26022 void *_res = NULL;
26023 int _mark = p->mark;
26024 int _start_mark = p->mark;
26025 void **_children = PyMem_Malloc(sizeof(void *));
26026 if (!_children) {
26027 p->error_indicator = 1;
26028 PyErr_NoMemory();
26029 D(p->level--);
26030 return NULL;
26031 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026032 Py_ssize_t _children_capacity = 1;
26033 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026034 { // ',' star_named_expression
26035 if (p->error_indicator) {
26036 D(p->level--);
26037 return NULL;
26038 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026039 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 +010026040 Token * _literal;
26041 expr_ty elem;
26042 while (
26043 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26044 &&
26045 (elem = star_named_expression_rule(p)) // star_named_expression
26046 )
26047 {
26048 _res = elem;
26049 if (_res == NULL && PyErr_Occurred()) {
26050 p->error_indicator = 1;
26051 PyMem_Free(_children);
26052 D(p->level--);
26053 return NULL;
26054 }
26055 if (_n == _children_capacity) {
26056 _children_capacity *= 2;
26057 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26058 if (!_new_children) {
26059 p->error_indicator = 1;
26060 PyErr_NoMemory();
26061 D(p->level--);
26062 return NULL;
26063 }
26064 _children = _new_children;
26065 }
26066 _children[_n++] = _res;
26067 _mark = p->mark;
26068 }
26069 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026070 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26072 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026073 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026074 if (!_seq) {
26075 PyMem_Free(_children);
26076 p->error_indicator = 1;
26077 PyErr_NoMemory();
26078 D(p->level--);
26079 return NULL;
26080 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026081 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026082 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026083 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026084 D(p->level--);
26085 return _seq;
26086}
26087
Brandt Bucher145bf262021-02-26 14:51:55 -080026088// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026089static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026090_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026091{
26092 D(p->level++);
26093 if (p->error_indicator) {
26094 D(p->level--);
26095 return NULL;
26096 }
26097 asdl_seq * _res = NULL;
26098 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026099 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026100 if (p->error_indicator) {
26101 D(p->level--);
26102 return NULL;
26103 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026104 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 +010026105 expr_ty elem;
26106 asdl_seq * seq;
26107 if (
26108 (elem = star_named_expression_rule(p)) // star_named_expression
26109 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026110 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026111 )
26112 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026113 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 +010026114 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26115 goto done;
26116 }
26117 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026118 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26119 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026120 }
26121 _res = NULL;
26122 done:
26123 D(p->level--);
26124 return _res;
26125}
26126
Brandt Bucher145bf262021-02-26 14:51:55 -080026127// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026128static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026129_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026130{
26131 D(p->level++);
26132 if (p->error_indicator) {
26133 D(p->level--);
26134 return NULL;
26135 }
26136 void *_res = NULL;
26137 int _mark = p->mark;
26138 int _start_mark = p->mark;
26139 void **_children = PyMem_Malloc(sizeof(void *));
26140 if (!_children) {
26141 p->error_indicator = 1;
26142 PyErr_NoMemory();
26143 D(p->level--);
26144 return NULL;
26145 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026146 Py_ssize_t _children_capacity = 1;
26147 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026148 { // (',' expression)
26149 if (p->error_indicator) {
26150 D(p->level--);
26151 return NULL;
26152 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026153 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070026154 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026155 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070026156 (_tmp_183_var = _tmp_183_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026157 )
26158 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070026159 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026160 if (_n == _children_capacity) {
26161 _children_capacity *= 2;
26162 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26163 if (!_new_children) {
26164 p->error_indicator = 1;
26165 PyErr_NoMemory();
26166 D(p->level--);
26167 return NULL;
26168 }
26169 _children = _new_children;
26170 }
26171 _children[_n++] = _res;
26172 _mark = p->mark;
26173 }
26174 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026175 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26177 }
26178 if (_n == 0 || p->error_indicator) {
26179 PyMem_Free(_children);
26180 D(p->level--);
26181 return NULL;
26182 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026183 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026184 if (!_seq) {
26185 PyMem_Free(_children);
26186 p->error_indicator = 1;
26187 PyErr_NoMemory();
26188 D(p->level--);
26189 return NULL;
26190 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026191 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026192 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026193 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026194 D(p->level--);
26195 return _seq;
26196}
26197
Brandt Bucher145bf262021-02-26 14:51:55 -080026198// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026199static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026200_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026201{
26202 D(p->level++);
26203 if (p->error_indicator) {
26204 D(p->level--);
26205 return NULL;
26206 }
26207 void *_res = NULL;
26208 int _mark = p->mark;
26209 int _start_mark = p->mark;
26210 void **_children = PyMem_Malloc(sizeof(void *));
26211 if (!_children) {
26212 p->error_indicator = 1;
26213 PyErr_NoMemory();
26214 D(p->level--);
26215 return NULL;
26216 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026217 Py_ssize_t _children_capacity = 1;
26218 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026219 { // lambda_param_no_default
26220 if (p->error_indicator) {
26221 D(p->level--);
26222 return NULL;
26223 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026224 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 +010026225 arg_ty lambda_param_no_default_var;
26226 while (
26227 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26228 )
26229 {
26230 _res = lambda_param_no_default_var;
26231 if (_n == _children_capacity) {
26232 _children_capacity *= 2;
26233 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26234 if (!_new_children) {
26235 p->error_indicator = 1;
26236 PyErr_NoMemory();
26237 D(p->level--);
26238 return NULL;
26239 }
26240 _children = _new_children;
26241 }
26242 _children[_n++] = _res;
26243 _mark = p->mark;
26244 }
26245 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026246 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026248 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026249 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026250 if (!_seq) {
26251 PyMem_Free(_children);
26252 p->error_indicator = 1;
26253 PyErr_NoMemory();
26254 D(p->level--);
26255 return NULL;
26256 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026257 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026258 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026259 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026260 D(p->level--);
26261 return _seq;
26262}
26263
Brandt Bucher145bf262021-02-26 14:51:55 -080026264// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026265static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026266_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026267{
26268 D(p->level++);
26269 if (p->error_indicator) {
26270 D(p->level--);
26271 return NULL;
26272 }
26273 void *_res = NULL;
26274 int _mark = p->mark;
26275 int _start_mark = p->mark;
26276 void **_children = PyMem_Malloc(sizeof(void *));
26277 if (!_children) {
26278 p->error_indicator = 1;
26279 PyErr_NoMemory();
26280 D(p->level--);
26281 return NULL;
26282 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026283 Py_ssize_t _children_capacity = 1;
26284 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026285 { // lambda_param_with_default
26286 if (p->error_indicator) {
26287 D(p->level--);
26288 return NULL;
26289 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026290 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 +010026291 NameDefaultPair* lambda_param_with_default_var;
26292 while (
26293 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26294 )
26295 {
26296 _res = lambda_param_with_default_var;
26297 if (_n == _children_capacity) {
26298 _children_capacity *= 2;
26299 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26300 if (!_new_children) {
26301 p->error_indicator = 1;
26302 PyErr_NoMemory();
26303 D(p->level--);
26304 return NULL;
26305 }
26306 _children = _new_children;
26307 }
26308 _children[_n++] = _res;
26309 _mark = p->mark;
26310 }
26311 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026312 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26314 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026315 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026316 if (!_seq) {
26317 PyMem_Free(_children);
26318 p->error_indicator = 1;
26319 PyErr_NoMemory();
26320 D(p->level--);
26321 return NULL;
26322 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026323 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026324 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026325 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026326 D(p->level--);
26327 return _seq;
26328}
26329
Brandt Bucher145bf262021-02-26 14:51:55 -080026330// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026331static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026332_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026333{
26334 D(p->level++);
26335 if (p->error_indicator) {
26336 D(p->level--);
26337 return NULL;
26338 }
26339 void *_res = NULL;
26340 int _mark = p->mark;
26341 int _start_mark = p->mark;
26342 void **_children = PyMem_Malloc(sizeof(void *));
26343 if (!_children) {
26344 p->error_indicator = 1;
26345 PyErr_NoMemory();
26346 D(p->level--);
26347 return NULL;
26348 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026349 Py_ssize_t _children_capacity = 1;
26350 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026351 { // lambda_param_with_default
26352 if (p->error_indicator) {
26353 D(p->level--);
26354 return NULL;
26355 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026356 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 +000026357 NameDefaultPair* lambda_param_with_default_var;
26358 while (
26359 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26360 )
26361 {
26362 _res = lambda_param_with_default_var;
26363 if (_n == _children_capacity) {
26364 _children_capacity *= 2;
26365 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26366 if (!_new_children) {
26367 p->error_indicator = 1;
26368 PyErr_NoMemory();
26369 D(p->level--);
26370 return NULL;
26371 }
26372 _children = _new_children;
26373 }
26374 _children[_n++] = _res;
26375 _mark = p->mark;
26376 }
26377 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026378 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26380 }
26381 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26382 if (!_seq) {
26383 PyMem_Free(_children);
26384 p->error_indicator = 1;
26385 PyErr_NoMemory();
26386 D(p->level--);
26387 return NULL;
26388 }
26389 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26390 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026391 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026392 D(p->level--);
26393 return _seq;
26394}
26395
Brandt Bucher145bf262021-02-26 14:51:55 -080026396// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026397static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026398_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026399{
26400 D(p->level++);
26401 if (p->error_indicator) {
26402 D(p->level--);
26403 return NULL;
26404 }
26405 void *_res = NULL;
26406 int _mark = p->mark;
26407 int _start_mark = p->mark;
26408 void **_children = PyMem_Malloc(sizeof(void *));
26409 if (!_children) {
26410 p->error_indicator = 1;
26411 PyErr_NoMemory();
26412 D(p->level--);
26413 return NULL;
26414 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026415 Py_ssize_t _children_capacity = 1;
26416 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026417 { // lambda_param_no_default
26418 if (p->error_indicator) {
26419 D(p->level--);
26420 return NULL;
26421 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026422 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 +000026423 arg_ty lambda_param_no_default_var;
26424 while (
26425 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26426 )
26427 {
26428 _res = lambda_param_no_default_var;
26429 if (_n == _children_capacity) {
26430 _children_capacity *= 2;
26431 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26432 if (!_new_children) {
26433 p->error_indicator = 1;
26434 PyErr_NoMemory();
26435 D(p->level--);
26436 return NULL;
26437 }
26438 _children = _new_children;
26439 }
26440 _children[_n++] = _res;
26441 _mark = p->mark;
26442 }
26443 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026444 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26446 }
26447 if (_n == 0 || p->error_indicator) {
26448 PyMem_Free(_children);
26449 D(p->level--);
26450 return NULL;
26451 }
26452 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26453 if (!_seq) {
26454 PyMem_Free(_children);
26455 p->error_indicator = 1;
26456 PyErr_NoMemory();
26457 D(p->level--);
26458 return NULL;
26459 }
26460 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26461 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026462 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026463 D(p->level--);
26464 return _seq;
26465}
26466
Brandt Bucher145bf262021-02-26 14:51:55 -080026467// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026468static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026469_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026470{
26471 D(p->level++);
26472 if (p->error_indicator) {
26473 D(p->level--);
26474 return NULL;
26475 }
26476 void *_res = NULL;
26477 int _mark = p->mark;
26478 int _start_mark = p->mark;
26479 void **_children = PyMem_Malloc(sizeof(void *));
26480 if (!_children) {
26481 p->error_indicator = 1;
26482 PyErr_NoMemory();
26483 D(p->level--);
26484 return NULL;
26485 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026486 Py_ssize_t _children_capacity = 1;
26487 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026488 { // lambda_param_with_default
26489 if (p->error_indicator) {
26490 D(p->level--);
26491 return NULL;
26492 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026493 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 +030026494 NameDefaultPair* lambda_param_with_default_var;
26495 while (
26496 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26497 )
26498 {
26499 _res = lambda_param_with_default_var;
26500 if (_n == _children_capacity) {
26501 _children_capacity *= 2;
26502 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26503 if (!_new_children) {
26504 p->error_indicator = 1;
26505 PyErr_NoMemory();
26506 D(p->level--);
26507 return NULL;
26508 }
26509 _children = _new_children;
26510 }
26511 _children[_n++] = _res;
26512 _mark = p->mark;
26513 }
26514 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026515 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26517 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026518 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026519 if (!_seq) {
26520 PyMem_Free(_children);
26521 p->error_indicator = 1;
26522 PyErr_NoMemory();
26523 D(p->level--);
26524 return NULL;
26525 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026526 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026527 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026528 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026529 D(p->level--);
26530 return _seq;
26531}
26532
Brandt Bucher145bf262021-02-26 14:51:55 -080026533// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026534static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026535_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026536{
26537 D(p->level++);
26538 if (p->error_indicator) {
26539 D(p->level--);
26540 return NULL;
26541 }
26542 void *_res = NULL;
26543 int _mark = p->mark;
26544 int _start_mark = p->mark;
26545 void **_children = PyMem_Malloc(sizeof(void *));
26546 if (!_children) {
26547 p->error_indicator = 1;
26548 PyErr_NoMemory();
26549 D(p->level--);
26550 return NULL;
26551 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026552 Py_ssize_t _children_capacity = 1;
26553 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026554 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026555 if (p->error_indicator) {
26556 D(p->level--);
26557 return NULL;
26558 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026559 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 +000026560 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026561 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026562 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026563 )
26564 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026565 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026566 if (_n == _children_capacity) {
26567 _children_capacity *= 2;
26568 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26569 if (!_new_children) {
26570 p->error_indicator = 1;
26571 PyErr_NoMemory();
26572 D(p->level--);
26573 return NULL;
26574 }
26575 _children = _new_children;
26576 }
26577 _children[_n++] = _res;
26578 _mark = p->mark;
26579 }
26580 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026581 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026583 }
26584 if (_n == 0 || p->error_indicator) {
26585 PyMem_Free(_children);
26586 D(p->level--);
26587 return NULL;
26588 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026589 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026590 if (!_seq) {
26591 PyMem_Free(_children);
26592 p->error_indicator = 1;
26593 PyErr_NoMemory();
26594 D(p->level--);
26595 return NULL;
26596 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026597 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026598 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026599 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026600 D(p->level--);
26601 return _seq;
26602}
26603
Brandt Bucher145bf262021-02-26 14:51:55 -080026604// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026605static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026606_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026607{
26608 D(p->level++);
26609 if (p->error_indicator) {
26610 D(p->level--);
26611 return NULL;
26612 }
26613 void *_res = NULL;
26614 int _mark = p->mark;
26615 int _start_mark = p->mark;
26616 void **_children = PyMem_Malloc(sizeof(void *));
26617 if (!_children) {
26618 p->error_indicator = 1;
26619 PyErr_NoMemory();
26620 D(p->level--);
26621 return NULL;
26622 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026623 Py_ssize_t _children_capacity = 1;
26624 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026625 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026626 if (p->error_indicator) {
26627 D(p->level--);
26628 return NULL;
26629 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026630 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 +000026631 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026632 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026633 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026634 )
26635 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026636 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026637 if (_n == _children_capacity) {
26638 _children_capacity *= 2;
26639 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26640 if (!_new_children) {
26641 p->error_indicator = 1;
26642 PyErr_NoMemory();
26643 D(p->level--);
26644 return NULL;
26645 }
26646 _children = _new_children;
26647 }
26648 _children[_n++] = _res;
26649 _mark = p->mark;
26650 }
26651 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026652 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26654 }
26655 if (_n == 0 || p->error_indicator) {
26656 PyMem_Free(_children);
26657 D(p->level--);
26658 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026659 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026660 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026661 if (!_seq) {
26662 PyMem_Free(_children);
26663 p->error_indicator = 1;
26664 PyErr_NoMemory();
26665 D(p->level--);
26666 return NULL;
26667 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026668 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026669 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026670 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026671 D(p->level--);
26672 return _seq;
26673}
26674
Brandt Bucher145bf262021-02-26 14:51:55 -080026675// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026676static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026677_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026678{
26679 D(p->level++);
26680 if (p->error_indicator) {
26681 D(p->level--);
26682 return NULL;
26683 }
26684 void *_res = NULL;
26685 int _mark = p->mark;
26686 int _start_mark = p->mark;
26687 void **_children = PyMem_Malloc(sizeof(void *));
26688 if (!_children) {
26689 p->error_indicator = 1;
26690 PyErr_NoMemory();
26691 D(p->level--);
26692 return NULL;
26693 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026694 Py_ssize_t _children_capacity = 1;
26695 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026696 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026697 if (p->error_indicator) {
26698 D(p->level--);
26699 return NULL;
26700 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026701 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 +000026702 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026703 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026704 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026705 )
26706 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026707 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026708 if (_n == _children_capacity) {
26709 _children_capacity *= 2;
26710 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26711 if (!_new_children) {
26712 p->error_indicator = 1;
26713 PyErr_NoMemory();
26714 D(p->level--);
26715 return NULL;
26716 }
26717 _children = _new_children;
26718 }
26719 _children[_n++] = _res;
26720 _mark = p->mark;
26721 }
26722 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026723 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026725 }
26726 if (_n == 0 || p->error_indicator) {
26727 PyMem_Free(_children);
26728 D(p->level--);
26729 return NULL;
26730 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026731 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026732 if (!_seq) {
26733 PyMem_Free(_children);
26734 p->error_indicator = 1;
26735 PyErr_NoMemory();
26736 D(p->level--);
26737 return NULL;
26738 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026739 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026740 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026741 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026742 D(p->level--);
26743 return _seq;
26744}
26745
Brandt Bucher145bf262021-02-26 14:51:55 -080026746// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026747static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026748_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026749{
26750 D(p->level++);
26751 if (p->error_indicator) {
26752 D(p->level--);
26753 return NULL;
26754 }
26755 void *_res = NULL;
26756 int _mark = p->mark;
26757 int _start_mark = p->mark;
26758 void **_children = PyMem_Malloc(sizeof(void *));
26759 if (!_children) {
26760 p->error_indicator = 1;
26761 PyErr_NoMemory();
26762 D(p->level--);
26763 return NULL;
26764 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026765 Py_ssize_t _children_capacity = 1;
26766 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026767 { // lambda_param_no_default
26768 if (p->error_indicator) {
26769 D(p->level--);
26770 return NULL;
26771 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026772 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 +010026773 arg_ty lambda_param_no_default_var;
26774 while (
26775 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26776 )
26777 {
26778 _res = lambda_param_no_default_var;
26779 if (_n == _children_capacity) {
26780 _children_capacity *= 2;
26781 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26782 if (!_new_children) {
26783 p->error_indicator = 1;
26784 PyErr_NoMemory();
26785 D(p->level--);
26786 return NULL;
26787 }
26788 _children = _new_children;
26789 }
26790 _children[_n++] = _res;
26791 _mark = p->mark;
26792 }
26793 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026794 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26796 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026797 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026798 if (!_seq) {
26799 PyMem_Free(_children);
26800 p->error_indicator = 1;
26801 PyErr_NoMemory();
26802 D(p->level--);
26803 return NULL;
26804 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026805 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026806 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026807 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026808 D(p->level--);
26809 return _seq;
26810}
26811
Brandt Bucher145bf262021-02-26 14:51:55 -080026812// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026813static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026814_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026815{
26816 D(p->level++);
26817 if (p->error_indicator) {
26818 D(p->level--);
26819 return NULL;
26820 }
26821 void *_res = NULL;
26822 int _mark = p->mark;
26823 int _start_mark = p->mark;
26824 void **_children = PyMem_Malloc(sizeof(void *));
26825 if (!_children) {
26826 p->error_indicator = 1;
26827 PyErr_NoMemory();
26828 D(p->level--);
26829 return NULL;
26830 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026831 Py_ssize_t _children_capacity = 1;
26832 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026833 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026834 if (p->error_indicator) {
26835 D(p->level--);
26836 return NULL;
26837 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026838 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 +000026839 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026840 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026841 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026842 )
26843 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026844 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026845 if (_n == _children_capacity) {
26846 _children_capacity *= 2;
26847 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26848 if (!_new_children) {
26849 p->error_indicator = 1;
26850 PyErr_NoMemory();
26851 D(p->level--);
26852 return NULL;
26853 }
26854 _children = _new_children;
26855 }
26856 _children[_n++] = _res;
26857 _mark = p->mark;
26858 }
26859 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026860 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026862 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026863 if (_n == 0 || p->error_indicator) {
26864 PyMem_Free(_children);
26865 D(p->level--);
26866 return NULL;
26867 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026868 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026869 if (!_seq) {
26870 PyMem_Free(_children);
26871 p->error_indicator = 1;
26872 PyErr_NoMemory();
26873 D(p->level--);
26874 return NULL;
26875 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026876 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026877 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026878 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026879 D(p->level--);
26880 return _seq;
26881}
26882
Brandt Bucher145bf262021-02-26 14:51:55 -080026883// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026884static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026885_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026886{
26887 D(p->level++);
26888 if (p->error_indicator) {
26889 D(p->level--);
26890 return NULL;
26891 }
26892 void *_res = NULL;
26893 int _mark = p->mark;
26894 int _start_mark = p->mark;
26895 void **_children = PyMem_Malloc(sizeof(void *));
26896 if (!_children) {
26897 p->error_indicator = 1;
26898 PyErr_NoMemory();
26899 D(p->level--);
26900 return NULL;
26901 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026902 Py_ssize_t _children_capacity = 1;
26903 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026904 { // lambda_param_no_default
26905 if (p->error_indicator) {
26906 D(p->level--);
26907 return NULL;
26908 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026909 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 +010026910 arg_ty lambda_param_no_default_var;
26911 while (
26912 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26913 )
26914 {
26915 _res = lambda_param_no_default_var;
26916 if (_n == _children_capacity) {
26917 _children_capacity *= 2;
26918 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26919 if (!_new_children) {
26920 p->error_indicator = 1;
26921 PyErr_NoMemory();
26922 D(p->level--);
26923 return NULL;
26924 }
26925 _children = _new_children;
26926 }
26927 _children[_n++] = _res;
26928 _mark = p->mark;
26929 }
26930 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026931 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26933 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026934 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026935 if (!_seq) {
26936 PyMem_Free(_children);
26937 p->error_indicator = 1;
26938 PyErr_NoMemory();
26939 D(p->level--);
26940 return NULL;
26941 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026942 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026943 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026944 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026945 D(p->level--);
26946 return _seq;
26947}
26948
Brandt Bucher145bf262021-02-26 14:51:55 -080026949// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026950static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026951_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026952{
26953 D(p->level++);
26954 if (p->error_indicator) {
26955 D(p->level--);
26956 return NULL;
26957 }
26958 void *_res = NULL;
26959 int _mark = p->mark;
26960 int _start_mark = p->mark;
26961 void **_children = PyMem_Malloc(sizeof(void *));
26962 if (!_children) {
26963 p->error_indicator = 1;
26964 PyErr_NoMemory();
26965 D(p->level--);
26966 return NULL;
26967 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026968 Py_ssize_t _children_capacity = 1;
26969 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026970 { // lambda_param_with_default
26971 if (p->error_indicator) {
26972 D(p->level--);
26973 return NULL;
26974 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026975 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 +010026976 NameDefaultPair* lambda_param_with_default_var;
26977 while (
26978 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26979 )
26980 {
26981 _res = lambda_param_with_default_var;
26982 if (_n == _children_capacity) {
26983 _children_capacity *= 2;
26984 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26985 if (!_new_children) {
26986 p->error_indicator = 1;
26987 PyErr_NoMemory();
26988 D(p->level--);
26989 return NULL;
26990 }
26991 _children = _new_children;
26992 }
26993 _children[_n++] = _res;
26994 _mark = p->mark;
26995 }
26996 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026997 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26999 }
27000 if (_n == 0 || p->error_indicator) {
27001 PyMem_Free(_children);
27002 D(p->level--);
27003 return NULL;
27004 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027005 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027006 if (!_seq) {
27007 PyMem_Free(_children);
27008 p->error_indicator = 1;
27009 PyErr_NoMemory();
27010 D(p->level--);
27011 return NULL;
27012 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027013 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027014 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027015 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027016 D(p->level--);
27017 return _seq;
27018}
27019
Brandt Bucher145bf262021-02-26 14:51:55 -080027020// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027021static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027022_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027023{
27024 D(p->level++);
27025 if (p->error_indicator) {
27026 D(p->level--);
27027 return NULL;
27028 }
27029 void *_res = NULL;
27030 int _mark = p->mark;
27031 int _start_mark = p->mark;
27032 void **_children = PyMem_Malloc(sizeof(void *));
27033 if (!_children) {
27034 p->error_indicator = 1;
27035 PyErr_NoMemory();
27036 D(p->level--);
27037 return NULL;
27038 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027039 Py_ssize_t _children_capacity = 1;
27040 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027041 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027042 if (p->error_indicator) {
27043 D(p->level--);
27044 return NULL;
27045 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027046 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 +000027047 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027048 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027049 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027050 )
27051 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027052 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027053 if (_n == _children_capacity) {
27054 _children_capacity *= 2;
27055 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27056 if (!_new_children) {
27057 p->error_indicator = 1;
27058 PyErr_NoMemory();
27059 D(p->level--);
27060 return NULL;
27061 }
27062 _children = _new_children;
27063 }
27064 _children[_n++] = _res;
27065 _mark = p->mark;
27066 }
27067 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027068 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027070 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027071 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027072 if (!_seq) {
27073 PyMem_Free(_children);
27074 p->error_indicator = 1;
27075 PyErr_NoMemory();
27076 D(p->level--);
27077 return NULL;
27078 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027079 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027080 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027081 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027082 D(p->level--);
27083 return _seq;
27084}
27085
Brandt Bucher145bf262021-02-26 14:51:55 -080027086// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027087static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027088_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027089{
27090 D(p->level++);
27091 if (p->error_indicator) {
27092 D(p->level--);
27093 return NULL;
27094 }
27095 void *_res = NULL;
27096 int _mark = p->mark;
27097 int _start_mark = p->mark;
27098 void **_children = PyMem_Malloc(sizeof(void *));
27099 if (!_children) {
27100 p->error_indicator = 1;
27101 PyErr_NoMemory();
27102 D(p->level--);
27103 return NULL;
27104 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027105 Py_ssize_t _children_capacity = 1;
27106 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027107 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027108 if (p->error_indicator) {
27109 D(p->level--);
27110 return NULL;
27111 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027112 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 +000027113 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027114 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027115 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027116 )
27117 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027118 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027119 if (_n == _children_capacity) {
27120 _children_capacity *= 2;
27121 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27122 if (!_new_children) {
27123 p->error_indicator = 1;
27124 PyErr_NoMemory();
27125 D(p->level--);
27126 return NULL;
27127 }
27128 _children = _new_children;
27129 }
27130 _children[_n++] = _res;
27131 _mark = p->mark;
27132 }
27133 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027134 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027136 }
27137 if (_n == 0 || p->error_indicator) {
27138 PyMem_Free(_children);
27139 D(p->level--);
27140 return NULL;
27141 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027142 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027143 if (!_seq) {
27144 PyMem_Free(_children);
27145 p->error_indicator = 1;
27146 PyErr_NoMemory();
27147 D(p->level--);
27148 return NULL;
27149 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027150 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027151 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027152 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027153 D(p->level--);
27154 return _seq;
27155}
27156
Brandt Bucher145bf262021-02-26 14:51:55 -080027157// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027158static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027159_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027160{
27161 D(p->level++);
27162 if (p->error_indicator) {
27163 D(p->level--);
27164 return NULL;
27165 }
27166 void *_res = NULL;
27167 int _mark = p->mark;
27168 int _start_mark = p->mark;
27169 void **_children = PyMem_Malloc(sizeof(void *));
27170 if (!_children) {
27171 p->error_indicator = 1;
27172 PyErr_NoMemory();
27173 D(p->level--);
27174 return NULL;
27175 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027176 Py_ssize_t _children_capacity = 1;
27177 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027178 { // ('or' conjunction)
27179 if (p->error_indicator) {
27180 D(p->level--);
27181 return NULL;
27182 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027183 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027184 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027185 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027186 (_tmp_184_var = _tmp_184_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027187 )
27188 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027189 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027190 if (_n == _children_capacity) {
27191 _children_capacity *= 2;
27192 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27193 if (!_new_children) {
27194 p->error_indicator = 1;
27195 PyErr_NoMemory();
27196 D(p->level--);
27197 return NULL;
27198 }
27199 _children = _new_children;
27200 }
27201 _children[_n++] = _res;
27202 _mark = p->mark;
27203 }
27204 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027205 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27207 }
27208 if (_n == 0 || p->error_indicator) {
27209 PyMem_Free(_children);
27210 D(p->level--);
27211 return NULL;
27212 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027213 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027214 if (!_seq) {
27215 PyMem_Free(_children);
27216 p->error_indicator = 1;
27217 PyErr_NoMemory();
27218 D(p->level--);
27219 return NULL;
27220 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027221 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027222 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027223 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027224 D(p->level--);
27225 return _seq;
27226}
27227
Brandt Bucher145bf262021-02-26 14:51:55 -080027228// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027229static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027230_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027231{
27232 D(p->level++);
27233 if (p->error_indicator) {
27234 D(p->level--);
27235 return NULL;
27236 }
27237 void *_res = NULL;
27238 int _mark = p->mark;
27239 int _start_mark = p->mark;
27240 void **_children = PyMem_Malloc(sizeof(void *));
27241 if (!_children) {
27242 p->error_indicator = 1;
27243 PyErr_NoMemory();
27244 D(p->level--);
27245 return NULL;
27246 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027247 Py_ssize_t _children_capacity = 1;
27248 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027249 { // ('and' inversion)
27250 if (p->error_indicator) {
27251 D(p->level--);
27252 return NULL;
27253 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027254 D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027255 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027256 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027257 (_tmp_185_var = _tmp_185_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027258 )
27259 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027260 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027261 if (_n == _children_capacity) {
27262 _children_capacity *= 2;
27263 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27264 if (!_new_children) {
27265 p->error_indicator = 1;
27266 PyErr_NoMemory();
27267 D(p->level--);
27268 return NULL;
27269 }
27270 _children = _new_children;
27271 }
27272 _children[_n++] = _res;
27273 _mark = p->mark;
27274 }
27275 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027276 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027277 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27278 }
27279 if (_n == 0 || p->error_indicator) {
27280 PyMem_Free(_children);
27281 D(p->level--);
27282 return NULL;
27283 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027284 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027285 if (!_seq) {
27286 PyMem_Free(_children);
27287 p->error_indicator = 1;
27288 PyErr_NoMemory();
27289 D(p->level--);
27290 return NULL;
27291 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027292 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027293 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027294 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027295 D(p->level--);
27296 return _seq;
27297}
27298
Brandt Bucher145bf262021-02-26 14:51:55 -080027299// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027300static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027301_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027302{
27303 D(p->level++);
27304 if (p->error_indicator) {
27305 D(p->level--);
27306 return NULL;
27307 }
27308 void *_res = NULL;
27309 int _mark = p->mark;
27310 int _start_mark = p->mark;
27311 void **_children = PyMem_Malloc(sizeof(void *));
27312 if (!_children) {
27313 p->error_indicator = 1;
27314 PyErr_NoMemory();
27315 D(p->level--);
27316 return NULL;
27317 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027318 Py_ssize_t _children_capacity = 1;
27319 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027320 { // compare_op_bitwise_or_pair
27321 if (p->error_indicator) {
27322 D(p->level--);
27323 return NULL;
27324 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027325 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 +010027326 CmpopExprPair* compare_op_bitwise_or_pair_var;
27327 while (
27328 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27329 )
27330 {
27331 _res = compare_op_bitwise_or_pair_var;
27332 if (_n == _children_capacity) {
27333 _children_capacity *= 2;
27334 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27335 if (!_new_children) {
27336 p->error_indicator = 1;
27337 PyErr_NoMemory();
27338 D(p->level--);
27339 return NULL;
27340 }
27341 _children = _new_children;
27342 }
27343 _children[_n++] = _res;
27344 _mark = p->mark;
27345 }
27346 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027347 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27349 }
27350 if (_n == 0 || p->error_indicator) {
27351 PyMem_Free(_children);
27352 D(p->level--);
27353 return NULL;
27354 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027355 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027356 if (!_seq) {
27357 PyMem_Free(_children);
27358 p->error_indicator = 1;
27359 PyErr_NoMemory();
27360 D(p->level--);
27361 return NULL;
27362 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027363 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027364 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027365 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027366 D(p->level--);
27367 return _seq;
27368}
27369
Brandt Bucher145bf262021-02-26 14:51:55 -080027370// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027371static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027372_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027373{
27374 D(p->level++);
27375 if (p->error_indicator) {
27376 D(p->level--);
27377 return NULL;
27378 }
27379 void * _res = NULL;
27380 int _mark = p->mark;
27381 { // '!='
27382 if (p->error_indicator) {
27383 D(p->level--);
27384 return NULL;
27385 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027386 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027387 Token * tok;
27388 if (
27389 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27390 )
27391 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027392 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027393 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027394 if (_res == NULL && PyErr_Occurred()) {
27395 p->error_indicator = 1;
27396 D(p->level--);
27397 return NULL;
27398 }
27399 goto done;
27400 }
27401 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027402 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27404 }
27405 _res = NULL;
27406 done:
27407 D(p->level--);
27408 return _res;
27409}
27410
Brandt Bucher145bf262021-02-26 14:51:55 -080027411// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027412static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027413_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027414{
27415 D(p->level++);
27416 if (p->error_indicator) {
27417 D(p->level--);
27418 return NULL;
27419 }
27420 void *_res = NULL;
27421 int _mark = p->mark;
27422 int _start_mark = p->mark;
27423 void **_children = PyMem_Malloc(sizeof(void *));
27424 if (!_children) {
27425 p->error_indicator = 1;
27426 PyErr_NoMemory();
27427 D(p->level--);
27428 return NULL;
27429 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027430 Py_ssize_t _children_capacity = 1;
27431 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027432 { // ',' slice
27433 if (p->error_indicator) {
27434 D(p->level--);
27435 return NULL;
27436 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027437 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027438 Token * _literal;
27439 expr_ty elem;
27440 while (
27441 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27442 &&
27443 (elem = slice_rule(p)) // slice
27444 )
27445 {
27446 _res = elem;
27447 if (_res == NULL && PyErr_Occurred()) {
27448 p->error_indicator = 1;
27449 PyMem_Free(_children);
27450 D(p->level--);
27451 return NULL;
27452 }
27453 if (_n == _children_capacity) {
27454 _children_capacity *= 2;
27455 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27456 if (!_new_children) {
27457 p->error_indicator = 1;
27458 PyErr_NoMemory();
27459 D(p->level--);
27460 return NULL;
27461 }
27462 _children = _new_children;
27463 }
27464 _children[_n++] = _res;
27465 _mark = p->mark;
27466 }
27467 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027468 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27470 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027471 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027472 if (!_seq) {
27473 PyMem_Free(_children);
27474 p->error_indicator = 1;
27475 PyErr_NoMemory();
27476 D(p->level--);
27477 return NULL;
27478 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027479 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027480 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027481 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027482 D(p->level--);
27483 return _seq;
27484}
27485
Brandt Bucher145bf262021-02-26 14:51:55 -080027486// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027487static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027488_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027489{
27490 D(p->level++);
27491 if (p->error_indicator) {
27492 D(p->level--);
27493 return NULL;
27494 }
27495 asdl_seq * _res = NULL;
27496 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027497 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027498 if (p->error_indicator) {
27499 D(p->level--);
27500 return NULL;
27501 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027502 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 +010027503 expr_ty elem;
27504 asdl_seq * seq;
27505 if (
27506 (elem = slice_rule(p)) // slice
27507 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027508 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027509 )
27510 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027511 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 +010027512 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27513 goto done;
27514 }
27515 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027516 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027518 }
27519 _res = NULL;
27520 done:
27521 D(p->level--);
27522 return _res;
27523}
27524
Brandt Bucher145bf262021-02-26 14:51:55 -080027525// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027526static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027527_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027528{
27529 D(p->level++);
27530 if (p->error_indicator) {
27531 D(p->level--);
27532 return NULL;
27533 }
27534 void * _res = NULL;
27535 int _mark = p->mark;
27536 { // ':' expression?
27537 if (p->error_indicator) {
27538 D(p->level--);
27539 return NULL;
27540 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027541 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027542 Token * _literal;
27543 void *d;
27544 if (
27545 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27546 &&
27547 (d = expression_rule(p), 1) // expression?
27548 )
27549 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027550 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027551 _res = d;
27552 if (_res == NULL && PyErr_Occurred()) {
27553 p->error_indicator = 1;
27554 D(p->level--);
27555 return NULL;
27556 }
27557 goto done;
27558 }
27559 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027560 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27562 }
27563 _res = NULL;
27564 done:
27565 D(p->level--);
27566 return _res;
27567}
27568
Brandt Bucher145bf262021-02-26 14:51:55 -080027569// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027570static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027571_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027572{
27573 D(p->level++);
27574 if (p->error_indicator) {
27575 D(p->level--);
27576 return NULL;
27577 }
27578 void * _res = NULL;
27579 int _mark = p->mark;
27580 { // tuple
27581 if (p->error_indicator) {
27582 D(p->level--);
27583 return NULL;
27584 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027585 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027586 expr_ty tuple_var;
27587 if (
27588 (tuple_var = tuple_rule(p)) // tuple
27589 )
27590 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027591 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027592 _res = tuple_var;
27593 goto done;
27594 }
27595 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027596 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27598 }
27599 { // group
27600 if (p->error_indicator) {
27601 D(p->level--);
27602 return NULL;
27603 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027604 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027605 expr_ty group_var;
27606 if (
27607 (group_var = group_rule(p)) // group
27608 )
27609 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027610 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027611 _res = group_var;
27612 goto done;
27613 }
27614 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027615 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27617 }
27618 { // genexp
27619 if (p->error_indicator) {
27620 D(p->level--);
27621 return NULL;
27622 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027623 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027624 expr_ty genexp_var;
27625 if (
27626 (genexp_var = genexp_rule(p)) // genexp
27627 )
27628 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027629 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027630 _res = genexp_var;
27631 goto done;
27632 }
27633 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027634 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27636 }
27637 _res = NULL;
27638 done:
27639 D(p->level--);
27640 return _res;
27641}
27642
Brandt Bucher145bf262021-02-26 14:51:55 -080027643// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027644static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027645_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027646{
27647 D(p->level++);
27648 if (p->error_indicator) {
27649 D(p->level--);
27650 return NULL;
27651 }
27652 void * _res = NULL;
27653 int _mark = p->mark;
27654 { // list
27655 if (p->error_indicator) {
27656 D(p->level--);
27657 return NULL;
27658 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027659 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027660 expr_ty list_var;
27661 if (
27662 (list_var = list_rule(p)) // list
27663 )
27664 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027665 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027666 _res = list_var;
27667 goto done;
27668 }
27669 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027670 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27672 }
27673 { // listcomp
27674 if (p->error_indicator) {
27675 D(p->level--);
27676 return NULL;
27677 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027678 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027679 expr_ty listcomp_var;
27680 if (
27681 (listcomp_var = listcomp_rule(p)) // listcomp
27682 )
27683 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027684 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027685 _res = listcomp_var;
27686 goto done;
27687 }
27688 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027689 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
27691 }
27692 _res = NULL;
27693 done:
27694 D(p->level--);
27695 return _res;
27696}
27697
Brandt Bucher145bf262021-02-26 14:51:55 -080027698// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027699static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027700_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027701{
27702 D(p->level++);
27703 if (p->error_indicator) {
27704 D(p->level--);
27705 return NULL;
27706 }
27707 void * _res = NULL;
27708 int _mark = p->mark;
27709 { // dict
27710 if (p->error_indicator) {
27711 D(p->level--);
27712 return NULL;
27713 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027714 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027715 expr_ty dict_var;
27716 if (
27717 (dict_var = dict_rule(p)) // dict
27718 )
27719 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027720 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027721 _res = dict_var;
27722 goto done;
27723 }
27724 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027725 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
27727 }
27728 { // set
27729 if (p->error_indicator) {
27730 D(p->level--);
27731 return NULL;
27732 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027733 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027734 expr_ty set_var;
27735 if (
27736 (set_var = set_rule(p)) // set
27737 )
27738 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027739 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027740 _res = set_var;
27741 goto done;
27742 }
27743 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027744 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
27746 }
27747 { // dictcomp
27748 if (p->error_indicator) {
27749 D(p->level--);
27750 return NULL;
27751 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027752 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027753 expr_ty dictcomp_var;
27754 if (
27755 (dictcomp_var = dictcomp_rule(p)) // dictcomp
27756 )
27757 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027758 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027759 _res = dictcomp_var;
27760 goto done;
27761 }
27762 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027763 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027764 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
27765 }
27766 { // setcomp
27767 if (p->error_indicator) {
27768 D(p->level--);
27769 return NULL;
27770 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027771 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027772 expr_ty setcomp_var;
27773 if (
27774 (setcomp_var = setcomp_rule(p)) // setcomp
27775 )
27776 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027777 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027778 _res = setcomp_var;
27779 goto done;
27780 }
27781 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027782 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
27784 }
27785 _res = NULL;
27786 done:
27787 D(p->level--);
27788 return _res;
27789}
27790
Brandt Bucher145bf262021-02-26 14:51:55 -080027791// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027792static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027793_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027794{
27795 D(p->level++);
27796 if (p->error_indicator) {
27797 D(p->level--);
27798 return NULL;
27799 }
27800 void *_res = NULL;
27801 int _mark = p->mark;
27802 int _start_mark = p->mark;
27803 void **_children = PyMem_Malloc(sizeof(void *));
27804 if (!_children) {
27805 p->error_indicator = 1;
27806 PyErr_NoMemory();
27807 D(p->level--);
27808 return NULL;
27809 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027810 Py_ssize_t _children_capacity = 1;
27811 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027812 { // STRING
27813 if (p->error_indicator) {
27814 D(p->level--);
27815 return NULL;
27816 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027817 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027818 expr_ty string_var;
27819 while (
27820 (string_var = _PyPegen_string_token(p)) // STRING
27821 )
27822 {
27823 _res = string_var;
27824 if (_n == _children_capacity) {
27825 _children_capacity *= 2;
27826 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27827 if (!_new_children) {
27828 p->error_indicator = 1;
27829 PyErr_NoMemory();
27830 D(p->level--);
27831 return NULL;
27832 }
27833 _children = _new_children;
27834 }
27835 _children[_n++] = _res;
27836 _mark = p->mark;
27837 }
27838 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027839 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
27841 }
27842 if (_n == 0 || p->error_indicator) {
27843 PyMem_Free(_children);
27844 D(p->level--);
27845 return NULL;
27846 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027847 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027848 if (!_seq) {
27849 PyMem_Free(_children);
27850 p->error_indicator = 1;
27851 PyErr_NoMemory();
27852 D(p->level--);
27853 return NULL;
27854 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027855 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027856 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027857 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027858 D(p->level--);
27859 return _seq;
27860}
27861
Brandt Bucher145bf262021-02-26 14:51:55 -080027862// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027863static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027864_tmp_115_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 { // star_named_expression ',' star_named_expressions?
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_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027879 Token * _literal;
27880 expr_ty y;
27881 void *z;
27882 if (
27883 (y = star_named_expression_rule(p)) // star_named_expression
27884 &&
27885 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27886 &&
27887 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
27888 )
27889 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027890 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 +010027891 _res = _PyPegen_seq_insert_in_front ( p , y , z );
27892 if (_res == NULL && PyErr_Occurred()) {
27893 p->error_indicator = 1;
27894 D(p->level--);
27895 return NULL;
27896 }
27897 goto done;
27898 }
27899 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027900 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
27902 }
27903 _res = NULL;
27904 done:
27905 D(p->level--);
27906 return _res;
27907}
27908
Brandt Bucher145bf262021-02-26 14:51:55 -080027909// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027910static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027911_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027912{
27913 D(p->level++);
27914 if (p->error_indicator) {
27915 D(p->level--);
27916 return NULL;
27917 }
27918 void * _res = NULL;
27919 int _mark = p->mark;
27920 { // yield_expr
27921 if (p->error_indicator) {
27922 D(p->level--);
27923 return NULL;
27924 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027925 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027926 expr_ty yield_expr_var;
27927 if (
27928 (yield_expr_var = yield_expr_rule(p)) // yield_expr
27929 )
27930 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027931 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 +010027932 _res = yield_expr_var;
27933 goto done;
27934 }
27935 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027936 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
27938 }
27939 { // named_expression
27940 if (p->error_indicator) {
27941 D(p->level--);
27942 return NULL;
27943 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027944 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027945 expr_ty named_expression_var;
27946 if (
27947 (named_expression_var = named_expression_rule(p)) // named_expression
27948 )
27949 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027950 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 +010027951 _res = named_expression_var;
27952 goto done;
27953 }
27954 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027955 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
27957 }
27958 _res = NULL;
27959 done:
27960 D(p->level--);
27961 return _res;
27962}
27963
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070027964// _tmp_117: assigment_expression | expression !':='
27965static void *
27966_tmp_117_rule(Parser *p)
27967{
27968 D(p->level++);
27969 if (p->error_indicator) {
27970 D(p->level--);
27971 return NULL;
27972 }
27973 void * _res = NULL;
27974 int _mark = p->mark;
27975 { // assigment_expression
27976 if (p->error_indicator) {
27977 D(p->level--);
27978 return NULL;
27979 }
27980 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
27981 expr_ty assigment_expression_var;
27982 if (
27983 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
27984 )
27985 {
27986 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
27987 _res = assigment_expression_var;
27988 goto done;
27989 }
27990 p->mark = _mark;
27991 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
27992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
27993 }
27994 { // expression !':='
27995 if (p->error_indicator) {
27996 D(p->level--);
27997 return NULL;
27998 }
27999 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28000 expr_ty expression_var;
28001 if (
28002 (expression_var = expression_rule(p)) // expression
28003 &&
28004 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
28005 )
28006 {
28007 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28008 _res = expression_var;
28009 goto done;
28010 }
28011 p->mark = _mark;
28012 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
28014 }
28015 _res = NULL;
28016 done:
28017 D(p->level--);
28018 return _res;
28019}
28020
28021// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028022static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028023_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028024{
28025 D(p->level++);
28026 if (p->error_indicator) {
28027 D(p->level--);
28028 return NULL;
28029 }
28030 void *_res = NULL;
28031 int _mark = p->mark;
28032 int _start_mark = p->mark;
28033 void **_children = PyMem_Malloc(sizeof(void *));
28034 if (!_children) {
28035 p->error_indicator = 1;
28036 PyErr_NoMemory();
28037 D(p->level--);
28038 return NULL;
28039 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028040 Py_ssize_t _children_capacity = 1;
28041 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028042 { // ',' double_starred_kvpair
28043 if (p->error_indicator) {
28044 D(p->level--);
28045 return NULL;
28046 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028047 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028048 Token * _literal;
28049 KeyValuePair* elem;
28050 while (
28051 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28052 &&
28053 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28054 )
28055 {
28056 _res = elem;
28057 if (_res == NULL && PyErr_Occurred()) {
28058 p->error_indicator = 1;
28059 PyMem_Free(_children);
28060 D(p->level--);
28061 return NULL;
28062 }
28063 if (_n == _children_capacity) {
28064 _children_capacity *= 2;
28065 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28066 if (!_new_children) {
28067 p->error_indicator = 1;
28068 PyErr_NoMemory();
28069 D(p->level--);
28070 return NULL;
28071 }
28072 _children = _new_children;
28073 }
28074 _children[_n++] = _res;
28075 _mark = p->mark;
28076 }
28077 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028078 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28080 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028081 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028082 if (!_seq) {
28083 PyMem_Free(_children);
28084 p->error_indicator = 1;
28085 PyErr_NoMemory();
28086 D(p->level--);
28087 return NULL;
28088 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028089 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028090 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028091 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028092 D(p->level--);
28093 return _seq;
28094}
28095
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028096// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028097static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028098_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028099{
28100 D(p->level++);
28101 if (p->error_indicator) {
28102 D(p->level--);
28103 return NULL;
28104 }
28105 asdl_seq * _res = NULL;
28106 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028107 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028108 if (p->error_indicator) {
28109 D(p->level--);
28110 return NULL;
28111 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028112 D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028113 KeyValuePair* elem;
28114 asdl_seq * seq;
28115 if (
28116 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28117 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028118 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028119 )
28120 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028121 D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028122 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28123 goto done;
28124 }
28125 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028126 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
28127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028128 }
28129 _res = NULL;
28130 done:
28131 D(p->level--);
28132 return _res;
28133}
28134
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028135// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028136static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028137_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028138{
28139 D(p->level++);
28140 if (p->error_indicator) {
28141 D(p->level--);
28142 return NULL;
28143 }
28144 void *_res = NULL;
28145 int _mark = p->mark;
28146 int _start_mark = p->mark;
28147 void **_children = PyMem_Malloc(sizeof(void *));
28148 if (!_children) {
28149 p->error_indicator = 1;
28150 PyErr_NoMemory();
28151 D(p->level--);
28152 return NULL;
28153 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028154 Py_ssize_t _children_capacity = 1;
28155 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028156 { // for_if_clause
28157 if (p->error_indicator) {
28158 D(p->level--);
28159 return NULL;
28160 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028161 D(fprintf(stderr, "%*c> _loop1_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028162 comprehension_ty for_if_clause_var;
28163 while (
28164 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28165 )
28166 {
28167 _res = for_if_clause_var;
28168 if (_n == _children_capacity) {
28169 _children_capacity *= 2;
28170 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28171 if (!_new_children) {
28172 p->error_indicator = 1;
28173 PyErr_NoMemory();
28174 D(p->level--);
28175 return NULL;
28176 }
28177 _children = _new_children;
28178 }
28179 _children[_n++] = _res;
28180 _mark = p->mark;
28181 }
28182 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028183 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28185 }
28186 if (_n == 0 || p->error_indicator) {
28187 PyMem_Free(_children);
28188 D(p->level--);
28189 return NULL;
28190 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028191 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028192 if (!_seq) {
28193 PyMem_Free(_children);
28194 p->error_indicator = 1;
28195 PyErr_NoMemory();
28196 D(p->level--);
28197 return NULL;
28198 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028199 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028200 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028201 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028202 D(p->level--);
28203 return _seq;
28204}
28205
Brandt Bucher145bf262021-02-26 14:51:55 -080028206// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028207static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028208_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028209{
28210 D(p->level++);
28211 if (p->error_indicator) {
28212 D(p->level--);
28213 return NULL;
28214 }
28215 void *_res = NULL;
28216 int _mark = p->mark;
28217 int _start_mark = p->mark;
28218 void **_children = PyMem_Malloc(sizeof(void *));
28219 if (!_children) {
28220 p->error_indicator = 1;
28221 PyErr_NoMemory();
28222 D(p->level--);
28223 return NULL;
28224 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028225 Py_ssize_t _children_capacity = 1;
28226 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028227 { // ('if' disjunction)
28228 if (p->error_indicator) {
28229 D(p->level--);
28230 return NULL;
28231 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028232 D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028233 void *_tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028234 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028235 (_tmp_186_var = _tmp_186_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028236 )
28237 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028238 _res = _tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028239 if (_n == _children_capacity) {
28240 _children_capacity *= 2;
28241 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28242 if (!_new_children) {
28243 p->error_indicator = 1;
28244 PyErr_NoMemory();
28245 D(p->level--);
28246 return NULL;
28247 }
28248 _children = _new_children;
28249 }
28250 _children[_n++] = _res;
28251 _mark = p->mark;
28252 }
28253 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028254 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28256 }
28257 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28258 if (!_seq) {
28259 PyMem_Free(_children);
28260 p->error_indicator = 1;
28261 PyErr_NoMemory();
28262 D(p->level--);
28263 return NULL;
28264 }
28265 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28266 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028267 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028268 D(p->level--);
28269 return _seq;
28270}
28271
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028272// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028273static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028274_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028275{
28276 D(p->level++);
28277 if (p->error_indicator) {
28278 D(p->level--);
28279 return NULL;
28280 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028281 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028282 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028283 int _start_mark = p->mark;
28284 void **_children = PyMem_Malloc(sizeof(void *));
28285 if (!_children) {
28286 p->error_indicator = 1;
28287 PyErr_NoMemory();
28288 D(p->level--);
28289 return NULL;
28290 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028291 Py_ssize_t _children_capacity = 1;
28292 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028293 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010028294 if (p->error_indicator) {
28295 D(p->level--);
28296 return NULL;
28297 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028298 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028299 void *_tmp_187_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028300 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028301 (_tmp_187_var = _tmp_187_rule(p)) // 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028302 )
28303 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028304 _res = _tmp_187_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028305 if (_n == _children_capacity) {
28306 _children_capacity *= 2;
28307 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28308 if (!_new_children) {
28309 p->error_indicator = 1;
28310 PyErr_NoMemory();
28311 D(p->level--);
28312 return NULL;
28313 }
28314 _children = _new_children;
28315 }
28316 _children[_n++] = _res;
28317 _mark = p->mark;
28318 }
28319 p->mark = _mark;
28320 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
28321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28322 }
28323 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28324 if (!_seq) {
28325 PyMem_Free(_children);
28326 p->error_indicator = 1;
28327 PyErr_NoMemory();
28328 D(p->level--);
28329 return NULL;
28330 }
28331 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28332 PyMem_Free(_children);
28333 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
28334 D(p->level--);
28335 return _seq;
28336}
28337
28338// _loop0_124: ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28339static asdl_seq *
28340_loop0_124_rule(Parser *p)
28341{
28342 D(p->level++);
28343 if (p->error_indicator) {
28344 D(p->level--);
28345 return NULL;
28346 }
28347 void *_res = NULL;
28348 int _mark = p->mark;
28349 int _start_mark = p->mark;
28350 void **_children = PyMem_Malloc(sizeof(void *));
28351 if (!_children) {
28352 p->error_indicator = 1;
28353 PyErr_NoMemory();
28354 D(p->level--);
28355 return NULL;
28356 }
28357 Py_ssize_t _children_capacity = 1;
28358 Py_ssize_t _n = 0;
28359 { // ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28360 if (p->error_indicator) {
28361 D(p->level--);
28362 return NULL;
28363 }
28364 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010028365 Token * _literal;
28366 void *elem;
28367 while (
28368 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28369 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028370 (elem = _tmp_188_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028371 )
28372 {
28373 _res = elem;
28374 if (_res == NULL && PyErr_Occurred()) {
28375 p->error_indicator = 1;
28376 PyMem_Free(_children);
28377 D(p->level--);
28378 return NULL;
28379 }
28380 if (_n == _children_capacity) {
28381 _children_capacity *= 2;
28382 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28383 if (!_new_children) {
28384 p->error_indicator = 1;
28385 PyErr_NoMemory();
28386 D(p->level--);
28387 return NULL;
28388 }
28389 _children = _new_children;
28390 }
28391 _children[_n++] = _res;
28392 _mark = p->mark;
28393 }
28394 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028395 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
28396 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028397 }
28398 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28399 if (!_seq) {
28400 PyMem_Free(_children);
28401 p->error_indicator = 1;
28402 PyErr_NoMemory();
28403 D(p->level--);
28404 return NULL;
28405 }
28406 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28407 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028408 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028409 D(p->level--);
28410 return _seq;
28411}
28412
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028413// _gather_123:
28414// | (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028415static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028416_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028417{
28418 D(p->level++);
28419 if (p->error_indicator) {
28420 D(p->level--);
28421 return NULL;
28422 }
28423 asdl_seq * _res = NULL;
28424 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028425 { // (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028426 if (p->error_indicator) {
28427 D(p->level--);
28428 return NULL;
28429 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028430 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028431 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028432 asdl_seq * seq;
28433 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028434 (elem = _tmp_188_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028435 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028436 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028437 )
28438 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028439 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028440 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28441 goto done;
28442 }
28443 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028444 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
28445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028446 }
28447 _res = NULL;
28448 done:
28449 D(p->level--);
28450 return _res;
28451}
28452
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028453// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080028454static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028455_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028456{
28457 D(p->level++);
28458 if (p->error_indicator) {
28459 D(p->level--);
28460 return NULL;
28461 }
28462 void * _res = NULL;
28463 int _mark = p->mark;
28464 { // ',' kwargs
28465 if (p->error_indicator) {
28466 D(p->level--);
28467 return NULL;
28468 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028469 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028470 Token * _literal;
28471 asdl_seq* k;
28472 if (
28473 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28474 &&
28475 (k = kwargs_rule(p)) // kwargs
28476 )
28477 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028478 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028479 _res = k;
28480 if (_res == NULL && PyErr_Occurred()) {
28481 p->error_indicator = 1;
28482 D(p->level--);
28483 return NULL;
28484 }
28485 goto done;
28486 }
28487 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028488 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28490 }
28491 _res = NULL;
28492 done:
28493 D(p->level--);
28494 return _res;
28495}
28496
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028497// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028498static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028499_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028500{
28501 D(p->level++);
28502 if (p->error_indicator) {
28503 D(p->level--);
28504 return NULL;
28505 }
28506 void *_res = NULL;
28507 int _mark = p->mark;
28508 int _start_mark = p->mark;
28509 void **_children = PyMem_Malloc(sizeof(void *));
28510 if (!_children) {
28511 p->error_indicator = 1;
28512 PyErr_NoMemory();
28513 D(p->level--);
28514 return NULL;
28515 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028516 Py_ssize_t _children_capacity = 1;
28517 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028518 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028519 if (p->error_indicator) {
28520 D(p->level--);
28521 return NULL;
28522 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028523 D(fprintf(stderr, "%*c> _loop0_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028524 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028525 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028526 while (
28527 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28528 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028529 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028530 )
28531 {
28532 _res = elem;
28533 if (_res == NULL && PyErr_Occurred()) {
28534 p->error_indicator = 1;
28535 PyMem_Free(_children);
28536 D(p->level--);
28537 return NULL;
28538 }
28539 if (_n == _children_capacity) {
28540 _children_capacity *= 2;
28541 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28542 if (!_new_children) {
28543 p->error_indicator = 1;
28544 PyErr_NoMemory();
28545 D(p->level--);
28546 return NULL;
28547 }
28548 _children = _new_children;
28549 }
28550 _children[_n++] = _res;
28551 _mark = p->mark;
28552 }
28553 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028554 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028556 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028557 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028558 if (!_seq) {
28559 PyMem_Free(_children);
28560 p->error_indicator = 1;
28561 PyErr_NoMemory();
28562 D(p->level--);
28563 return NULL;
28564 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028565 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028566 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028567 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028568 D(p->level--);
28569 return _seq;
28570}
28571
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028572// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028573static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028574_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028575{
28576 D(p->level++);
28577 if (p->error_indicator) {
28578 D(p->level--);
28579 return NULL;
28580 }
28581 asdl_seq * _res = NULL;
28582 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028583 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028584 if (p->error_indicator) {
28585 D(p->level--);
28586 return NULL;
28587 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028588 D(fprintf(stderr, "%*c> _gather_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028589 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028590 asdl_seq * seq;
28591 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028592 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028593 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028594 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028595 )
28596 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028597 D(fprintf(stderr, "%*c+ _gather_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028598 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28599 goto done;
28600 }
28601 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028602 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
28603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028604 }
28605 _res = NULL;
28606 done:
28607 D(p->level--);
28608 return _res;
28609}
28610
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028611// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028612static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028613_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028614{
28615 D(p->level++);
28616 if (p->error_indicator) {
28617 D(p->level--);
28618 return NULL;
28619 }
28620 void *_res = NULL;
28621 int _mark = p->mark;
28622 int _start_mark = p->mark;
28623 void **_children = PyMem_Malloc(sizeof(void *));
28624 if (!_children) {
28625 p->error_indicator = 1;
28626 PyErr_NoMemory();
28627 D(p->level--);
28628 return NULL;
28629 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028630 Py_ssize_t _children_capacity = 1;
28631 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028632 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028633 if (p->error_indicator) {
28634 D(p->level--);
28635 return NULL;
28636 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028637 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028638 Token * _literal;
28639 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028640 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028641 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28642 &&
28643 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028644 )
28645 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028646 _res = elem;
28647 if (_res == NULL && PyErr_Occurred()) {
28648 p->error_indicator = 1;
28649 PyMem_Free(_children);
28650 D(p->level--);
28651 return NULL;
28652 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028653 if (_n == _children_capacity) {
28654 _children_capacity *= 2;
28655 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28656 if (!_new_children) {
28657 p->error_indicator = 1;
28658 PyErr_NoMemory();
28659 D(p->level--);
28660 return NULL;
28661 }
28662 _children = _new_children;
28663 }
28664 _children[_n++] = _res;
28665 _mark = p->mark;
28666 }
28667 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028668 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028670 }
28671 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28672 if (!_seq) {
28673 PyMem_Free(_children);
28674 p->error_indicator = 1;
28675 PyErr_NoMemory();
28676 D(p->level--);
28677 return NULL;
28678 }
28679 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28680 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028681 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028682 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028683 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028684}
28685
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028686// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028687static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028688_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028689{
28690 D(p->level++);
28691 if (p->error_indicator) {
28692 D(p->level--);
28693 return NULL;
28694 }
28695 asdl_seq * _res = NULL;
28696 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028697 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080028698 if (p->error_indicator) {
28699 D(p->level--);
28700 return NULL;
28701 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028702 D(fprintf(stderr, "%*c> _gather_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028703 KeywordOrStarred* elem;
28704 asdl_seq * seq;
28705 if (
28706 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28707 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028708 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080028709 )
28710 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028711 D(fprintf(stderr, "%*c+ _gather_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028712 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28713 goto done;
28714 }
28715 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028716 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
28717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028718 }
28719 _res = NULL;
28720 done:
28721 D(p->level--);
28722 return _res;
28723}
28724
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028725// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080028726static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028727_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028728{
28729 D(p->level++);
28730 if (p->error_indicator) {
28731 D(p->level--);
28732 return NULL;
28733 }
28734 void *_res = NULL;
28735 int _mark = p->mark;
28736 int _start_mark = p->mark;
28737 void **_children = PyMem_Malloc(sizeof(void *));
28738 if (!_children) {
28739 p->error_indicator = 1;
28740 PyErr_NoMemory();
28741 D(p->level--);
28742 return NULL;
28743 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028744 Py_ssize_t _children_capacity = 1;
28745 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028746 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028747 if (p->error_indicator) {
28748 D(p->level--);
28749 return NULL;
28750 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028751 D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028752 Token * _literal;
28753 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028754 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028755 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28756 &&
28757 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028758 )
28759 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028760 _res = elem;
28761 if (_res == NULL && PyErr_Occurred()) {
28762 p->error_indicator = 1;
28763 PyMem_Free(_children);
28764 D(p->level--);
28765 return NULL;
28766 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028767 if (_n == _children_capacity) {
28768 _children_capacity *= 2;
28769 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28770 if (!_new_children) {
28771 p->error_indicator = 1;
28772 PyErr_NoMemory();
28773 D(p->level--);
28774 return NULL;
28775 }
28776 _children = _new_children;
28777 }
28778 _children[_n++] = _res;
28779 _mark = p->mark;
28780 }
28781 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028782 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028783 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028784 }
28785 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28786 if (!_seq) {
28787 PyMem_Free(_children);
28788 p->error_indicator = 1;
28789 PyErr_NoMemory();
28790 D(p->level--);
28791 return NULL;
28792 }
28793 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28794 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028795 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028796 D(p->level--);
28797 return _seq;
28798}
28799
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028800// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080028801static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028802_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028803{
28804 D(p->level++);
28805 if (p->error_indicator) {
28806 D(p->level--);
28807 return NULL;
28808 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028809 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028810 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028811 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028812 if (p->error_indicator) {
28813 D(p->level--);
28814 return NULL;
28815 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028816 D(fprintf(stderr, "%*c> _gather_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028817 KeywordOrStarred* elem;
28818 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028819 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028820 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
28821 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028822 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028823 )
28824 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028825 D(fprintf(stderr, "%*c+ _gather_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_131"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028826 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028827 goto done;
28828 }
28829 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028830 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
28831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028832 }
28833 _res = NULL;
28834 done:
28835 D(p->level--);
28836 return _res;
28837}
28838
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028839// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028840static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028841_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028842{
28843 D(p->level++);
28844 if (p->error_indicator) {
28845 D(p->level--);
28846 return NULL;
28847 }
28848 void *_res = NULL;
28849 int _mark = p->mark;
28850 int _start_mark = p->mark;
28851 void **_children = PyMem_Malloc(sizeof(void *));
28852 if (!_children) {
28853 p->error_indicator = 1;
28854 PyErr_NoMemory();
28855 D(p->level--);
28856 return NULL;
28857 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028858 Py_ssize_t _children_capacity = 1;
28859 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028860 { // ',' kwarg_or_double_starred
28861 if (p->error_indicator) {
28862 D(p->level--);
28863 return NULL;
28864 }
28865 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
28866 Token * _literal;
28867 KeywordOrStarred* elem;
28868 while (
28869 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28870 &&
28871 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28872 )
28873 {
28874 _res = elem;
28875 if (_res == NULL && PyErr_Occurred()) {
28876 p->error_indicator = 1;
28877 PyMem_Free(_children);
28878 D(p->level--);
28879 return NULL;
28880 }
28881 if (_n == _children_capacity) {
28882 _children_capacity *= 2;
28883 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28884 if (!_new_children) {
28885 p->error_indicator = 1;
28886 PyErr_NoMemory();
28887 D(p->level--);
28888 return NULL;
28889 }
28890 _children = _new_children;
28891 }
28892 _children[_n++] = _res;
28893 _mark = p->mark;
28894 }
28895 p->mark = _mark;
28896 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
28897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
28898 }
28899 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28900 if (!_seq) {
28901 PyMem_Free(_children);
28902 p->error_indicator = 1;
28903 PyErr_NoMemory();
28904 D(p->level--);
28905 return NULL;
28906 }
28907 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28908 PyMem_Free(_children);
28909 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
28910 D(p->level--);
28911 return _seq;
28912}
28913
28914// _gather_132: kwarg_or_double_starred _loop0_133
28915static asdl_seq *
28916_gather_132_rule(Parser *p)
28917{
28918 D(p->level++);
28919 if (p->error_indicator) {
28920 D(p->level--);
28921 return NULL;
28922 }
28923 asdl_seq * _res = NULL;
28924 int _mark = p->mark;
28925 { // kwarg_or_double_starred _loop0_133
28926 if (p->error_indicator) {
28927 D(p->level--);
28928 return NULL;
28929 }
28930 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
28931 KeywordOrStarred* elem;
28932 asdl_seq * seq;
28933 if (
28934 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28935 &&
28936 (seq = _loop0_133_rule(p)) // _loop0_133
28937 )
28938 {
28939 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
28940 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28941 goto done;
28942 }
28943 p->mark = _mark;
28944 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
28945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
28946 }
28947 _res = NULL;
28948 done:
28949 D(p->level--);
28950 return _res;
28951}
28952
28953// _loop0_134: (',' star_target)
28954static asdl_seq *
28955_loop0_134_rule(Parser *p)
28956{
28957 D(p->level++);
28958 if (p->error_indicator) {
28959 D(p->level--);
28960 return NULL;
28961 }
28962 void *_res = NULL;
28963 int _mark = p->mark;
28964 int _start_mark = p->mark;
28965 void **_children = PyMem_Malloc(sizeof(void *));
28966 if (!_children) {
28967 p->error_indicator = 1;
28968 PyErr_NoMemory();
28969 D(p->level--);
28970 return NULL;
28971 }
28972 Py_ssize_t _children_capacity = 1;
28973 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028974 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028975 if (p->error_indicator) {
28976 D(p->level--);
28977 return NULL;
28978 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028979 D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028980 void *_tmp_189_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028981 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028982 (_tmp_189_var = _tmp_189_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028983 )
28984 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028985 _res = _tmp_189_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028986 if (_n == _children_capacity) {
28987 _children_capacity *= 2;
28988 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28989 if (!_new_children) {
28990 p->error_indicator = 1;
28991 PyErr_NoMemory();
28992 D(p->level--);
28993 return NULL;
28994 }
28995 _children = _new_children;
28996 }
28997 _children[_n++] = _res;
28998 _mark = p->mark;
28999 }
29000 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029001 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029003 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029004 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029005 if (!_seq) {
29006 PyMem_Free(_children);
29007 p->error_indicator = 1;
29008 PyErr_NoMemory();
29009 D(p->level--);
29010 return NULL;
29011 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029012 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029013 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029014 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029015 D(p->level--);
29016 return _seq;
29017}
29018
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029019// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029020static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029021_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029022{
29023 D(p->level++);
29024 if (p->error_indicator) {
29025 D(p->level--);
29026 return NULL;
29027 }
29028 void *_res = NULL;
29029 int _mark = p->mark;
29030 int _start_mark = p->mark;
29031 void **_children = PyMem_Malloc(sizeof(void *));
29032 if (!_children) {
29033 p->error_indicator = 1;
29034 PyErr_NoMemory();
29035 D(p->level--);
29036 return NULL;
29037 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029038 Py_ssize_t _children_capacity = 1;
29039 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029040 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029041 if (p->error_indicator) {
29042 D(p->level--);
29043 return NULL;
29044 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029045 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029046 Token * _literal;
29047 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029048 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029049 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29050 &&
29051 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029052 )
29053 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029054 _res = elem;
29055 if (_res == NULL && PyErr_Occurred()) {
29056 p->error_indicator = 1;
29057 PyMem_Free(_children);
29058 D(p->level--);
29059 return NULL;
29060 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029061 if (_n == _children_capacity) {
29062 _children_capacity *= 2;
29063 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29064 if (!_new_children) {
29065 p->error_indicator = 1;
29066 PyErr_NoMemory();
29067 D(p->level--);
29068 return NULL;
29069 }
29070 _children = _new_children;
29071 }
29072 _children[_n++] = _res;
29073 _mark = p->mark;
29074 }
29075 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029076 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029077 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029078 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029079 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029080 if (!_seq) {
29081 PyMem_Free(_children);
29082 p->error_indicator = 1;
29083 PyErr_NoMemory();
29084 D(p->level--);
29085 return NULL;
29086 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029087 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029088 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029089 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029090 D(p->level--);
29091 return _seq;
29092}
29093
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029094// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029095static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029096_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029097{
29098 D(p->level++);
29099 if (p->error_indicator) {
29100 D(p->level--);
29101 return NULL;
29102 }
29103 asdl_seq * _res = NULL;
29104 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029105 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029106 if (p->error_indicator) {
29107 D(p->level--);
29108 return NULL;
29109 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029110 D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029111 expr_ty elem;
29112 asdl_seq * seq;
29113 if (
29114 (elem = star_target_rule(p)) // star_target
29115 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029116 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029117 )
29118 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029119 D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029120 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29121 goto done;
29122 }
29123 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029124 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
29125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029126 }
29127 _res = NULL;
29128 done:
29129 D(p->level--);
29130 return _res;
29131}
29132
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029133// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029134static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029135_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029136{
29137 D(p->level++);
29138 if (p->error_indicator) {
29139 D(p->level--);
29140 return NULL;
29141 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029142 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029143 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029144 int _start_mark = p->mark;
29145 void **_children = PyMem_Malloc(sizeof(void *));
29146 if (!_children) {
29147 p->error_indicator = 1;
29148 PyErr_NoMemory();
29149 D(p->level--);
29150 return NULL;
29151 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029152 Py_ssize_t _children_capacity = 1;
29153 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029154 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029155 if (p->error_indicator) {
29156 D(p->level--);
29157 return NULL;
29158 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029159 D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029160 void *_tmp_190_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029161 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029162 (_tmp_190_var = _tmp_190_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029163 )
29164 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029165 _res = _tmp_190_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029166 if (_n == _children_capacity) {
29167 _children_capacity *= 2;
29168 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29169 if (!_new_children) {
29170 p->error_indicator = 1;
29171 PyErr_NoMemory();
29172 D(p->level--);
29173 return NULL;
29174 }
29175 _children = _new_children;
29176 }
29177 _children[_n++] = _res;
29178 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029179 }
29180 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029181 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029183 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029184 if (_n == 0 || p->error_indicator) {
29185 PyMem_Free(_children);
29186 D(p->level--);
29187 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029188 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029189 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29190 if (!_seq) {
29191 PyMem_Free(_children);
29192 p->error_indicator = 1;
29193 PyErr_NoMemory();
29194 D(p->level--);
29195 return NULL;
29196 }
29197 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29198 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029199 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029200 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029201 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029202}
29203
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029204// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029205static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029206_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029207{
29208 D(p->level++);
29209 if (p->error_indicator) {
29210 D(p->level--);
29211 return NULL;
29212 }
29213 void * _res = NULL;
29214 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029215 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029216 if (p->error_indicator) {
29217 D(p->level--);
29218 return NULL;
29219 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029220 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029221 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029222 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029223 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029224 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029225 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029226 )
29227 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029228 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029229 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029230 goto done;
29231 }
29232 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029233 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029235 }
29236 _res = NULL;
29237 done:
29238 D(p->level--);
29239 return _res;
29240}
29241
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029242// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080029243static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029244_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029245{
29246 D(p->level++);
29247 if (p->error_indicator) {
29248 D(p->level--);
29249 return NULL;
29250 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029251 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029252 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029253 int _start_mark = p->mark;
29254 void **_children = PyMem_Malloc(sizeof(void *));
29255 if (!_children) {
29256 p->error_indicator = 1;
29257 PyErr_NoMemory();
29258 D(p->level--);
29259 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029260 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029261 Py_ssize_t _children_capacity = 1;
29262 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029263 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029264 if (p->error_indicator) {
29265 D(p->level--);
29266 return NULL;
29267 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029268 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029269 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029270 expr_ty elem;
29271 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029272 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29273 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029274 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029275 )
29276 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029277 _res = elem;
29278 if (_res == NULL && PyErr_Occurred()) {
29279 p->error_indicator = 1;
29280 PyMem_Free(_children);
29281 D(p->level--);
29282 return NULL;
29283 }
29284 if (_n == _children_capacity) {
29285 _children_capacity *= 2;
29286 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29287 if (!_new_children) {
29288 p->error_indicator = 1;
29289 PyErr_NoMemory();
29290 D(p->level--);
29291 return NULL;
29292 }
29293 _children = _new_children;
29294 }
29295 _children[_n++] = _res;
29296 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029297 }
29298 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029299 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029300 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029301 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029302 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29303 if (!_seq) {
29304 PyMem_Free(_children);
29305 p->error_indicator = 1;
29306 PyErr_NoMemory();
29307 D(p->level--);
29308 return NULL;
29309 }
29310 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29311 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029312 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029313 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029314 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029315}
29316
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029317// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080029318static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029319_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029320{
29321 D(p->level++);
29322 if (p->error_indicator) {
29323 D(p->level--);
29324 return NULL;
29325 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029326 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029327 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029328 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029329 if (p->error_indicator) {
29330 D(p->level--);
29331 return NULL;
29332 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029333 D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029334 expr_ty elem;
29335 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029336 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029337 (elem = del_target_rule(p)) // del_target
29338 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029339 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029340 )
29341 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029342 D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_140"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029343 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029344 goto done;
29345 }
29346 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029347 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
29348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029349 }
29350 _res = NULL;
29351 done:
29352 D(p->level--);
29353 return _res;
29354}
29355
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029356// _tmp_141: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080029357static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029358_tmp_141_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029359{
29360 D(p->level++);
29361 if (p->error_indicator) {
29362 D(p->level--);
29363 return NULL;
29364 }
29365 void * _res = NULL;
29366 int _mark = p->mark;
29367 { // args
29368 if (p->error_indicator) {
29369 D(p->level--);
29370 return NULL;
29371 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029372 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029373 expr_ty args_var;
29374 if (
29375 (args_var = args_rule(p)) // args
29376 )
29377 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029378 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029379 _res = args_var;
29380 goto done;
29381 }
29382 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029383 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29385 }
29386 { // expression for_if_clauses
29387 if (p->error_indicator) {
29388 D(p->level--);
29389 return NULL;
29390 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029391 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029392 expr_ty expression_var;
29393 asdl_comprehension_seq* for_if_clauses_var;
29394 if (
29395 (expression_var = expression_rule(p)) // expression
29396 &&
29397 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29398 )
29399 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029400 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029401 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29402 goto done;
29403 }
29404 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029405 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029406 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29407 }
29408 _res = NULL;
29409 done:
29410 D(p->level--);
29411 return _res;
29412}
29413
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029414// _tmp_142: NAME '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029415static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029416_tmp_142_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029417{
29418 D(p->level++);
29419 if (p->error_indicator) {
29420 D(p->level--);
29421 return NULL;
29422 }
29423 void * _res = NULL;
29424 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029425 { // NAME '='
29426 if (p->error_indicator) {
29427 D(p->level--);
29428 return NULL;
29429 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029430 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029431 Token * _literal;
29432 expr_ty name_var;
29433 if (
29434 (name_var = _PyPegen_name_token(p)) // NAME
29435 &&
29436 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29437 )
29438 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029439 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029440 _res = _PyPegen_dummy_name(p, name_var, _literal);
29441 goto done;
29442 }
29443 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029444 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29446 }
29447 _res = NULL;
29448 done:
29449 D(p->level--);
29450 return _res;
29451}
29452
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029453// _tmp_143: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029454static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029455_tmp_143_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029456{
29457 D(p->level++);
29458 if (p->error_indicator) {
29459 D(p->level--);
29460 return NULL;
29461 }
29462 void * _res = NULL;
29463 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029464 { // NAME STRING
29465 if (p->error_indicator) {
29466 D(p->level--);
29467 return NULL;
29468 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029469 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029470 expr_ty name_var;
29471 expr_ty string_var;
29472 if (
29473 (name_var = _PyPegen_name_token(p)) // NAME
29474 &&
29475 (string_var = _PyPegen_string_token(p)) // STRING
29476 )
29477 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029478 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029479 _res = _PyPegen_dummy_name(p, name_var, string_var);
29480 goto done;
29481 }
29482 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029483 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29485 }
29486 { // SOFT_KEYWORD
29487 if (p->error_indicator) {
29488 D(p->level--);
29489 return NULL;
29490 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029491 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029492 expr_ty soft_keyword_var;
29493 if (
29494 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29495 )
29496 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029497 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029498 _res = soft_keyword_var;
29499 goto done;
29500 }
29501 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029502 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29504 }
29505 _res = NULL;
29506 done:
29507 D(p->level--);
29508 return _res;
29509}
29510
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029511// _tmp_144: '=' | ':='
29512static void *
29513_tmp_144_rule(Parser *p)
29514{
29515 D(p->level++);
29516 if (p->error_indicator) {
29517 D(p->level--);
29518 return NULL;
29519 }
29520 void * _res = NULL;
29521 int _mark = p->mark;
29522 { // '='
29523 if (p->error_indicator) {
29524 D(p->level--);
29525 return NULL;
29526 }
29527 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
29528 Token * _literal;
29529 if (
29530 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29531 )
29532 {
29533 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
29534 _res = _literal;
29535 goto done;
29536 }
29537 p->mark = _mark;
29538 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29540 }
29541 { // ':='
29542 if (p->error_indicator) {
29543 D(p->level--);
29544 return NULL;
29545 }
29546 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
29547 Token * _literal;
29548 if (
29549 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29550 )
29551 {
29552 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
29553 _res = _literal;
29554 goto done;
29555 }
29556 p->mark = _mark;
29557 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29559 }
29560 _res = NULL;
29561 done:
29562 D(p->level--);
29563 return _res;
29564}
29565
29566// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False'
29567static void *
29568_tmp_145_rule(Parser *p)
29569{
29570 D(p->level++);
29571 if (p->error_indicator) {
29572 D(p->level--);
29573 return NULL;
29574 }
29575 void * _res = NULL;
29576 int _mark = p->mark;
29577 { // list
29578 if (p->error_indicator) {
29579 D(p->level--);
29580 return NULL;
29581 }
29582 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
29583 expr_ty list_var;
29584 if (
29585 (list_var = list_rule(p)) // list
29586 )
29587 {
29588 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
29589 _res = list_var;
29590 goto done;
29591 }
29592 p->mark = _mark;
29593 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29595 }
29596 { // tuple
29597 if (p->error_indicator) {
29598 D(p->level--);
29599 return NULL;
29600 }
29601 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
29602 expr_ty tuple_var;
29603 if (
29604 (tuple_var = tuple_rule(p)) // tuple
29605 )
29606 {
29607 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
29608 _res = tuple_var;
29609 goto done;
29610 }
29611 p->mark = _mark;
29612 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29614 }
29615 { // genexp
29616 if (p->error_indicator) {
29617 D(p->level--);
29618 return NULL;
29619 }
29620 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
29621 expr_ty genexp_var;
29622 if (
29623 (genexp_var = genexp_rule(p)) // genexp
29624 )
29625 {
29626 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
29627 _res = genexp_var;
29628 goto done;
29629 }
29630 p->mark = _mark;
29631 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29633 }
29634 { // 'True'
29635 if (p->error_indicator) {
29636 D(p->level--);
29637 return NULL;
29638 }
29639 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
29640 Token * _keyword;
29641 if (
29642 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29643 )
29644 {
29645 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
29646 _res = _keyword;
29647 goto done;
29648 }
29649 p->mark = _mark;
29650 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29651 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29652 }
29653 { // 'None'
29654 if (p->error_indicator) {
29655 D(p->level--);
29656 return NULL;
29657 }
29658 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
29659 Token * _keyword;
29660 if (
29661 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29662 )
29663 {
29664 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
29665 _res = _keyword;
29666 goto done;
29667 }
29668 p->mark = _mark;
29669 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29671 }
29672 { // 'False'
29673 if (p->error_indicator) {
29674 D(p->level--);
29675 return NULL;
29676 }
29677 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
29678 Token * _keyword;
29679 if (
29680 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29681 )
29682 {
29683 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
29684 _res = _keyword;
29685 goto done;
29686 }
29687 p->mark = _mark;
29688 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29690 }
29691 _res = NULL;
29692 done:
29693 D(p->level--);
29694 return _res;
29695}
29696
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029697// _tmp_146: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010029698static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029699_tmp_146_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010029700{
29701 D(p->level++);
29702 if (p->error_indicator) {
29703 D(p->level--);
29704 return NULL;
29705 }
29706 void * _res = NULL;
29707 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029708 { // '='
29709 if (p->error_indicator) {
29710 D(p->level--);
29711 return NULL;
29712 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029713 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029714 Token * _literal;
29715 if (
29716 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29717 )
29718 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029719 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029720 _res = _literal;
29721 goto done;
29722 }
29723 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029724 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29726 }
29727 { // ':='
29728 if (p->error_indicator) {
29729 D(p->level--);
29730 return NULL;
29731 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029732 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029733 Token * _literal;
29734 if (
29735 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29736 )
29737 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029738 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029739 _res = _literal;
29740 goto done;
29741 }
29742 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029743 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29745 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029746 _res = NULL;
29747 done:
29748 D(p->level--);
29749 return _res;
29750}
29751
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029752// _loop0_147: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029753static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029754_loop0_147_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029755{
29756 D(p->level++);
29757 if (p->error_indicator) {
29758 D(p->level--);
29759 return NULL;
29760 }
29761 void *_res = NULL;
29762 int _mark = p->mark;
29763 int _start_mark = p->mark;
29764 void **_children = PyMem_Malloc(sizeof(void *));
29765 if (!_children) {
29766 p->error_indicator = 1;
29767 PyErr_NoMemory();
29768 D(p->level--);
29769 return NULL;
29770 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029771 Py_ssize_t _children_capacity = 1;
29772 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029773 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029774 if (p->error_indicator) {
29775 D(p->level--);
29776 return NULL;
29777 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029778 D(fprintf(stderr, "%*c> _loop0_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029779 asdl_expr_seq* star_named_expressions_var;
29780 while (
29781 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
29782 )
29783 {
29784 _res = star_named_expressions_var;
29785 if (_n == _children_capacity) {
29786 _children_capacity *= 2;
29787 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29788 if (!_new_children) {
29789 p->error_indicator = 1;
29790 PyErr_NoMemory();
29791 D(p->level--);
29792 return NULL;
29793 }
29794 _children = _new_children;
29795 }
29796 _children[_n++] = _res;
29797 _mark = p->mark;
29798 }
29799 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029800 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob2802482021-04-15 21:38:45 +010029802 }
29803 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29804 if (!_seq) {
29805 PyMem_Free(_children);
29806 p->error_indicator = 1;
29807 PyErr_NoMemory();
29808 D(p->level--);
29809 return NULL;
29810 }
29811 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29812 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029813 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
29814 D(p->level--);
29815 return _seq;
29816}
29817
29818// _loop0_148: (star_targets '=')
29819static asdl_seq *
29820_loop0_148_rule(Parser *p)
29821{
29822 D(p->level++);
29823 if (p->error_indicator) {
29824 D(p->level--);
29825 return NULL;
29826 }
29827 void *_res = NULL;
29828 int _mark = p->mark;
29829 int _start_mark = p->mark;
29830 void **_children = PyMem_Malloc(sizeof(void *));
29831 if (!_children) {
29832 p->error_indicator = 1;
29833 PyErr_NoMemory();
29834 D(p->level--);
29835 return NULL;
29836 }
29837 Py_ssize_t _children_capacity = 1;
29838 Py_ssize_t _n = 0;
29839 { // (star_targets '=')
29840 if (p->error_indicator) {
29841 D(p->level--);
29842 return NULL;
29843 }
29844 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
29845 void *_tmp_191_var;
29846 while (
29847 (_tmp_191_var = _tmp_191_rule(p)) // star_targets '='
29848 )
29849 {
29850 _res = _tmp_191_var;
29851 if (_n == _children_capacity) {
29852 _children_capacity *= 2;
29853 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29854 if (!_new_children) {
29855 p->error_indicator = 1;
29856 PyErr_NoMemory();
29857 D(p->level--);
29858 return NULL;
29859 }
29860 _children = _new_children;
29861 }
29862 _children[_n++] = _res;
29863 _mark = p->mark;
29864 }
29865 p->mark = _mark;
29866 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
29867 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
29868 }
29869 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29870 if (!_seq) {
29871 PyMem_Free(_children);
29872 p->error_indicator = 1;
29873 PyErr_NoMemory();
29874 D(p->level--);
29875 return NULL;
29876 }
29877 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29878 PyMem_Free(_children);
29879 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
29880 D(p->level--);
29881 return _seq;
29882}
29883
29884// _loop0_149: (star_targets '=')
29885static asdl_seq *
29886_loop0_149_rule(Parser *p)
29887{
29888 D(p->level++);
29889 if (p->error_indicator) {
29890 D(p->level--);
29891 return NULL;
29892 }
29893 void *_res = NULL;
29894 int _mark = p->mark;
29895 int _start_mark = p->mark;
29896 void **_children = PyMem_Malloc(sizeof(void *));
29897 if (!_children) {
29898 p->error_indicator = 1;
29899 PyErr_NoMemory();
29900 D(p->level--);
29901 return NULL;
29902 }
29903 Py_ssize_t _children_capacity = 1;
29904 Py_ssize_t _n = 0;
29905 { // (star_targets '=')
29906 if (p->error_indicator) {
29907 D(p->level--);
29908 return NULL;
29909 }
29910 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
29911 void *_tmp_192_var;
29912 while (
29913 (_tmp_192_var = _tmp_192_rule(p)) // star_targets '='
29914 )
29915 {
29916 _res = _tmp_192_var;
29917 if (_n == _children_capacity) {
29918 _children_capacity *= 2;
29919 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29920 if (!_new_children) {
29921 p->error_indicator = 1;
29922 PyErr_NoMemory();
29923 D(p->level--);
29924 return NULL;
29925 }
29926 _children = _new_children;
29927 }
29928 _children[_n++] = _res;
29929 _mark = p->mark;
29930 }
29931 p->mark = _mark;
29932 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
29933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
29934 }
29935 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29936 if (!_seq) {
29937 PyMem_Free(_children);
29938 p->error_indicator = 1;
29939 PyErr_NoMemory();
29940 D(p->level--);
29941 return NULL;
29942 }
29943 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29944 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010029945 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
29946 D(p->level--);
29947 return _seq;
29948}
29949
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029950// _tmp_150: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080029951static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029952_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029953{
29954 D(p->level++);
29955 if (p->error_indicator) {
29956 D(p->level--);
29957 return NULL;
29958 }
29959 void * _res = NULL;
29960 int _mark = p->mark;
29961 { // yield_expr
29962 if (p->error_indicator) {
29963 D(p->level--);
29964 return NULL;
29965 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029966 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029967 expr_ty yield_expr_var;
29968 if (
29969 (yield_expr_var = yield_expr_rule(p)) // yield_expr
29970 )
29971 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029972 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029973 _res = yield_expr_var;
29974 goto done;
29975 }
29976 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029977 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
29979 }
29980 { // star_expressions
29981 if (p->error_indicator) {
29982 D(p->level--);
29983 return NULL;
29984 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029985 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029986 expr_ty star_expressions_var;
29987 if (
29988 (star_expressions_var = star_expressions_rule(p)) // star_expressions
29989 )
29990 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029991 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029992 _res = star_expressions_var;
29993 goto done;
29994 }
29995 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029996 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
29998 }
29999 _res = NULL;
30000 done:
30001 D(p->level--);
30002 return _res;
30003}
30004
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030005// _tmp_151: '[' | '(' | '{'
30006static void *
30007_tmp_151_rule(Parser *p)
30008{
30009 D(p->level++);
30010 if (p->error_indicator) {
30011 D(p->level--);
30012 return NULL;
30013 }
30014 void * _res = NULL;
30015 int _mark = p->mark;
30016 { // '['
30017 if (p->error_indicator) {
30018 D(p->level--);
30019 return NULL;
30020 }
30021 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30022 Token * _literal;
30023 if (
30024 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30025 )
30026 {
30027 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30028 _res = _literal;
30029 goto done;
30030 }
30031 p->mark = _mark;
30032 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30034 }
30035 { // '('
30036 if (p->error_indicator) {
30037 D(p->level--);
30038 return NULL;
30039 }
30040 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30041 Token * _literal;
30042 if (
30043 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30044 )
30045 {
30046 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30047 _res = _literal;
30048 goto done;
30049 }
30050 p->mark = _mark;
30051 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30053 }
30054 { // '{'
30055 if (p->error_indicator) {
30056 D(p->level--);
30057 return NULL;
30058 }
30059 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30060 Token * _literal;
30061 if (
30062 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30063 )
30064 {
30065 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30066 _res = _literal;
30067 goto done;
30068 }
30069 p->mark = _mark;
30070 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30072 }
30073 _res = NULL;
30074 done:
30075 D(p->level--);
30076 return _res;
30077}
30078
30079// _tmp_152: '[' | '{'
30080static void *
30081_tmp_152_rule(Parser *p)
30082{
30083 D(p->level++);
30084 if (p->error_indicator) {
30085 D(p->level--);
30086 return NULL;
30087 }
30088 void * _res = NULL;
30089 int _mark = p->mark;
30090 { // '['
30091 if (p->error_indicator) {
30092 D(p->level--);
30093 return NULL;
30094 }
30095 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30096 Token * _literal;
30097 if (
30098 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30099 )
30100 {
30101 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30102 _res = _literal;
30103 goto done;
30104 }
30105 p->mark = _mark;
30106 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30108 }
30109 { // '{'
30110 if (p->error_indicator) {
30111 D(p->level--);
30112 return NULL;
30113 }
30114 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30115 Token * _literal;
30116 if (
30117 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30118 )
30119 {
30120 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30121 _res = _literal;
30122 goto done;
30123 }
30124 p->mark = _mark;
30125 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30127 }
30128 _res = NULL;
30129 done:
30130 D(p->level--);
30131 return _res;
30132}
30133
30134// _tmp_153: '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030135static void *
30136_tmp_153_rule(Parser *p)
30137{
30138 D(p->level++);
30139 if (p->error_indicator) {
30140 D(p->level--);
30141 return NULL;
30142 }
30143 void * _res = NULL;
30144 int _mark = p->mark;
30145 { // '['
30146 if (p->error_indicator) {
30147 D(p->level--);
30148 return NULL;
30149 }
30150 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30151 Token * _literal;
30152 if (
30153 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30154 )
30155 {
30156 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30157 _res = _literal;
30158 goto done;
30159 }
30160 p->mark = _mark;
30161 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30163 }
30164 { // '{'
30165 if (p->error_indicator) {
30166 D(p->level--);
30167 return NULL;
30168 }
30169 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30170 Token * _literal;
30171 if (
30172 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30173 )
30174 {
30175 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30176 _res = _literal;
30177 goto done;
30178 }
30179 p->mark = _mark;
30180 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30182 }
30183 _res = NULL;
30184 done:
30185 D(p->level--);
30186 return _res;
30187}
30188
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030189// _loop0_154: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030190static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030191_loop0_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030192{
30193 D(p->level++);
30194 if (p->error_indicator) {
30195 D(p->level--);
30196 return NULL;
30197 }
30198 void *_res = NULL;
30199 int _mark = p->mark;
30200 int _start_mark = p->mark;
30201 void **_children = PyMem_Malloc(sizeof(void *));
30202 if (!_children) {
30203 p->error_indicator = 1;
30204 PyErr_NoMemory();
30205 D(p->level--);
30206 return NULL;
30207 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030208 Py_ssize_t _children_capacity = 1;
30209 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030210 { // param_no_default
30211 if (p->error_indicator) {
30212 D(p->level--);
30213 return NULL;
30214 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030215 D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030216 arg_ty param_no_default_var;
30217 while (
30218 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30219 )
30220 {
30221 _res = param_no_default_var;
30222 if (_n == _children_capacity) {
30223 _children_capacity *= 2;
30224 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30225 if (!_new_children) {
30226 p->error_indicator = 1;
30227 PyErr_NoMemory();
30228 D(p->level--);
30229 return NULL;
30230 }
30231 _children = _new_children;
30232 }
30233 _children[_n++] = _res;
30234 _mark = p->mark;
30235 }
30236 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030237 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30239 }
30240 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30241 if (!_seq) {
30242 PyMem_Free(_children);
30243 p->error_indicator = 1;
30244 PyErr_NoMemory();
30245 D(p->level--);
30246 return NULL;
30247 }
30248 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30249 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030250 _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030251 D(p->level--);
30252 return _seq;
30253}
30254
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030255// _loop1_155: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030256static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030257_loop1_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030258{
30259 D(p->level++);
30260 if (p->error_indicator) {
30261 D(p->level--);
30262 return NULL;
30263 }
30264 void *_res = NULL;
30265 int _mark = p->mark;
30266 int _start_mark = p->mark;
30267 void **_children = PyMem_Malloc(sizeof(void *));
30268 if (!_children) {
30269 p->error_indicator = 1;
30270 PyErr_NoMemory();
30271 D(p->level--);
30272 return NULL;
30273 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030274 Py_ssize_t _children_capacity = 1;
30275 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030276 { // param_with_default
30277 if (p->error_indicator) {
30278 D(p->level--);
30279 return NULL;
30280 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030281 D(fprintf(stderr, "%*c> _loop1_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030282 NameDefaultPair* param_with_default_var;
30283 while (
30284 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30285 )
30286 {
30287 _res = param_with_default_var;
30288 if (_n == _children_capacity) {
30289 _children_capacity *= 2;
30290 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30291 if (!_new_children) {
30292 p->error_indicator = 1;
30293 PyErr_NoMemory();
30294 D(p->level--);
30295 return NULL;
30296 }
30297 _children = _new_children;
30298 }
30299 _children[_n++] = _res;
30300 _mark = p->mark;
30301 }
30302 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030303 D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30305 }
30306 if (_n == 0 || p->error_indicator) {
30307 PyMem_Free(_children);
30308 D(p->level--);
30309 return NULL;
30310 }
30311 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30312 if (!_seq) {
30313 PyMem_Free(_children);
30314 p->error_indicator = 1;
30315 PyErr_NoMemory();
30316 D(p->level--);
30317 return NULL;
30318 }
30319 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30320 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030321 _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030322 D(p->level--);
30323 return _seq;
30324}
30325
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030326// _loop0_156: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030327static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030328_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030329{
30330 D(p->level++);
30331 if (p->error_indicator) {
30332 D(p->level--);
30333 return NULL;
30334 }
30335 void *_res = NULL;
30336 int _mark = p->mark;
30337 int _start_mark = p->mark;
30338 void **_children = PyMem_Malloc(sizeof(void *));
30339 if (!_children) {
30340 p->error_indicator = 1;
30341 PyErr_NoMemory();
30342 D(p->level--);
30343 return NULL;
30344 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030345 Py_ssize_t _children_capacity = 1;
30346 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030347 { // lambda_param_no_default
30348 if (p->error_indicator) {
30349 D(p->level--);
30350 return NULL;
30351 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030352 D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030353 arg_ty lambda_param_no_default_var;
30354 while (
30355 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30356 )
30357 {
30358 _res = lambda_param_no_default_var;
30359 if (_n == _children_capacity) {
30360 _children_capacity *= 2;
30361 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30362 if (!_new_children) {
30363 p->error_indicator = 1;
30364 PyErr_NoMemory();
30365 D(p->level--);
30366 return NULL;
30367 }
30368 _children = _new_children;
30369 }
30370 _children[_n++] = _res;
30371 _mark = p->mark;
30372 }
30373 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030374 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30376 }
30377 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30378 if (!_seq) {
30379 PyMem_Free(_children);
30380 p->error_indicator = 1;
30381 PyErr_NoMemory();
30382 D(p->level--);
30383 return NULL;
30384 }
30385 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30386 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030387 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030388 D(p->level--);
30389 return _seq;
30390}
30391
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030392// _loop1_157: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030393static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030394_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030395{
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 int _start_mark = p->mark;
30404 void **_children = PyMem_Malloc(sizeof(void *));
30405 if (!_children) {
30406 p->error_indicator = 1;
30407 PyErr_NoMemory();
30408 D(p->level--);
30409 return NULL;
30410 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030411 Py_ssize_t _children_capacity = 1;
30412 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030413 { // lambda_param_with_default
30414 if (p->error_indicator) {
30415 D(p->level--);
30416 return NULL;
30417 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030418 D(fprintf(stderr, "%*c> _loop1_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030419 NameDefaultPair* lambda_param_with_default_var;
30420 while (
30421 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30422 )
30423 {
30424 _res = lambda_param_with_default_var;
30425 if (_n == _children_capacity) {
30426 _children_capacity *= 2;
30427 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30428 if (!_new_children) {
30429 p->error_indicator = 1;
30430 PyErr_NoMemory();
30431 D(p->level--);
30432 return NULL;
30433 }
30434 _children = _new_children;
30435 }
30436 _children[_n++] = _res;
30437 _mark = p->mark;
30438 }
30439 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030440 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30442 }
30443 if (_n == 0 || p->error_indicator) {
30444 PyMem_Free(_children);
30445 D(p->level--);
30446 return NULL;
30447 }
30448 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30449 if (!_seq) {
30450 PyMem_Free(_children);
30451 p->error_indicator = 1;
30452 PyErr_NoMemory();
30453 D(p->level--);
30454 return NULL;
30455 }
30456 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30457 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030458 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030459 D(p->level--);
30460 return _seq;
30461}
30462
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030463// _tmp_158: ')' | ',' (')' | '**')
30464static void *
30465_tmp_158_rule(Parser *p)
30466{
30467 D(p->level++);
30468 if (p->error_indicator) {
30469 D(p->level--);
30470 return NULL;
30471 }
30472 void * _res = NULL;
30473 int _mark = p->mark;
30474 { // ')'
30475 if (p->error_indicator) {
30476 D(p->level--);
30477 return NULL;
30478 }
30479 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
30480 Token * _literal;
30481 if (
30482 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30483 )
30484 {
30485 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
30486 _res = _literal;
30487 goto done;
30488 }
30489 p->mark = _mark;
30490 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
30491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
30492 }
30493 { // ',' (')' | '**')
30494 if (p->error_indicator) {
30495 D(p->level--);
30496 return NULL;
30497 }
30498 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
30499 Token * _literal;
30500 void *_tmp_193_var;
30501 if (
30502 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30503 &&
30504 (_tmp_193_var = _tmp_193_rule(p)) // ')' | '**'
30505 )
30506 {
30507 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
30508 _res = _PyPegen_dummy_name(p, _literal, _tmp_193_var);
30509 goto done;
30510 }
30511 p->mark = _mark;
30512 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
30513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
30514 }
30515 _res = NULL;
30516 done:
30517 D(p->level--);
30518 return _res;
30519}
30520
30521// _tmp_159: ':' | ',' (':' | '**')
30522static void *
30523_tmp_159_rule(Parser *p)
30524{
30525 D(p->level++);
30526 if (p->error_indicator) {
30527 D(p->level--);
30528 return NULL;
30529 }
30530 void * _res = NULL;
30531 int _mark = p->mark;
30532 { // ':'
30533 if (p->error_indicator) {
30534 D(p->level--);
30535 return NULL;
30536 }
30537 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30538 Token * _literal;
30539 if (
30540 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30541 )
30542 {
30543 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30544 _res = _literal;
30545 goto done;
30546 }
30547 p->mark = _mark;
30548 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30550 }
30551 { // ',' (':' | '**')
30552 if (p->error_indicator) {
30553 D(p->level--);
30554 return NULL;
30555 }
30556 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30557 Token * _literal;
30558 void *_tmp_194_var;
30559 if (
30560 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30561 &&
30562 (_tmp_194_var = _tmp_194_rule(p)) // ':' | '**'
30563 )
30564 {
30565 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30566 _res = _PyPegen_dummy_name(p, _literal, _tmp_194_var);
30567 goto done;
30568 }
30569 p->mark = _mark;
30570 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
30572 }
30573 _res = NULL;
30574 done:
30575 D(p->level--);
30576 return _res;
30577}
30578
30579// _tmp_160: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030580static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030581_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030582{
30583 D(p->level++);
30584 if (p->error_indicator) {
30585 D(p->level--);
30586 return NULL;
30587 }
30588 void * _res = NULL;
30589 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030590 { // ','
30591 if (p->error_indicator) {
30592 D(p->level--);
30593 return NULL;
30594 }
30595 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30596 Token * _literal;
30597 if (
30598 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30599 )
30600 {
30601 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30602 _res = _literal;
30603 goto done;
30604 }
30605 p->mark = _mark;
30606 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30608 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030609 { // ')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030610 if (p->error_indicator) {
30611 D(p->level--);
30612 return NULL;
30613 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030614 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030615 Token * _literal;
30616 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030617 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030618 )
30619 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030620 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030621 _res = _literal;
30622 goto done;
30623 }
30624 p->mark = _mark;
30625 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030627 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030628 { // ':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030629 if (p->error_indicator) {
30630 D(p->level--);
30631 return NULL;
30632 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030633 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030634 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030635 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030636 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030637 )
30638 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030639 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30640 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030641 goto done;
30642 }
30643 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030644 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30646 }
30647 _res = NULL;
30648 done:
30649 D(p->level--);
30650 return _res;
30651}
30652
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030653// _loop0_162: ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030654static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030655_loop0_162_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030656{
30657 D(p->level++);
30658 if (p->error_indicator) {
30659 D(p->level--);
30660 return NULL;
30661 }
30662 void *_res = NULL;
30663 int _mark = p->mark;
30664 int _start_mark = p->mark;
30665 void **_children = PyMem_Malloc(sizeof(void *));
30666 if (!_children) {
30667 p->error_indicator = 1;
30668 PyErr_NoMemory();
30669 D(p->level--);
30670 return NULL;
30671 }
30672 Py_ssize_t _children_capacity = 1;
30673 Py_ssize_t _n = 0;
30674 { // ',' (expression ['as' star_target])
30675 if (p->error_indicator) {
30676 D(p->level--);
30677 return NULL;
30678 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030679 D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030680 Token * _literal;
30681 void *elem;
30682 while (
30683 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30684 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030685 (elem = _tmp_195_rule(p)) // expression ['as' star_target]
30686 )
30687 {
30688 _res = elem;
30689 if (_res == NULL && PyErr_Occurred()) {
30690 p->error_indicator = 1;
30691 PyMem_Free(_children);
30692 D(p->level--);
30693 return NULL;
30694 }
30695 if (_n == _children_capacity) {
30696 _children_capacity *= 2;
30697 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30698 if (!_new_children) {
30699 p->error_indicator = 1;
30700 PyErr_NoMemory();
30701 D(p->level--);
30702 return NULL;
30703 }
30704 _children = _new_children;
30705 }
30706 _children[_n++] = _res;
30707 _mark = p->mark;
30708 }
30709 p->mark = _mark;
30710 D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
30711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30712 }
30713 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30714 if (!_seq) {
30715 PyMem_Free(_children);
30716 p->error_indicator = 1;
30717 PyErr_NoMemory();
30718 D(p->level--);
30719 return NULL;
30720 }
30721 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30722 PyMem_Free(_children);
30723 _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
30724 D(p->level--);
30725 return _seq;
30726}
30727
30728// _gather_161: (expression ['as' star_target]) _loop0_162
30729static asdl_seq *
30730_gather_161_rule(Parser *p)
30731{
30732 D(p->level++);
30733 if (p->error_indicator) {
30734 D(p->level--);
30735 return NULL;
30736 }
30737 asdl_seq * _res = NULL;
30738 int _mark = p->mark;
30739 { // (expression ['as' star_target]) _loop0_162
30740 if (p->error_indicator) {
30741 D(p->level--);
30742 return NULL;
30743 }
30744 D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30745 void *elem;
30746 asdl_seq * seq;
30747 if (
30748 (elem = _tmp_195_rule(p)) // expression ['as' star_target]
30749 &&
30750 (seq = _loop0_162_rule(p)) // _loop0_162
30751 )
30752 {
30753 D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30754 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30755 goto done;
30756 }
30757 p->mark = _mark;
30758 D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ',
30759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30760 }
30761 _res = NULL;
30762 done:
30763 D(p->level--);
30764 return _res;
30765}
30766
30767// _loop0_164: ',' (expressions ['as' star_target])
30768static asdl_seq *
30769_loop0_164_rule(Parser *p)
30770{
30771 D(p->level++);
30772 if (p->error_indicator) {
30773 D(p->level--);
30774 return NULL;
30775 }
30776 void *_res = NULL;
30777 int _mark = p->mark;
30778 int _start_mark = p->mark;
30779 void **_children = PyMem_Malloc(sizeof(void *));
30780 if (!_children) {
30781 p->error_indicator = 1;
30782 PyErr_NoMemory();
30783 D(p->level--);
30784 return NULL;
30785 }
30786 Py_ssize_t _children_capacity = 1;
30787 Py_ssize_t _n = 0;
30788 { // ',' (expressions ['as' star_target])
30789 if (p->error_indicator) {
30790 D(p->level--);
30791 return NULL;
30792 }
30793 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
30794 Token * _literal;
30795 void *elem;
30796 while (
30797 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30798 &&
30799 (elem = _tmp_196_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030800 )
30801 {
30802 _res = elem;
30803 if (_res == NULL && PyErr_Occurred()) {
30804 p->error_indicator = 1;
30805 PyMem_Free(_children);
30806 D(p->level--);
30807 return NULL;
30808 }
30809 if (_n == _children_capacity) {
30810 _children_capacity *= 2;
30811 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30812 if (!_new_children) {
30813 p->error_indicator = 1;
30814 PyErr_NoMemory();
30815 D(p->level--);
30816 return NULL;
30817 }
30818 _children = _new_children;
30819 }
30820 _children[_n++] = _res;
30821 _mark = p->mark;
30822 }
30823 p->mark = _mark;
30824 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030826 }
30827 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30828 if (!_seq) {
30829 PyMem_Free(_children);
30830 p->error_indicator = 1;
30831 PyErr_NoMemory();
30832 D(p->level--);
30833 return NULL;
30834 }
30835 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30836 PyMem_Free(_children);
30837 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
30838 D(p->level--);
30839 return _seq;
30840}
30841
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030842// _gather_163: (expressions ['as' star_target]) _loop0_164
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030843static asdl_seq *
30844_gather_163_rule(Parser *p)
30845{
30846 D(p->level++);
30847 if (p->error_indicator) {
30848 D(p->level--);
30849 return NULL;
30850 }
30851 asdl_seq * _res = NULL;
30852 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030853 { // (expressions ['as' star_target]) _loop0_164
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030854 if (p->error_indicator) {
30855 D(p->level--);
30856 return NULL;
30857 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030858 D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030859 void *elem;
30860 asdl_seq * seq;
30861 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030862 (elem = _tmp_196_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030863 &&
30864 (seq = _loop0_164_rule(p)) // _loop0_164
30865 )
30866 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030867 D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030868 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30869 goto done;
30870 }
30871 p->mark = _mark;
30872 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030874 }
30875 _res = NULL;
30876 done:
30877 D(p->level--);
30878 return _res;
30879}
30880
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030881// _loop0_166: ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030882static asdl_seq *
30883_loop0_166_rule(Parser *p)
30884{
30885 D(p->level++);
30886 if (p->error_indicator) {
30887 D(p->level--);
30888 return NULL;
30889 }
30890 void *_res = NULL;
30891 int _mark = p->mark;
30892 int _start_mark = p->mark;
30893 void **_children = PyMem_Malloc(sizeof(void *));
30894 if (!_children) {
30895 p->error_indicator = 1;
30896 PyErr_NoMemory();
30897 D(p->level--);
30898 return NULL;
30899 }
30900 Py_ssize_t _children_capacity = 1;
30901 Py_ssize_t _n = 0;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030902 { // ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030903 if (p->error_indicator) {
30904 D(p->level--);
30905 return NULL;
30906 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030907 D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030908 Token * _literal;
30909 void *elem;
30910 while (
30911 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30912 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030913 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030914 )
30915 {
30916 _res = elem;
30917 if (_res == NULL && PyErr_Occurred()) {
30918 p->error_indicator = 1;
30919 PyMem_Free(_children);
30920 D(p->level--);
30921 return NULL;
30922 }
30923 if (_n == _children_capacity) {
30924 _children_capacity *= 2;
30925 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30926 if (!_new_children) {
30927 p->error_indicator = 1;
30928 PyErr_NoMemory();
30929 D(p->level--);
30930 return NULL;
30931 }
30932 _children = _new_children;
30933 }
30934 _children[_n++] = _res;
30935 _mark = p->mark;
30936 }
30937 p->mark = _mark;
30938 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030940 }
30941 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30942 if (!_seq) {
30943 PyMem_Free(_children);
30944 p->error_indicator = 1;
30945 PyErr_NoMemory();
30946 D(p->level--);
30947 return NULL;
30948 }
30949 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30950 PyMem_Free(_children);
30951 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
30952 D(p->level--);
30953 return _seq;
30954}
30955
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030956// _gather_165: (expression ['as' star_target]) _loop0_166
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030957static asdl_seq *
30958_gather_165_rule(Parser *p)
30959{
30960 D(p->level++);
30961 if (p->error_indicator) {
30962 D(p->level--);
30963 return NULL;
30964 }
30965 asdl_seq * _res = NULL;
30966 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030967 { // (expression ['as' star_target]) _loop0_166
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030968 if (p->error_indicator) {
30969 D(p->level--);
30970 return NULL;
30971 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030972 D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030973 void *elem;
30974 asdl_seq * seq;
30975 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030976 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030977 &&
30978 (seq = _loop0_166_rule(p)) // _loop0_166
30979 )
30980 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030981 D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030982 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30983 goto done;
30984 }
30985 p->mark = _mark;
30986 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030987 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030988 }
30989 _res = NULL;
30990 done:
30991 D(p->level--);
30992 return _res;
30993}
30994
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030995// _loop0_168: ',' (expressions ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030996static asdl_seq *
30997_loop0_168_rule(Parser *p)
30998{
30999 D(p->level++);
31000 if (p->error_indicator) {
31001 D(p->level--);
31002 return NULL;
31003 }
31004 void *_res = NULL;
31005 int _mark = p->mark;
31006 int _start_mark = p->mark;
31007 void **_children = PyMem_Malloc(sizeof(void *));
31008 if (!_children) {
31009 p->error_indicator = 1;
31010 PyErr_NoMemory();
31011 D(p->level--);
31012 return NULL;
31013 }
31014 Py_ssize_t _children_capacity = 1;
31015 Py_ssize_t _n = 0;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031016 { // ',' (expressions ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031017 if (p->error_indicator) {
31018 D(p->level--);
31019 return NULL;
31020 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031021 D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031022 Token * _literal;
31023 void *elem;
31024 while (
31025 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31026 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031027 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031028 )
31029 {
31030 _res = elem;
31031 if (_res == NULL && PyErr_Occurred()) {
31032 p->error_indicator = 1;
31033 PyMem_Free(_children);
31034 D(p->level--);
31035 return NULL;
31036 }
31037 if (_n == _children_capacity) {
31038 _children_capacity *= 2;
31039 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31040 if (!_new_children) {
31041 p->error_indicator = 1;
31042 PyErr_NoMemory();
31043 D(p->level--);
31044 return NULL;
31045 }
31046 _children = _new_children;
31047 }
31048 _children[_n++] = _res;
31049 _mark = p->mark;
31050 }
31051 p->mark = _mark;
31052 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031054 }
31055 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31056 if (!_seq) {
31057 PyMem_Free(_children);
31058 p->error_indicator = 1;
31059 PyErr_NoMemory();
31060 D(p->level--);
31061 return NULL;
31062 }
31063 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31064 PyMem_Free(_children);
31065 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31066 D(p->level--);
31067 return _seq;
31068}
31069
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031070// _gather_167: (expressions ['as' star_target]) _loop0_168
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031071static asdl_seq *
31072_gather_167_rule(Parser *p)
31073{
31074 D(p->level++);
31075 if (p->error_indicator) {
31076 D(p->level--);
31077 return NULL;
31078 }
31079 asdl_seq * _res = NULL;
31080 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031081 { // (expressions ['as' star_target]) _loop0_168
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031082 if (p->error_indicator) {
31083 D(p->level--);
31084 return NULL;
31085 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031086 D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031087 void *elem;
31088 asdl_seq * seq;
31089 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031090 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031091 &&
31092 (seq = _loop0_168_rule(p)) // _loop0_168
31093 )
31094 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031095 D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031096 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31097 goto done;
31098 }
31099 p->mark = _mark;
31100 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031102 }
31103 _res = NULL;
31104 done:
31105 D(p->level--);
31106 return _res;
31107}
31108
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031109// _tmp_169: 'except' | 'finally'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031110static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031111_tmp_169_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031112{
31113 D(p->level++);
31114 if (p->error_indicator) {
31115 D(p->level--);
31116 return NULL;
31117 }
31118 void * _res = NULL;
31119 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031120 { // 'except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031121 if (p->error_indicator) {
31122 D(p->level--);
31123 return NULL;
31124 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031125 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031126 Token * _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031127 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031128 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031129 )
31130 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031131 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031132 _res = _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031133 goto done;
31134 }
31135 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031136 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
31138 }
31139 { // 'finally'
31140 if (p->error_indicator) {
31141 D(p->level--);
31142 return NULL;
31143 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031144 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031145 Token * _keyword;
31146 if (
31147 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
31148 )
31149 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031150 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031151 _res = _keyword;
31152 goto done;
31153 }
31154 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031155 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031157 }
31158 _res = NULL;
31159 done:
31160 D(p->level--);
31161 return _res;
31162}
31163
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031164// _tmp_170: 'as' NAME
31165static void *
31166_tmp_170_rule(Parser *p)
31167{
31168 D(p->level++);
31169 if (p->error_indicator) {
31170 D(p->level--);
31171 return NULL;
31172 }
31173 void * _res = NULL;
31174 int _mark = p->mark;
31175 { // 'as' NAME
31176 if (p->error_indicator) {
31177 D(p->level--);
31178 return NULL;
31179 }
31180 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31181 Token * _keyword;
31182 expr_ty name_var;
31183 if (
31184 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31185 &&
31186 (name_var = _PyPegen_name_token(p)) // NAME
31187 )
31188 {
31189 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31190 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31191 goto done;
31192 }
31193 p->mark = _mark;
31194 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
31195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31196 }
31197 _res = NULL;
31198 done:
31199 D(p->level--);
31200 return _res;
31201}
31202
31203// _tmp_171: 'as' NAME
31204static void *
31205_tmp_171_rule(Parser *p)
31206{
31207 D(p->level++);
31208 if (p->error_indicator) {
31209 D(p->level--);
31210 return NULL;
31211 }
31212 void * _res = NULL;
31213 int _mark = p->mark;
31214 { // 'as' NAME
31215 if (p->error_indicator) {
31216 D(p->level--);
31217 return NULL;
31218 }
31219 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31220 Token * _keyword;
31221 expr_ty name_var;
31222 if (
31223 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31224 &&
31225 (name_var = _PyPegen_name_token(p)) // NAME
31226 )
31227 {
31228 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31229 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31230 goto done;
31231 }
31232 p->mark = _mark;
31233 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31235 }
31236 _res = NULL;
31237 done:
31238 D(p->level--);
31239 return _res;
31240}
31241
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031242// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031243static void *
31244_tmp_172_rule(Parser *p)
31245{
31246 D(p->level++);
31247 if (p->error_indicator) {
31248 D(p->level--);
31249 return NULL;
31250 }
31251 void * _res = NULL;
31252 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031253 { // 'as' NAME
31254 if (p->error_indicator) {
31255 D(p->level--);
31256 return NULL;
31257 }
31258 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31259 Token * _keyword;
31260 expr_ty name_var;
31261 if (
31262 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31263 &&
31264 (name_var = _PyPegen_name_token(p)) // NAME
31265 )
31266 {
31267 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31268 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31269 goto done;
31270 }
31271 p->mark = _mark;
31272 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31274 }
31275 _res = NULL;
31276 done:
31277 D(p->level--);
31278 return _res;
31279}
31280
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031281// _tmp_173: '->' expression
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031282static void *
31283_tmp_173_rule(Parser *p)
31284{
31285 D(p->level++);
31286 if (p->error_indicator) {
31287 D(p->level--);
31288 return NULL;
31289 }
31290 void * _res = NULL;
31291 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031292 { // '->' expression
31293 if (p->error_indicator) {
31294 D(p->level--);
31295 return NULL;
31296 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031297 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031298 Token * _literal;
31299 expr_ty expression_var;
31300 if (
31301 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31302 &&
31303 (expression_var = expression_rule(p)) // expression
31304 )
31305 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031306 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031307 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31308 goto done;
31309 }
31310 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031311 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31313 }
31314 _res = NULL;
31315 done:
31316 D(p->level--);
31317 return _res;
31318}
31319
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031320// _tmp_174: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031321static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031322_tmp_174_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031323{
31324 D(p->level++);
31325 if (p->error_indicator) {
31326 D(p->level--);
31327 return NULL;
31328 }
31329 void * _res = NULL;
31330 int _mark = p->mark;
31331 { // '(' arguments? ')'
31332 if (p->error_indicator) {
31333 D(p->level--);
31334 return NULL;
31335 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031336 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031337 Token * _literal;
31338 Token * _literal_1;
31339 void *_opt_var;
31340 UNUSED(_opt_var); // Silence compiler warnings
31341 if (
31342 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31343 &&
31344 (_opt_var = arguments_rule(p), 1) // arguments?
31345 &&
31346 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31347 )
31348 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031349 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031350 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31351 goto done;
31352 }
31353 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031354 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31356 }
31357 _res = NULL;
31358 done:
31359 D(p->level--);
31360 return _res;
31361}
31362
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031363// _loop0_176: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031364static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031365_loop0_176_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031366{
31367 D(p->level++);
31368 if (p->error_indicator) {
31369 D(p->level--);
31370 return NULL;
31371 }
31372 void *_res = NULL;
31373 int _mark = p->mark;
31374 int _start_mark = p->mark;
31375 void **_children = PyMem_Malloc(sizeof(void *));
31376 if (!_children) {
31377 p->error_indicator = 1;
31378 PyErr_NoMemory();
31379 D(p->level--);
31380 return NULL;
31381 }
31382 Py_ssize_t _children_capacity = 1;
31383 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031384 { // ',' double_starred_kvpair
31385 if (p->error_indicator) {
31386 D(p->level--);
31387 return NULL;
31388 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031389 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 +010031390 Token * _literal;
31391 KeyValuePair* elem;
31392 while (
31393 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31394 &&
31395 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31396 )
31397 {
31398 _res = elem;
31399 if (_res == NULL && PyErr_Occurred()) {
31400 p->error_indicator = 1;
31401 PyMem_Free(_children);
31402 D(p->level--);
31403 return NULL;
31404 }
31405 if (_n == _children_capacity) {
31406 _children_capacity *= 2;
31407 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31408 if (!_new_children) {
31409 p->error_indicator = 1;
31410 PyErr_NoMemory();
31411 D(p->level--);
31412 return NULL;
31413 }
31414 _children = _new_children;
31415 }
31416 _children[_n++] = _res;
31417 _mark = p->mark;
31418 }
31419 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031420 D(fprintf(stderr, "%*c%s _loop0_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31422 }
31423 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31424 if (!_seq) {
31425 PyMem_Free(_children);
31426 p->error_indicator = 1;
31427 PyErr_NoMemory();
31428 D(p->level--);
31429 return NULL;
31430 }
31431 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31432 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031433 _PyPegen_insert_memo(p, _start_mark, _loop0_176_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031434 D(p->level--);
31435 return _seq;
31436}
31437
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031438// _gather_175: double_starred_kvpair _loop0_176
Pablo Galindoda743502021-04-15 14:06:39 +010031439static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031440_gather_175_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031441{
31442 D(p->level++);
31443 if (p->error_indicator) {
31444 D(p->level--);
31445 return NULL;
31446 }
31447 asdl_seq * _res = NULL;
31448 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031449 { // double_starred_kvpair _loop0_176
Pablo Galindoda743502021-04-15 14:06:39 +010031450 if (p->error_indicator) {
31451 D(p->level--);
31452 return NULL;
31453 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031454 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 +010031455 KeyValuePair* elem;
31456 asdl_seq * seq;
31457 if (
31458 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31459 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031460 (seq = _loop0_176_rule(p)) // _loop0_176
Pablo Galindoda743502021-04-15 14:06:39 +010031461 )
31462 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031463 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 +010031464 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31465 goto done;
31466 }
31467 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031468 D(fprintf(stderr, "%*c%s _gather_175[%d-%d]: %s failed!\n", p->level, ' ',
31469 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_176"));
Pablo Galindoda743502021-04-15 14:06:39 +010031470 }
31471 _res = NULL;
31472 done:
31473 D(p->level--);
31474 return _res;
31475}
31476
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031477// _tmp_177: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031478static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031479_tmp_177_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031480{
31481 D(p->level++);
31482 if (p->error_indicator) {
31483 D(p->level--);
31484 return NULL;
31485 }
31486 void * _res = NULL;
31487 int _mark = p->mark;
31488 { // '}'
31489 if (p->error_indicator) {
31490 D(p->level--);
31491 return NULL;
31492 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031493 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031494 Token * _literal;
31495 if (
31496 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31497 )
31498 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031499 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031500 _res = _literal;
31501 goto done;
31502 }
31503 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031504 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031505 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31506 }
31507 { // ','
31508 if (p->error_indicator) {
31509 D(p->level--);
31510 return NULL;
31511 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031512 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031513 Token * _literal;
31514 if (
31515 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31516 )
31517 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031518 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031519 _res = _literal;
31520 goto done;
31521 }
31522 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031523 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31525 }
31526 _res = NULL;
31527 done:
31528 D(p->level--);
31529 return _res;
31530}
31531
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031532// _tmp_178: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031533static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031534_tmp_178_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031535{
31536 D(p->level++);
31537 if (p->error_indicator) {
31538 D(p->level--);
31539 return NULL;
31540 }
31541 void * _res = NULL;
31542 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031543 { // star_targets '='
31544 if (p->error_indicator) {
31545 D(p->level--);
31546 return NULL;
31547 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031548 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031549 Token * _literal;
31550 expr_ty z;
31551 if (
31552 (z = star_targets_rule(p)) // star_targets
31553 &&
31554 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31555 )
31556 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031557 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 +010031558 _res = z;
31559 if (_res == NULL && PyErr_Occurred()) {
31560 p->error_indicator = 1;
31561 D(p->level--);
31562 return NULL;
31563 }
31564 goto done;
31565 }
31566 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031567 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031568 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31569 }
31570 _res = NULL;
31571 done:
31572 D(p->level--);
31573 return _res;
31574}
31575
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031576// _tmp_179: '.' | '...'
31577static void *
31578_tmp_179_rule(Parser *p)
31579{
31580 D(p->level++);
31581 if (p->error_indicator) {
31582 D(p->level--);
31583 return NULL;
31584 }
31585 void * _res = NULL;
31586 int _mark = p->mark;
31587 { // '.'
31588 if (p->error_indicator) {
31589 D(p->level--);
31590 return NULL;
31591 }
31592 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31593 Token * _literal;
31594 if (
31595 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31596 )
31597 {
31598 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31599 _res = _literal;
31600 goto done;
31601 }
31602 p->mark = _mark;
31603 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31605 }
31606 { // '...'
31607 if (p->error_indicator) {
31608 D(p->level--);
31609 return NULL;
31610 }
31611 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31612 Token * _literal;
31613 if (
31614 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31615 )
31616 {
31617 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31618 _res = _literal;
31619 goto done;
31620 }
31621 p->mark = _mark;
31622 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31624 }
31625 _res = NULL;
31626 done:
31627 D(p->level--);
31628 return _res;
31629}
31630
31631// _tmp_180: '.' | '...'
31632static void *
31633_tmp_180_rule(Parser *p)
31634{
31635 D(p->level++);
31636 if (p->error_indicator) {
31637 D(p->level--);
31638 return NULL;
31639 }
31640 void * _res = NULL;
31641 int _mark = p->mark;
31642 { // '.'
31643 if (p->error_indicator) {
31644 D(p->level--);
31645 return NULL;
31646 }
31647 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31648 Token * _literal;
31649 if (
31650 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31651 )
31652 {
31653 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31654 _res = _literal;
31655 goto done;
31656 }
31657 p->mark = _mark;
31658 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31660 }
31661 { // '...'
31662 if (p->error_indicator) {
31663 D(p->level--);
31664 return NULL;
31665 }
31666 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31667 Token * _literal;
31668 if (
31669 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31670 )
31671 {
31672 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31673 _res = _literal;
31674 goto done;
31675 }
31676 p->mark = _mark;
31677 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31679 }
31680 _res = NULL;
31681 done:
31682 D(p->level--);
31683 return _res;
31684}
31685
31686// _tmp_181: '@' named_expression NEWLINE
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031687static void *
31688_tmp_181_rule(Parser *p)
31689{
31690 D(p->level++);
31691 if (p->error_indicator) {
31692 D(p->level--);
31693 return NULL;
31694 }
31695 void * _res = NULL;
31696 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031697 { // '@' named_expression NEWLINE
31698 if (p->error_indicator) {
31699 D(p->level--);
31700 return NULL;
31701 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031702 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 +010031703 Token * _literal;
31704 expr_ty f;
31705 Token * newline_var;
31706 if (
31707 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
31708 &&
31709 (f = named_expression_rule(p)) // named_expression
31710 &&
31711 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
31712 )
31713 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031714 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 +010031715 _res = f;
31716 if (_res == NULL && PyErr_Occurred()) {
31717 p->error_indicator = 1;
31718 D(p->level--);
31719 return NULL;
31720 }
31721 goto done;
31722 }
31723 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031724 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
31726 }
31727 _res = NULL;
31728 done:
31729 D(p->level--);
31730 return _res;
31731}
31732
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031733// _tmp_182: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031734static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031735_tmp_182_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031736{
31737 D(p->level++);
31738 if (p->error_indicator) {
31739 D(p->level--);
31740 return NULL;
31741 }
31742 void * _res = NULL;
31743 int _mark = p->mark;
31744 { // ',' star_expression
31745 if (p->error_indicator) {
31746 D(p->level--);
31747 return NULL;
31748 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031749 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031750 Token * _literal;
31751 expr_ty c;
31752 if (
31753 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31754 &&
31755 (c = star_expression_rule(p)) // star_expression
31756 )
31757 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031758 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 +010031759 _res = c;
31760 if (_res == NULL && PyErr_Occurred()) {
31761 p->error_indicator = 1;
31762 D(p->level--);
31763 return NULL;
31764 }
31765 goto done;
31766 }
31767 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031768 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
31770 }
31771 _res = NULL;
31772 done:
31773 D(p->level--);
31774 return _res;
31775}
31776
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031777// _tmp_183: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031778static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031779_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031780{
31781 D(p->level++);
31782 if (p->error_indicator) {
31783 D(p->level--);
31784 return NULL;
31785 }
31786 void * _res = NULL;
31787 int _mark = p->mark;
31788 { // ',' expression
31789 if (p->error_indicator) {
31790 D(p->level--);
31791 return NULL;
31792 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031793 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031794 Token * _literal;
31795 expr_ty c;
31796 if (
31797 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31798 &&
31799 (c = expression_rule(p)) // expression
31800 )
31801 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031802 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031803 _res = c;
31804 if (_res == NULL && PyErr_Occurred()) {
31805 p->error_indicator = 1;
31806 D(p->level--);
31807 return NULL;
31808 }
31809 goto done;
31810 }
31811 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031812 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
31814 }
31815 _res = NULL;
31816 done:
31817 D(p->level--);
31818 return _res;
31819}
31820
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031821// _tmp_184: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031822static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031823_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031824{
31825 D(p->level++);
31826 if (p->error_indicator) {
31827 D(p->level--);
31828 return NULL;
31829 }
31830 void * _res = NULL;
31831 int _mark = p->mark;
31832 { // 'or' conjunction
31833 if (p->error_indicator) {
31834 D(p->level--);
31835 return NULL;
31836 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031837 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031838 Token * _keyword;
31839 expr_ty c;
31840 if (
31841 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
31842 &&
31843 (c = conjunction_rule(p)) // conjunction
31844 )
31845 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031846 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 +010031847 _res = c;
31848 if (_res == NULL && PyErr_Occurred()) {
31849 p->error_indicator = 1;
31850 D(p->level--);
31851 return NULL;
31852 }
31853 goto done;
31854 }
31855 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031856 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
31858 }
31859 _res = NULL;
31860 done:
31861 D(p->level--);
31862 return _res;
31863}
31864
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031865// _tmp_185: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031866static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031867_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031868{
31869 D(p->level++);
31870 if (p->error_indicator) {
31871 D(p->level--);
31872 return NULL;
31873 }
31874 void * _res = NULL;
31875 int _mark = p->mark;
31876 { // 'and' inversion
31877 if (p->error_indicator) {
31878 D(p->level--);
31879 return NULL;
31880 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031881 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031882 Token * _keyword;
31883 expr_ty c;
31884 if (
31885 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
31886 &&
31887 (c = inversion_rule(p)) // inversion
31888 )
31889 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031890 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 +010031891 _res = c;
31892 if (_res == NULL && PyErr_Occurred()) {
31893 p->error_indicator = 1;
31894 D(p->level--);
31895 return NULL;
31896 }
31897 goto done;
31898 }
31899 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031900 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031902 }
31903 _res = NULL;
31904 done:
31905 D(p->level--);
31906 return _res;
31907}
31908
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031909// _tmp_186: 'if' disjunction
31910static void *
31911_tmp_186_rule(Parser *p)
31912{
31913 D(p->level++);
31914 if (p->error_indicator) {
31915 D(p->level--);
31916 return NULL;
31917 }
31918 void * _res = NULL;
31919 int _mark = p->mark;
31920 { // 'if' disjunction
31921 if (p->error_indicator) {
31922 D(p->level--);
31923 return NULL;
31924 }
31925 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
31926 Token * _keyword;
31927 expr_ty z;
31928 if (
31929 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
31930 &&
31931 (z = disjunction_rule(p)) // disjunction
31932 )
31933 {
31934 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
31935 _res = z;
31936 if (_res == NULL && PyErr_Occurred()) {
31937 p->error_indicator = 1;
31938 D(p->level--);
31939 return NULL;
31940 }
31941 goto done;
31942 }
31943 p->mark = _mark;
31944 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
31945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
31946 }
31947 _res = NULL;
31948 done:
31949 D(p->level--);
31950 return _res;
31951}
31952
31953// _tmp_187: 'if' disjunction
31954static void *
31955_tmp_187_rule(Parser *p)
31956{
31957 D(p->level++);
31958 if (p->error_indicator) {
31959 D(p->level--);
31960 return NULL;
31961 }
31962 void * _res = NULL;
31963 int _mark = p->mark;
31964 { // 'if' disjunction
31965 if (p->error_indicator) {
31966 D(p->level--);
31967 return NULL;
31968 }
31969 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
31970 Token * _keyword;
31971 expr_ty z;
31972 if (
31973 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
31974 &&
31975 (z = disjunction_rule(p)) // disjunction
31976 )
31977 {
31978 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
31979 _res = z;
31980 if (_res == NULL && PyErr_Occurred()) {
31981 p->error_indicator = 1;
31982 D(p->level--);
31983 return NULL;
31984 }
31985 goto done;
31986 }
31987 p->mark = _mark;
31988 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
31989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
31990 }
31991 _res = NULL;
31992 done:
31993 D(p->level--);
31994 return _res;
31995}
31996
31997// _tmp_188: starred_expression | (assigment_expression | expression !':=') !'='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031998static void *
31999_tmp_188_rule(Parser *p)
32000{
32001 D(p->level++);
32002 if (p->error_indicator) {
32003 D(p->level--);
32004 return NULL;
32005 }
32006 void * _res = NULL;
32007 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032008 { // starred_expression
32009 if (p->error_indicator) {
32010 D(p->level--);
32011 return NULL;
32012 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032013 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032014 expr_ty starred_expression_var;
32015 if (
32016 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32017 )
32018 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032019 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 +010032020 _res = starred_expression_var;
32021 goto done;
32022 }
32023 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032024 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032025 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32026 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032027 { // (assigment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032028 if (p->error_indicator) {
32029 D(p->level--);
32030 return NULL;
32031 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032032 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32033 void *_tmp_199_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032034 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032035 (_tmp_199_var = _tmp_199_rule(p)) // assigment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032036 &&
32037 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32038 )
32039 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032040 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32041 _res = _tmp_199_var;
Pablo Galindob2802482021-04-15 21:38:45 +010032042 goto done;
32043 }
32044 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032045 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
Pablo Galindob2802482021-04-15 21:38:45 +010032047 }
32048 _res = NULL;
32049 done:
32050 D(p->level--);
32051 return _res;
32052}
32053
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032054// _tmp_189: ',' star_target
32055static void *
32056_tmp_189_rule(Parser *p)
32057{
32058 D(p->level++);
32059 if (p->error_indicator) {
32060 D(p->level--);
32061 return NULL;
32062 }
32063 void * _res = NULL;
32064 int _mark = p->mark;
32065 { // ',' star_target
32066 if (p->error_indicator) {
32067 D(p->level--);
32068 return NULL;
32069 }
32070 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32071 Token * _literal;
32072 expr_ty c;
32073 if (
32074 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32075 &&
32076 (c = star_target_rule(p)) // star_target
32077 )
32078 {
32079 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32080 _res = c;
32081 if (_res == NULL && PyErr_Occurred()) {
32082 p->error_indicator = 1;
32083 D(p->level--);
32084 return NULL;
32085 }
32086 goto done;
32087 }
32088 p->mark = _mark;
32089 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
32090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
32091 }
32092 _res = NULL;
32093 done:
32094 D(p->level--);
32095 return _res;
32096}
32097
32098// _tmp_190: ',' star_target
32099static void *
32100_tmp_190_rule(Parser *p)
32101{
32102 D(p->level++);
32103 if (p->error_indicator) {
32104 D(p->level--);
32105 return NULL;
32106 }
32107 void * _res = NULL;
32108 int _mark = p->mark;
32109 { // ',' star_target
32110 if (p->error_indicator) {
32111 D(p->level--);
32112 return NULL;
32113 }
32114 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32115 Token * _literal;
32116 expr_ty c;
32117 if (
32118 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32119 &&
32120 (c = star_target_rule(p)) // star_target
32121 )
32122 {
32123 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32124 _res = c;
32125 if (_res == NULL && PyErr_Occurred()) {
32126 p->error_indicator = 1;
32127 D(p->level--);
32128 return NULL;
32129 }
32130 goto done;
32131 }
32132 p->mark = _mark;
32133 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
32134 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
32135 }
32136 _res = NULL;
32137 done:
32138 D(p->level--);
32139 return _res;
32140}
32141
32142// _tmp_191: star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010032143static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032144_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032145{
32146 D(p->level++);
32147 if (p->error_indicator) {
32148 D(p->level--);
32149 return NULL;
32150 }
32151 void * _res = NULL;
32152 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032153 { // star_targets '='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032154 if (p->error_indicator) {
32155 D(p->level--);
32156 return NULL;
32157 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032158 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032159 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032160 expr_ty star_targets_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032161 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032162 (star_targets_var = star_targets_rule(p)) // star_targets
Pablo Galindoa77aac42021-04-23 14:27:05 +010032163 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032164 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032165 )
32166 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032167 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32168 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
Pablo Galindoa77aac42021-04-23 14:27:05 +010032169 goto done;
32170 }
32171 p->mark = _mark;
32172 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032174 }
32175 _res = NULL;
32176 done:
32177 D(p->level--);
32178 return _res;
32179}
32180
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032181// _tmp_192: star_targets '='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032182static void *
32183_tmp_192_rule(Parser *p)
32184{
32185 D(p->level++);
32186 if (p->error_indicator) {
32187 D(p->level--);
32188 return NULL;
32189 }
32190 void * _res = NULL;
32191 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032192 { // star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032193 if (p->error_indicator) {
32194 D(p->level--);
32195 return NULL;
32196 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032197 D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032198 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032199 expr_ty star_targets_var;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032200 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032201 (star_targets_var = star_targets_rule(p)) // star_targets
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032202 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032203 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032204 )
32205 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032206 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32207 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032208 goto done;
32209 }
32210 p->mark = _mark;
32211 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032213 }
32214 _res = NULL;
32215 done:
32216 D(p->level--);
32217 return _res;
32218}
32219
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032220// _tmp_193: ')' | '**'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032221static void *
32222_tmp_193_rule(Parser *p)
32223{
32224 D(p->level++);
32225 if (p->error_indicator) {
32226 D(p->level--);
32227 return NULL;
32228 }
32229 void * _res = NULL;
32230 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032231 { // ')'
32232 if (p->error_indicator) {
32233 D(p->level--);
32234 return NULL;
32235 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032236 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032237 Token * _literal;
32238 if (
32239 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32240 )
32241 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032242 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032243 _res = _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032244 goto done;
32245 }
32246 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032247 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032248 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032249 }
32250 { // '**'
32251 if (p->error_indicator) {
32252 D(p->level--);
32253 return NULL;
32254 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032255 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032256 Token * _literal;
32257 if (
32258 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32259 )
32260 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032261 D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032262 _res = _literal;
32263 goto done;
32264 }
32265 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032266 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032268 }
32269 _res = NULL;
32270 done:
32271 D(p->level--);
32272 return _res;
32273}
32274
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032275// _tmp_194: ':' | '**'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032276static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032277_tmp_194_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032278{
32279 D(p->level++);
32280 if (p->error_indicator) {
32281 D(p->level--);
32282 return NULL;
32283 }
32284 void * _res = NULL;
32285 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032286 { // ':'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032287 if (p->error_indicator) {
32288 D(p->level--);
32289 return NULL;
32290 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032291 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032292 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032293 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032294 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032295 )
32296 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032297 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032298 _res = _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032299 goto done;
32300 }
32301 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032302 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32304 }
32305 { // '**'
32306 if (p->error_indicator) {
32307 D(p->level--);
32308 return NULL;
32309 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032310 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032311 Token * _literal;
32312 if (
32313 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32314 )
32315 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032316 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032317 _res = _literal;
32318 goto done;
32319 }
32320 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032321 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032323 }
32324 _res = NULL;
32325 done:
32326 D(p->level--);
32327 return _res;
32328}
32329
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032330// _tmp_195: expression ['as' star_target]
32331static void *
32332_tmp_195_rule(Parser *p)
32333{
32334 D(p->level++);
32335 if (p->error_indicator) {
32336 D(p->level--);
32337 return NULL;
32338 }
32339 void * _res = NULL;
32340 int _mark = p->mark;
32341 { // expression ['as' star_target]
32342 if (p->error_indicator) {
32343 D(p->level--);
32344 return NULL;
32345 }
32346 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32347 void *_opt_var;
32348 UNUSED(_opt_var); // Silence compiler warnings
32349 expr_ty expression_var;
32350 if (
32351 (expression_var = expression_rule(p)) // expression
32352 &&
32353 (_opt_var = _tmp_200_rule(p), 1) // ['as' star_target]
32354 )
32355 {
32356 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32357 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32358 goto done;
32359 }
32360 p->mark = _mark;
32361 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32363 }
32364 _res = NULL;
32365 done:
32366 D(p->level--);
32367 return _res;
32368}
32369
32370// _tmp_196: expressions ['as' star_target]
32371static void *
32372_tmp_196_rule(Parser *p)
32373{
32374 D(p->level++);
32375 if (p->error_indicator) {
32376 D(p->level--);
32377 return NULL;
32378 }
32379 void * _res = NULL;
32380 int _mark = p->mark;
32381 { // expressions ['as' star_target]
32382 if (p->error_indicator) {
32383 D(p->level--);
32384 return NULL;
32385 }
32386 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
32387 void *_opt_var;
32388 UNUSED(_opt_var); // Silence compiler warnings
32389 expr_ty expressions_var;
32390 if (
32391 (expressions_var = expressions_rule(p)) // expressions
32392 &&
32393 (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target]
32394 )
32395 {
32396 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
32397 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32398 goto done;
32399 }
32400 p->mark = _mark;
32401 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
32402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
32403 }
32404 _res = NULL;
32405 done:
32406 D(p->level--);
32407 return _res;
32408}
32409
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032410// _tmp_197: expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032411static void *
32412_tmp_197_rule(Parser *p)
32413{
32414 D(p->level++);
32415 if (p->error_indicator) {
32416 D(p->level--);
32417 return NULL;
32418 }
32419 void * _res = NULL;
32420 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032421 { // expression ['as' star_target]
32422 if (p->error_indicator) {
32423 D(p->level--);
32424 return NULL;
32425 }
32426 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32427 void *_opt_var;
32428 UNUSED(_opt_var); // Silence compiler warnings
32429 expr_ty expression_var;
32430 if (
32431 (expression_var = expression_rule(p)) // expression
32432 &&
32433 (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target]
32434 )
32435 {
32436 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32437 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32438 goto done;
32439 }
32440 p->mark = _mark;
32441 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
32442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32443 }
32444 _res = NULL;
32445 done:
32446 D(p->level--);
32447 return _res;
32448}
32449
32450// _tmp_198: expressions ['as' star_target]
32451static void *
32452_tmp_198_rule(Parser *p)
32453{
32454 D(p->level++);
32455 if (p->error_indicator) {
32456 D(p->level--);
32457 return NULL;
32458 }
32459 void * _res = NULL;
32460 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032461 { // expressions ['as' star_target]
32462 if (p->error_indicator) {
32463 D(p->level--);
32464 return NULL;
32465 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032466 D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032467 void *_opt_var;
32468 UNUSED(_opt_var); // Silence compiler warnings
32469 expr_ty expressions_var;
32470 if (
32471 (expressions_var = expressions_rule(p)) // expressions
32472 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032473 (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032474 )
32475 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032476 D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032477 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32478 goto done;
32479 }
32480 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032481 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032483 }
32484 _res = NULL;
32485 done:
32486 D(p->level--);
32487 return _res;
32488}
32489
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032490// _tmp_199: assigment_expression | expression !':='
Pablo Galindo58fb1562021-02-02 19:54:22 +000032491static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032492_tmp_199_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032493{
32494 D(p->level++);
32495 if (p->error_indicator) {
32496 D(p->level--);
32497 return NULL;
32498 }
32499 void * _res = NULL;
32500 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032501 { // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032502 if (p->error_indicator) {
32503 D(p->level--);
32504 return NULL;
32505 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032506 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032507 expr_ty assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032508 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032509 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032510 )
32511 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032512 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032513 _res = assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032514 goto done;
32515 }
32516 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032517 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
32519 }
32520 { // expression !':='
32521 if (p->error_indicator) {
32522 D(p->level--);
32523 return NULL;
32524 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032525 D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032526 expr_ty expression_var;
32527 if (
32528 (expression_var = expression_rule(p)) // expression
32529 &&
32530 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
32531 )
32532 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032533 D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032534 _res = expression_var;
32535 goto done;
32536 }
32537 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032538 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032540 }
32541 _res = NULL;
32542 done:
32543 D(p->level--);
32544 return _res;
32545}
32546
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032547// _tmp_200: 'as' star_target
32548static void *
32549_tmp_200_rule(Parser *p)
32550{
32551 D(p->level++);
32552 if (p->error_indicator) {
32553 D(p->level--);
32554 return NULL;
32555 }
32556 void * _res = NULL;
32557 int _mark = p->mark;
32558 { // 'as' star_target
32559 if (p->error_indicator) {
32560 D(p->level--);
32561 return NULL;
32562 }
32563 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32564 Token * _keyword;
32565 expr_ty star_target_var;
32566 if (
32567 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32568 &&
32569 (star_target_var = star_target_rule(p)) // star_target
32570 )
32571 {
32572 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32573 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32574 goto done;
32575 }
32576 p->mark = _mark;
32577 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
32578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32579 }
32580 _res = NULL;
32581 done:
32582 D(p->level--);
32583 return _res;
32584}
32585
32586// _tmp_201: 'as' star_target
32587static void *
32588_tmp_201_rule(Parser *p)
32589{
32590 D(p->level++);
32591 if (p->error_indicator) {
32592 D(p->level--);
32593 return NULL;
32594 }
32595 void * _res = NULL;
32596 int _mark = p->mark;
32597 { // 'as' star_target
32598 if (p->error_indicator) {
32599 D(p->level--);
32600 return NULL;
32601 }
32602 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32603 Token * _keyword;
32604 expr_ty star_target_var;
32605 if (
32606 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32607 &&
32608 (star_target_var = star_target_rule(p)) // star_target
32609 )
32610 {
32611 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32612 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32613 goto done;
32614 }
32615 p->mark = _mark;
32616 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
32617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32618 }
32619 _res = NULL;
32620 done:
32621 D(p->level--);
32622 return _res;
32623}
32624
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032625// _tmp_202: 'as' star_target
32626static void *
32627_tmp_202_rule(Parser *p)
32628{
32629 D(p->level++);
32630 if (p->error_indicator) {
32631 D(p->level--);
32632 return NULL;
32633 }
32634 void * _res = NULL;
32635 int _mark = p->mark;
32636 { // 'as' star_target
32637 if (p->error_indicator) {
32638 D(p->level--);
32639 return NULL;
32640 }
32641 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32642 Token * _keyword;
32643 expr_ty star_target_var;
32644 if (
32645 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32646 &&
32647 (star_target_var = star_target_rule(p)) // star_target
32648 )
32649 {
32650 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32651 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32652 goto done;
32653 }
32654 p->mark = _mark;
32655 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
32656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32657 }
32658 _res = NULL;
32659 done:
32660 D(p->level--);
32661 return _res;
32662}
32663
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032664// _tmp_203: 'as' star_target
32665static void *
32666_tmp_203_rule(Parser *p)
32667{
32668 D(p->level++);
32669 if (p->error_indicator) {
32670 D(p->level--);
32671 return NULL;
32672 }
32673 void * _res = NULL;
32674 int _mark = p->mark;
32675 { // 'as' star_target
32676 if (p->error_indicator) {
32677 D(p->level--);
32678 return NULL;
32679 }
32680 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32681 Token * _keyword;
32682 expr_ty star_target_var;
32683 if (
32684 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32685 &&
32686 (star_target_var = star_target_rule(p)) // star_target
32687 )
32688 {
32689 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32690 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32691 goto done;
32692 }
32693 p->mark = _mark;
32694 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
32695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32696 }
32697 _res = NULL;
32698 done:
32699 D(p->level--);
32700 return _res;
32701}
32702
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032703void *
32704_PyPegen_parse(Parser *p)
32705{
32706 // Initialize keywords
32707 p->keywords = reserved_keywords;
32708 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010032709 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032710
32711 // Run parser
32712 void *result = NULL;
32713 if (p->start_rule == Py_file_input) {
32714 result = file_rule(p);
32715 } else if (p->start_rule == Py_single_input) {
32716 result = interactive_rule(p);
32717 } else if (p->start_rule == Py_eval_input) {
32718 result = eval_rule(p);
32719 } else if (p->start_rule == Py_func_type_input) {
32720 result = func_type_rule(p);
32721 } else if (p->start_rule == Py_fstring_input) {
32722 result = fstring_rule(p);
32723 }
32724
32725 return result;
32726}
32727
32728// The end