blob: 0a174788657040a9e3ab01dd56129273211a5b1f [file] [log] [blame]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Guido van Rossumf70e43a1991-02-19 12:39:46 +00003
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Victor Stinner6af528b2021-03-18 09:54:13 +01005# define D(x) if (Py_DebugFlag) x;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00006#else
Victor Stinner6af528b2021-03-18 09:54:13 +01007# define D(x)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00008#endif
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009static const int n_keyword_lists = 9;
10static KeywordToken *reserved_keywords[] = {
Pablo Galindo1ac0cbc2020-07-06 20:31:16 +010011 (KeywordToken[]) {{NULL, -1}},
12 (KeywordToken[]) {{NULL, -1}},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013 (KeywordToken[]) {
14 {"if", 510},
15 {"in", 518},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030016 {"as", 520},
Brandt Bucher145bf262021-02-26 14:51:55 -080017 {"is", 530},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018 {"or", 531},
19 {NULL, -1},
20 },
21 (KeywordToken[]) {
22 {"del", 503},
23 {"try", 511},
24 {"for", 517},
Brandt Bucher145bf262021-02-26 14:51:55 -080025 {"def", 526},
26 {"not", 529},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027 {"and", 532},
28 {NULL, -1},
29 },
30 (KeywordToken[]) {
31 {"pass", 502},
32 {"from", 514},
33 {"elif", 515},
34 {"else", 516},
35 {"with", 519},
Brandt Bucher145bf262021-02-26 14:51:55 -080036 {"None", 523},
37 {"True", 524},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010038 {NULL, -1},
39 },
40 (KeywordToken[]) {
41 {"raise", 501},
42 {"yield", 504},
43 {"break", 506},
44 {"while", 512},
Brandt Bucher145bf262021-02-26 14:51:55 -080045 {"False", 525},
46 {"class", 527},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010047 {NULL, -1},
48 },
49 (KeywordToken[]) {
50 {"return", 500},
51 {"assert", 505},
52 {"global", 508},
53 {"import", 513},
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030054 {"except", 521},
Brandt Bucher145bf262021-02-26 14:51:55 -080055 {"lambda", 528},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010056 {NULL, -1},
57 },
58 (KeywordToken[]) {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030059 {"finally", 522},
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010060 {NULL, -1},
61 },
62 (KeywordToken[]) {
63 {"continue", 507},
64 {"nonlocal", 509},
65 {NULL, -1},
66 },
67};
Pablo Galindob2802482021-04-15 21:38:45 +010068static char *soft_keywords[] = {
69 "_",
70 "case",
71 "match",
72 NULL,
73};
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010074#define file_type 1000
75#define interactive_type 1001
76#define eval_type 1002
77#define func_type_type 1003
78#define fstring_type 1004
79#define type_expressions_type 1005
80#define statements_type 1006
81#define statement_type 1007
82#define statement_newline_type 1008
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000083#define simple_stmts_type 1009
84#define simple_stmt_type 1010
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010085#define compound_stmt_type 1011
86#define assignment_type 1012
87#define augassign_type 1013
88#define global_stmt_type 1014
89#define nonlocal_stmt_type 1015
90#define yield_stmt_type 1016
91#define assert_stmt_type 1017
92#define del_stmt_type 1018
93#define import_stmt_type 1019
94#define import_name_type 1020
95#define import_from_type 1021
96#define import_from_targets_type 1022
97#define import_from_as_names_type 1023
98#define import_from_as_name_type 1024
99#define dotted_as_names_type 1025
100#define dotted_as_name_type 1026
101#define dotted_name_type 1027 // Left-recursive
102#define if_stmt_type 1028
103#define elif_stmt_type 1029
104#define else_block_type 1030
105#define while_stmt_type 1031
106#define for_stmt_type 1032
107#define with_stmt_type 1033
108#define with_item_type 1034
109#define try_stmt_type 1035
110#define except_block_type 1036
111#define finally_block_type 1037
Brandt Bucher145bf262021-02-26 14:51:55 -0800112#define match_stmt_type 1038
113#define subject_expr_type 1039
114#define case_block_type 1040
115#define guard_type 1041
116#define patterns_type 1042
117#define pattern_type 1043
118#define as_pattern_type 1044
119#define or_pattern_type 1045
120#define closed_pattern_type 1046
121#define literal_pattern_type 1047
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000122#define literal_expr_type 1048
123#define complex_number_type 1049
124#define signed_number_type 1050
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700125#define signed_real_number_type 1051
126#define real_number_type 1052
127#define imaginary_number_type 1053
128#define capture_pattern_type 1054
129#define pattern_capture_target_type 1055
130#define wildcard_pattern_type 1056
131#define value_pattern_type 1057
132#define attr_type 1058 // Left-recursive
133#define name_or_attr_type 1059 // Left-recursive
134#define group_pattern_type 1060
135#define sequence_pattern_type 1061
136#define open_sequence_pattern_type 1062
137#define maybe_sequence_pattern_type 1063
138#define maybe_star_pattern_type 1064
139#define star_pattern_type 1065
140#define mapping_pattern_type 1066
141#define items_pattern_type 1067
142#define key_value_pattern_type 1068
143#define double_star_pattern_type 1069
144#define class_pattern_type 1070
145#define positional_patterns_type 1071
146#define keyword_patterns_type 1072
147#define keyword_pattern_type 1073
148#define return_stmt_type 1074
149#define raise_stmt_type 1075
150#define function_def_type 1076
151#define function_def_raw_type 1077
152#define func_type_comment_type 1078
153#define params_type 1079
154#define parameters_type 1080
155#define slash_no_default_type 1081
156#define slash_with_default_type 1082
157#define star_etc_type 1083
158#define kwds_type 1084
159#define param_no_default_type 1085
160#define param_with_default_type 1086
161#define param_maybe_default_type 1087
162#define param_type 1088
163#define annotation_type 1089
164#define default_type 1090
165#define decorators_type 1091
166#define class_def_type 1092
167#define class_def_raw_type 1093
168#define block_type 1094
169#define star_expressions_type 1095
170#define star_expression_type 1096
171#define star_named_expressions_type 1097
172#define star_named_expression_type 1098
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700173#define assigment_expression_type 1099
174#define named_expression_type 1100
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700175#define annotated_rhs_type 1101
176#define expressions_type 1102
177#define expression_type 1103
178#define lambdef_type 1104
179#define lambda_params_type 1105
180#define lambda_parameters_type 1106
181#define lambda_slash_no_default_type 1107
182#define lambda_slash_with_default_type 1108
183#define lambda_star_etc_type 1109
184#define lambda_kwds_type 1110
185#define lambda_param_no_default_type 1111
186#define lambda_param_with_default_type 1112
187#define lambda_param_maybe_default_type 1113
188#define lambda_param_type 1114
189#define disjunction_type 1115
190#define conjunction_type 1116
191#define inversion_type 1117
192#define comparison_type 1118
193#define compare_op_bitwise_or_pair_type 1119
194#define eq_bitwise_or_type 1120
195#define noteq_bitwise_or_type 1121
196#define lte_bitwise_or_type 1122
197#define lt_bitwise_or_type 1123
198#define gte_bitwise_or_type 1124
199#define gt_bitwise_or_type 1125
200#define notin_bitwise_or_type 1126
201#define in_bitwise_or_type 1127
202#define isnot_bitwise_or_type 1128
203#define is_bitwise_or_type 1129
204#define bitwise_or_type 1130 // Left-recursive
205#define bitwise_xor_type 1131 // Left-recursive
206#define bitwise_and_type 1132 // Left-recursive
207#define shift_expr_type 1133 // Left-recursive
208#define sum_type 1134 // Left-recursive
209#define term_type 1135 // Left-recursive
210#define factor_type 1136
211#define power_type 1137
212#define await_primary_type 1138
213#define primary_type 1139 // Left-recursive
214#define slices_type 1140
215#define slice_type 1141
216#define atom_type 1142
217#define strings_type 1143
218#define list_type 1144
219#define listcomp_type 1145
220#define tuple_type 1146
221#define group_type 1147
222#define genexp_type 1148
223#define set_type 1149
224#define setcomp_type 1150
225#define dict_type 1151
226#define dictcomp_type 1152
227#define double_starred_kvpairs_type 1153
228#define double_starred_kvpair_type 1154
229#define kvpair_type 1155
230#define for_if_clauses_type 1156
231#define for_if_clause_type 1157
232#define yield_expr_type 1158
233#define arguments_type 1159
234#define args_type 1160
235#define kwargs_type 1161
236#define starred_expression_type 1162
237#define kwarg_or_starred_type 1163
238#define kwarg_or_double_starred_type 1164
239#define star_targets_type 1165
240#define star_targets_list_seq_type 1166
241#define star_targets_tuple_seq_type 1167
242#define star_target_type 1168
243#define target_with_star_atom_type 1169
244#define star_atom_type 1170
245#define single_target_type 1171
246#define single_subscript_attribute_target_type 1172
247#define del_targets_type 1173
248#define del_target_type 1174
249#define del_t_atom_type 1175
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700250#define t_primary_type 1176 // Left-recursive
251#define t_lookahead_type 1177
252#define invalid_arguments_type 1178
253#define invalid_kwarg_type 1179
254#define expression_without_invalid_type 1180
255#define invalid_expression_type 1181
256#define invalid_named_expression_type 1182
257#define invalid_assignment_type 1183
258#define invalid_ann_assign_target_type 1184
259#define invalid_del_stmt_type 1185
260#define invalid_block_type 1186
261#define invalid_primary_type 1187 // Left-recursive
262#define invalid_comprehension_type 1188
263#define invalid_dict_comprehension_type 1189
264#define invalid_parameters_type 1190
265#define invalid_parameters_helper_type 1191
266#define invalid_lambda_parameters_type 1192
267#define invalid_lambda_parameters_helper_type 1193
268#define invalid_star_etc_type 1194
269#define invalid_lambda_star_etc_type 1195
270#define invalid_double_type_comments_type 1196
271#define invalid_with_item_type 1197
272#define invalid_for_target_type 1198
273#define invalid_group_type 1199
274#define invalid_import_from_targets_type 1200
275#define invalid_with_stmt_type 1201
276#define invalid_with_stmt_indent_type 1202
277#define invalid_try_stmt_type 1203
278#define invalid_except_stmt_type 1204
279#define invalid_finally_stmt_type 1205
280#define invalid_except_stmt_indent_type 1206
281#define invalid_match_stmt_type 1207
282#define invalid_case_block_type 1208
Pablo Galindoa8c418d2021-06-18 22:15:57 +0100283#define invalid_as_pattern_type 1209
284#define invalid_if_stmt_type 1210
285#define invalid_elif_stmt_type 1211
286#define invalid_else_stmt_type 1212
287#define invalid_while_stmt_type 1213
288#define invalid_for_stmt_type 1214
289#define invalid_def_raw_type 1215
290#define invalid_class_def_raw_type 1216
291#define invalid_double_starred_kvpairs_type 1217
292#define invalid_kvpair_type 1218
293#define _loop0_1_type 1219
294#define _loop0_2_type 1220
295#define _loop0_4_type 1221
296#define _gather_3_type 1222
297#define _loop0_6_type 1223
298#define _gather_5_type 1224
299#define _loop0_8_type 1225
300#define _gather_7_type 1226
301#define _loop0_10_type 1227
302#define _gather_9_type 1228
303#define _loop1_11_type 1229
304#define _loop0_13_type 1230
305#define _gather_12_type 1231
306#define _tmp_14_type 1232
307#define _tmp_15_type 1233
308#define _tmp_16_type 1234
309#define _tmp_17_type 1235
310#define _tmp_18_type 1236
311#define _tmp_19_type 1237
312#define _tmp_20_type 1238
313#define _tmp_21_type 1239
314#define _loop1_22_type 1240
315#define _tmp_23_type 1241
316#define _tmp_24_type 1242
317#define _loop0_26_type 1243
318#define _gather_25_type 1244
319#define _loop0_28_type 1245
320#define _gather_27_type 1246
321#define _tmp_29_type 1247
322#define _tmp_30_type 1248
323#define _loop0_31_type 1249
324#define _loop1_32_type 1250
325#define _loop0_34_type 1251
326#define _gather_33_type 1252
327#define _tmp_35_type 1253
328#define _loop0_37_type 1254
329#define _gather_36_type 1255
330#define _tmp_38_type 1256
331#define _loop0_40_type 1257
332#define _gather_39_type 1258
333#define _loop0_42_type 1259
334#define _gather_41_type 1260
335#define _loop0_44_type 1261
336#define _gather_43_type 1262
337#define _loop0_46_type 1263
338#define _gather_45_type 1264
339#define _tmp_47_type 1265
340#define _loop1_48_type 1266
341#define _tmp_49_type 1267
342#define _loop1_50_type 1268
343#define _loop0_52_type 1269
344#define _gather_51_type 1270
345#define _tmp_53_type 1271
346#define _tmp_54_type 1272
347#define _tmp_55_type 1273
348#define _tmp_56_type 1274
349#define _loop0_58_type 1275
350#define _gather_57_type 1276
351#define _loop0_60_type 1277
352#define _gather_59_type 1278
353#define _tmp_61_type 1279
354#define _loop0_63_type 1280
355#define _gather_62_type 1281
356#define _loop0_65_type 1282
357#define _gather_64_type 1283
358#define _tmp_66_type 1284
359#define _tmp_67_type 1285
360#define _tmp_68_type 1286
361#define _tmp_69_type 1287
362#define _loop0_70_type 1288
363#define _loop0_71_type 1289
364#define _loop0_72_type 1290
365#define _loop1_73_type 1291
366#define _loop0_74_type 1292
367#define _loop1_75_type 1293
368#define _loop1_76_type 1294
369#define _loop1_77_type 1295
370#define _loop0_78_type 1296
371#define _loop1_79_type 1297
372#define _loop0_80_type 1298
373#define _loop1_81_type 1299
374#define _loop0_82_type 1300
375#define _loop1_83_type 1301
376#define _loop1_84_type 1302
377#define _tmp_85_type 1303
378#define _loop1_86_type 1304
379#define _loop0_88_type 1305
380#define _gather_87_type 1306
381#define _loop1_89_type 1307
382#define _loop0_90_type 1308
383#define _loop0_91_type 1309
384#define _loop0_92_type 1310
385#define _loop1_93_type 1311
386#define _loop0_94_type 1312
387#define _loop1_95_type 1313
388#define _loop1_96_type 1314
389#define _loop1_97_type 1315
390#define _loop0_98_type 1316
391#define _loop1_99_type 1317
392#define _loop0_100_type 1318
393#define _loop1_101_type 1319
394#define _loop0_102_type 1320
395#define _loop1_103_type 1321
396#define _loop1_104_type 1322
397#define _loop1_105_type 1323
398#define _loop1_106_type 1324
399#define _tmp_107_type 1325
400#define _loop0_109_type 1326
401#define _gather_108_type 1327
402#define _tmp_110_type 1328
403#define _tmp_111_type 1329
404#define _tmp_112_type 1330
405#define _tmp_113_type 1331
406#define _loop1_114_type 1332
407#define _tmp_115_type 1333
408#define _tmp_116_type 1334
409#define _tmp_117_type 1335
410#define _loop0_119_type 1336
411#define _gather_118_type 1337
412#define _loop1_120_type 1338
413#define _loop0_121_type 1339
414#define _loop0_122_type 1340
415#define _loop0_124_type 1341
416#define _gather_123_type 1342
417#define _tmp_125_type 1343
418#define _loop0_127_type 1344
419#define _gather_126_type 1345
420#define _loop0_129_type 1346
421#define _gather_128_type 1347
422#define _loop0_131_type 1348
423#define _gather_130_type 1349
424#define _loop0_133_type 1350
425#define _gather_132_type 1351
426#define _loop0_134_type 1352
427#define _loop0_136_type 1353
428#define _gather_135_type 1354
429#define _loop1_137_type 1355
430#define _tmp_138_type 1356
431#define _loop0_140_type 1357
432#define _gather_139_type 1358
433#define _tmp_141_type 1359
434#define _tmp_142_type 1360
435#define _tmp_143_type 1361
436#define _tmp_144_type 1362
437#define _tmp_145_type 1363
438#define _tmp_146_type 1364
439#define _loop0_147_type 1365
440#define _loop0_148_type 1366
441#define _loop0_149_type 1367
442#define _tmp_150_type 1368
443#define _tmp_151_type 1369
444#define _tmp_152_type 1370
445#define _tmp_153_type 1371
446#define _loop0_154_type 1372
447#define _loop1_155_type 1373
448#define _loop0_156_type 1374
449#define _loop1_157_type 1375
450#define _tmp_158_type 1376
451#define _tmp_159_type 1377
452#define _tmp_160_type 1378
453#define _loop0_162_type 1379
454#define _gather_161_type 1380
455#define _loop0_164_type 1381
456#define _gather_163_type 1382
457#define _loop0_166_type 1383
458#define _gather_165_type 1384
459#define _loop0_168_type 1385
460#define _gather_167_type 1386
461#define _tmp_169_type 1387
462#define _tmp_170_type 1388
463#define _tmp_171_type 1389
464#define _tmp_172_type 1390
465#define _tmp_173_type 1391
466#define _tmp_174_type 1392
467#define _loop0_176_type 1393
468#define _gather_175_type 1394
469#define _tmp_177_type 1395
470#define _tmp_178_type 1396
471#define _tmp_179_type 1397
472#define _tmp_180_type 1398
473#define _tmp_181_type 1399
474#define _tmp_182_type 1400
475#define _tmp_183_type 1401
476#define _tmp_184_type 1402
477#define _tmp_185_type 1403
478#define _tmp_186_type 1404
479#define _tmp_187_type 1405
480#define _tmp_188_type 1406
481#define _tmp_189_type 1407
482#define _tmp_190_type 1408
483#define _tmp_191_type 1409
484#define _tmp_192_type 1410
485#define _tmp_193_type 1411
486#define _tmp_194_type 1412
487#define _tmp_195_type 1413
488#define _tmp_196_type 1414
489#define _tmp_197_type 1415
490#define _tmp_198_type 1416
491#define _tmp_199_type 1417
492#define _tmp_200_type 1418
493#define _tmp_201_type 1419
494#define _tmp_202_type 1420
495#define _tmp_203_type 1421
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100496
497static mod_ty file_rule(Parser *p);
498static mod_ty interactive_rule(Parser *p);
499static mod_ty eval_rule(Parser *p);
500static mod_ty func_type_rule(Parser *p);
501static expr_ty fstring_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100502static asdl_expr_seq* type_expressions_rule(Parser *p);
503static asdl_stmt_seq* statements_rule(Parser *p);
504static asdl_stmt_seq* statement_rule(Parser *p);
505static asdl_stmt_seq* statement_newline_rule(Parser *p);
Pablo Galindo9bdc40e2020-11-30 19:42:38 +0000506static asdl_stmt_seq* simple_stmts_rule(Parser *p);
507static stmt_ty simple_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100508static stmt_ty compound_stmt_rule(Parser *p);
509static stmt_ty assignment_rule(Parser *p);
510static AugOperator* augassign_rule(Parser *p);
511static stmt_ty global_stmt_rule(Parser *p);
512static stmt_ty nonlocal_stmt_rule(Parser *p);
513static stmt_ty yield_stmt_rule(Parser *p);
514static stmt_ty assert_stmt_rule(Parser *p);
515static stmt_ty del_stmt_rule(Parser *p);
516static stmt_ty import_stmt_rule(Parser *p);
517static stmt_ty import_name_rule(Parser *p);
518static stmt_ty import_from_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100519static asdl_alias_seq* import_from_targets_rule(Parser *p);
520static asdl_alias_seq* import_from_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100521static alias_ty import_from_as_name_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100522static asdl_alias_seq* dotted_as_names_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100523static alias_ty dotted_as_name_rule(Parser *p);
524static expr_ty dotted_name_rule(Parser *p);
525static stmt_ty if_stmt_rule(Parser *p);
526static stmt_ty elif_stmt_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100527static asdl_stmt_seq* else_block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100528static stmt_ty while_stmt_rule(Parser *p);
529static stmt_ty for_stmt_rule(Parser *p);
530static stmt_ty with_stmt_rule(Parser *p);
531static withitem_ty with_item_rule(Parser *p);
532static stmt_ty try_stmt_rule(Parser *p);
533static excepthandler_ty except_block_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100534static asdl_stmt_seq* finally_block_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800535static stmt_ty match_stmt_rule(Parser *p);
536static expr_ty subject_expr_rule(Parser *p);
537static match_case_ty case_block_rule(Parser *p);
538static expr_ty guard_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000539static pattern_ty patterns_rule(Parser *p);
540static pattern_ty pattern_rule(Parser *p);
541static pattern_ty as_pattern_rule(Parser *p);
542static pattern_ty or_pattern_rule(Parser *p);
543static pattern_ty closed_pattern_rule(Parser *p);
544static pattern_ty literal_pattern_rule(Parser *p);
545static expr_ty literal_expr_rule(Parser *p);
546static expr_ty complex_number_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800547static expr_ty signed_number_rule(Parser *p);
Brandt Bucherdbe60ee2021-04-29 17:19:28 -0700548static expr_ty signed_real_number_rule(Parser *p);
549static expr_ty real_number_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000550static expr_ty imaginary_number_rule(Parser *p);
551static pattern_ty capture_pattern_rule(Parser *p);
552static expr_ty pattern_capture_target_rule(Parser *p);
553static pattern_ty wildcard_pattern_rule(Parser *p);
554static pattern_ty value_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800555static expr_ty attr_rule(Parser *p);
556static expr_ty name_or_attr_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000557static pattern_ty group_pattern_rule(Parser *p);
558static pattern_ty sequence_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800559static asdl_seq* open_sequence_pattern_rule(Parser *p);
560static asdl_seq* maybe_sequence_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000561static pattern_ty maybe_star_pattern_rule(Parser *p);
562static pattern_ty star_pattern_rule(Parser *p);
563static pattern_ty mapping_pattern_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800564static asdl_seq* items_pattern_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000565static KeyPatternPair* key_value_pattern_rule(Parser *p);
566static expr_ty double_star_pattern_rule(Parser *p);
567static pattern_ty class_pattern_rule(Parser *p);
568static asdl_pattern_seq* positional_patterns_rule(Parser *p);
569static asdl_seq* keyword_patterns_rule(Parser *p);
570static KeyPatternPair* keyword_pattern_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100571static stmt_ty return_stmt_rule(Parser *p);
572static stmt_ty raise_stmt_rule(Parser *p);
573static stmt_ty function_def_rule(Parser *p);
574static stmt_ty function_def_raw_rule(Parser *p);
575static Token* func_type_comment_rule(Parser *p);
576static arguments_ty params_rule(Parser *p);
577static arguments_ty parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100578static asdl_arg_seq* slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100579static SlashWithDefault* slash_with_default_rule(Parser *p);
580static StarEtc* star_etc_rule(Parser *p);
581static arg_ty kwds_rule(Parser *p);
582static arg_ty param_no_default_rule(Parser *p);
583static NameDefaultPair* param_with_default_rule(Parser *p);
584static NameDefaultPair* param_maybe_default_rule(Parser *p);
585static arg_ty param_rule(Parser *p);
586static expr_ty annotation_rule(Parser *p);
587static expr_ty default_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100588static asdl_expr_seq* decorators_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100589static stmt_ty class_def_rule(Parser *p);
590static stmt_ty class_def_raw_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100591static asdl_stmt_seq* block_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100592static expr_ty star_expressions_rule(Parser *p);
593static expr_ty star_expression_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100594static asdl_expr_seq* star_named_expressions_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100595static expr_ty star_named_expression_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700596static expr_ty assigment_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100597static expr_ty named_expression_rule(Parser *p);
598static expr_ty annotated_rhs_rule(Parser *p);
599static expr_ty expressions_rule(Parser *p);
600static expr_ty expression_rule(Parser *p);
601static expr_ty lambdef_rule(Parser *p);
602static arguments_ty lambda_params_rule(Parser *p);
603static arguments_ty lambda_parameters_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100604static asdl_arg_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100605static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
606static StarEtc* lambda_star_etc_rule(Parser *p);
607static arg_ty lambda_kwds_rule(Parser *p);
608static arg_ty lambda_param_no_default_rule(Parser *p);
609static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
610static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
611static arg_ty lambda_param_rule(Parser *p);
612static expr_ty disjunction_rule(Parser *p);
613static expr_ty conjunction_rule(Parser *p);
614static expr_ty inversion_rule(Parser *p);
615static expr_ty comparison_rule(Parser *p);
616static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
617static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
618static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
619static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
620static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
621static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
622static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
623static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
624static CmpopExprPair* in_bitwise_or_rule(Parser *p);
625static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
626static CmpopExprPair* is_bitwise_or_rule(Parser *p);
627static expr_ty bitwise_or_rule(Parser *p);
628static expr_ty bitwise_xor_rule(Parser *p);
629static expr_ty bitwise_and_rule(Parser *p);
630static expr_ty shift_expr_rule(Parser *p);
631static expr_ty sum_rule(Parser *p);
632static expr_ty term_rule(Parser *p);
633static expr_ty factor_rule(Parser *p);
634static expr_ty power_rule(Parser *p);
635static expr_ty await_primary_rule(Parser *p);
636static expr_ty primary_rule(Parser *p);
637static expr_ty slices_rule(Parser *p);
638static expr_ty slice_rule(Parser *p);
639static expr_ty atom_rule(Parser *p);
640static expr_ty strings_rule(Parser *p);
641static expr_ty list_rule(Parser *p);
642static expr_ty listcomp_rule(Parser *p);
643static expr_ty tuple_rule(Parser *p);
644static expr_ty group_rule(Parser *p);
645static expr_ty genexp_rule(Parser *p);
646static expr_ty set_rule(Parser *p);
647static expr_ty setcomp_rule(Parser *p);
648static expr_ty dict_rule(Parser *p);
649static expr_ty dictcomp_rule(Parser *p);
650static asdl_seq* double_starred_kvpairs_rule(Parser *p);
651static KeyValuePair* double_starred_kvpair_rule(Parser *p);
652static KeyValuePair* kvpair_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100653static asdl_comprehension_seq* for_if_clauses_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100654static comprehension_ty for_if_clause_rule(Parser *p);
655static expr_ty yield_expr_rule(Parser *p);
656static expr_ty arguments_rule(Parser *p);
657static expr_ty args_rule(Parser *p);
658static asdl_seq* kwargs_rule(Parser *p);
659static expr_ty starred_expression_rule(Parser *p);
660static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
661static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
662static expr_ty star_targets_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200663static asdl_expr_seq* star_targets_list_seq_rule(Parser *p);
664static asdl_expr_seq* star_targets_tuple_seq_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100665static expr_ty star_target_rule(Parser *p);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +0200666static expr_ty target_with_star_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100667static expr_ty star_atom_rule(Parser *p);
668static expr_ty single_target_rule(Parser *p);
669static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoa5634c42020-09-16 19:42:00 +0100670static asdl_expr_seq* del_targets_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100671static expr_ty del_target_rule(Parser *p);
672static expr_ty del_t_atom_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100673static expr_ty t_primary_rule(Parser *p);
674static void *t_lookahead_rule(Parser *p);
Lysandros Nikolaoubca70142020-10-27 00:42:04 +0200675static void *invalid_arguments_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100676static void *invalid_kwarg_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700677static expr_ty expression_without_invalid_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100678static void *invalid_expression_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100679static void *invalid_named_expression_rule(Parser *p);
680static void *invalid_assignment_rule(Parser *p);
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +0300681static expr_ty invalid_ann_assign_target_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300682static void *invalid_del_stmt_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100683static void *invalid_block_rule(Parser *p);
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +0200684static void *invalid_primary_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100685static void *invalid_comprehension_rule(Parser *p);
686static void *invalid_dict_comprehension_rule(Parser *p);
687static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200688static void *invalid_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100689static void *invalid_lambda_parameters_rule(Parser *p);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +0200690static void *invalid_lambda_parameters_helper_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100691static void *invalid_star_etc_rule(Parser *p);
692static void *invalid_lambda_star_etc_rule(Parser *p);
693static void *invalid_double_type_comments_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300694static void *invalid_with_item_rule(Parser *p);
695static void *invalid_for_target_rule(Parser *p);
696static void *invalid_group_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100697static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindo58fb1562021-02-02 19:54:22 +0000698static void *invalid_with_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100699static void *invalid_with_stmt_indent_rule(Parser *p);
700static void *invalid_try_stmt_rule(Parser *p);
701static void *invalid_except_stmt_rule(Parser *p);
702static void *invalid_finally_stmt_rule(Parser *p);
703static void *invalid_except_stmt_indent_rule(Parser *p);
Pablo Galindo08fb8ac2021-03-18 01:03:11 +0000704static void *invalid_match_stmt_rule(Parser *p);
705static void *invalid_case_block_rule(Parser *p);
Pablo Galindoa8c418d2021-06-18 22:15:57 +0100706static void *invalid_as_pattern_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100707static void *invalid_if_stmt_rule(Parser *p);
708static void *invalid_elif_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100709static void *invalid_else_stmt_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100710static void *invalid_while_stmt_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100711static void *invalid_for_stmt_rule(Parser *p);
712static void *invalid_def_raw_rule(Parser *p);
713static void *invalid_class_def_raw_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100714static void *invalid_double_starred_kvpairs_rule(Parser *p);
715static void *invalid_kvpair_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100716static asdl_seq *_loop0_1_rule(Parser *p);
717static asdl_seq *_loop0_2_rule(Parser *p);
718static asdl_seq *_loop0_4_rule(Parser *p);
719static asdl_seq *_gather_3_rule(Parser *p);
720static asdl_seq *_loop0_6_rule(Parser *p);
721static asdl_seq *_gather_5_rule(Parser *p);
722static asdl_seq *_loop0_8_rule(Parser *p);
723static asdl_seq *_gather_7_rule(Parser *p);
724static asdl_seq *_loop0_10_rule(Parser *p);
725static asdl_seq *_gather_9_rule(Parser *p);
726static asdl_seq *_loop1_11_rule(Parser *p);
727static asdl_seq *_loop0_13_rule(Parser *p);
728static asdl_seq *_gather_12_rule(Parser *p);
729static void *_tmp_14_rule(Parser *p);
730static void *_tmp_15_rule(Parser *p);
731static void *_tmp_16_rule(Parser *p);
732static void *_tmp_17_rule(Parser *p);
733static void *_tmp_18_rule(Parser *p);
734static void *_tmp_19_rule(Parser *p);
735static void *_tmp_20_rule(Parser *p);
736static void *_tmp_21_rule(Parser *p);
737static asdl_seq *_loop1_22_rule(Parser *p);
738static void *_tmp_23_rule(Parser *p);
739static void *_tmp_24_rule(Parser *p);
740static asdl_seq *_loop0_26_rule(Parser *p);
741static asdl_seq *_gather_25_rule(Parser *p);
742static asdl_seq *_loop0_28_rule(Parser *p);
743static asdl_seq *_gather_27_rule(Parser *p);
744static void *_tmp_29_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300745static void *_tmp_30_rule(Parser *p);
746static asdl_seq *_loop0_31_rule(Parser *p);
747static asdl_seq *_loop1_32_rule(Parser *p);
748static asdl_seq *_loop0_34_rule(Parser *p);
749static asdl_seq *_gather_33_rule(Parser *p);
750static void *_tmp_35_rule(Parser *p);
751static asdl_seq *_loop0_37_rule(Parser *p);
752static asdl_seq *_gather_36_rule(Parser *p);
753static void *_tmp_38_rule(Parser *p);
754static asdl_seq *_loop0_40_rule(Parser *p);
755static asdl_seq *_gather_39_rule(Parser *p);
756static asdl_seq *_loop0_42_rule(Parser *p);
757static asdl_seq *_gather_41_rule(Parser *p);
758static asdl_seq *_loop0_44_rule(Parser *p);
759static asdl_seq *_gather_43_rule(Parser *p);
760static asdl_seq *_loop0_46_rule(Parser *p);
761static asdl_seq *_gather_45_rule(Parser *p);
762static void *_tmp_47_rule(Parser *p);
763static asdl_seq *_loop1_48_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100764static void *_tmp_49_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800765static asdl_seq *_loop1_50_rule(Parser *p);
766static asdl_seq *_loop0_52_rule(Parser *p);
767static asdl_seq *_gather_51_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300768static void *_tmp_53_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800769static void *_tmp_54_rule(Parser *p);
770static void *_tmp_55_rule(Parser *p);
Nick Coghlan1e7b8582021-04-29 15:58:44 +1000771static void *_tmp_56_rule(Parser *p);
772static asdl_seq *_loop0_58_rule(Parser *p);
773static asdl_seq *_gather_57_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800774static asdl_seq *_loop0_60_rule(Parser *p);
775static asdl_seq *_gather_59_rule(Parser *p);
776static void *_tmp_61_rule(Parser *p);
777static asdl_seq *_loop0_63_rule(Parser *p);
778static asdl_seq *_gather_62_rule(Parser *p);
779static asdl_seq *_loop0_65_rule(Parser *p);
780static asdl_seq *_gather_64_rule(Parser *p);
781static void *_tmp_66_rule(Parser *p);
782static void *_tmp_67_rule(Parser *p);
783static void *_tmp_68_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300784static void *_tmp_69_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800785static asdl_seq *_loop0_70_rule(Parser *p);
786static asdl_seq *_loop0_71_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000787static asdl_seq *_loop0_72_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000788static asdl_seq *_loop1_73_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300789static asdl_seq *_loop0_74_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800790static asdl_seq *_loop1_75_rule(Parser *p);
791static asdl_seq *_loop1_76_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000792static asdl_seq *_loop1_77_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300793static asdl_seq *_loop0_78_rule(Parser *p);
794static asdl_seq *_loop1_79_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800795static asdl_seq *_loop0_80_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100796static asdl_seq *_loop1_81_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000797static asdl_seq *_loop0_82_rule(Parser *p);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +0300798static asdl_seq *_loop1_83_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800799static asdl_seq *_loop1_84_rule(Parser *p);
800static void *_tmp_85_rule(Parser *p);
801static asdl_seq *_loop1_86_rule(Parser *p);
802static asdl_seq *_loop0_88_rule(Parser *p);
803static asdl_seq *_gather_87_rule(Parser *p);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100804static asdl_seq *_loop1_89_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800805static asdl_seq *_loop0_90_rule(Parser *p);
806static asdl_seq *_loop0_91_rule(Parser *p);
807static asdl_seq *_loop0_92_rule(Parser *p);
808static asdl_seq *_loop1_93_rule(Parser *p);
809static asdl_seq *_loop0_94_rule(Parser *p);
810static asdl_seq *_loop1_95_rule(Parser *p);
811static asdl_seq *_loop1_96_rule(Parser *p);
812static asdl_seq *_loop1_97_rule(Parser *p);
813static asdl_seq *_loop0_98_rule(Parser *p);
814static asdl_seq *_loop1_99_rule(Parser *p);
815static asdl_seq *_loop0_100_rule(Parser *p);
816static asdl_seq *_loop1_101_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000817static asdl_seq *_loop0_102_rule(Parser *p);
Pablo Galindob0aba1f2020-11-17 01:17:12 +0000818static asdl_seq *_loop1_103_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800819static asdl_seq *_loop1_104_rule(Parser *p);
820static asdl_seq *_loop1_105_rule(Parser *p);
821static asdl_seq *_loop1_106_rule(Parser *p);
822static void *_tmp_107_rule(Parser *p);
823static asdl_seq *_loop0_109_rule(Parser *p);
824static asdl_seq *_gather_108_rule(Parser *p);
825static void *_tmp_110_rule(Parser *p);
826static void *_tmp_111_rule(Parser *p);
827static void *_tmp_112_rule(Parser *p);
828static void *_tmp_113_rule(Parser *p);
829static asdl_seq *_loop1_114_rule(Parser *p);
830static void *_tmp_115_rule(Parser *p);
831static void *_tmp_116_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700832static void *_tmp_117_rule(Parser *p);
833static asdl_seq *_loop0_119_rule(Parser *p);
834static asdl_seq *_gather_118_rule(Parser *p);
835static asdl_seq *_loop1_120_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800836static asdl_seq *_loop0_121_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700837static asdl_seq *_loop0_122_rule(Parser *p);
838static asdl_seq *_loop0_124_rule(Parser *p);
839static asdl_seq *_gather_123_rule(Parser *p);
840static void *_tmp_125_rule(Parser *p);
841static asdl_seq *_loop0_127_rule(Parser *p);
842static asdl_seq *_gather_126_rule(Parser *p);
843static asdl_seq *_loop0_129_rule(Parser *p);
844static asdl_seq *_gather_128_rule(Parser *p);
845static asdl_seq *_loop0_131_rule(Parser *p);
846static asdl_seq *_gather_130_rule(Parser *p);
Pablo Galindo835f14f2021-01-31 22:52:56 +0000847static asdl_seq *_loop0_133_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700848static asdl_seq *_gather_132_rule(Parser *p);
849static asdl_seq *_loop0_134_rule(Parser *p);
850static asdl_seq *_loop0_136_rule(Parser *p);
851static asdl_seq *_gather_135_rule(Parser *p);
852static asdl_seq *_loop1_137_rule(Parser *p);
853static void *_tmp_138_rule(Parser *p);
854static asdl_seq *_loop0_140_rule(Parser *p);
855static asdl_seq *_gather_139_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700856static void *_tmp_141_rule(Parser *p);
857static void *_tmp_142_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100858static void *_tmp_143_rule(Parser *p);
859static void *_tmp_144_rule(Parser *p);
860static void *_tmp_145_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100861static void *_tmp_146_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700862static asdl_seq *_loop0_147_rule(Parser *p);
863static asdl_seq *_loop0_148_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100864static asdl_seq *_loop0_149_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700865static void *_tmp_150_rule(Parser *p);
866static void *_tmp_151_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100867static void *_tmp_152_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100868static void *_tmp_153_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700869static asdl_seq *_loop0_154_rule(Parser *p);
870static asdl_seq *_loop1_155_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700871static asdl_seq *_loop0_156_rule(Parser *p);
872static asdl_seq *_loop1_157_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700873static void *_tmp_158_rule(Parser *p);
874static void *_tmp_159_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100875static void *_tmp_160_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700876static asdl_seq *_loop0_162_rule(Parser *p);
877static asdl_seq *_gather_161_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700878static asdl_seq *_loop0_164_rule(Parser *p);
879static asdl_seq *_gather_163_rule(Parser *p);
880static asdl_seq *_loop0_166_rule(Parser *p);
881static asdl_seq *_gather_165_rule(Parser *p);
882static asdl_seq *_loop0_168_rule(Parser *p);
883static asdl_seq *_gather_167_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700884static void *_tmp_169_rule(Parser *p);
885static void *_tmp_170_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800886static void *_tmp_171_rule(Parser *p);
887static void *_tmp_172_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100888static void *_tmp_173_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700889static void *_tmp_174_rule(Parser *p);
Miss Islington (bot)3e137422021-06-10 15:31:09 -0700890static asdl_seq *_loop0_176_rule(Parser *p);
891static asdl_seq *_gather_175_rule(Parser *p);
892static void *_tmp_177_rule(Parser *p);
893static void *_tmp_178_rule(Parser *p);
Brandt Bucher145bf262021-02-26 14:51:55 -0800894static void *_tmp_179_rule(Parser *p);
895static void *_tmp_180_rule(Parser *p);
896static void *_tmp_181_rule(Parser *p);
897static void *_tmp_182_rule(Parser *p);
Pablo Galindob86ed8e2021-04-12 16:59:30 +0100898static void *_tmp_183_rule(Parser *p);
899static void *_tmp_184_rule(Parser *p);
900static void *_tmp_185_rule(Parser *p);
Pablo Galindoda743502021-04-15 14:06:39 +0100901static void *_tmp_186_rule(Parser *p);
902static void *_tmp_187_rule(Parser *p);
903static void *_tmp_188_rule(Parser *p);
Pablo Galindob2802482021-04-15 21:38:45 +0100904static void *_tmp_189_rule(Parser *p);
Pablo Galindo56c95df2021-04-21 15:28:21 +0100905static void *_tmp_190_rule(Parser *p);
906static void *_tmp_191_rule(Parser *p);
907static void *_tmp_192_rule(Parser *p);
908static void *_tmp_193_rule(Parser *p);
909static void *_tmp_194_rule(Parser *p);
910static void *_tmp_195_rule(Parser *p);
911static void *_tmp_196_rule(Parser *p);
912static void *_tmp_197_rule(Parser *p);
913static void *_tmp_198_rule(Parser *p);
914static void *_tmp_199_rule(Parser *p);
915static void *_tmp_200_rule(Parser *p);
Pablo Galindoa77aac42021-04-23 14:27:05 +0100916static void *_tmp_201_rule(Parser *p);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -0700917static void *_tmp_202_rule(Parser *p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -0700918static void *_tmp_203_rule(Parser *p);
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000919
920
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100921// file: statements? $
922static mod_ty
923file_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000924{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100925 D(p->level++);
926 if (p->error_indicator) {
927 D(p->level--);
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000928 return NULL;
929 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100930 mod_ty _res = NULL;
931 int _mark = p->mark;
932 { // statements? $
933 if (p->error_indicator) {
934 D(p->level--);
935 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000936 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100937 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
938 void *a;
939 Token * endmarker_var;
940 if (
941 (a = statements_rule(p), 1) // statements?
942 &&
943 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
944 )
945 {
946 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
947 _res = _PyPegen_make_module ( p , a );
948 if (_res == NULL && PyErr_Occurred()) {
949 p->error_indicator = 1;
950 D(p->level--);
951 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000952 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100953 goto done;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000954 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100955 p->mark = _mark;
956 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000958 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100959 _res = NULL;
960 done:
961 D(p->level--);
962 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +0000963}
964
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100965// interactive: statement_newline
966static mod_ty
967interactive_rule(Parser *p)
Guido van Rossumb09f7ed2001-07-15 21:08:29 +0000968{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100969 D(p->level++);
970 if (p->error_indicator) {
971 D(p->level--);
972 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000973 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100974 mod_ty _res = NULL;
975 int _mark = p->mark;
976 { // statement_newline
977 if (p->error_indicator) {
978 D(p->level--);
979 return NULL;
980 }
981 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoa5634c42020-09-16 19:42:00 +0100982 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100983 if (
984 (a = statement_newline_rule(p)) // statement_newline
985 )
986 {
987 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +0200988 _res = _PyAST_Interactive ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +0100989 if (_res == NULL && PyErr_Occurred()) {
990 p->error_indicator = 1;
991 D(p->level--);
992 return NULL;
993 }
994 goto done;
995 }
996 p->mark = _mark;
997 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
999 }
1000 _res = NULL;
1001 done:
1002 D(p->level--);
1003 return _res;
Guido van Rossumb09f7ed2001-07-15 21:08:29 +00001004}
1005
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001006// eval: expressions NEWLINE* $
1007static mod_ty
1008eval_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00001009{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001010 D(p->level++);
1011 if (p->error_indicator) {
1012 D(p->level--);
1013 return NULL;
1014 }
1015 mod_ty _res = NULL;
1016 int _mark = p->mark;
1017 { // expressions NEWLINE* $
1018 if (p->error_indicator) {
1019 D(p->level--);
1020 return NULL;
1021 }
1022 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
1023 asdl_seq * _loop0_1_var;
1024 expr_ty a;
1025 Token * endmarker_var;
1026 if (
1027 (a = expressions_rule(p)) // expressions
1028 &&
1029 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
1030 &&
1031 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1032 )
1033 {
1034 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001035 _res = _PyAST_Expression ( a , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001036 if (_res == NULL && PyErr_Occurred()) {
1037 p->error_indicator = 1;
1038 D(p->level--);
1039 return NULL;
1040 }
1041 goto done;
1042 }
1043 p->mark = _mark;
1044 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
1045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
1046 }
1047 _res = NULL;
1048 done:
1049 D(p->level--);
1050 return _res;
1051}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001052
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001053// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
1054static mod_ty
1055func_type_rule(Parser *p)
1056{
1057 D(p->level++);
1058 if (p->error_indicator) {
1059 D(p->level--);
1060 return NULL;
1061 }
1062 mod_ty _res = NULL;
1063 int _mark = p->mark;
1064 { // '(' type_expressions? ')' '->' expression NEWLINE* $
1065 if (p->error_indicator) {
1066 D(p->level--);
1067 return NULL;
1068 }
1069 D(fprintf(stderr, "%*c> func_type[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1070 Token * _literal;
1071 Token * _literal_1;
1072 Token * _literal_2;
1073 asdl_seq * _loop0_2_var;
1074 void *a;
1075 expr_ty b;
1076 Token * endmarker_var;
1077 if (
1078 (_literal = _PyPegen_expect_token(p, 7)) // token='('
1079 &&
1080 (a = type_expressions_rule(p), 1) // type_expressions?
1081 &&
1082 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
1083 &&
1084 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
1085 &&
1086 (b = expression_rule(p)) // expression
1087 &&
1088 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
1089 &&
1090 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1091 )
1092 {
1093 D(fprintf(stderr, "%*c+ func_type[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001094 _res = _PyAST_FunctionType ( a , b , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001095 if (_res == NULL && PyErr_Occurred()) {
1096 p->error_indicator = 1;
1097 D(p->level--);
1098 return NULL;
1099 }
1100 goto done;
1101 }
1102 p->mark = _mark;
1103 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
1104 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
1105 }
1106 _res = NULL;
1107 done:
1108 D(p->level--);
1109 return _res;
1110}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001111
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001112// fstring: star_expressions
1113static expr_ty
1114fstring_rule(Parser *p)
1115{
1116 D(p->level++);
1117 if (p->error_indicator) {
1118 D(p->level--);
1119 return NULL;
1120 }
1121 expr_ty _res = NULL;
1122 int _mark = p->mark;
1123 { // star_expressions
1124 if (p->error_indicator) {
1125 D(p->level--);
1126 return NULL;
1127 }
1128 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1129 expr_ty star_expressions_var;
1130 if (
1131 (star_expressions_var = star_expressions_rule(p)) // star_expressions
1132 )
1133 {
1134 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
1135 _res = star_expressions_var;
1136 goto done;
1137 }
1138 p->mark = _mark;
1139 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
1140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1141 }
1142 _res = NULL;
1143 done:
1144 D(p->level--);
1145 return _res;
1146}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001147
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001148// type_expressions:
1149// | ','.expression+ ',' '*' expression ',' '**' expression
1150// | ','.expression+ ',' '*' expression
1151// | ','.expression+ ',' '**' expression
1152// | '*' expression ',' '**' expression
1153// | '*' expression
1154// | '**' expression
1155// | ','.expression+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001156static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001157type_expressions_rule(Parser *p)
1158{
1159 D(p->level++);
1160 if (p->error_indicator) {
1161 D(p->level--);
1162 return NULL;
1163 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001164 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001165 int _mark = p->mark;
1166 { // ','.expression+ ',' '*' expression ',' '**' expression
1167 if (p->error_indicator) {
1168 D(p->level--);
1169 return NULL;
1170 }
1171 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1172 Token * _literal;
1173 Token * _literal_1;
1174 Token * _literal_2;
1175 Token * _literal_3;
1176 asdl_seq * a;
1177 expr_ty b;
1178 expr_ty c;
1179 if (
1180 (a = _gather_3_rule(p)) // ','.expression+
1181 &&
1182 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1183 &&
1184 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1185 &&
1186 (b = expression_rule(p)) // expression
1187 &&
1188 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
1189 &&
1190 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
1191 &&
1192 (c = expression_rule(p)) // expression
1193 )
1194 {
1195 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001196 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001197 if (_res == NULL && PyErr_Occurred()) {
1198 p->error_indicator = 1;
1199 D(p->level--);
1200 return NULL;
1201 }
1202 goto done;
1203 }
1204 p->mark = _mark;
1205 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
1207 }
1208 { // ','.expression+ ',' '*' expression
1209 if (p->error_indicator) {
1210 D(p->level--);
1211 return NULL;
1212 }
1213 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
1214 Token * _literal;
1215 Token * _literal_1;
1216 asdl_seq * a;
1217 expr_ty b;
1218 if (
1219 (a = _gather_5_rule(p)) // ','.expression+
1220 &&
1221 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1222 &&
1223 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
1224 &&
1225 (b = expression_rule(p)) // expression
1226 )
1227 {
1228 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001229 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001230 if (_res == NULL && PyErr_Occurred()) {
1231 p->error_indicator = 1;
1232 D(p->level--);
1233 return NULL;
1234 }
1235 goto done;
1236 }
1237 p->mark = _mark;
1238 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1239 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
1240 }
1241 { // ','.expression+ ',' '**' expression
1242 if (p->error_indicator) {
1243 D(p->level--);
1244 return NULL;
1245 }
1246 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
1247 Token * _literal;
1248 Token * _literal_1;
1249 asdl_seq * a;
1250 expr_ty b;
1251 if (
1252 (a = _gather_7_rule(p)) // ','.expression+
1253 &&
1254 (_literal = _PyPegen_expect_token(p, 12)) // token=','
1255 &&
1256 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
1257 &&
1258 (b = expression_rule(p)) // expression
1259 )
1260 {
1261 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001262 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001263 if (_res == NULL && PyErr_Occurred()) {
1264 p->error_indicator = 1;
1265 D(p->level--);
1266 return NULL;
1267 }
1268 goto done;
1269 }
1270 p->mark = _mark;
1271 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
1273 }
1274 { // '*' expression ',' '**' expression
1275 if (p->error_indicator) {
1276 D(p->level--);
1277 return NULL;
1278 }
1279 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
1280 Token * _literal;
1281 Token * _literal_1;
1282 Token * _literal_2;
1283 expr_ty a;
1284 expr_ty b;
1285 if (
1286 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1287 &&
1288 (a = expression_rule(p)) // expression
1289 &&
1290 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
1291 &&
1292 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
1293 &&
1294 (b = expression_rule(p)) // expression
1295 )
1296 {
1297 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03001298 _res = ( asdl_expr_seq * ) _PyPegen_seq_append_to_end ( p , CHECK ( asdl_seq * , _PyPegen_singleton_seq ( p , a ) ) , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001299 if (_res == NULL && PyErr_Occurred()) {
1300 p->error_indicator = 1;
1301 D(p->level--);
1302 return NULL;
1303 }
1304 goto done;
1305 }
1306 p->mark = _mark;
1307 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
1309 }
1310 { // '*' expression
1311 if (p->error_indicator) {
1312 D(p->level--);
1313 return NULL;
1314 }
1315 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
1316 Token * _literal;
1317 expr_ty a;
1318 if (
1319 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
1320 &&
1321 (a = expression_rule(p)) // expression
1322 )
1323 {
1324 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001325 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001326 if (_res == NULL && PyErr_Occurred()) {
1327 p->error_indicator = 1;
1328 D(p->level--);
1329 return NULL;
1330 }
1331 goto done;
1332 }
1333 p->mark = _mark;
1334 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
1336 }
1337 { // '**' expression
1338 if (p->error_indicator) {
1339 D(p->level--);
1340 return NULL;
1341 }
1342 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
1343 Token * _literal;
1344 expr_ty a;
1345 if (
1346 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
1347 &&
1348 (a = expression_rule(p)) // expression
1349 )
1350 {
1351 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001352 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001353 if (_res == NULL && PyErr_Occurred()) {
1354 p->error_indicator = 1;
1355 D(p->level--);
1356 return NULL;
1357 }
1358 goto done;
1359 }
1360 p->mark = _mark;
1361 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
1363 }
1364 { // ','.expression+
1365 if (p->error_indicator) {
1366 D(p->level--);
1367 return NULL;
1368 }
1369 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001370 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001371 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01001372 (a = (asdl_expr_seq*)_gather_9_rule(p)) // ','.expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001373 )
1374 {
1375 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001376 _res = a;
1377 if (_res == NULL && PyErr_Occurred()) {
1378 p->error_indicator = 1;
1379 D(p->level--);
1380 return NULL;
1381 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001382 goto done;
1383 }
1384 p->mark = _mark;
1385 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1386 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
1387 }
1388 _res = NULL;
1389 done:
1390 D(p->level--);
1391 return _res;
1392}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001393
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001394// statements: statement+
Pablo Galindoa5634c42020-09-16 19:42:00 +01001395static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001396statements_rule(Parser *p)
1397{
1398 D(p->level++);
1399 if (p->error_indicator) {
1400 D(p->level--);
1401 return NULL;
1402 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001403 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001404 int _mark = p->mark;
1405 { // statement+
1406 if (p->error_indicator) {
1407 D(p->level--);
1408 return NULL;
1409 }
1410 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
1411 asdl_seq * a;
1412 if (
1413 (a = _loop1_11_rule(p)) // statement+
1414 )
1415 {
1416 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001417 _res = ( asdl_stmt_seq * ) _PyPegen_seq_flatten ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001418 if (_res == NULL && PyErr_Occurred()) {
1419 p->error_indicator = 1;
1420 D(p->level--);
1421 return NULL;
1422 }
1423 goto done;
1424 }
1425 p->mark = _mark;
1426 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
1428 }
1429 _res = NULL;
1430 done:
1431 D(p->level--);
1432 return _res;
1433}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +00001434
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001435// statement: compound_stmt | simple_stmts
Pablo Galindoa5634c42020-09-16 19:42:00 +01001436static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001437statement_rule(Parser *p)
1438{
1439 D(p->level++);
1440 if (p->error_indicator) {
1441 D(p->level--);
1442 return NULL;
1443 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001444 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001445 int _mark = p->mark;
1446 { // compound_stmt
1447 if (p->error_indicator) {
1448 D(p->level--);
1449 return NULL;
1450 }
1451 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
1452 stmt_ty a;
1453 if (
1454 (a = compound_stmt_rule(p)) // compound_stmt
1455 )
1456 {
1457 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001458 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001459 if (_res == NULL && PyErr_Occurred()) {
1460 p->error_indicator = 1;
1461 D(p->level--);
1462 return NULL;
1463 }
1464 goto done;
1465 }
1466 p->mark = _mark;
1467 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
1469 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001470 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001471 if (p->error_indicator) {
1472 D(p->level--);
1473 return NULL;
1474 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001475 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001476 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001477 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001478 (a = (asdl_stmt_seq*)simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001479 )
1480 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001481 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001482 _res = a;
1483 if (_res == NULL && PyErr_Occurred()) {
1484 p->error_indicator = 1;
1485 D(p->level--);
1486 return NULL;
1487 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001488 goto done;
1489 }
1490 p->mark = _mark;
1491 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001493 }
1494 _res = NULL;
1495 done:
1496 D(p->level--);
1497 return _res;
1498}
1499
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001500// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $
Pablo Galindoa5634c42020-09-16 19:42:00 +01001501static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001502statement_newline_rule(Parser *p)
1503{
1504 D(p->level++);
1505 if (p->error_indicator) {
1506 D(p->level--);
1507 return NULL;
1508 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001509 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001510 int _mark = p->mark;
1511 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1512 p->error_indicator = 1;
1513 D(p->level--);
1514 return NULL;
1515 }
1516 int _start_lineno = p->tokens[_mark]->lineno;
1517 UNUSED(_start_lineno); // Only used by EXTRA macro
1518 int _start_col_offset = p->tokens[_mark]->col_offset;
1519 UNUSED(_start_col_offset); // Only used by EXTRA macro
1520 { // compound_stmt NEWLINE
1521 if (p->error_indicator) {
1522 D(p->level--);
1523 return NULL;
1524 }
1525 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
1526 stmt_ty a;
1527 Token * newline_var;
1528 if (
1529 (a = compound_stmt_rule(p)) // compound_stmt
1530 &&
1531 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1532 )
1533 {
1534 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001535 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001536 if (_res == NULL && PyErr_Occurred()) {
1537 p->error_indicator = 1;
1538 D(p->level--);
1539 return NULL;
1540 }
1541 goto done;
1542 }
1543 p->mark = _mark;
1544 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
1546 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001547 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001548 if (p->error_indicator) {
1549 D(p->level--);
1550 return NULL;
1551 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001552 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1553 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001554 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001555 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001556 )
1557 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001558 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
1559 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001560 goto done;
1561 }
1562 p->mark = _mark;
1563 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001565 }
1566 { // NEWLINE
1567 if (p->error_indicator) {
1568 D(p->level--);
1569 return NULL;
1570 }
1571 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1572 Token * newline_var;
1573 if (
1574 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1575 )
1576 {
1577 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
1578 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1579 if (_token == NULL) {
1580 D(p->level--);
1581 return NULL;
1582 }
1583 int _end_lineno = _token->end_lineno;
1584 UNUSED(_end_lineno); // Only used by EXTRA macro
1585 int _end_col_offset = _token->end_col_offset;
1586 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001587 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , CHECK ( stmt_ty , _PyAST_Pass ( EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001588 if (_res == NULL && PyErr_Occurred()) {
1589 p->error_indicator = 1;
1590 D(p->level--);
1591 return NULL;
1592 }
1593 goto done;
1594 }
1595 p->mark = _mark;
1596 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
1598 }
1599 { // $
1600 if (p->error_indicator) {
1601 D(p->level--);
1602 return NULL;
1603 }
1604 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
1605 Token * endmarker_var;
1606 if (
1607 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
1608 )
1609 {
1610 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
1611 _res = _PyPegen_interactive_exit ( p );
1612 if (_res == NULL && PyErr_Occurred()) {
1613 p->error_indicator = 1;
1614 D(p->level--);
1615 return NULL;
1616 }
1617 goto done;
1618 }
1619 p->mark = _mark;
1620 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1621 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
1622 }
1623 _res = NULL;
1624 done:
1625 D(p->level--);
1626 return _res;
1627}
1628
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001629// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindoa5634c42020-09-16 19:42:00 +01001630static asdl_stmt_seq*
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001631simple_stmts_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001632{
1633 D(p->level++);
1634 if (p->error_indicator) {
1635 D(p->level--);
1636 return NULL;
1637 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01001638 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001639 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001640 { // simple_stmt !';' NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001641 if (p->error_indicator) {
1642 D(p->level--);
1643 return NULL;
1644 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001645 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001646 stmt_ty a;
1647 Token * newline_var;
1648 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001649 (a = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001650 &&
1651 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
1652 &&
1653 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1654 )
1655 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001656 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01001657 _res = ( asdl_stmt_seq * ) _PyPegen_singleton_seq ( p , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001658 if (_res == NULL && PyErr_Occurred()) {
1659 p->error_indicator = 1;
1660 D(p->level--);
1661 return NULL;
1662 }
1663 goto done;
1664 }
1665 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001666 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001668 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001669 { // ';'.simple_stmt+ ';'? NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001670 if (p->error_indicator) {
1671 D(p->level--);
1672 return NULL;
1673 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001674 D(fprintf(stderr, "%*c> simple_stmts[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001675 void *_opt_var;
1676 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01001677 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001678 Token * newline_var;
1679 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001680 (a = (asdl_stmt_seq*)_gather_12_rule(p)) // ';'.simple_stmt+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001681 &&
1682 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
1683 &&
1684 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
1685 )
1686 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001687 D(fprintf(stderr, "%*c+ simple_stmts[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001688 _res = a;
1689 if (_res == NULL && PyErr_Occurred()) {
1690 p->error_indicator = 1;
1691 D(p->level--);
1692 return NULL;
1693 }
1694 goto done;
1695 }
1696 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001697 D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ',
1698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.simple_stmt+ ';'? NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001699 }
1700 _res = NULL;
1701 done:
1702 D(p->level--);
1703 return _res;
1704}
1705
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001706// simple_stmt:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001707// | assignment
1708// | star_expressions
1709// | &'return' return_stmt
1710// | &('import' | 'from') import_stmt
1711// | &'raise' raise_stmt
1712// | 'pass'
1713// | &'del' del_stmt
1714// | &'yield' yield_stmt
1715// | &'assert' assert_stmt
1716// | 'break'
1717// | 'continue'
1718// | &'global' global_stmt
1719// | &'nonlocal' nonlocal_stmt
1720static stmt_ty
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001721simple_stmt_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001722{
1723 D(p->level++);
1724 if (p->error_indicator) {
1725 D(p->level--);
1726 return NULL;
1727 }
1728 stmt_ty _res = NULL;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001729 if (_PyPegen_is_memoized(p, simple_stmt_type, &_res)) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001730 D(p->level--);
1731 return _res;
1732 }
1733 int _mark = p->mark;
1734 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1735 p->error_indicator = 1;
1736 D(p->level--);
1737 return NULL;
1738 }
1739 int _start_lineno = p->tokens[_mark]->lineno;
1740 UNUSED(_start_lineno); // Only used by EXTRA macro
1741 int _start_col_offset = p->tokens[_mark]->col_offset;
1742 UNUSED(_start_col_offset); // Only used by EXTRA macro
1743 { // assignment
1744 if (p->error_indicator) {
1745 D(p->level--);
1746 return NULL;
1747 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001748 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001749 stmt_ty assignment_var;
1750 if (
1751 (assignment_var = assignment_rule(p)) // assignment
1752 )
1753 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001754 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001755 _res = assignment_var;
1756 goto done;
1757 }
1758 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001759 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
1761 }
1762 { // star_expressions
1763 if (p->error_indicator) {
1764 D(p->level--);
1765 return NULL;
1766 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001767 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001768 expr_ty e;
1769 if (
1770 (e = star_expressions_rule(p)) // star_expressions
1771 )
1772 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001773 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001774 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1775 if (_token == NULL) {
1776 D(p->level--);
1777 return NULL;
1778 }
1779 int _end_lineno = _token->end_lineno;
1780 UNUSED(_end_lineno); // Only used by EXTRA macro
1781 int _end_col_offset = _token->end_col_offset;
1782 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001783 _res = _PyAST_Expr ( e , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001784 if (_res == NULL && PyErr_Occurred()) {
1785 p->error_indicator = 1;
1786 D(p->level--);
1787 return NULL;
1788 }
1789 goto done;
1790 }
1791 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001792 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
1794 }
1795 { // &'return' return_stmt
1796 if (p->error_indicator) {
1797 D(p->level--);
1798 return NULL;
1799 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001800 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001801 stmt_ty return_stmt_var;
1802 if (
1803 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
1804 &&
1805 (return_stmt_var = return_stmt_rule(p)) // return_stmt
1806 )
1807 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001808 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001809 _res = return_stmt_var;
1810 goto done;
1811 }
1812 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001813 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
1815 }
1816 { // &('import' | 'from') import_stmt
1817 if (p->error_indicator) {
1818 D(p->level--);
1819 return NULL;
1820 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001821 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001822 stmt_ty import_stmt_var;
1823 if (
1824 _PyPegen_lookahead(1, _tmp_14_rule, p)
1825 &&
1826 (import_stmt_var = import_stmt_rule(p)) // import_stmt
1827 )
1828 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001829 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001830 _res = import_stmt_var;
1831 goto done;
1832 }
1833 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001834 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
1836 }
1837 { // &'raise' raise_stmt
1838 if (p->error_indicator) {
1839 D(p->level--);
1840 return NULL;
1841 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001842 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001843 stmt_ty raise_stmt_var;
1844 if (
1845 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
1846 &&
1847 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
1848 )
1849 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001850 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001851 _res = raise_stmt_var;
1852 goto done;
1853 }
1854 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001855 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
1857 }
1858 { // 'pass'
1859 if (p->error_indicator) {
1860 D(p->level--);
1861 return NULL;
1862 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001863 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001864 Token * _keyword;
1865 if (
1866 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
1867 )
1868 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001869 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001870 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1871 if (_token == NULL) {
1872 D(p->level--);
1873 return NULL;
1874 }
1875 int _end_lineno = _token->end_lineno;
1876 UNUSED(_end_lineno); // Only used by EXTRA macro
1877 int _end_col_offset = _token->end_col_offset;
1878 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001879 _res = _PyAST_Pass ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001880 if (_res == NULL && PyErr_Occurred()) {
1881 p->error_indicator = 1;
1882 D(p->level--);
1883 return NULL;
1884 }
1885 goto done;
1886 }
1887 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001888 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
1890 }
1891 { // &'del' del_stmt
1892 if (p->error_indicator) {
1893 D(p->level--);
1894 return NULL;
1895 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001896 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001897 stmt_ty del_stmt_var;
1898 if (
1899 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
1900 &&
1901 (del_stmt_var = del_stmt_rule(p)) // del_stmt
1902 )
1903 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001904 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001905 _res = del_stmt_var;
1906 goto done;
1907 }
1908 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001909 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
1911 }
1912 { // &'yield' yield_stmt
1913 if (p->error_indicator) {
1914 D(p->level--);
1915 return NULL;
1916 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001917 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001918 stmt_ty yield_stmt_var;
1919 if (
1920 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
1921 &&
1922 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
1923 )
1924 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001925 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001926 _res = yield_stmt_var;
1927 goto done;
1928 }
1929 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001930 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
1932 }
1933 { // &'assert' assert_stmt
1934 if (p->error_indicator) {
1935 D(p->level--);
1936 return NULL;
1937 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001938 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001939 stmt_ty assert_stmt_var;
1940 if (
1941 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
1942 &&
1943 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
1944 )
1945 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001946 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001947 _res = assert_stmt_var;
1948 goto done;
1949 }
1950 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001951 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001952 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
1953 }
1954 { // 'break'
1955 if (p->error_indicator) {
1956 D(p->level--);
1957 return NULL;
1958 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001959 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001960 Token * _keyword;
1961 if (
1962 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
1963 )
1964 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001965 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001966 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1967 if (_token == NULL) {
1968 D(p->level--);
1969 return NULL;
1970 }
1971 int _end_lineno = _token->end_lineno;
1972 UNUSED(_end_lineno); // Only used by EXTRA macro
1973 int _end_col_offset = _token->end_col_offset;
1974 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02001975 _res = _PyAST_Break ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001976 if (_res == NULL && PyErr_Occurred()) {
1977 p->error_indicator = 1;
1978 D(p->level--);
1979 return NULL;
1980 }
1981 goto done;
1982 }
1983 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001984 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
1986 }
1987 { // 'continue'
1988 if (p->error_indicator) {
1989 D(p->level--);
1990 return NULL;
1991 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001992 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001993 Token * _keyword;
1994 if (
1995 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
1996 )
1997 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00001998 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01001999 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2000 if (_token == NULL) {
2001 D(p->level--);
2002 return NULL;
2003 }
2004 int _end_lineno = _token->end_lineno;
2005 UNUSED(_end_lineno); // Only used by EXTRA macro
2006 int _end_col_offset = _token->end_col_offset;
2007 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002008 _res = _PyAST_Continue ( EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002009 if (_res == NULL && PyErr_Occurred()) {
2010 p->error_indicator = 1;
2011 D(p->level--);
2012 return NULL;
2013 }
2014 goto done;
2015 }
2016 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002017 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
2019 }
2020 { // &'global' global_stmt
2021 if (p->error_indicator) {
2022 D(p->level--);
2023 return NULL;
2024 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002025 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002026 stmt_ty global_stmt_var;
2027 if (
2028 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
2029 &&
2030 (global_stmt_var = global_stmt_rule(p)) // global_stmt
2031 )
2032 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002033 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002034 _res = global_stmt_var;
2035 goto done;
2036 }
2037 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002038 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
2040 }
2041 { // &'nonlocal' nonlocal_stmt
2042 if (p->error_indicator) {
2043 D(p->level--);
2044 return NULL;
2045 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002046 D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002047 stmt_ty nonlocal_stmt_var;
2048 if (
2049 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
2050 &&
2051 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
2052 )
2053 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002054 D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002055 _res = nonlocal_stmt_var;
2056 goto done;
2057 }
2058 p->mark = _mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002059 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
2061 }
2062 _res = NULL;
2063 done:
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00002064 _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002065 D(p->level--);
2066 return _res;
2067}
2068
2069// compound_stmt:
2070// | &('def' | '@' | ASYNC) function_def
2071// | &'if' if_stmt
2072// | &('class' | '@') class_def
2073// | &('with' | ASYNC) with_stmt
2074// | &('for' | ASYNC) for_stmt
2075// | &'try' try_stmt
2076// | &'while' while_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08002077// | match_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002078static stmt_ty
2079compound_stmt_rule(Parser *p)
2080{
2081 D(p->level++);
2082 if (p->error_indicator) {
2083 D(p->level--);
2084 return NULL;
2085 }
2086 stmt_ty _res = NULL;
2087 int _mark = p->mark;
2088 { // &('def' | '@' | ASYNC) function_def
2089 if (p->error_indicator) {
2090 D(p->level--);
2091 return NULL;
2092 }
2093 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2094 stmt_ty function_def_var;
2095 if (
2096 _PyPegen_lookahead(1, _tmp_15_rule, p)
2097 &&
2098 (function_def_var = function_def_rule(p)) // function_def
2099 )
2100 {
2101 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2102 _res = function_def_var;
2103 goto done;
2104 }
2105 p->mark = _mark;
2106 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
2108 }
2109 { // &'if' if_stmt
2110 if (p->error_indicator) {
2111 D(p->level--);
2112 return NULL;
2113 }
2114 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2115 stmt_ty if_stmt_var;
2116 if (
2117 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
2118 &&
2119 (if_stmt_var = if_stmt_rule(p)) // if_stmt
2120 )
2121 {
2122 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt"));
2123 _res = if_stmt_var;
2124 goto done;
2125 }
2126 p->mark = _mark;
2127 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
2129 }
2130 { // &('class' | '@') class_def
2131 if (p->error_indicator) {
2132 D(p->level--);
2133 return NULL;
2134 }
2135 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2136 stmt_ty class_def_var;
2137 if (
2138 _PyPegen_lookahead(1, _tmp_16_rule, p)
2139 &&
2140 (class_def_var = class_def_rule(p)) // class_def
2141 )
2142 {
2143 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('class' | '@') class_def"));
2144 _res = class_def_var;
2145 goto done;
2146 }
2147 p->mark = _mark;
2148 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
2150 }
2151 { // &('with' | ASYNC) with_stmt
2152 if (p->error_indicator) {
2153 D(p->level--);
2154 return NULL;
2155 }
2156 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2157 stmt_ty with_stmt_var;
2158 if (
2159 _PyPegen_lookahead(1, _tmp_17_rule, p)
2160 &&
2161 (with_stmt_var = with_stmt_rule(p)) // with_stmt
2162 )
2163 {
2164 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2165 _res = with_stmt_var;
2166 goto done;
2167 }
2168 p->mark = _mark;
2169 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
2171 }
2172 { // &('for' | ASYNC) for_stmt
2173 if (p->error_indicator) {
2174 D(p->level--);
2175 return NULL;
2176 }
2177 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2178 stmt_ty for_stmt_var;
2179 if (
2180 _PyPegen_lookahead(1, _tmp_18_rule, p)
2181 &&
2182 (for_stmt_var = for_stmt_rule(p)) // for_stmt
2183 )
2184 {
2185 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2186 _res = for_stmt_var;
2187 goto done;
2188 }
2189 p->mark = _mark;
2190 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
2192 }
2193 { // &'try' try_stmt
2194 if (p->error_indicator) {
2195 D(p->level--);
2196 return NULL;
2197 }
2198 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2199 stmt_ty try_stmt_var;
2200 if (
2201 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
2202 &&
2203 (try_stmt_var = try_stmt_rule(p)) // try_stmt
2204 )
2205 {
2206 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt"));
2207 _res = try_stmt_var;
2208 goto done;
2209 }
2210 p->mark = _mark;
2211 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
2213 }
2214 { // &'while' while_stmt
2215 if (p->error_indicator) {
2216 D(p->level--);
2217 return NULL;
2218 }
2219 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2220 stmt_ty while_stmt_var;
2221 if (
2222 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
2223 &&
2224 (while_stmt_var = while_stmt_rule(p)) // while_stmt
2225 )
2226 {
2227 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt"));
2228 _res = while_stmt_var;
2229 goto done;
2230 }
2231 p->mark = _mark;
2232 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
2234 }
Brandt Bucher145bf262021-02-26 14:51:55 -08002235 { // match_stmt
2236 if (p->error_indicator) {
2237 D(p->level--);
2238 return NULL;
2239 }
2240 D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2241 stmt_ty match_stmt_var;
2242 if (
2243 (match_stmt_var = match_stmt_rule(p)) // match_stmt
2244 )
2245 {
2246 D(fprintf(stderr, "%*c+ compound_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "match_stmt"));
2247 _res = match_stmt_var;
2248 goto done;
2249 }
2250 p->mark = _mark;
2251 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "match_stmt"));
2253 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002254 _res = NULL;
2255 done:
2256 D(p->level--);
2257 return _res;
2258}
2259
2260// assignment:
2261// | NAME ':' expression ['=' annotated_rhs]
2262// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2263// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002264// | single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002265// | invalid_assignment
2266static stmt_ty
2267assignment_rule(Parser *p)
2268{
2269 D(p->level++);
2270 if (p->error_indicator) {
2271 D(p->level--);
2272 return NULL;
2273 }
2274 stmt_ty _res = NULL;
2275 int _mark = p->mark;
2276 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2277 p->error_indicator = 1;
2278 D(p->level--);
2279 return NULL;
2280 }
2281 int _start_lineno = p->tokens[_mark]->lineno;
2282 UNUSED(_start_lineno); // Only used by EXTRA macro
2283 int _start_col_offset = p->tokens[_mark]->col_offset;
2284 UNUSED(_start_col_offset); // Only used by EXTRA macro
2285 { // NAME ':' expression ['=' annotated_rhs]
2286 if (p->error_indicator) {
2287 D(p->level--);
2288 return NULL;
2289 }
2290 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2291 Token * _literal;
2292 expr_ty a;
2293 expr_ty b;
2294 void *c;
2295 if (
2296 (a = _PyPegen_name_token(p)) // NAME
2297 &&
2298 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2299 &&
2300 (b = expression_rule(p)) // expression
2301 &&
2302 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
2303 )
2304 {
2305 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2306 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2307 if (_token == NULL) {
2308 D(p->level--);
2309 return NULL;
2310 }
2311 int _end_lineno = _token->end_lineno;
2312 UNUSED(_end_lineno); // Only used by EXTRA macro
2313 int _end_col_offset = _token->end_col_offset;
2314 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002315 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotation syntax is" , _PyAST_AnnAssign ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002316 if (_res == NULL && PyErr_Occurred()) {
2317 p->error_indicator = 1;
2318 D(p->level--);
2319 return NULL;
2320 }
2321 goto done;
2322 }
2323 p->mark = _mark;
2324 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
2326 }
2327 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
2328 if (p->error_indicator) {
2329 D(p->level--);
2330 return NULL;
2331 }
2332 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2333 Token * _literal;
2334 void *a;
2335 expr_ty b;
2336 void *c;
2337 if (
2338 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
2339 &&
2340 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
2341 &&
2342 (b = expression_rule(p)) // expression
2343 &&
2344 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
2345 )
2346 {
2347 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2348 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2349 if (_token == NULL) {
2350 D(p->level--);
2351 return NULL;
2352 }
2353 int _end_lineno = _token->end_lineno;
2354 UNUSED(_end_lineno); // Only used by EXTRA macro
2355 int _end_col_offset = _token->end_col_offset;
2356 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002357 _res = CHECK_VERSION ( stmt_ty , 6 , "Variable annotations syntax is" , _PyAST_AnnAssign ( a , b , c , 0 , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002358 if (_res == NULL && PyErr_Occurred()) {
2359 p->error_indicator = 1;
2360 D(p->level--);
2361 return NULL;
2362 }
2363 goto done;
2364 }
2365 p->mark = _mark;
2366 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
2368 }
2369 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
2370 if (p->error_indicator) {
2371 D(p->level--);
2372 return NULL;
2373 }
2374 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01002375 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002376 void *b;
2377 void *tc;
2378 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01002379 (a = (asdl_expr_seq*)_loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002380 &&
2381 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
2382 &&
2383 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2384 &&
2385 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
2386 )
2387 {
2388 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2389 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2390 if (_token == NULL) {
2391 D(p->level--);
2392 return NULL;
2393 }
2394 int _end_lineno = _token->end_lineno;
2395 UNUSED(_end_lineno); // Only used by EXTRA macro
2396 int _end_col_offset = _token->end_col_offset;
2397 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002398 _res = _PyAST_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002399 if (_res == NULL && PyErr_Occurred()) {
2400 p->error_indicator = 1;
2401 D(p->level--);
2402 return NULL;
2403 }
2404 goto done;
2405 }
2406 p->mark = _mark;
2407 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
2409 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002410 { // single_target augassign ~ (yield_expr | star_expressions)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002411 if (p->error_indicator) {
2412 D(p->level--);
2413 return NULL;
2414 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002415 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2416 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002417 expr_ty a;
2418 AugOperator* b;
2419 void *c;
2420 if (
2421 (a = single_target_rule(p)) // single_target
2422 &&
2423 (b = augassign_rule(p)) // augassign
2424 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002425 (_cut_var = 1)
2426 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002427 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
2428 )
2429 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002430 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002431 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2432 if (_token == NULL) {
2433 D(p->level--);
2434 return NULL;
2435 }
2436 int _end_lineno = _token->end_lineno;
2437 UNUSED(_end_lineno); // Only used by EXTRA macro
2438 int _end_col_offset = _token->end_col_offset;
2439 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002440 _res = _PyAST_AugAssign ( a , b -> kind , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002441 if (_res == NULL && PyErr_Occurred()) {
2442 p->error_indicator = 1;
2443 D(p->level--);
2444 return NULL;
2445 }
2446 goto done;
2447 }
2448 p->mark = _mark;
2449 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03002450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign ~ (yield_expr | star_expressions)"));
2451 if (_cut_var) {
2452 D(p->level--);
2453 return NULL;
2454 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002455 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02002456 if (p->call_invalid_rules) { // invalid_assignment
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002457 if (p->error_indicator) {
2458 D(p->level--);
2459 return NULL;
2460 }
2461 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2462 void *invalid_assignment_var;
2463 if (
2464 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
2465 )
2466 {
2467 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
2468 _res = invalid_assignment_var;
2469 goto done;
2470 }
2471 p->mark = _mark;
2472 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
2474 }
2475 _res = NULL;
2476 done:
2477 D(p->level--);
2478 return _res;
2479}
2480
2481// augassign:
2482// | '+='
2483// | '-='
2484// | '*='
2485// | '@='
2486// | '/='
2487// | '%='
2488// | '&='
2489// | '|='
2490// | '^='
2491// | '<<='
2492// | '>>='
2493// | '**='
2494// | '//='
2495static AugOperator*
2496augassign_rule(Parser *p)
2497{
2498 D(p->level++);
2499 if (p->error_indicator) {
2500 D(p->level--);
2501 return NULL;
2502 }
2503 AugOperator* _res = NULL;
2504 int _mark = p->mark;
2505 { // '+='
2506 if (p->error_indicator) {
2507 D(p->level--);
2508 return NULL;
2509 }
2510 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
2511 Token * _literal;
2512 if (
2513 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
2514 )
2515 {
2516 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
2517 _res = _PyPegen_augoperator ( p , Add );
2518 if (_res == NULL && PyErr_Occurred()) {
2519 p->error_indicator = 1;
2520 D(p->level--);
2521 return NULL;
2522 }
2523 goto done;
2524 }
2525 p->mark = _mark;
2526 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
2528 }
2529 { // '-='
2530 if (p->error_indicator) {
2531 D(p->level--);
2532 return NULL;
2533 }
2534 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
2535 Token * _literal;
2536 if (
2537 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
2538 )
2539 {
2540 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
2541 _res = _PyPegen_augoperator ( p , Sub );
2542 if (_res == NULL && PyErr_Occurred()) {
2543 p->error_indicator = 1;
2544 D(p->level--);
2545 return NULL;
2546 }
2547 goto done;
2548 }
2549 p->mark = _mark;
2550 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
2552 }
2553 { // '*='
2554 if (p->error_indicator) {
2555 D(p->level--);
2556 return NULL;
2557 }
2558 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
2559 Token * _literal;
2560 if (
2561 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
2562 )
2563 {
2564 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
2565 _res = _PyPegen_augoperator ( p , Mult );
2566 if (_res == NULL && PyErr_Occurred()) {
2567 p->error_indicator = 1;
2568 D(p->level--);
2569 return NULL;
2570 }
2571 goto done;
2572 }
2573 p->mark = _mark;
2574 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
2576 }
2577 { // '@='
2578 if (p->error_indicator) {
2579 D(p->level--);
2580 return NULL;
2581 }
2582 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
2583 Token * _literal;
2584 if (
2585 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
2586 )
2587 {
2588 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Lysandros Nikolaou2e5ca9e2020-10-21 22:53:14 +03002589 _res = CHECK_VERSION ( AugOperator * , 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002590 if (_res == NULL && PyErr_Occurred()) {
2591 p->error_indicator = 1;
2592 D(p->level--);
2593 return NULL;
2594 }
2595 goto done;
2596 }
2597 p->mark = _mark;
2598 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
2600 }
2601 { // '/='
2602 if (p->error_indicator) {
2603 D(p->level--);
2604 return NULL;
2605 }
2606 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
2607 Token * _literal;
2608 if (
2609 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
2610 )
2611 {
2612 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
2613 _res = _PyPegen_augoperator ( p , Div );
2614 if (_res == NULL && PyErr_Occurred()) {
2615 p->error_indicator = 1;
2616 D(p->level--);
2617 return NULL;
2618 }
2619 goto done;
2620 }
2621 p->mark = _mark;
2622 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
2624 }
2625 { // '%='
2626 if (p->error_indicator) {
2627 D(p->level--);
2628 return NULL;
2629 }
2630 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
2631 Token * _literal;
2632 if (
2633 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
2634 )
2635 {
2636 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
2637 _res = _PyPegen_augoperator ( p , Mod );
2638 if (_res == NULL && PyErr_Occurred()) {
2639 p->error_indicator = 1;
2640 D(p->level--);
2641 return NULL;
2642 }
2643 goto done;
2644 }
2645 p->mark = _mark;
2646 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
2648 }
2649 { // '&='
2650 if (p->error_indicator) {
2651 D(p->level--);
2652 return NULL;
2653 }
2654 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
2655 Token * _literal;
2656 if (
2657 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
2658 )
2659 {
2660 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
2661 _res = _PyPegen_augoperator ( p , BitAnd );
2662 if (_res == NULL && PyErr_Occurred()) {
2663 p->error_indicator = 1;
2664 D(p->level--);
2665 return NULL;
2666 }
2667 goto done;
2668 }
2669 p->mark = _mark;
2670 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
2672 }
2673 { // '|='
2674 if (p->error_indicator) {
2675 D(p->level--);
2676 return NULL;
2677 }
2678 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
2679 Token * _literal;
2680 if (
2681 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
2682 )
2683 {
2684 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
2685 _res = _PyPegen_augoperator ( p , BitOr );
2686 if (_res == NULL && PyErr_Occurred()) {
2687 p->error_indicator = 1;
2688 D(p->level--);
2689 return NULL;
2690 }
2691 goto done;
2692 }
2693 p->mark = _mark;
2694 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
2696 }
2697 { // '^='
2698 if (p->error_indicator) {
2699 D(p->level--);
2700 return NULL;
2701 }
2702 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
2703 Token * _literal;
2704 if (
2705 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
2706 )
2707 {
2708 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
2709 _res = _PyPegen_augoperator ( p , BitXor );
2710 if (_res == NULL && PyErr_Occurred()) {
2711 p->error_indicator = 1;
2712 D(p->level--);
2713 return NULL;
2714 }
2715 goto done;
2716 }
2717 p->mark = _mark;
2718 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
2720 }
2721 { // '<<='
2722 if (p->error_indicator) {
2723 D(p->level--);
2724 return NULL;
2725 }
2726 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
2727 Token * _literal;
2728 if (
2729 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
2730 )
2731 {
2732 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
2733 _res = _PyPegen_augoperator ( p , LShift );
2734 if (_res == NULL && PyErr_Occurred()) {
2735 p->error_indicator = 1;
2736 D(p->level--);
2737 return NULL;
2738 }
2739 goto done;
2740 }
2741 p->mark = _mark;
2742 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
2744 }
2745 { // '>>='
2746 if (p->error_indicator) {
2747 D(p->level--);
2748 return NULL;
2749 }
2750 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
2751 Token * _literal;
2752 if (
2753 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
2754 )
2755 {
2756 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
2757 _res = _PyPegen_augoperator ( p , RShift );
2758 if (_res == NULL && PyErr_Occurred()) {
2759 p->error_indicator = 1;
2760 D(p->level--);
2761 return NULL;
2762 }
2763 goto done;
2764 }
2765 p->mark = _mark;
2766 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2767 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
2768 }
2769 { // '**='
2770 if (p->error_indicator) {
2771 D(p->level--);
2772 return NULL;
2773 }
2774 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
2775 Token * _literal;
2776 if (
2777 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
2778 )
2779 {
2780 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
2781 _res = _PyPegen_augoperator ( p , Pow );
2782 if (_res == NULL && PyErr_Occurred()) {
2783 p->error_indicator = 1;
2784 D(p->level--);
2785 return NULL;
2786 }
2787 goto done;
2788 }
2789 p->mark = _mark;
2790 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
2792 }
2793 { // '//='
2794 if (p->error_indicator) {
2795 D(p->level--);
2796 return NULL;
2797 }
2798 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
2799 Token * _literal;
2800 if (
2801 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
2802 )
2803 {
2804 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
2805 _res = _PyPegen_augoperator ( p , FloorDiv );
2806 if (_res == NULL && PyErr_Occurred()) {
2807 p->error_indicator = 1;
2808 D(p->level--);
2809 return NULL;
2810 }
2811 goto done;
2812 }
2813 p->mark = _mark;
2814 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2815 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
2816 }
2817 _res = NULL;
2818 done:
2819 D(p->level--);
2820 return _res;
2821}
2822
2823// global_stmt: 'global' ','.NAME+
2824static stmt_ty
2825global_stmt_rule(Parser *p)
2826{
2827 D(p->level++);
2828 if (p->error_indicator) {
2829 D(p->level--);
2830 return NULL;
2831 }
2832 stmt_ty _res = NULL;
2833 int _mark = p->mark;
2834 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2835 p->error_indicator = 1;
2836 D(p->level--);
2837 return NULL;
2838 }
2839 int _start_lineno = p->tokens[_mark]->lineno;
2840 UNUSED(_start_lineno); // Only used by EXTRA macro
2841 int _start_col_offset = p->tokens[_mark]->col_offset;
2842 UNUSED(_start_col_offset); // Only used by EXTRA macro
2843 { // 'global' ','.NAME+
2844 if (p->error_indicator) {
2845 D(p->level--);
2846 return NULL;
2847 }
2848 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2849 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002850 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002851 if (
2852 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
2853 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002854 (a = (asdl_expr_seq*)_gather_25_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002855 )
2856 {
2857 D(fprintf(stderr, "%*c+ global_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
2858 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2859 if (_token == NULL) {
2860 D(p->level--);
2861 return NULL;
2862 }
2863 int _end_lineno = _token->end_lineno;
2864 UNUSED(_end_lineno); // Only used by EXTRA macro
2865 int _end_col_offset = _token->end_col_offset;
2866 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002867 _res = _PyAST_Global ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002868 if (_res == NULL && PyErr_Occurred()) {
2869 p->error_indicator = 1;
2870 D(p->level--);
2871 return NULL;
2872 }
2873 goto done;
2874 }
2875 p->mark = _mark;
2876 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
2878 }
2879 _res = NULL;
2880 done:
2881 D(p->level--);
2882 return _res;
2883}
2884
2885// nonlocal_stmt: 'nonlocal' ','.NAME+
2886static stmt_ty
2887nonlocal_stmt_rule(Parser *p)
2888{
2889 D(p->level++);
2890 if (p->error_indicator) {
2891 D(p->level--);
2892 return NULL;
2893 }
2894 stmt_ty _res = NULL;
2895 int _mark = p->mark;
2896 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2897 p->error_indicator = 1;
2898 D(p->level--);
2899 return NULL;
2900 }
2901 int _start_lineno = p->tokens[_mark]->lineno;
2902 UNUSED(_start_lineno); // Only used by EXTRA macro
2903 int _start_col_offset = p->tokens[_mark]->col_offset;
2904 UNUSED(_start_col_offset); // Only used by EXTRA macro
2905 { // 'nonlocal' ','.NAME+
2906 if (p->error_indicator) {
2907 D(p->level--);
2908 return NULL;
2909 }
2910 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2911 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01002912 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002913 if (
2914 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
2915 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01002916 (a = (asdl_expr_seq*)_gather_27_rule(p)) // ','.NAME+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002917 )
2918 {
2919 D(fprintf(stderr, "%*c+ nonlocal_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
2920 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2921 if (_token == NULL) {
2922 D(p->level--);
2923 return NULL;
2924 }
2925 int _end_lineno = _token->end_lineno;
2926 UNUSED(_end_lineno); // Only used by EXTRA macro
2927 int _end_col_offset = _token->end_col_offset;
2928 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002929 _res = _PyAST_Nonlocal ( CHECK ( asdl_identifier_seq * , _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002930 if (_res == NULL && PyErr_Occurred()) {
2931 p->error_indicator = 1;
2932 D(p->level--);
2933 return NULL;
2934 }
2935 goto done;
2936 }
2937 p->mark = _mark;
2938 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
2940 }
2941 _res = NULL;
2942 done:
2943 D(p->level--);
2944 return _res;
2945}
2946
2947// yield_stmt: yield_expr
2948static stmt_ty
2949yield_stmt_rule(Parser *p)
2950{
2951 D(p->level++);
2952 if (p->error_indicator) {
2953 D(p->level--);
2954 return NULL;
2955 }
2956 stmt_ty _res = NULL;
2957 int _mark = p->mark;
2958 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2959 p->error_indicator = 1;
2960 D(p->level--);
2961 return NULL;
2962 }
2963 int _start_lineno = p->tokens[_mark]->lineno;
2964 UNUSED(_start_lineno); // Only used by EXTRA macro
2965 int _start_col_offset = p->tokens[_mark]->col_offset;
2966 UNUSED(_start_col_offset); // Only used by EXTRA macro
2967 { // yield_expr
2968 if (p->error_indicator) {
2969 D(p->level--);
2970 return NULL;
2971 }
2972 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2973 expr_ty y;
2974 if (
2975 (y = yield_expr_rule(p)) // yield_expr
2976 )
2977 {
2978 D(fprintf(stderr, "%*c+ yield_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
2979 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2980 if (_token == NULL) {
2981 D(p->level--);
2982 return NULL;
2983 }
2984 int _end_lineno = _token->end_lineno;
2985 UNUSED(_end_lineno); // Only used by EXTRA macro
2986 int _end_col_offset = _token->end_col_offset;
2987 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02002988 _res = _PyAST_Expr ( y , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01002989 if (_res == NULL && PyErr_Occurred()) {
2990 p->error_indicator = 1;
2991 D(p->level--);
2992 return NULL;
2993 }
2994 goto done;
2995 }
2996 p->mark = _mark;
2997 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
2999 }
3000 _res = NULL;
3001 done:
3002 D(p->level--);
3003 return _res;
3004}
3005
3006// assert_stmt: 'assert' expression [',' expression]
3007static stmt_ty
3008assert_stmt_rule(Parser *p)
3009{
3010 D(p->level++);
3011 if (p->error_indicator) {
3012 D(p->level--);
3013 return NULL;
3014 }
3015 stmt_ty _res = NULL;
3016 int _mark = p->mark;
3017 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3018 p->error_indicator = 1;
3019 D(p->level--);
3020 return NULL;
3021 }
3022 int _start_lineno = p->tokens[_mark]->lineno;
3023 UNUSED(_start_lineno); // Only used by EXTRA macro
3024 int _start_col_offset = p->tokens[_mark]->col_offset;
3025 UNUSED(_start_col_offset); // Only used by EXTRA macro
3026 { // 'assert' expression [',' expression]
3027 if (p->error_indicator) {
3028 D(p->level--);
3029 return NULL;
3030 }
3031 D(fprintf(stderr, "%*c> assert_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3032 Token * _keyword;
3033 expr_ty a;
3034 void *b;
3035 if (
3036 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
3037 &&
3038 (a = expression_rule(p)) // expression
3039 &&
3040 (b = _tmp_29_rule(p), 1) // [',' expression]
3041 )
3042 {
3043 D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
3044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3045 if (_token == NULL) {
3046 D(p->level--);
3047 return NULL;
3048 }
3049 int _end_lineno = _token->end_lineno;
3050 UNUSED(_end_lineno); // Only used by EXTRA macro
3051 int _end_col_offset = _token->end_col_offset;
3052 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003053 _res = _PyAST_Assert ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003054 if (_res == NULL && PyErr_Occurred()) {
3055 p->error_indicator = 1;
3056 D(p->level--);
3057 return NULL;
3058 }
3059 goto done;
3060 }
3061 p->mark = _mark;
3062 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
3064 }
3065 _res = NULL;
3066 done:
3067 D(p->level--);
3068 return _res;
3069}
3070
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003071// del_stmt: 'del' del_targets &(';' | NEWLINE) | invalid_del_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003072static stmt_ty
3073del_stmt_rule(Parser *p)
3074{
3075 D(p->level++);
3076 if (p->error_indicator) {
3077 D(p->level--);
3078 return NULL;
3079 }
3080 stmt_ty _res = NULL;
3081 int _mark = p->mark;
3082 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3083 p->error_indicator = 1;
3084 D(p->level--);
3085 return NULL;
3086 }
3087 int _start_lineno = p->tokens[_mark]->lineno;
3088 UNUSED(_start_lineno); // Only used by EXTRA macro
3089 int _start_col_offset = p->tokens[_mark]->col_offset;
3090 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003091 { // 'del' del_targets &(';' | NEWLINE)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003092 if (p->error_indicator) {
3093 D(p->level--);
3094 return NULL;
3095 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003096 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003097 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003098 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003099 if (
3100 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
3101 &&
3102 (a = del_targets_rule(p)) // del_targets
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003103 &&
3104 _PyPegen_lookahead(1, _tmp_30_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003105 )
3106 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003107 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003108 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3109 if (_token == NULL) {
3110 D(p->level--);
3111 return NULL;
3112 }
3113 int _end_lineno = _token->end_lineno;
3114 UNUSED(_end_lineno); // Only used by EXTRA macro
3115 int _end_col_offset = _token->end_col_offset;
3116 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003117 _res = _PyAST_Delete ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003118 if (_res == NULL && PyErr_Occurred()) {
3119 p->error_indicator = 1;
3120 D(p->level--);
3121 return NULL;
3122 }
3123 goto done;
3124 }
3125 p->mark = _mark;
3126 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)"));
3128 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003129 if (p->call_invalid_rules) { // invalid_del_stmt
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003130 if (p->error_indicator) {
3131 D(p->level--);
3132 return NULL;
3133 }
3134 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3135 void *invalid_del_stmt_var;
3136 if (
3137 (invalid_del_stmt_var = invalid_del_stmt_rule(p)) // invalid_del_stmt
3138 )
3139 {
3140 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_stmt"));
3141 _res = invalid_del_stmt_var;
3142 goto done;
3143 }
3144 p->mark = _mark;
3145 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003147 }
3148 _res = NULL;
3149 done:
3150 D(p->level--);
3151 return _res;
3152}
3153
3154// import_stmt: import_name | import_from
3155static stmt_ty
3156import_stmt_rule(Parser *p)
3157{
3158 D(p->level++);
3159 if (p->error_indicator) {
3160 D(p->level--);
3161 return NULL;
3162 }
3163 stmt_ty _res = NULL;
3164 int _mark = p->mark;
3165 { // import_name
3166 if (p->error_indicator) {
3167 D(p->level--);
3168 return NULL;
3169 }
3170 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
3171 stmt_ty import_name_var;
3172 if (
3173 (import_name_var = import_name_rule(p)) // import_name
3174 )
3175 {
3176 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_name"));
3177 _res = import_name_var;
3178 goto done;
3179 }
3180 p->mark = _mark;
3181 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
3183 }
3184 { // import_from
3185 if (p->error_indicator) {
3186 D(p->level--);
3187 return NULL;
3188 }
3189 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
3190 stmt_ty import_from_var;
3191 if (
3192 (import_from_var = import_from_rule(p)) // import_from
3193 )
3194 {
3195 D(fprintf(stderr, "%*c+ import_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from"));
3196 _res = import_from_var;
3197 goto done;
3198 }
3199 p->mark = _mark;
3200 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
3202 }
3203 _res = NULL;
3204 done:
3205 D(p->level--);
3206 return _res;
3207}
3208
3209// import_name: 'import' dotted_as_names
3210static stmt_ty
3211import_name_rule(Parser *p)
3212{
3213 D(p->level++);
3214 if (p->error_indicator) {
3215 D(p->level--);
3216 return NULL;
3217 }
3218 stmt_ty _res = NULL;
3219 int _mark = p->mark;
3220 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3221 p->error_indicator = 1;
3222 D(p->level--);
3223 return NULL;
3224 }
3225 int _start_lineno = p->tokens[_mark]->lineno;
3226 UNUSED(_start_lineno); // Only used by EXTRA macro
3227 int _start_col_offset = p->tokens[_mark]->col_offset;
3228 UNUSED(_start_col_offset); // Only used by EXTRA macro
3229 { // 'import' dotted_as_names
3230 if (p->error_indicator) {
3231 D(p->level--);
3232 return NULL;
3233 }
3234 D(fprintf(stderr, "%*c> import_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3235 Token * _keyword;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003236 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003237 if (
3238 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
3239 &&
3240 (a = dotted_as_names_rule(p)) // dotted_as_names
3241 )
3242 {
3243 D(fprintf(stderr, "%*c+ import_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import' dotted_as_names"));
3244 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3245 if (_token == NULL) {
3246 D(p->level--);
3247 return NULL;
3248 }
3249 int _end_lineno = _token->end_lineno;
3250 UNUSED(_end_lineno); // Only used by EXTRA macro
3251 int _end_col_offset = _token->end_col_offset;
3252 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003253 _res = _PyAST_Import ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003254 if (_res == NULL && PyErr_Occurred()) {
3255 p->error_indicator = 1;
3256 D(p->level--);
3257 return NULL;
3258 }
3259 goto done;
3260 }
3261 p->mark = _mark;
3262 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
3263 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
3264 }
3265 _res = NULL;
3266 done:
3267 D(p->level--);
3268 return _res;
3269}
3270
3271// import_from:
3272// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3273// | 'from' (('.' | '...'))+ 'import' import_from_targets
3274static stmt_ty
3275import_from_rule(Parser *p)
3276{
3277 D(p->level++);
3278 if (p->error_indicator) {
3279 D(p->level--);
3280 return NULL;
3281 }
3282 stmt_ty _res = NULL;
3283 int _mark = p->mark;
3284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3285 p->error_indicator = 1;
3286 D(p->level--);
3287 return NULL;
3288 }
3289 int _start_lineno = p->tokens[_mark]->lineno;
3290 UNUSED(_start_lineno); // Only used by EXTRA macro
3291 int _start_col_offset = p->tokens[_mark]->col_offset;
3292 UNUSED(_start_col_offset); // Only used by EXTRA macro
3293 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
3294 if (p->error_indicator) {
3295 D(p->level--);
3296 return NULL;
3297 }
3298 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3299 Token * _keyword;
3300 Token * _keyword_1;
3301 asdl_seq * a;
3302 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003303 asdl_alias_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003304 if (
3305 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3306 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003307 (a = _loop0_31_rule(p)) // (('.' | '...'))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003308 &&
3309 (b = dotted_name_rule(p)) // dotted_name
3310 &&
3311 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3312 &&
3313 (c = import_from_targets_rule(p)) // import_from_targets
3314 )
3315 {
3316 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3317 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3318 if (_token == NULL) {
3319 D(p->level--);
3320 return NULL;
3321 }
3322 int _end_lineno = _token->end_lineno;
3323 UNUSED(_end_lineno); // Only used by EXTRA macro
3324 int _end_col_offset = _token->end_col_offset;
3325 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003326 _res = _PyAST_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003327 if (_res == NULL && PyErr_Occurred()) {
3328 p->error_indicator = 1;
3329 D(p->level--);
3330 return NULL;
3331 }
3332 goto done;
3333 }
3334 p->mark = _mark;
3335 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
3337 }
3338 { // 'from' (('.' | '...'))+ 'import' import_from_targets
3339 if (p->error_indicator) {
3340 D(p->level--);
3341 return NULL;
3342 }
3343 D(fprintf(stderr, "%*c> import_from[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3344 Token * _keyword;
3345 Token * _keyword_1;
3346 asdl_seq * a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003347 asdl_alias_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003348 if (
3349 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
3350 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003351 (a = _loop1_32_rule(p)) // (('.' | '...'))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003352 &&
3353 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
3354 &&
3355 (b = import_from_targets_rule(p)) // import_from_targets
3356 )
3357 {
3358 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3359 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3360 if (_token == NULL) {
3361 D(p->level--);
3362 return NULL;
3363 }
3364 int _end_lineno = _token->end_lineno;
3365 UNUSED(_end_lineno); // Only used by EXTRA macro
3366 int _end_col_offset = _token->end_col_offset;
3367 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003368 _res = _PyAST_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003369 if (_res == NULL && PyErr_Occurred()) {
3370 p->error_indicator = 1;
3371 D(p->level--);
3372 return NULL;
3373 }
3374 goto done;
3375 }
3376 p->mark = _mark;
3377 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
3379 }
3380 _res = NULL;
3381 done:
3382 D(p->level--);
3383 return _res;
3384}
3385
3386// import_from_targets:
3387// | '(' import_from_as_names ','? ')'
3388// | import_from_as_names !','
3389// | '*'
3390// | invalid_import_from_targets
Pablo Galindoa5634c42020-09-16 19:42:00 +01003391static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003392import_from_targets_rule(Parser *p)
3393{
3394 D(p->level++);
3395 if (p->error_indicator) {
3396 D(p->level--);
3397 return NULL;
3398 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003399 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003400 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003401 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3402 p->error_indicator = 1;
3403 D(p->level--);
3404 return NULL;
3405 }
3406 int _start_lineno = p->tokens[_mark]->lineno;
3407 UNUSED(_start_lineno); // Only used by EXTRA macro
3408 int _start_col_offset = p->tokens[_mark]->col_offset;
3409 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003410 { // '(' import_from_as_names ','? ')'
3411 if (p->error_indicator) {
3412 D(p->level--);
3413 return NULL;
3414 }
3415 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3416 Token * _literal;
3417 Token * _literal_1;
3418 void *_opt_var;
3419 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01003420 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003421 if (
3422 (_literal = _PyPegen_expect_token(p, 7)) // token='('
3423 &&
3424 (a = import_from_as_names_rule(p)) // import_from_as_names
3425 &&
3426 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
3427 &&
3428 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
3429 )
3430 {
3431 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3432 _res = a;
3433 if (_res == NULL && PyErr_Occurred()) {
3434 p->error_indicator = 1;
3435 D(p->level--);
3436 return NULL;
3437 }
3438 goto done;
3439 }
3440 p->mark = _mark;
3441 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
3443 }
3444 { // import_from_as_names !','
3445 if (p->error_indicator) {
3446 D(p->level--);
3447 return NULL;
3448 }
3449 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003450 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003451 if (
3452 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
3453 &&
3454 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
3455 )
3456 {
3457 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names !','"));
3458 _res = import_from_as_names_var;
3459 goto done;
3460 }
3461 p->mark = _mark;
3462 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3463 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
3464 }
3465 { // '*'
3466 if (p->error_indicator) {
3467 D(p->level--);
3468 return NULL;
3469 }
3470 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
3471 Token * _literal;
3472 if (
3473 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
3474 )
3475 {
3476 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003477 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3478 if (_token == NULL) {
3479 D(p->level--);
3480 return NULL;
3481 }
3482 int _end_lineno = _token->end_lineno;
3483 UNUSED(_end_lineno); // Only used by EXTRA macro
3484 int _end_col_offset = _token->end_col_offset;
3485 UNUSED(_end_col_offset); // Only used by EXTRA macro
3486 _res = ( asdl_alias_seq * ) _PyPegen_singleton_seq ( p , CHECK ( alias_ty , _PyPegen_alias_for_star ( p , EXTRA ) ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003487 if (_res == NULL && PyErr_Occurred()) {
3488 p->error_indicator = 1;
3489 D(p->level--);
3490 return NULL;
3491 }
3492 goto done;
3493 }
3494 p->mark = _mark;
3495 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
3497 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02003498 if (p->call_invalid_rules) { // invalid_import_from_targets
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003499 if (p->error_indicator) {
3500 D(p->level--);
3501 return NULL;
3502 }
3503 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3504 void *invalid_import_from_targets_var;
3505 if (
3506 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3507 )
3508 {
3509 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_import_from_targets"));
3510 _res = invalid_import_from_targets_var;
3511 goto done;
3512 }
3513 p->mark = _mark;
3514 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3515 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
3516 }
3517 _res = NULL;
3518 done:
3519 D(p->level--);
3520 return _res;
3521}
3522
3523// import_from_as_names: ','.import_from_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003524static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003525import_from_as_names_rule(Parser *p)
3526{
3527 D(p->level++);
3528 if (p->error_indicator) {
3529 D(p->level--);
3530 return NULL;
3531 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003532 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003533 int _mark = p->mark;
3534 { // ','.import_from_as_name+
3535 if (p->error_indicator) {
3536 D(p->level--);
3537 return NULL;
3538 }
3539 D(fprintf(stderr, "%*c> import_from_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003540 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003541 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003542 (a = (asdl_alias_seq*)_gather_33_rule(p)) // ','.import_from_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003543 )
3544 {
3545 D(fprintf(stderr, "%*c+ import_from_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.import_from_as_name+"));
3546 _res = a;
3547 if (_res == NULL && PyErr_Occurred()) {
3548 p->error_indicator = 1;
3549 D(p->level--);
3550 return NULL;
3551 }
3552 goto done;
3553 }
3554 p->mark = _mark;
3555 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3556 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
3557 }
3558 _res = NULL;
3559 done:
3560 D(p->level--);
3561 return _res;
3562}
3563
3564// import_from_as_name: NAME ['as' NAME]
3565static alias_ty
3566import_from_as_name_rule(Parser *p)
3567{
3568 D(p->level++);
3569 if (p->error_indicator) {
3570 D(p->level--);
3571 return NULL;
3572 }
3573 alias_ty _res = NULL;
3574 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003575 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3576 p->error_indicator = 1;
3577 D(p->level--);
3578 return NULL;
3579 }
3580 int _start_lineno = p->tokens[_mark]->lineno;
3581 UNUSED(_start_lineno); // Only used by EXTRA macro
3582 int _start_col_offset = p->tokens[_mark]->col_offset;
3583 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003584 { // NAME ['as' NAME]
3585 if (p->error_indicator) {
3586 D(p->level--);
3587 return NULL;
3588 }
3589 D(fprintf(stderr, "%*c> import_from_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
3590 expr_ty a;
3591 void *b;
3592 if (
3593 (a = _PyPegen_name_token(p)) // NAME
3594 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003595 (b = _tmp_35_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003596 )
3597 {
3598 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003599 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3600 if (_token == NULL) {
3601 D(p->level--);
3602 return NULL;
3603 }
3604 int _end_lineno = _token->end_lineno;
3605 UNUSED(_end_lineno); // Only used by EXTRA macro
3606 int _end_col_offset = _token->end_col_offset;
3607 UNUSED(_end_col_offset); // Only used by EXTRA macro
3608 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003609 if (_res == NULL && PyErr_Occurred()) {
3610 p->error_indicator = 1;
3611 D(p->level--);
3612 return NULL;
3613 }
3614 goto done;
3615 }
3616 p->mark = _mark;
3617 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
3619 }
3620 _res = NULL;
3621 done:
3622 D(p->level--);
3623 return _res;
3624}
3625
3626// dotted_as_names: ','.dotted_as_name+
Pablo Galindoa5634c42020-09-16 19:42:00 +01003627static asdl_alias_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003628dotted_as_names_rule(Parser *p)
3629{
3630 D(p->level++);
3631 if (p->error_indicator) {
3632 D(p->level--);
3633 return NULL;
3634 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01003635 asdl_alias_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003636 int _mark = p->mark;
3637 { // ','.dotted_as_name+
3638 if (p->error_indicator) {
3639 D(p->level--);
3640 return NULL;
3641 }
3642 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01003643 asdl_alias_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003644 if (
Pablo Galindoa5634c42020-09-16 19:42:00 +01003645 (a = (asdl_alias_seq*)_gather_36_rule(p)) // ','.dotted_as_name+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003646 )
3647 {
3648 D(fprintf(stderr, "%*c+ dotted_as_names[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
3649 _res = a;
3650 if (_res == NULL && PyErr_Occurred()) {
3651 p->error_indicator = 1;
3652 D(p->level--);
3653 return NULL;
3654 }
3655 goto done;
3656 }
3657 p->mark = _mark;
3658 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3659 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
3660 }
3661 _res = NULL;
3662 done:
3663 D(p->level--);
3664 return _res;
3665}
3666
3667// dotted_as_name: dotted_name ['as' NAME]
3668static alias_ty
3669dotted_as_name_rule(Parser *p)
3670{
3671 D(p->level++);
3672 if (p->error_indicator) {
3673 D(p->level--);
3674 return NULL;
3675 }
3676 alias_ty _res = NULL;
3677 int _mark = p->mark;
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003678 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3679 p->error_indicator = 1;
3680 D(p->level--);
3681 return NULL;
3682 }
3683 int _start_lineno = p->tokens[_mark]->lineno;
3684 UNUSED(_start_lineno); // Only used by EXTRA macro
3685 int _start_col_offset = p->tokens[_mark]->col_offset;
3686 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003687 { // dotted_name ['as' NAME]
3688 if (p->error_indicator) {
3689 D(p->level--);
3690 return NULL;
3691 }
3692 D(fprintf(stderr, "%*c> dotted_as_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
3693 expr_ty a;
3694 void *b;
3695 if (
3696 (a = dotted_name_rule(p)) // dotted_name
3697 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03003698 (b = _tmp_38_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003699 )
3700 {
3701 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Matthew Suozzo75a06f02021-04-10 16:56:28 -04003702 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3703 if (_token == NULL) {
3704 D(p->level--);
3705 return NULL;
3706 }
3707 int _end_lineno = _token->end_lineno;
3708 UNUSED(_end_lineno); // Only used by EXTRA macro
3709 int _end_col_offset = _token->end_col_offset;
3710 UNUSED(_end_col_offset); // Only used by EXTRA macro
3711 _res = _PyAST_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003712 if (_res == NULL && PyErr_Occurred()) {
3713 p->error_indicator = 1;
3714 D(p->level--);
3715 return NULL;
3716 }
3717 goto done;
3718 }
3719 p->mark = _mark;
3720 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
3722 }
3723 _res = NULL;
3724 done:
3725 D(p->level--);
3726 return _res;
3727}
3728
3729// Left-recursive
3730// dotted_name: dotted_name '.' NAME | NAME
3731static expr_ty dotted_name_raw(Parser *);
3732static expr_ty
3733dotted_name_rule(Parser *p)
3734{
3735 D(p->level++);
3736 expr_ty _res = NULL;
3737 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3738 D(p->level--);
3739 return _res;
3740 }
3741 int _mark = p->mark;
3742 int _resmark = p->mark;
3743 while (1) {
3744 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
3745 if (tmpvar_0) {
3746 D(p->level--);
3747 return _res;
3748 }
3749 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003750 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003751 void *_raw = dotted_name_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07003752 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +02003753 if (p->error_indicator)
3754 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003755 if (_raw == NULL || p->mark <= _resmark)
3756 break;
3757 _resmark = p->mark;
3758 _res = _raw;
3759 }
3760 p->mark = _resmark;
3761 D(p->level--);
3762 return _res;
3763}
3764static expr_ty
3765dotted_name_raw(Parser *p)
3766{
3767 D(p->level++);
3768 if (p->error_indicator) {
3769 D(p->level--);
3770 return NULL;
3771 }
3772 expr_ty _res = NULL;
3773 int _mark = p->mark;
3774 { // dotted_name '.' NAME
3775 if (p->error_indicator) {
3776 D(p->level--);
3777 return NULL;
3778 }
3779 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3780 Token * _literal;
3781 expr_ty a;
3782 expr_ty b;
3783 if (
3784 (a = dotted_name_rule(p)) // dotted_name
3785 &&
3786 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
3787 &&
3788 (b = _PyPegen_name_token(p)) // NAME
3789 )
3790 {
3791 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name '.' NAME"));
3792 _res = _PyPegen_join_names_with_dot ( p , a , b );
3793 if (_res == NULL && PyErr_Occurred()) {
3794 p->error_indicator = 1;
3795 D(p->level--);
3796 return NULL;
3797 }
3798 goto done;
3799 }
3800 p->mark = _mark;
3801 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
3803 }
3804 { // NAME
3805 if (p->error_indicator) {
3806 D(p->level--);
3807 return NULL;
3808 }
3809 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
3810 expr_ty name_var;
3811 if (
3812 (name_var = _PyPegen_name_token(p)) // NAME
3813 )
3814 {
3815 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
3816 _res = name_var;
3817 goto done;
3818 }
3819 p->mark = _mark;
3820 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
3822 }
3823 _res = NULL;
3824 done:
3825 D(p->level--);
3826 return _res;
3827}
3828
3829// if_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003830// | invalid_if_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003831// | 'if' named_expression ':' block elif_stmt
3832// | 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003833static stmt_ty
3834if_stmt_rule(Parser *p)
3835{
3836 D(p->level++);
3837 if (p->error_indicator) {
3838 D(p->level--);
3839 return NULL;
3840 }
3841 stmt_ty _res = NULL;
3842 int _mark = p->mark;
3843 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3844 p->error_indicator = 1;
3845 D(p->level--);
3846 return NULL;
3847 }
3848 int _start_lineno = p->tokens[_mark]->lineno;
3849 UNUSED(_start_lineno); // Only used by EXTRA macro
3850 int _start_col_offset = p->tokens[_mark]->col_offset;
3851 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003852 if (p->call_invalid_rules) { // invalid_if_stmt
3853 if (p->error_indicator) {
3854 D(p->level--);
3855 return NULL;
3856 }
3857 D(fprintf(stderr, "%*c> if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3858 void *invalid_if_stmt_var;
3859 if (
3860 (invalid_if_stmt_var = invalid_if_stmt_rule(p)) // invalid_if_stmt
3861 )
3862 {
3863 D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_if_stmt"));
3864 _res = invalid_if_stmt_var;
3865 goto done;
3866 }
3867 p->mark = _mark;
3868 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt"));
3870 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003871 { // 'if' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003872 if (p->error_indicator) {
3873 D(p->level--);
3874 return NULL;
3875 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003876 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 +01003877 Token * _keyword;
3878 Token * _literal;
3879 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003880 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003881 stmt_ty c;
3882 if (
3883 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3884 &&
3885 (a = named_expression_rule(p)) // named_expression
3886 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003887 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003888 &&
3889 (b = block_rule(p)) // block
3890 &&
3891 (c = elif_stmt_rule(p)) // elif_stmt
3892 )
3893 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003894 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 +01003895 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3896 if (_token == NULL) {
3897 D(p->level--);
3898 return NULL;
3899 }
3900 int _end_lineno = _token->end_lineno;
3901 UNUSED(_end_lineno); // Only used by EXTRA macro
3902 int _end_col_offset = _token->end_col_offset;
3903 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003904 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003905 if (_res == NULL && PyErr_Occurred()) {
3906 p->error_indicator = 1;
3907 D(p->level--);
3908 return NULL;
3909 }
3910 goto done;
3911 }
3912 p->mark = _mark;
3913 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003915 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003916 { // 'if' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003917 if (p->error_indicator) {
3918 D(p->level--);
3919 return NULL;
3920 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003921 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 +01003922 Token * _keyword;
3923 Token * _literal;
3924 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01003925 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003926 void *c;
3927 if (
3928 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
3929 &&
3930 (a = named_expression_rule(p)) // named_expression
3931 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003932 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003933 &&
3934 (b = block_rule(p)) // block
3935 &&
3936 (c = else_block_rule(p), 1) // else_block?
3937 )
3938 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003939 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 +01003940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3941 if (_token == NULL) {
3942 D(p->level--);
3943 return NULL;
3944 }
3945 int _end_lineno = _token->end_lineno;
3946 UNUSED(_end_lineno); // Only used by EXTRA macro
3947 int _end_col_offset = _token->end_col_offset;
3948 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02003949 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003950 if (_res == NULL && PyErr_Occurred()) {
3951 p->error_indicator = 1;
3952 D(p->level--);
3953 return NULL;
3954 }
3955 goto done;
3956 }
3957 p->mark = _mark;
3958 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
3960 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003961 _res = NULL;
3962 done:
3963 D(p->level--);
3964 return _res;
3965}
3966
3967// elif_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01003968// | invalid_elif_stmt
Pablo Galindob86ed8e2021-04-12 16:59:30 +01003969// | 'elif' named_expression ':' block elif_stmt
3970// | 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01003971static stmt_ty
3972elif_stmt_rule(Parser *p)
3973{
3974 D(p->level++);
3975 if (p->error_indicator) {
3976 D(p->level--);
3977 return NULL;
3978 }
3979 stmt_ty _res = NULL;
3980 int _mark = p->mark;
3981 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3982 p->error_indicator = 1;
3983 D(p->level--);
3984 return NULL;
3985 }
3986 int _start_lineno = p->tokens[_mark]->lineno;
3987 UNUSED(_start_lineno); // Only used by EXTRA macro
3988 int _start_col_offset = p->tokens[_mark]->col_offset;
3989 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01003990 if (p->call_invalid_rules) { // invalid_elif_stmt
3991 if (p->error_indicator) {
3992 D(p->level--);
3993 return NULL;
3994 }
3995 D(fprintf(stderr, "%*c> elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
3996 void *invalid_elif_stmt_var;
3997 if (
3998 (invalid_elif_stmt_var = invalid_elif_stmt_rule(p)) // invalid_elif_stmt
3999 )
4000 {
4001 D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_elif_stmt"));
4002 _res = invalid_elif_stmt_var;
4003 goto done;
4004 }
4005 p->mark = _mark;
4006 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt"));
4008 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004009 { // 'elif' named_expression ':' block elif_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004010 if (p->error_indicator) {
4011 D(p->level--);
4012 return NULL;
4013 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004014 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 +01004015 Token * _keyword;
4016 Token * _literal;
4017 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004018 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004019 stmt_ty c;
4020 if (
4021 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4022 &&
4023 (a = named_expression_rule(p)) // named_expression
4024 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004025 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004026 &&
4027 (b = block_rule(p)) // block
4028 &&
4029 (c = elif_stmt_rule(p)) // elif_stmt
4030 )
4031 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004032 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 +01004033 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4034 if (_token == NULL) {
4035 D(p->level--);
4036 return NULL;
4037 }
4038 int _end_lineno = _token->end_lineno;
4039 UNUSED(_end_lineno); // Only used by EXTRA macro
4040 int _end_col_offset = _token->end_col_offset;
4041 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004042 _res = _PyAST_If ( a , b , CHECK ( asdl_stmt_seq * , _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004043 if (_res == NULL && PyErr_Occurred()) {
4044 p->error_indicator = 1;
4045 D(p->level--);
4046 return NULL;
4047 }
4048 goto done;
4049 }
4050 p->mark = _mark;
4051 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004053 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004054 { // 'elif' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004055 if (p->error_indicator) {
4056 D(p->level--);
4057 return NULL;
4058 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004059 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 +01004060 Token * _keyword;
4061 Token * _literal;
4062 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004063 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004064 void *c;
4065 if (
4066 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
4067 &&
4068 (a = named_expression_rule(p)) // named_expression
4069 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004070 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004071 &&
4072 (b = block_rule(p)) // block
4073 &&
4074 (c = else_block_rule(p), 1) // else_block?
4075 )
4076 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004077 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 +01004078 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4079 if (_token == NULL) {
4080 D(p->level--);
4081 return NULL;
4082 }
4083 int _end_lineno = _token->end_lineno;
4084 UNUSED(_end_lineno); // Only used by EXTRA macro
4085 int _end_col_offset = _token->end_col_offset;
4086 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004087 _res = _PyAST_If ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004088 if (_res == NULL && PyErr_Occurred()) {
4089 p->error_indicator = 1;
4090 D(p->level--);
4091 return NULL;
4092 }
4093 goto done;
4094 }
4095 p->mark = _mark;
4096 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
4098 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004099 _res = NULL;
4100 done:
4101 D(p->level--);
4102 return _res;
4103}
4104
Pablo Galindo56c95df2021-04-21 15:28:21 +01004105// else_block: invalid_else_stmt | 'else' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01004106static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004107else_block_rule(Parser *p)
4108{
4109 D(p->level++);
4110 if (p->error_indicator) {
4111 D(p->level--);
4112 return NULL;
4113 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01004114 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004115 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01004116 if (p->call_invalid_rules) { // invalid_else_stmt
4117 if (p->error_indicator) {
4118 D(p->level--);
4119 return NULL;
4120 }
4121 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4122 void *invalid_else_stmt_var;
4123 if (
4124 (invalid_else_stmt_var = invalid_else_stmt_rule(p)) // invalid_else_stmt
4125 )
4126 {
4127 D(fprintf(stderr, "%*c+ else_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_else_stmt"));
4128 _res = invalid_else_stmt_var;
4129 goto done;
4130 }
4131 p->mark = _mark;
4132 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
4133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt"));
4134 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004135 { // 'else' &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004136 if (p->error_indicator) {
4137 D(p->level--);
4138 return NULL;
4139 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004140 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004141 Token * _keyword;
4142 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004143 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004144 if (
4145 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
4146 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004147 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004148 &&
4149 (b = block_rule(p)) // block
4150 )
4151 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004152 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 +01004153 _res = b;
4154 if (_res == NULL && PyErr_Occurred()) {
4155 p->error_indicator = 1;
4156 D(p->level--);
4157 return NULL;
4158 }
4159 goto done;
4160 }
4161 p->mark = _mark;
4162 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004164 }
4165 _res = NULL;
4166 done:
4167 D(p->level--);
4168 return _res;
4169}
4170
Pablo Galindo56c95df2021-04-21 15:28:21 +01004171// while_stmt: invalid_while_stmt | 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004172static stmt_ty
4173while_stmt_rule(Parser *p)
4174{
4175 D(p->level++);
4176 if (p->error_indicator) {
4177 D(p->level--);
4178 return NULL;
4179 }
4180 stmt_ty _res = NULL;
4181 int _mark = p->mark;
4182 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4183 p->error_indicator = 1;
4184 D(p->level--);
4185 return NULL;
4186 }
4187 int _start_lineno = p->tokens[_mark]->lineno;
4188 UNUSED(_start_lineno); // Only used by EXTRA macro
4189 int _start_col_offset = p->tokens[_mark]->col_offset;
4190 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004191 if (p->call_invalid_rules) { // invalid_while_stmt
4192 if (p->error_indicator) {
4193 D(p->level--);
4194 return NULL;
4195 }
4196 D(fprintf(stderr, "%*c> while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4197 void *invalid_while_stmt_var;
4198 if (
4199 (invalid_while_stmt_var = invalid_while_stmt_rule(p)) // invalid_while_stmt
4200 )
4201 {
4202 D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_while_stmt"));
4203 _res = invalid_while_stmt_var;
4204 goto done;
4205 }
4206 p->mark = _mark;
4207 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt"));
4209 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004210 { // 'while' named_expression ':' block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004211 if (p->error_indicator) {
4212 D(p->level--);
4213 return NULL;
4214 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004215 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 +01004216 Token * _keyword;
4217 Token * _literal;
4218 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004219 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004220 void *c;
4221 if (
4222 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
4223 &&
4224 (a = named_expression_rule(p)) // named_expression
4225 &&
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004226 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004227 &&
4228 (b = block_rule(p)) // block
4229 &&
4230 (c = else_block_rule(p), 1) // else_block?
4231 )
4232 {
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004233 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 +01004234 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4235 if (_token == NULL) {
4236 D(p->level--);
4237 return NULL;
4238 }
4239 int _end_lineno = _token->end_lineno;
4240 UNUSED(_end_lineno); // Only used by EXTRA macro
4241 int _end_col_offset = _token->end_col_offset;
4242 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004243 _res = _PyAST_While ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004244 if (_res == NULL && PyErr_Occurred()) {
4245 p->error_indicator = 1;
4246 D(p->level--);
4247 return NULL;
4248 }
4249 goto done;
4250 }
4251 p->mark = _mark;
4252 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +01004253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
4254 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004255 _res = NULL;
4256 done:
4257 D(p->level--);
4258 return _res;
4259}
4260
4261// for_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004262// | invalid_for_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004263// | 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
4264// | ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004265// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004266static stmt_ty
4267for_stmt_rule(Parser *p)
4268{
4269 D(p->level++);
4270 if (p->error_indicator) {
4271 D(p->level--);
4272 return NULL;
4273 }
4274 stmt_ty _res = NULL;
4275 int _mark = p->mark;
4276 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4277 p->error_indicator = 1;
4278 D(p->level--);
4279 return NULL;
4280 }
4281 int _start_lineno = p->tokens[_mark]->lineno;
4282 UNUSED(_start_lineno); // Only used by EXTRA macro
4283 int _start_col_offset = p->tokens[_mark]->col_offset;
4284 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004285 if (p->call_invalid_rules) { // invalid_for_stmt
4286 if (p->error_indicator) {
4287 D(p->level--);
4288 return NULL;
4289 }
4290 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4291 void *invalid_for_stmt_var;
4292 if (
4293 (invalid_for_stmt_var = invalid_for_stmt_rule(p)) // invalid_for_stmt
4294 )
4295 {
4296 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_stmt"));
4297 _res = invalid_for_stmt_var;
4298 goto done;
4299 }
4300 p->mark = _mark;
4301 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4302 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt"));
4303 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004304 { // 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004305 if (p->error_indicator) {
4306 D(p->level--);
4307 return NULL;
4308 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004309 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 +03004310 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004311 Token * _keyword;
4312 Token * _keyword_1;
4313 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004314 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004315 void *el;
4316 expr_ty ex;
4317 expr_ty t;
4318 void *tc;
4319 if (
4320 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4321 &&
4322 (t = star_targets_rule(p)) // star_targets
4323 &&
4324 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4325 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004326 (_cut_var = 1)
4327 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004328 (ex = star_expressions_rule(p)) // star_expressions
4329 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004330 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004331 &&
4332 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4333 &&
4334 (b = block_rule(p)) // block
4335 &&
4336 (el = else_block_rule(p), 1) // else_block?
4337 )
4338 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004339 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 +01004340 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4341 if (_token == NULL) {
4342 D(p->level--);
4343 return NULL;
4344 }
4345 int _end_lineno = _token->end_lineno;
4346 UNUSED(_end_lineno); // Only used by EXTRA macro
4347 int _end_col_offset = _token->end_col_offset;
4348 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004349 _res = _PyAST_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004350 if (_res == NULL && PyErr_Occurred()) {
4351 p->error_indicator = 1;
4352 D(p->level--);
4353 return NULL;
4354 }
4355 goto done;
4356 }
4357 p->mark = _mark;
4358 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004359 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 +03004360 if (_cut_var) {
4361 D(p->level--);
4362 return NULL;
4363 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004364 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004365 { // ASYNC 'for' star_targets 'in' ~ star_expressions &&':' TYPE_COMMENT? block else_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004366 if (p->error_indicator) {
4367 D(p->level--);
4368 return NULL;
4369 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004370 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 +03004371 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004372 Token * _keyword;
4373 Token * _keyword_1;
4374 Token * _literal;
4375 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004376 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004377 void *el;
4378 expr_ty ex;
4379 expr_ty t;
4380 void *tc;
4381 if (
4382 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4383 &&
4384 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
4385 &&
4386 (t = star_targets_rule(p)) // star_targets
4387 &&
4388 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
4389 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004390 (_cut_var = 1)
4391 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004392 (ex = star_expressions_rule(p)) // star_expressions
4393 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004394 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004395 &&
4396 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4397 &&
4398 (b = block_rule(p)) // block
4399 &&
4400 (el = else_block_rule(p), 1) // else_block?
4401 )
4402 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004403 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 +01004404 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4405 if (_token == NULL) {
4406 D(p->level--);
4407 return NULL;
4408 }
4409 int _end_lineno = _token->end_lineno;
4410 UNUSED(_end_lineno); // Only used by EXTRA macro
4411 int _end_col_offset = _token->end_col_offset;
4412 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004413 _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 +01004414 if (_res == NULL && PyErr_Occurred()) {
4415 p->error_indicator = 1;
4416 D(p->level--);
4417 return NULL;
4418 }
4419 goto done;
4420 }
4421 p->mark = _mark;
4422 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004423 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 +03004424 if (_cut_var) {
4425 D(p->level--);
4426 return NULL;
4427 }
4428 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004429 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004430 if (p->error_indicator) {
4431 D(p->level--);
4432 return NULL;
4433 }
4434 D(fprintf(stderr, "%*c> for_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4435 void *invalid_for_target_var;
4436 if (
4437 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
4438 )
4439 {
4440 D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
4441 _res = invalid_for_target_var;
4442 goto done;
4443 }
4444 p->mark = _mark;
4445 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004447 }
4448 _res = NULL;
4449 done:
4450 D(p->level--);
4451 return _res;
4452}
4453
4454// with_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004455// | invalid_with_stmt_indent
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004456// | 'with' '(' ','.with_item+ ','? ')' ':' block
4457// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
4458// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4459// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo58fb1562021-02-02 19:54:22 +00004460// | invalid_with_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004461static stmt_ty
4462with_stmt_rule(Parser *p)
4463{
4464 D(p->level++);
4465 if (p->error_indicator) {
4466 D(p->level--);
4467 return NULL;
4468 }
4469 stmt_ty _res = NULL;
4470 int _mark = p->mark;
4471 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4472 p->error_indicator = 1;
4473 D(p->level--);
4474 return NULL;
4475 }
4476 int _start_lineno = p->tokens[_mark]->lineno;
4477 UNUSED(_start_lineno); // Only used by EXTRA macro
4478 int _start_col_offset = p->tokens[_mark]->col_offset;
4479 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004480 if (p->call_invalid_rules) { // invalid_with_stmt_indent
4481 if (p->error_indicator) {
4482 D(p->level--);
4483 return NULL;
4484 }
4485 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4486 void *invalid_with_stmt_indent_var;
4487 if (
4488 (invalid_with_stmt_indent_var = invalid_with_stmt_indent_rule(p)) // invalid_with_stmt_indent
4489 )
4490 {
4491 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt_indent"));
4492 _res = invalid_with_stmt_indent_var;
4493 goto done;
4494 }
4495 p->mark = _mark;
4496 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent"));
4498 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004499 { // 'with' '(' ','.with_item+ ','? ')' ':' block
4500 if (p->error_indicator) {
4501 D(p->level--);
4502 return NULL;
4503 }
4504 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4505 Token * _keyword;
4506 Token * _literal;
4507 Token * _literal_1;
4508 Token * _literal_2;
4509 void *_opt_var;
4510 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004511 asdl_withitem_seq* a;
4512 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004513 if (
4514 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4515 &&
4516 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4517 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004518 (a = (asdl_withitem_seq*)_gather_39_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004519 &&
4520 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4521 &&
4522 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4523 &&
4524 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4525 &&
4526 (b = block_rule(p)) // block
4527 )
4528 {
4529 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4530 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4531 if (_token == NULL) {
4532 D(p->level--);
4533 return NULL;
4534 }
4535 int _end_lineno = _token->end_lineno;
4536 UNUSED(_end_lineno); // Only used by EXTRA macro
4537 int _end_col_offset = _token->end_col_offset;
4538 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004539 _res = _PyAST_With ( a , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004540 if (_res == NULL && PyErr_Occurred()) {
4541 p->error_indicator = 1;
4542 D(p->level--);
4543 return NULL;
4544 }
4545 goto done;
4546 }
4547 p->mark = _mark;
4548 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4549 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
4550 }
4551 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
4552 if (p->error_indicator) {
4553 D(p->level--);
4554 return NULL;
4555 }
4556 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4557 Token * _keyword;
4558 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004559 asdl_withitem_seq* a;
4560 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004561 void *tc;
4562 if (
4563 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4564 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004565 (a = (asdl_withitem_seq*)_gather_41_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004566 &&
4567 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4568 &&
4569 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4570 &&
4571 (b = block_rule(p)) // block
4572 )
4573 {
4574 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4575 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4576 if (_token == NULL) {
4577 D(p->level--);
4578 return NULL;
4579 }
4580 int _end_lineno = _token->end_lineno;
4581 UNUSED(_end_lineno); // Only used by EXTRA macro
4582 int _end_col_offset = _token->end_col_offset;
4583 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004584 _res = _PyAST_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004585 if (_res == NULL && PyErr_Occurred()) {
4586 p->error_indicator = 1;
4587 D(p->level--);
4588 return NULL;
4589 }
4590 goto done;
4591 }
4592 p->mark = _mark;
4593 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4595 }
4596 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
4597 if (p->error_indicator) {
4598 D(p->level--);
4599 return NULL;
4600 }
4601 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4602 Token * _keyword;
4603 Token * _literal;
4604 Token * _literal_1;
4605 Token * _literal_2;
4606 void *_opt_var;
4607 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +01004608 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004609 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004610 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004611 if (
4612 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4613 &&
4614 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4615 &&
4616 (_literal = _PyPegen_expect_token(p, 7)) // token='('
4617 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004618 (a = (asdl_withitem_seq*)_gather_43_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004619 &&
4620 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
4621 &&
4622 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
4623 &&
4624 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
4625 &&
4626 (b = block_rule(p)) // block
4627 )
4628 {
4629 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4630 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4631 if (_token == NULL) {
4632 D(p->level--);
4633 return NULL;
4634 }
4635 int _end_lineno = _token->end_lineno;
4636 UNUSED(_end_lineno); // Only used by EXTRA macro
4637 int _end_col_offset = _token->end_col_offset;
4638 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004639 _res = CHECK_VERSION ( stmt_ty , 5 , "Async with statements are" , _PyAST_AsyncWith ( a , b , NULL , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004640 if (_res == NULL && PyErr_Occurred()) {
4641 p->error_indicator = 1;
4642 D(p->level--);
4643 return NULL;
4644 }
4645 goto done;
4646 }
4647 p->mark = _mark;
4648 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
4650 }
4651 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
4652 if (p->error_indicator) {
4653 D(p->level--);
4654 return NULL;
4655 }
4656 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4657 Token * _keyword;
4658 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004659 asdl_withitem_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004660 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004661 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004662 void *tc;
4663 if (
4664 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
4665 &&
4666 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
4667 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004668 (a = (asdl_withitem_seq*)_gather_45_rule(p)) // ','.with_item+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004669 &&
4670 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
4671 &&
4672 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
4673 &&
4674 (b = block_rule(p)) // block
4675 )
4676 {
4677 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4678 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4679 if (_token == NULL) {
4680 D(p->level--);
4681 return NULL;
4682 }
4683 int _end_lineno = _token->end_lineno;
4684 UNUSED(_end_lineno); // Only used by EXTRA macro
4685 int _end_col_offset = _token->end_col_offset;
4686 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004687 _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 +01004688 if (_res == NULL && PyErr_Occurred()) {
4689 p->error_indicator = 1;
4690 D(p->level--);
4691 return NULL;
4692 }
4693 goto done;
4694 }
4695 p->mark = _mark;
4696 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
4698 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004699 if (p->call_invalid_rules) { // invalid_with_stmt
4700 if (p->error_indicator) {
4701 D(p->level--);
4702 return NULL;
4703 }
4704 D(fprintf(stderr, "%*c> with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4705 void *invalid_with_stmt_var;
4706 if (
4707 (invalid_with_stmt_var = invalid_with_stmt_rule(p)) // invalid_with_stmt
4708 )
4709 {
4710 D(fprintf(stderr, "%*c+ with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_stmt"));
4711 _res = invalid_with_stmt_var;
4712 goto done;
4713 }
4714 p->mark = _mark;
4715 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt"));
4717 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004718 _res = NULL;
4719 done:
4720 D(p->level--);
4721 return _res;
4722}
4723
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004724// with_item:
4725// | expression 'as' star_target &(',' | ')' | ':')
4726// | invalid_with_item
4727// | expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004728static withitem_ty
4729with_item_rule(Parser *p)
4730{
4731 D(p->level++);
4732 if (p->error_indicator) {
4733 D(p->level--);
4734 return NULL;
4735 }
4736 withitem_ty _res = NULL;
4737 int _mark = p->mark;
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004738 { // expression 'as' star_target &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004739 if (p->error_indicator) {
4740 D(p->level--);
4741 return NULL;
4742 }
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004743 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 +03004744 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004745 expr_ty e;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004746 expr_ty t;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004747 if (
4748 (e = expression_rule(p)) // expression
4749 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004750 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
4751 &&
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004752 (t = star_target_rule(p)) // star_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004753 &&
4754 _PyPegen_lookahead(1, _tmp_47_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004755 )
4756 {
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004757 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 +02004758 _res = _PyAST_withitem ( e , t , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004759 if (_res == NULL && PyErr_Occurred()) {
4760 p->error_indicator = 1;
4761 D(p->level--);
4762 return NULL;
4763 }
4764 goto done;
4765 }
4766 p->mark = _mark;
4767 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskaya48f305f2020-10-09 12:56:48 +03004768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004769 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02004770 if (p->call_invalid_rules) { // invalid_with_item
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004771 if (p->error_indicator) {
4772 D(p->level--);
4773 return NULL;
4774 }
4775 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4776 void *invalid_with_item_var;
4777 if (
4778 (invalid_with_item_var = invalid_with_item_rule(p)) // invalid_with_item
4779 )
4780 {
4781 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_with_item"));
4782 _res = invalid_with_item_var;
4783 goto done;
4784 }
4785 p->mark = _mark;
4786 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4787 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item"));
4788 }
4789 { // expression
4790 if (p->error_indicator) {
4791 D(p->level--);
4792 return NULL;
4793 }
4794 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
4795 expr_ty e;
4796 if (
4797 (e = expression_rule(p)) // expression
4798 )
4799 {
4800 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004801 _res = _PyAST_withitem ( e , NULL , p -> arena );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03004802 if (_res == NULL && PyErr_Occurred()) {
4803 p->error_indicator = 1;
4804 D(p->level--);
4805 return NULL;
4806 }
4807 goto done;
4808 }
4809 p->mark = _mark;
4810 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004812 }
4813 _res = NULL;
4814 done:
4815 D(p->level--);
4816 return _res;
4817}
4818
4819// try_stmt:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004820// | invalid_try_stmt
Pablo Galindo58fb1562021-02-02 19:54:22 +00004821// | 'try' &&':' block finally_block
4822// | 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004823static stmt_ty
4824try_stmt_rule(Parser *p)
4825{
4826 D(p->level++);
4827 if (p->error_indicator) {
4828 D(p->level--);
4829 return NULL;
4830 }
4831 stmt_ty _res = NULL;
4832 int _mark = p->mark;
4833 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4834 p->error_indicator = 1;
4835 D(p->level--);
4836 return NULL;
4837 }
4838 int _start_lineno = p->tokens[_mark]->lineno;
4839 UNUSED(_start_lineno); // Only used by EXTRA macro
4840 int _start_col_offset = p->tokens[_mark]->col_offset;
4841 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004842 if (p->call_invalid_rules) { // invalid_try_stmt
4843 if (p->error_indicator) {
4844 D(p->level--);
4845 return NULL;
4846 }
4847 D(fprintf(stderr, "%*c> try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4848 void *invalid_try_stmt_var;
4849 if (
4850 (invalid_try_stmt_var = invalid_try_stmt_rule(p)) // invalid_try_stmt
4851 )
4852 {
4853 D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_try_stmt"));
4854 _res = invalid_try_stmt_var;
4855 goto done;
4856 }
4857 p->mark = _mark;
4858 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt"));
4860 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004861 { // 'try' &&':' block finally_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004862 if (p->error_indicator) {
4863 D(p->level--);
4864 return NULL;
4865 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004866 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 +01004867 Token * _keyword;
4868 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004869 asdl_stmt_seq* b;
4870 asdl_stmt_seq* f;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004871 if (
4872 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4873 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004874 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004875 &&
4876 (b = block_rule(p)) // block
4877 &&
4878 (f = finally_block_rule(p)) // finally_block
4879 )
4880 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004881 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 +01004882 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4883 if (_token == NULL) {
4884 D(p->level--);
4885 return NULL;
4886 }
4887 int _end_lineno = _token->end_lineno;
4888 UNUSED(_end_lineno); // Only used by EXTRA macro
4889 int _end_col_offset = _token->end_col_offset;
4890 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004891 _res = _PyAST_Try ( b , NULL , NULL , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004892 if (_res == NULL && PyErr_Occurred()) {
4893 p->error_indicator = 1;
4894 D(p->level--);
4895 return NULL;
4896 }
4897 goto done;
4898 }
4899 p->mark = _mark;
4900 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004902 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004903 { // 'try' &&':' block except_block+ else_block? finally_block?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004904 if (p->error_indicator) {
4905 D(p->level--);
4906 return NULL;
4907 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00004908 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 +01004909 Token * _keyword;
4910 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004911 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004912 void *el;
Pablo Galindoa5634c42020-09-16 19:42:00 +01004913 asdl_excepthandler_seq* ex;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004914 void *f;
4915 if (
4916 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
4917 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00004918 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004919 &&
4920 (b = block_rule(p)) // block
4921 &&
Pablo Galindoa5634c42020-09-16 19:42:00 +01004922 (ex = (asdl_excepthandler_seq*)_loop1_48_rule(p)) // except_block+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004923 &&
4924 (el = else_block_rule(p), 1) // else_block?
4925 &&
4926 (f = finally_block_rule(p), 1) // finally_block?
4927 )
4928 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00004929 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 +01004930 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4931 if (_token == NULL) {
4932 D(p->level--);
4933 return NULL;
4934 }
4935 int _end_lineno = _token->end_lineno;
4936 UNUSED(_end_lineno); // Only used by EXTRA macro
4937 int _end_col_offset = _token->end_col_offset;
4938 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02004939 _res = _PyAST_Try ( b , ex , el , f , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004940 if (_res == NULL && PyErr_Occurred()) {
4941 p->error_indicator = 1;
4942 D(p->level--);
4943 return NULL;
4944 }
4945 goto done;
4946 }
4947 p->mark = _mark;
4948 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00004949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004950 }
4951 _res = NULL;
4952 done:
4953 D(p->level--);
4954 return _res;
4955}
4956
Pablo Galindo206cbda2021-02-07 18:42:21 +00004957// except_block:
Pablo Galindo56c95df2021-04-21 15:28:21 +01004958// | invalid_except_stmt_indent
Pablo Galindo206cbda2021-02-07 18:42:21 +00004959// | 'except' expression ['as' NAME] ':' block
4960// | 'except' ':' block
Pablo Galindo56c95df2021-04-21 15:28:21 +01004961// | invalid_except_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01004962static excepthandler_ty
4963except_block_rule(Parser *p)
4964{
4965 D(p->level++);
4966 if (p->error_indicator) {
4967 D(p->level--);
4968 return NULL;
4969 }
4970 excepthandler_ty _res = NULL;
4971 int _mark = p->mark;
4972 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4973 p->error_indicator = 1;
4974 D(p->level--);
4975 return NULL;
4976 }
4977 int _start_lineno = p->tokens[_mark]->lineno;
4978 UNUSED(_start_lineno); // Only used by EXTRA macro
4979 int _start_col_offset = p->tokens[_mark]->col_offset;
4980 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01004981 if (p->call_invalid_rules) { // invalid_except_stmt_indent
4982 if (p->error_indicator) {
4983 D(p->level--);
4984 return NULL;
4985 }
4986 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4987 void *invalid_except_stmt_indent_var;
4988 if (
4989 (invalid_except_stmt_indent_var = invalid_except_stmt_indent_rule(p)) // invalid_except_stmt_indent
4990 )
4991 {
4992 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt_indent"));
4993 _res = invalid_except_stmt_indent_var;
4994 goto done;
4995 }
4996 p->mark = _mark;
4997 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent"));
4999 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005000 { // 'except' expression ['as' NAME] ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005001 if (p->error_indicator) {
5002 D(p->level--);
5003 return NULL;
5004 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005005 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 +01005006 Token * _keyword;
5007 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005008 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005009 expr_ty e;
5010 void *t;
5011 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005012 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005013 &&
5014 (e = expression_rule(p)) // expression
5015 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005016 (t = _tmp_49_rule(p), 1) // ['as' NAME]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005017 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005018 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005019 &&
5020 (b = block_rule(p)) // block
5021 )
5022 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005023 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 +01005024 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5025 if (_token == NULL) {
5026 D(p->level--);
5027 return NULL;
5028 }
5029 int _end_lineno = _token->end_lineno;
5030 UNUSED(_end_lineno); // Only used by EXTRA macro
5031 int _end_col_offset = _token->end_col_offset;
5032 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005033 _res = _PyAST_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005034 if (_res == NULL && PyErr_Occurred()) {
5035 p->error_indicator = 1;
5036 D(p->level--);
5037 return NULL;
5038 }
5039 goto done;
5040 }
5041 p->mark = _mark;
5042 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005043 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005044 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005045 { // 'except' ':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005046 if (p->error_indicator) {
5047 D(p->level--);
5048 return NULL;
5049 }
Pablo Galindo206cbda2021-02-07 18:42:21 +00005050 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005051 Token * _keyword;
5052 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005053 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005054 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005055 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005056 &&
Pablo Galindo206cbda2021-02-07 18:42:21 +00005057 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005058 &&
5059 (b = block_rule(p)) // block
5060 )
5061 {
Pablo Galindo206cbda2021-02-07 18:42:21 +00005062 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 +01005063 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5064 if (_token == NULL) {
5065 D(p->level--);
5066 return NULL;
5067 }
5068 int _end_lineno = _token->end_lineno;
5069 UNUSED(_end_lineno); // Only used by EXTRA macro
5070 int _end_col_offset = _token->end_col_offset;
5071 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005072 _res = _PyAST_ExceptHandler ( NULL , NULL , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005073 if (_res == NULL && PyErr_Occurred()) {
5074 p->error_indicator = 1;
5075 D(p->level--);
5076 return NULL;
5077 }
5078 goto done;
5079 }
5080 p->mark = _mark;
5081 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +00005082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
5083 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005084 if (p->call_invalid_rules) { // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005085 if (p->error_indicator) {
5086 D(p->level--);
5087 return NULL;
5088 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005089 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5090 void *invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005091 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +01005092 (invalid_except_stmt_var = invalid_except_stmt_rule(p)) // invalid_except_stmt
Pablo Galindo206cbda2021-02-07 18:42:21 +00005093 )
5094 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005095 D(fprintf(stderr, "%*c+ except_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_except_stmt"));
5096 _res = invalid_except_stmt_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +00005097 goto done;
5098 }
5099 p->mark = _mark;
5100 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005101 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005102 }
5103 _res = NULL;
5104 done:
5105 D(p->level--);
5106 return _res;
5107}
5108
Pablo Galindo56c95df2021-04-21 15:28:21 +01005109// finally_block: invalid_finally_stmt | 'finally' &&':' block
Pablo Galindoa5634c42020-09-16 19:42:00 +01005110static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005111finally_block_rule(Parser *p)
5112{
5113 D(p->level++);
5114 if (p->error_indicator) {
5115 D(p->level--);
5116 return NULL;
5117 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01005118 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005119 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005120 if (p->call_invalid_rules) { // invalid_finally_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005121 if (p->error_indicator) {
5122 D(p->level--);
5123 return NULL;
5124 }
Pablo Galindo56c95df2021-04-21 15:28:21 +01005125 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5126 void *invalid_finally_stmt_var;
5127 if (
5128 (invalid_finally_stmt_var = invalid_finally_stmt_rule(p)) // invalid_finally_stmt
5129 )
5130 {
5131 D(fprintf(stderr, "%*c+ finally_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_finally_stmt"));
5132 _res = invalid_finally_stmt_var;
5133 goto done;
5134 }
5135 p->mark = _mark;
5136 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
5137 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt"));
5138 }
5139 { // 'finally' &&':' block
5140 if (p->error_indicator) {
5141 D(p->level--);
5142 return NULL;
5143 }
5144 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005145 Token * _keyword;
5146 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01005147 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005148 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +03005149 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005150 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +01005151 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005152 &&
5153 (a = block_rule(p)) // block
5154 )
5155 {
Pablo Galindo56c95df2021-04-21 15:28:21 +01005156 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 +01005157 _res = a;
5158 if (_res == NULL && PyErr_Occurred()) {
5159 p->error_indicator = 1;
5160 D(p->level--);
5161 return NULL;
5162 }
5163 goto done;
5164 }
5165 p->mark = _mark;
5166 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +01005167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01005168 }
5169 _res = NULL;
5170 done:
5171 D(p->level--);
5172 return _res;
5173}
5174
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005175// match_stmt:
5176// | "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5177// | invalid_match_stmt
Brandt Bucher145bf262021-02-26 14:51:55 -08005178static stmt_ty
5179match_stmt_rule(Parser *p)
5180{
5181 D(p->level++);
5182 if (p->error_indicator) {
5183 D(p->level--);
5184 return NULL;
5185 }
5186 stmt_ty _res = NULL;
5187 int _mark = p->mark;
5188 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5189 p->error_indicator = 1;
5190 D(p->level--);
5191 return NULL;
5192 }
5193 int _start_lineno = p->tokens[_mark]->lineno;
5194 UNUSED(_start_lineno); // Only used by EXTRA macro
5195 int _start_col_offset = p->tokens[_mark]->col_offset;
5196 UNUSED(_start_col_offset); // Only used by EXTRA macro
5197 { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT
5198 if (p->error_indicator) {
5199 D(p->level--);
5200 return NULL;
5201 }
5202 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5203 expr_ty _keyword;
5204 Token * _literal;
5205 asdl_match_case_seq* cases;
5206 Token * dedent_var;
5207 Token * indent_var;
5208 Token * newline_var;
5209 expr_ty subject;
5210 if (
5211 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
5212 &&
5213 (subject = subject_expr_rule(p)) // subject_expr
5214 &&
5215 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5216 &&
5217 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
5218 &&
5219 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
5220 &&
5221 (cases = (asdl_match_case_seq*)_loop1_50_rule(p)) // case_block+
5222 &&
5223 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
5224 )
5225 {
5226 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5227 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5228 if (_token == NULL) {
5229 D(p->level--);
5230 return NULL;
5231 }
5232 int _end_lineno = _token->end_lineno;
5233 UNUSED(_end_lineno); // Only used by EXTRA macro
5234 int _end_col_offset = _token->end_col_offset;
5235 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005236 _res = CHECK_VERSION ( stmt_ty , 10 , "Pattern matching is" , _PyAST_Match ( subject , cases , EXTRA ) );
Brandt Bucher145bf262021-02-26 14:51:55 -08005237 if (_res == NULL && PyErr_Occurred()) {
5238 p->error_indicator = 1;
5239 D(p->level--);
5240 return NULL;
5241 }
5242 goto done;
5243 }
5244 p->mark = _mark;
5245 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT"));
5247 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +00005248 if (p->call_invalid_rules) { // invalid_match_stmt
5249 if (p->error_indicator) {
5250 D(p->level--);
5251 return NULL;
5252 }
5253 D(fprintf(stderr, "%*c> match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5254 void *invalid_match_stmt_var;
5255 if (
5256 (invalid_match_stmt_var = invalid_match_stmt_rule(p)) // invalid_match_stmt
5257 )
5258 {
5259 D(fprintf(stderr, "%*c+ match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_match_stmt"));
5260 _res = invalid_match_stmt_var;
5261 goto done;
5262 }
5263 p->mark = _mark;
5264 D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
5265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_match_stmt"));
5266 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005267 _res = NULL;
5268 done:
5269 D(p->level--);
5270 return _res;
5271}
5272
5273// subject_expr: star_named_expression ',' star_named_expressions? | named_expression
5274static expr_ty
5275subject_expr_rule(Parser *p)
5276{
5277 D(p->level++);
5278 if (p->error_indicator) {
5279 D(p->level--);
5280 return NULL;
5281 }
5282 expr_ty _res = NULL;
5283 int _mark = p->mark;
5284 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5285 p->error_indicator = 1;
5286 D(p->level--);
5287 return NULL;
5288 }
5289 int _start_lineno = p->tokens[_mark]->lineno;
5290 UNUSED(_start_lineno); // Only used by EXTRA macro
5291 int _start_col_offset = p->tokens[_mark]->col_offset;
5292 UNUSED(_start_col_offset); // Only used by EXTRA macro
5293 { // star_named_expression ',' star_named_expressions?
5294 if (p->error_indicator) {
5295 D(p->level--);
5296 return NULL;
5297 }
5298 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5299 Token * _literal;
5300 expr_ty value;
5301 void *values;
5302 if (
5303 (value = star_named_expression_rule(p)) // star_named_expression
5304 &&
5305 (_literal = _PyPegen_expect_token(p, 12)) // token=','
5306 &&
5307 (values = star_named_expressions_rule(p), 1) // star_named_expressions?
5308 )
5309 {
5310 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5311 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5312 if (_token == NULL) {
5313 D(p->level--);
5314 return NULL;
5315 }
5316 int _end_lineno = _token->end_lineno;
5317 UNUSED(_end_lineno); // Only used by EXTRA macro
5318 int _end_col_offset = _token->end_col_offset;
5319 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005320 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , value , values ) ) , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005321 if (_res == NULL && PyErr_Occurred()) {
5322 p->error_indicator = 1;
5323 D(p->level--);
5324 return NULL;
5325 }
5326 goto done;
5327 }
5328 p->mark = _mark;
5329 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
5331 }
5332 { // named_expression
5333 if (p->error_indicator) {
5334 D(p->level--);
5335 return NULL;
5336 }
5337 D(fprintf(stderr, "%*c> subject_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
5338 expr_ty named_expression_var;
5339 if (
5340 (named_expression_var = named_expression_rule(p)) // named_expression
5341 )
5342 {
5343 D(fprintf(stderr, "%*c+ subject_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
5344 _res = named_expression_var;
5345 goto done;
5346 }
5347 p->mark = _mark;
5348 D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ',
5349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
5350 }
5351 _res = NULL;
5352 done:
5353 D(p->level--);
5354 return _res;
5355}
5356
Pablo Galindo56c95df2021-04-21 15:28:21 +01005357// case_block: invalid_case_block | "case" patterns guard? ':' block
Brandt Bucher145bf262021-02-26 14:51:55 -08005358static match_case_ty
5359case_block_rule(Parser *p)
5360{
5361 D(p->level++);
5362 if (p->error_indicator) {
5363 D(p->level--);
5364 return NULL;
5365 }
5366 match_case_ty _res = NULL;
5367 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +01005368 if (p->call_invalid_rules) { // invalid_case_block
5369 if (p->error_indicator) {
5370 D(p->level--);
5371 return NULL;
5372 }
5373 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5374 void *invalid_case_block_var;
5375 if (
5376 (invalid_case_block_var = invalid_case_block_rule(p)) // invalid_case_block
5377 )
5378 {
5379 D(fprintf(stderr, "%*c+ case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_case_block"));
5380 _res = invalid_case_block_var;
5381 goto done;
5382 }
5383 p->mark = _mark;
5384 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block"));
5386 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005387 { // "case" patterns guard? ':' block
5388 if (p->error_indicator) {
5389 D(p->level--);
5390 return NULL;
5391 }
5392 D(fprintf(stderr, "%*c> case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' block"));
5393 expr_ty _keyword;
5394 Token * _literal;
5395 asdl_stmt_seq* body;
5396 void *guard;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005397 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005398 if (
5399 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
5400 &&
5401 (pattern = patterns_rule(p)) // patterns
5402 &&
5403 (guard = guard_rule(p), 1) // guard?
5404 &&
5405 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
5406 &&
5407 (body = block_rule(p)) // block
5408 )
5409 {
5410 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 +02005411 _res = _PyAST_match_case ( pattern , guard , body , p -> arena );
Brandt Bucher145bf262021-02-26 14:51:55 -08005412 if (_res == NULL && PyErr_Occurred()) {
5413 p->error_indicator = 1;
5414 D(p->level--);
5415 return NULL;
5416 }
5417 goto done;
5418 }
5419 p->mark = _mark;
5420 D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ',
5421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' block"));
5422 }
5423 _res = NULL;
5424 done:
5425 D(p->level--);
5426 return _res;
5427}
5428
5429// guard: 'if' named_expression
5430static expr_ty
5431guard_rule(Parser *p)
5432{
5433 D(p->level++);
5434 if (p->error_indicator) {
5435 D(p->level--);
5436 return NULL;
5437 }
5438 expr_ty _res = NULL;
5439 int _mark = p->mark;
5440 { // 'if' named_expression
5441 if (p->error_indicator) {
5442 D(p->level--);
5443 return NULL;
5444 }
5445 D(fprintf(stderr, "%*c> guard[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5446 Token * _keyword;
5447 expr_ty guard;
5448 if (
5449 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
5450 &&
5451 (guard = named_expression_rule(p)) // named_expression
5452 )
5453 {
5454 D(fprintf(stderr, "%*c+ guard[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression"));
5455 _res = guard;
5456 if (_res == NULL && PyErr_Occurred()) {
5457 p->error_indicator = 1;
5458 D(p->level--);
5459 return NULL;
5460 }
5461 goto done;
5462 }
5463 p->mark = _mark;
5464 D(fprintf(stderr, "%*c%s guard[%d-%d]: %s failed!\n", p->level, ' ',
5465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression"));
5466 }
5467 _res = NULL;
5468 done:
5469 D(p->level--);
5470 return _res;
5471}
5472
5473// patterns: open_sequence_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005474static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005475patterns_rule(Parser *p)
5476{
5477 D(p->level++);
5478 if (p->error_indicator) {
5479 D(p->level--);
5480 return NULL;
5481 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005482 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005483 int _mark = p->mark;
5484 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5485 p->error_indicator = 1;
5486 D(p->level--);
5487 return NULL;
5488 }
5489 int _start_lineno = p->tokens[_mark]->lineno;
5490 UNUSED(_start_lineno); // Only used by EXTRA macro
5491 int _start_col_offset = p->tokens[_mark]->col_offset;
5492 UNUSED(_start_col_offset); // Only used by EXTRA macro
5493 { // open_sequence_pattern
5494 if (p->error_indicator) {
5495 D(p->level--);
5496 return NULL;
5497 }
5498 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005499 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005500 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005501 (patterns = (asdl_pattern_seq*)open_sequence_pattern_rule(p)) // open_sequence_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08005502 )
5503 {
5504 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "open_sequence_pattern"));
5505 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5506 if (_token == NULL) {
5507 D(p->level--);
5508 return NULL;
5509 }
5510 int _end_lineno = _token->end_lineno;
5511 UNUSED(_end_lineno); // Only used by EXTRA macro
5512 int _end_col_offset = _token->end_col_offset;
5513 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005514 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005515 if (_res == NULL && PyErr_Occurred()) {
5516 p->error_indicator = 1;
5517 D(p->level--);
5518 return NULL;
5519 }
5520 goto done;
5521 }
5522 p->mark = _mark;
5523 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern"));
5525 }
5526 { // pattern
5527 if (p->error_indicator) {
5528 D(p->level--);
5529 return NULL;
5530 }
5531 D(fprintf(stderr, "%*c> patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005532 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005533 if (
5534 (pattern_var = pattern_rule(p)) // pattern
5535 )
5536 {
5537 D(fprintf(stderr, "%*c+ patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
5538 _res = pattern_var;
5539 goto done;
5540 }
5541 p->mark = _mark;
5542 D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ',
5543 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
5544 }
5545 _res = NULL;
5546 done:
5547 D(p->level--);
5548 return _res;
5549}
5550
5551// pattern: as_pattern | or_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005552static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005553pattern_rule(Parser *p)
5554{
5555 D(p->level++);
5556 if (p->error_indicator) {
5557 D(p->level--);
5558 return NULL;
5559 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005560 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005561 int _mark = p->mark;
5562 { // as_pattern
5563 if (p->error_indicator) {
5564 D(p->level--);
5565 return NULL;
5566 }
5567 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "as_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005568 pattern_ty as_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005569 if (
5570 (as_pattern_var = as_pattern_rule(p)) // as_pattern
5571 )
5572 {
5573 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "as_pattern"));
5574 _res = as_pattern_var;
5575 goto done;
5576 }
5577 p->mark = _mark;
5578 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern"));
5580 }
5581 { // or_pattern
5582 if (p->error_indicator) {
5583 D(p->level--);
5584 return NULL;
5585 }
5586 D(fprintf(stderr, "%*c> pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005587 pattern_ty or_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005588 if (
5589 (or_pattern_var = or_pattern_rule(p)) // or_pattern
5590 )
5591 {
5592 D(fprintf(stderr, "%*c+ pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern"));
5593 _res = or_pattern_var;
5594 goto done;
5595 }
5596 p->mark = _mark;
5597 D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ',
5598 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern"));
5599 }
5600 _res = NULL;
5601 done:
5602 D(p->level--);
5603 return _res;
5604}
5605
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005606// as_pattern: or_pattern 'as' pattern_capture_target | invalid_as_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005607static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005608as_pattern_rule(Parser *p)
5609{
5610 D(p->level++);
5611 if (p->error_indicator) {
5612 D(p->level--);
5613 return NULL;
5614 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005615 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005616 int _mark = p->mark;
5617 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5618 p->error_indicator = 1;
5619 D(p->level--);
5620 return NULL;
5621 }
5622 int _start_lineno = p->tokens[_mark]->lineno;
5623 UNUSED(_start_lineno); // Only used by EXTRA macro
5624 int _start_col_offset = p->tokens[_mark]->col_offset;
5625 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005626 { // or_pattern 'as' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005627 if (p->error_indicator) {
5628 D(p->level--);
5629 return NULL;
5630 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005631 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 -08005632 Token * _keyword;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005633 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08005634 expr_ty target;
5635 if (
5636 (pattern = or_pattern_rule(p)) // or_pattern
5637 &&
5638 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
5639 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005640 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08005641 )
5642 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005643 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 -08005644 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5645 if (_token == NULL) {
5646 D(p->level--);
5647 return NULL;
5648 }
5649 int _end_lineno = _token->end_lineno;
5650 UNUSED(_end_lineno); // Only used by EXTRA macro
5651 int _end_col_offset = _token->end_col_offset;
5652 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005653 _res = _PyAST_MatchAs ( pattern , target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005654 if (_res == NULL && PyErr_Occurred()) {
5655 p->error_indicator = 1;
5656 D(p->level--);
5657 return NULL;
5658 }
5659 goto done;
5660 }
5661 p->mark = _mark;
5662 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08005664 }
Pablo Galindoa8c418d2021-06-18 22:15:57 +01005665 if (p->call_invalid_rules) { // invalid_as_pattern
5666 if (p->error_indicator) {
5667 D(p->level--);
5668 return NULL;
5669 }
5670 D(fprintf(stderr, "%*c> as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5671 void *invalid_as_pattern_var;
5672 if (
5673 (invalid_as_pattern_var = invalid_as_pattern_rule(p)) // invalid_as_pattern
5674 )
5675 {
5676 D(fprintf(stderr, "%*c+ as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_as_pattern"));
5677 _res = invalid_as_pattern_var;
5678 goto done;
5679 }
5680 p->mark = _mark;
5681 D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_as_pattern"));
5683 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005684 _res = NULL;
5685 done:
5686 D(p->level--);
5687 return _res;
5688}
5689
5690// or_pattern: '|'.closed_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005691static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005692or_pattern_rule(Parser *p)
5693{
5694 D(p->level++);
5695 if (p->error_indicator) {
5696 D(p->level--);
5697 return NULL;
5698 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005699 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005700 int _mark = p->mark;
5701 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5702 p->error_indicator = 1;
5703 D(p->level--);
5704 return NULL;
5705 }
5706 int _start_lineno = p->tokens[_mark]->lineno;
5707 UNUSED(_start_lineno); // Only used by EXTRA macro
5708 int _start_col_offset = p->tokens[_mark]->col_offset;
5709 UNUSED(_start_col_offset); // Only used by EXTRA macro
5710 { // '|'.closed_pattern+
5711 if (p->error_indicator) {
5712 D(p->level--);
5713 return NULL;
5714 }
5715 D(fprintf(stderr, "%*c> or_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005716 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08005717 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005718 (patterns = (asdl_pattern_seq*)_gather_51_rule(p)) // '|'.closed_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08005719 )
5720 {
5721 D(fprintf(stderr, "%*c+ or_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|'.closed_pattern+"));
5722 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5723 if (_token == NULL) {
5724 D(p->level--);
5725 return NULL;
5726 }
5727 int _end_lineno = _token->end_lineno;
5728 UNUSED(_end_lineno); // Only used by EXTRA macro
5729 int _end_col_offset = _token->end_col_offset;
5730 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02005731 _res = asdl_seq_LEN ( patterns ) == 1 ? asdl_seq_GET ( patterns , 0 ) : _PyAST_MatchOr ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08005732 if (_res == NULL && PyErr_Occurred()) {
5733 p->error_indicator = 1;
5734 D(p->level--);
5735 return NULL;
5736 }
5737 goto done;
5738 }
5739 p->mark = _mark;
5740 D(fprintf(stderr, "%*c%s or_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|'.closed_pattern+"));
5742 }
5743 _res = NULL;
5744 done:
5745 D(p->level--);
5746 return _res;
5747}
5748
5749// closed_pattern:
5750// | literal_pattern
5751// | capture_pattern
5752// | wildcard_pattern
5753// | value_pattern
5754// | group_pattern
5755// | sequence_pattern
5756// | mapping_pattern
5757// | class_pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005758static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005759closed_pattern_rule(Parser *p)
5760{
5761 D(p->level++);
5762 if (p->error_indicator) {
5763 D(p->level--);
5764 return NULL;
5765 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005766 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005767 int _mark = p->mark;
5768 { // literal_pattern
5769 if (p->error_indicator) {
5770 D(p->level--);
5771 return NULL;
5772 }
5773 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005774 pattern_ty literal_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005775 if (
5776 (literal_pattern_var = literal_pattern_rule(p)) // literal_pattern
5777 )
5778 {
5779 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_pattern"));
5780 _res = literal_pattern_var;
5781 goto done;
5782 }
5783 p->mark = _mark;
5784 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern"));
5786 }
5787 { // capture_pattern
5788 if (p->error_indicator) {
5789 D(p->level--);
5790 return NULL;
5791 }
5792 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005793 pattern_ty capture_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005794 if (
5795 (capture_pattern_var = capture_pattern_rule(p)) // capture_pattern
5796 )
5797 {
5798 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "capture_pattern"));
5799 _res = capture_pattern_var;
5800 goto done;
5801 }
5802 p->mark = _mark;
5803 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern"));
5805 }
5806 { // wildcard_pattern
5807 if (p->error_indicator) {
5808 D(p->level--);
5809 return NULL;
5810 }
5811 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005812 pattern_ty wildcard_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005813 if (
5814 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
5815 )
5816 {
5817 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "wildcard_pattern"));
5818 _res = wildcard_pattern_var;
5819 goto done;
5820 }
5821 p->mark = _mark;
5822 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern"));
5824 }
5825 { // value_pattern
5826 if (p->error_indicator) {
5827 D(p->level--);
5828 return NULL;
5829 }
5830 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "value_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005831 pattern_ty value_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005832 if (
5833 (value_pattern_var = value_pattern_rule(p)) // value_pattern
5834 )
5835 {
5836 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "value_pattern"));
5837 _res = value_pattern_var;
5838 goto done;
5839 }
5840 p->mark = _mark;
5841 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5842 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern"));
5843 }
5844 { // group_pattern
5845 if (p->error_indicator) {
5846 D(p->level--);
5847 return NULL;
5848 }
5849 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005850 pattern_ty group_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005851 if (
5852 (group_pattern_var = group_pattern_rule(p)) // group_pattern
5853 )
5854 {
5855 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group_pattern"));
5856 _res = group_pattern_var;
5857 goto done;
5858 }
5859 p->mark = _mark;
5860 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern"));
5862 }
5863 { // sequence_pattern
5864 if (p->error_indicator) {
5865 D(p->level--);
5866 return NULL;
5867 }
5868 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005869 pattern_ty sequence_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005870 if (
5871 (sequence_pattern_var = sequence_pattern_rule(p)) // sequence_pattern
5872 )
5873 {
5874 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sequence_pattern"));
5875 _res = sequence_pattern_var;
5876 goto done;
5877 }
5878 p->mark = _mark;
5879 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern"));
5881 }
5882 { // mapping_pattern
5883 if (p->error_indicator) {
5884 D(p->level--);
5885 return NULL;
5886 }
5887 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005888 pattern_ty mapping_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005889 if (
5890 (mapping_pattern_var = mapping_pattern_rule(p)) // mapping_pattern
5891 )
5892 {
5893 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "mapping_pattern"));
5894 _res = mapping_pattern_var;
5895 goto done;
5896 }
5897 p->mark = _mark;
5898 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern"));
5900 }
5901 { // class_pattern
5902 if (p->error_indicator) {
5903 D(p->level--);
5904 return NULL;
5905 }
5906 D(fprintf(stderr, "%*c> closed_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005907 pattern_ty class_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08005908 if (
5909 (class_pattern_var = class_pattern_rule(p)) // class_pattern
5910 )
5911 {
5912 D(fprintf(stderr, "%*c+ closed_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_pattern"));
5913 _res = class_pattern_var;
5914 goto done;
5915 }
5916 p->mark = _mark;
5917 D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_pattern"));
5919 }
5920 _res = NULL;
5921 done:
5922 D(p->level--);
5923 return _res;
5924}
5925
5926// literal_pattern:
5927// | signed_number !('+' | '-')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005928// | complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005929// | strings
5930// | 'None'
5931// | 'True'
5932// | 'False'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005933static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08005934literal_pattern_rule(Parser *p)
5935{
5936 D(p->level++);
5937 if (p->error_indicator) {
5938 D(p->level--);
5939 return NULL;
5940 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005941 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08005942 int _mark = p->mark;
5943 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5944 p->error_indicator = 1;
5945 D(p->level--);
5946 return NULL;
5947 }
5948 int _start_lineno = p->tokens[_mark]->lineno;
5949 UNUSED(_start_lineno); // Only used by EXTRA macro
5950 int _start_col_offset = p->tokens[_mark]->col_offset;
5951 UNUSED(_start_col_offset); // Only used by EXTRA macro
5952 { // signed_number !('+' | '-')
5953 if (p->error_indicator) {
5954 D(p->level--);
5955 return NULL;
5956 }
5957 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005958 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005959 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005960 (value = signed_number_rule(p)) // signed_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005961 &&
5962 _PyPegen_lookahead(0, _tmp_53_rule, p)
5963 )
5964 {
5965 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 +10005966 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5967 if (_token == NULL) {
5968 D(p->level--);
5969 return NULL;
5970 }
5971 int _end_lineno = _token->end_lineno;
5972 UNUSED(_end_lineno); // Only used by EXTRA macro
5973 int _end_col_offset = _token->end_col_offset;
5974 UNUSED(_end_col_offset); // Only used by EXTRA macro
5975 _res = _PyAST_MatchValue ( value , EXTRA );
5976 if (_res == NULL && PyErr_Occurred()) {
5977 p->error_indicator = 1;
5978 D(p->level--);
5979 return NULL;
5980 }
Brandt Bucher145bf262021-02-26 14:51:55 -08005981 goto done;
5982 }
5983 p->mark = _mark;
5984 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
5985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
5986 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005987 { // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005988 if (p->error_indicator) {
5989 D(p->level--);
5990 return NULL;
5991 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005992 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
5993 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08005994 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005995 (value = complex_number_rule(p)) // complex_number
Brandt Bucher145bf262021-02-26 14:51:55 -08005996 )
5997 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10005998 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 -08005999 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6000 if (_token == NULL) {
6001 D(p->level--);
6002 return NULL;
6003 }
6004 int _end_lineno = _token->end_lineno;
6005 UNUSED(_end_lineno); // Only used by EXTRA macro
6006 int _end_col_offset = _token->end_col_offset;
6007 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006008 _res = _PyAST_MatchValue ( value , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006009 if (_res == NULL && PyErr_Occurred()) {
6010 p->error_indicator = 1;
6011 D(p->level--);
6012 return NULL;
6013 }
6014 goto done;
6015 }
6016 p->mark = _mark;
6017 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006018 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006019 }
6020 { // strings
6021 if (p->error_indicator) {
6022 D(p->level--);
6023 return NULL;
6024 }
6025 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006026 expr_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08006027 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006028 (value = strings_rule(p)) // strings
Brandt Bucher145bf262021-02-26 14:51:55 -08006029 )
6030 {
6031 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006032 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6033 if (_token == NULL) {
6034 D(p->level--);
6035 return NULL;
6036 }
6037 int _end_lineno = _token->end_lineno;
6038 UNUSED(_end_lineno); // Only used by EXTRA macro
6039 int _end_col_offset = _token->end_col_offset;
6040 UNUSED(_end_col_offset); // Only used by EXTRA macro
6041 _res = _PyAST_MatchValue ( value , EXTRA );
6042 if (_res == NULL && PyErr_Occurred()) {
6043 p->error_indicator = 1;
6044 D(p->level--);
6045 return NULL;
6046 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006047 goto done;
6048 }
6049 p->mark = _mark;
6050 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6051 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6052 }
6053 { // 'None'
6054 if (p->error_indicator) {
6055 D(p->level--);
6056 return NULL;
6057 }
6058 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6059 Token * _keyword;
6060 if (
6061 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6062 )
6063 {
6064 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6065 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6066 if (_token == NULL) {
6067 D(p->level--);
6068 return NULL;
6069 }
6070 int _end_lineno = _token->end_lineno;
6071 UNUSED(_end_lineno); // Only used by EXTRA macro
6072 int _end_col_offset = _token->end_col_offset;
6073 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006074 _res = _PyAST_MatchSingleton ( Py_None , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006075 if (_res == NULL && PyErr_Occurred()) {
6076 p->error_indicator = 1;
6077 D(p->level--);
6078 return NULL;
6079 }
6080 goto done;
6081 }
6082 p->mark = _mark;
6083 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6085 }
6086 { // 'True'
6087 if (p->error_indicator) {
6088 D(p->level--);
6089 return NULL;
6090 }
6091 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6092 Token * _keyword;
6093 if (
6094 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6095 )
6096 {
6097 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6098 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6099 if (_token == NULL) {
6100 D(p->level--);
6101 return NULL;
6102 }
6103 int _end_lineno = _token->end_lineno;
6104 UNUSED(_end_lineno); // Only used by EXTRA macro
6105 int _end_col_offset = _token->end_col_offset;
6106 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006107 _res = _PyAST_MatchSingleton ( Py_True , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006108 if (_res == NULL && PyErr_Occurred()) {
6109 p->error_indicator = 1;
6110 D(p->level--);
6111 return NULL;
6112 }
6113 goto done;
6114 }
6115 p->mark = _mark;
6116 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6118 }
6119 { // 'False'
6120 if (p->error_indicator) {
6121 D(p->level--);
6122 return NULL;
6123 }
6124 D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6125 Token * _keyword;
6126 if (
6127 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6128 )
6129 {
6130 D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6131 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6132 if (_token == NULL) {
6133 D(p->level--);
6134 return NULL;
6135 }
6136 int _end_lineno = _token->end_lineno;
6137 UNUSED(_end_lineno); // Only used by EXTRA macro
6138 int _end_col_offset = _token->end_col_offset;
6139 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006140 _res = _PyAST_MatchSingleton ( Py_False , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006141 if (_res == NULL && PyErr_Occurred()) {
6142 p->error_indicator = 1;
6143 D(p->level--);
6144 return NULL;
6145 }
6146 goto done;
6147 }
6148 p->mark = _mark;
6149 D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6151 }
6152 _res = NULL;
6153 done:
6154 D(p->level--);
6155 return _res;
6156}
6157
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006158// literal_expr:
6159// | signed_number !('+' | '-')
6160// | complex_number
6161// | strings
6162// | 'None'
6163// | 'True'
6164// | 'False'
6165static expr_ty
6166literal_expr_rule(Parser *p)
6167{
6168 D(p->level++);
6169 if (p->error_indicator) {
6170 D(p->level--);
6171 return NULL;
6172 }
6173 expr_ty _res = NULL;
6174 int _mark = p->mark;
6175 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6176 p->error_indicator = 1;
6177 D(p->level--);
6178 return NULL;
6179 }
6180 int _start_lineno = p->tokens[_mark]->lineno;
6181 UNUSED(_start_lineno); // Only used by EXTRA macro
6182 int _start_col_offset = p->tokens[_mark]->col_offset;
6183 UNUSED(_start_col_offset); // Only used by EXTRA macro
6184 { // signed_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, "signed_number !('+' | '-')"));
6190 expr_ty signed_number_var;
6191 if (
6192 (signed_number_var = signed_number_rule(p)) // signed_number
6193 &&
6194 _PyPegen_lookahead(0, _tmp_54_rule, p)
6195 )
6196 {
6197 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "signed_number !('+' | '-')"));
6198 _res = signed_number_var;
6199 goto done;
6200 }
6201 p->mark = _mark;
6202 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')"));
6204 }
6205 { // complex_number
6206 if (p->error_indicator) {
6207 D(p->level--);
6208 return NULL;
6209 }
6210 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "complex_number"));
6211 expr_ty complex_number_var;
6212 if (
6213 (complex_number_var = complex_number_rule(p)) // complex_number
6214 )
6215 {
6216 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "complex_number"));
6217 _res = complex_number_var;
6218 goto done;
6219 }
6220 p->mark = _mark;
6221 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number"));
6223 }
6224 { // strings
6225 if (p->error_indicator) {
6226 D(p->level--);
6227 return NULL;
6228 }
6229 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "strings"));
6230 expr_ty strings_var;
6231 if (
6232 (strings_var = strings_rule(p)) // strings
6233 )
6234 {
6235 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "strings"));
6236 _res = strings_var;
6237 goto done;
6238 }
6239 p->mark = _mark;
6240 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings"));
6242 }
6243 { // 'None'
6244 if (p->error_indicator) {
6245 D(p->level--);
6246 return NULL;
6247 }
6248 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
6249 Token * _keyword;
6250 if (
6251 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
6252 )
6253 {
6254 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
6255 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6256 if (_token == NULL) {
6257 D(p->level--);
6258 return NULL;
6259 }
6260 int _end_lineno = _token->end_lineno;
6261 UNUSED(_end_lineno); // Only used by EXTRA macro
6262 int _end_col_offset = _token->end_col_offset;
6263 UNUSED(_end_col_offset); // Only used by EXTRA macro
6264 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
6265 if (_res == NULL && PyErr_Occurred()) {
6266 p->error_indicator = 1;
6267 D(p->level--);
6268 return NULL;
6269 }
6270 goto done;
6271 }
6272 p->mark = _mark;
6273 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
6275 }
6276 { // 'True'
6277 if (p->error_indicator) {
6278 D(p->level--);
6279 return NULL;
6280 }
6281 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
6282 Token * _keyword;
6283 if (
6284 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
6285 )
6286 {
6287 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
6288 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6289 if (_token == NULL) {
6290 D(p->level--);
6291 return NULL;
6292 }
6293 int _end_lineno = _token->end_lineno;
6294 UNUSED(_end_lineno); // Only used by EXTRA macro
6295 int _end_col_offset = _token->end_col_offset;
6296 UNUSED(_end_col_offset); // Only used by EXTRA macro
6297 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
6298 if (_res == NULL && PyErr_Occurred()) {
6299 p->error_indicator = 1;
6300 D(p->level--);
6301 return NULL;
6302 }
6303 goto done;
6304 }
6305 p->mark = _mark;
6306 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
6308 }
6309 { // 'False'
6310 if (p->error_indicator) {
6311 D(p->level--);
6312 return NULL;
6313 }
6314 D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
6315 Token * _keyword;
6316 if (
6317 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
6318 )
6319 {
6320 D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
6321 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6322 if (_token == NULL) {
6323 D(p->level--);
6324 return NULL;
6325 }
6326 int _end_lineno = _token->end_lineno;
6327 UNUSED(_end_lineno); // Only used by EXTRA macro
6328 int _end_col_offset = _token->end_col_offset;
6329 UNUSED(_end_col_offset); // Only used by EXTRA macro
6330 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
6331 if (_res == NULL && PyErr_Occurred()) {
6332 p->error_indicator = 1;
6333 D(p->level--);
6334 return NULL;
6335 }
6336 goto done;
6337 }
6338 p->mark = _mark;
6339 D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ',
6340 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
6341 }
6342 _res = NULL;
6343 done:
6344 D(p->level--);
6345 return _res;
6346}
6347
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006348// complex_number:
6349// | signed_real_number '+' imaginary_number
6350// | signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006351static expr_ty
6352complex_number_rule(Parser *p)
6353{
6354 D(p->level++);
6355 if (p->error_indicator) {
6356 D(p->level--);
6357 return NULL;
6358 }
6359 expr_ty _res = NULL;
6360 int _mark = p->mark;
6361 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6362 p->error_indicator = 1;
6363 D(p->level--);
6364 return NULL;
6365 }
6366 int _start_lineno = p->tokens[_mark]->lineno;
6367 UNUSED(_start_lineno); // Only used by EXTRA macro
6368 int _start_col_offset = p->tokens[_mark]->col_offset;
6369 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006370 { // signed_real_number '+' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006371 if (p->error_indicator) {
6372 D(p->level--);
6373 return NULL;
6374 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006375 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 +10006376 Token * _literal;
6377 expr_ty imag;
6378 expr_ty real;
6379 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006380 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006381 &&
6382 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
6383 &&
6384 (imag = imaginary_number_rule(p)) // imaginary_number
6385 )
6386 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006387 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 +10006388 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6389 if (_token == NULL) {
6390 D(p->level--);
6391 return NULL;
6392 }
6393 int _end_lineno = _token->end_lineno;
6394 UNUSED(_end_lineno); // Only used by EXTRA macro
6395 int _end_col_offset = _token->end_col_offset;
6396 UNUSED(_end_col_offset); // Only used by EXTRA macro
6397 _res = _PyAST_BinOp ( real , Add , imag , EXTRA );
6398 if (_res == NULL && PyErr_Occurred()) {
6399 p->error_indicator = 1;
6400 D(p->level--);
6401 return NULL;
6402 }
6403 goto done;
6404 }
6405 p->mark = _mark;
6406 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006408 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006409 { // signed_real_number '-' imaginary_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006410 if (p->error_indicator) {
6411 D(p->level--);
6412 return NULL;
6413 }
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006414 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 +10006415 Token * _literal;
6416 expr_ty imag;
6417 expr_ty real;
6418 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006419 (real = signed_real_number_rule(p)) // signed_real_number
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006420 &&
6421 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6422 &&
6423 (imag = imaginary_number_rule(p)) // imaginary_number
6424 )
6425 {
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006426 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 +10006427 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6428 if (_token == NULL) {
6429 D(p->level--);
6430 return NULL;
6431 }
6432 int _end_lineno = _token->end_lineno;
6433 UNUSED(_end_lineno); // Only used by EXTRA macro
6434 int _end_col_offset = _token->end_col_offset;
6435 UNUSED(_end_col_offset); // Only used by EXTRA macro
6436 _res = _PyAST_BinOp ( real , Sub , imag , EXTRA );
6437 if (_res == NULL && PyErr_Occurred()) {
6438 p->error_indicator = 1;
6439 D(p->level--);
6440 return NULL;
6441 }
6442 goto done;
6443 }
6444 p->mark = _mark;
6445 D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006446 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '-' imaginary_number"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006447 }
6448 _res = NULL;
6449 done:
6450 D(p->level--);
6451 return _res;
6452}
6453
Brandt Bucher145bf262021-02-26 14:51:55 -08006454// signed_number: NUMBER | '-' NUMBER
6455static expr_ty
6456signed_number_rule(Parser *p)
6457{
6458 D(p->level++);
6459 if (p->error_indicator) {
6460 D(p->level--);
6461 return NULL;
6462 }
6463 expr_ty _res = NULL;
6464 int _mark = p->mark;
6465 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6466 p->error_indicator = 1;
6467 D(p->level--);
6468 return NULL;
6469 }
6470 int _start_lineno = p->tokens[_mark]->lineno;
6471 UNUSED(_start_lineno); // Only used by EXTRA macro
6472 int _start_col_offset = p->tokens[_mark]->col_offset;
6473 UNUSED(_start_col_offset); // Only used by EXTRA macro
6474 { // NUMBER
6475 if (p->error_indicator) {
6476 D(p->level--);
6477 return NULL;
6478 }
6479 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6480 expr_ty number_var;
6481 if (
6482 (number_var = _PyPegen_number_token(p)) // NUMBER
6483 )
6484 {
6485 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6486 _res = number_var;
6487 goto done;
6488 }
6489 p->mark = _mark;
6490 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6492 }
6493 { // '-' NUMBER
6494 if (p->error_indicator) {
6495 D(p->level--);
6496 return NULL;
6497 }
6498 D(fprintf(stderr, "%*c> signed_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6499 Token * _literal;
6500 expr_ty number;
6501 if (
6502 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6503 &&
6504 (number = _PyPegen_number_token(p)) // NUMBER
6505 )
6506 {
6507 D(fprintf(stderr, "%*c+ signed_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' NUMBER"));
6508 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6509 if (_token == NULL) {
6510 D(p->level--);
6511 return NULL;
6512 }
6513 int _end_lineno = _token->end_lineno;
6514 UNUSED(_end_lineno); // Only used by EXTRA macro
6515 int _end_col_offset = _token->end_col_offset;
6516 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02006517 _res = _PyAST_UnaryOp ( USub , number , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006518 if (_res == NULL && PyErr_Occurred()) {
6519 p->error_indicator = 1;
6520 D(p->level--);
6521 return NULL;
6522 }
6523 goto done;
6524 }
6525 p->mark = _mark;
6526 D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ',
6527 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER"));
6528 }
6529 _res = NULL;
6530 done:
6531 D(p->level--);
6532 return _res;
6533}
6534
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07006535// signed_real_number: real_number | '-' real_number
6536static expr_ty
6537signed_real_number_rule(Parser *p)
6538{
6539 D(p->level++);
6540 if (p->error_indicator) {
6541 D(p->level--);
6542 return NULL;
6543 }
6544 expr_ty _res = NULL;
6545 int _mark = p->mark;
6546 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6547 p->error_indicator = 1;
6548 D(p->level--);
6549 return NULL;
6550 }
6551 int _start_lineno = p->tokens[_mark]->lineno;
6552 UNUSED(_start_lineno); // Only used by EXTRA macro
6553 int _start_col_offset = p->tokens[_mark]->col_offset;
6554 UNUSED(_start_col_offset); // Only used by EXTRA macro
6555 { // real_number
6556 if (p->error_indicator) {
6557 D(p->level--);
6558 return NULL;
6559 }
6560 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "real_number"));
6561 expr_ty real_number_var;
6562 if (
6563 (real_number_var = real_number_rule(p)) // real_number
6564 )
6565 {
6566 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "real_number"));
6567 _res = real_number_var;
6568 goto done;
6569 }
6570 p->mark = _mark;
6571 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number"));
6573 }
6574 { // '-' real_number
6575 if (p->error_indicator) {
6576 D(p->level--);
6577 return NULL;
6578 }
6579 D(fprintf(stderr, "%*c> signed_real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6580 Token * _literal;
6581 expr_ty real;
6582 if (
6583 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
6584 &&
6585 (real = real_number_rule(p)) // real_number
6586 )
6587 {
6588 D(fprintf(stderr, "%*c+ signed_real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' real_number"));
6589 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6590 if (_token == NULL) {
6591 D(p->level--);
6592 return NULL;
6593 }
6594 int _end_lineno = _token->end_lineno;
6595 UNUSED(_end_lineno); // Only used by EXTRA macro
6596 int _end_col_offset = _token->end_col_offset;
6597 UNUSED(_end_col_offset); // Only used by EXTRA macro
6598 _res = _PyAST_UnaryOp ( USub , real , EXTRA );
6599 if (_res == NULL && PyErr_Occurred()) {
6600 p->error_indicator = 1;
6601 D(p->level--);
6602 return NULL;
6603 }
6604 goto done;
6605 }
6606 p->mark = _mark;
6607 D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ',
6608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number"));
6609 }
6610 _res = NULL;
6611 done:
6612 D(p->level--);
6613 return _res;
6614}
6615
6616// real_number: NUMBER
6617static expr_ty
6618real_number_rule(Parser *p)
6619{
6620 D(p->level++);
6621 if (p->error_indicator) {
6622 D(p->level--);
6623 return NULL;
6624 }
6625 expr_ty _res = NULL;
6626 int _mark = p->mark;
6627 { // NUMBER
6628 if (p->error_indicator) {
6629 D(p->level--);
6630 return NULL;
6631 }
6632 D(fprintf(stderr, "%*c> real_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6633 expr_ty real;
6634 if (
6635 (real = _PyPegen_number_token(p)) // NUMBER
6636 )
6637 {
6638 D(fprintf(stderr, "%*c+ real_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6639 _res = _PyPegen_ensure_real ( p , real );
6640 if (_res == NULL && PyErr_Occurred()) {
6641 p->error_indicator = 1;
6642 D(p->level--);
6643 return NULL;
6644 }
6645 goto done;
6646 }
6647 p->mark = _mark;
6648 D(fprintf(stderr, "%*c%s real_number[%d-%d]: %s failed!\n", p->level, ' ',
6649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6650 }
6651 _res = NULL;
6652 done:
6653 D(p->level--);
6654 return _res;
6655}
6656
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006657// imaginary_number: NUMBER
Brandt Bucher145bf262021-02-26 14:51:55 -08006658static expr_ty
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006659imaginary_number_rule(Parser *p)
6660{
6661 D(p->level++);
6662 if (p->error_indicator) {
6663 D(p->level--);
6664 return NULL;
6665 }
6666 expr_ty _res = NULL;
6667 int _mark = p->mark;
6668 { // NUMBER
6669 if (p->error_indicator) {
6670 D(p->level--);
6671 return NULL;
6672 }
6673 D(fprintf(stderr, "%*c> imaginary_number[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6674 expr_ty imag;
6675 if (
6676 (imag = _PyPegen_number_token(p)) // NUMBER
6677 )
6678 {
6679 D(fprintf(stderr, "%*c+ imaginary_number[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
6680 _res = _PyPegen_ensure_imaginary ( p , imag );
6681 if (_res == NULL && PyErr_Occurred()) {
6682 p->error_indicator = 1;
6683 D(p->level--);
6684 return NULL;
6685 }
6686 goto done;
6687 }
6688 p->mark = _mark;
6689 D(fprintf(stderr, "%*c%s imaginary_number[%d-%d]: %s failed!\n", p->level, ' ',
6690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
6691 }
6692 _res = NULL;
6693 done:
6694 D(p->level--);
6695 return _res;
6696}
6697
6698// capture_pattern: pattern_capture_target
6699static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006700capture_pattern_rule(Parser *p)
6701{
6702 D(p->level++);
6703 if (p->error_indicator) {
6704 D(p->level--);
6705 return NULL;
6706 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006707 pattern_ty _res = NULL;
6708 int _mark = p->mark;
6709 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6710 p->error_indicator = 1;
6711 D(p->level--);
6712 return NULL;
6713 }
6714 int _start_lineno = p->tokens[_mark]->lineno;
6715 UNUSED(_start_lineno); // Only used by EXTRA macro
6716 int _start_col_offset = p->tokens[_mark]->col_offset;
6717 UNUSED(_start_col_offset); // Only used by EXTRA macro
6718 { // pattern_capture_target
6719 if (p->error_indicator) {
6720 D(p->level--);
6721 return NULL;
6722 }
6723 D(fprintf(stderr, "%*c> capture_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6724 expr_ty target;
6725 if (
6726 (target = pattern_capture_target_rule(p)) // pattern_capture_target
6727 )
6728 {
6729 D(fprintf(stderr, "%*c+ capture_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern_capture_target"));
6730 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6731 if (_token == NULL) {
6732 D(p->level--);
6733 return NULL;
6734 }
6735 int _end_lineno = _token->end_lineno;
6736 UNUSED(_end_lineno); // Only used by EXTRA macro
6737 int _end_col_offset = _token->end_col_offset;
6738 UNUSED(_end_col_offset); // Only used by EXTRA macro
6739 _res = _PyAST_MatchAs ( NULL , target -> v . Name . id , EXTRA );
6740 if (_res == NULL && PyErr_Occurred()) {
6741 p->error_indicator = 1;
6742 D(p->level--);
6743 return NULL;
6744 }
6745 goto done;
6746 }
6747 p->mark = _mark;
6748 D(fprintf(stderr, "%*c%s capture_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern_capture_target"));
6750 }
6751 _res = NULL;
6752 done:
6753 D(p->level--);
6754 return _res;
6755}
6756
6757// pattern_capture_target: !"_" NAME !('.' | '(' | '=')
6758static expr_ty
6759pattern_capture_target_rule(Parser *p)
6760{
6761 D(p->level++);
6762 if (p->error_indicator) {
6763 D(p->level--);
6764 return NULL;
6765 }
Brandt Bucher145bf262021-02-26 14:51:55 -08006766 expr_ty _res = NULL;
6767 int _mark = p->mark;
6768 { // !"_" NAME !('.' | '(' | '=')
6769 if (p->error_indicator) {
6770 D(p->level--);
6771 return NULL;
6772 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006773 D(fprintf(stderr, "%*c> pattern_capture_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
Brandt Bucher145bf262021-02-26 14:51:55 -08006774 expr_ty name;
6775 if (
6776 _PyPegen_lookahead_with_string(0, _PyPegen_expect_soft_keyword, p, "_")
6777 &&
6778 (name = _PyPegen_name_token(p)) // NAME
6779 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006780 _PyPegen_lookahead(0, _tmp_55_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006781 )
6782 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006783 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 -08006784 _res = _PyPegen_set_expr_context ( p , name , Store );
6785 if (_res == NULL && PyErr_Occurred()) {
6786 p->error_indicator = 1;
6787 D(p->level--);
6788 return NULL;
6789 }
6790 goto done;
6791 }
6792 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006793 D(fprintf(stderr, "%*c%s pattern_capture_target[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -08006794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!\"_\" NAME !('.' | '(' | '=')"));
6795 }
6796 _res = NULL;
6797 done:
6798 D(p->level--);
6799 return _res;
6800}
6801
6802// wildcard_pattern: "_"
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006803static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006804wildcard_pattern_rule(Parser *p)
6805{
6806 D(p->level++);
6807 if (p->error_indicator) {
6808 D(p->level--);
6809 return NULL;
6810 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006811 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006812 int _mark = p->mark;
6813 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6814 p->error_indicator = 1;
6815 D(p->level--);
6816 return NULL;
6817 }
6818 int _start_lineno = p->tokens[_mark]->lineno;
6819 UNUSED(_start_lineno); // Only used by EXTRA macro
6820 int _start_col_offset = p->tokens[_mark]->col_offset;
6821 UNUSED(_start_col_offset); // Only used by EXTRA macro
6822 { // "_"
6823 if (p->error_indicator) {
6824 D(p->level--);
6825 return NULL;
6826 }
6827 D(fprintf(stderr, "%*c> wildcard_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"_\""));
6828 expr_ty _keyword;
6829 if (
6830 (_keyword = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
6831 )
6832 {
6833 D(fprintf(stderr, "%*c+ wildcard_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"_\""));
6834 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6835 if (_token == NULL) {
6836 D(p->level--);
6837 return NULL;
6838 }
6839 int _end_lineno = _token->end_lineno;
6840 UNUSED(_end_lineno); // Only used by EXTRA macro
6841 int _end_col_offset = _token->end_col_offset;
6842 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006843 _res = _PyAST_MatchAs ( NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006844 if (_res == NULL && PyErr_Occurred()) {
6845 p->error_indicator = 1;
6846 D(p->level--);
6847 return NULL;
6848 }
6849 goto done;
6850 }
6851 p->mark = _mark;
6852 D(fprintf(stderr, "%*c%s wildcard_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"_\""));
6854 }
6855 _res = NULL;
6856 done:
6857 D(p->level--);
6858 return _res;
6859}
6860
6861// value_pattern: attr !('.' | '(' | '=')
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006862static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08006863value_pattern_rule(Parser *p)
6864{
6865 D(p->level++);
6866 if (p->error_indicator) {
6867 D(p->level--);
6868 return NULL;
6869 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006870 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08006871 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006872 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6873 p->error_indicator = 1;
6874 D(p->level--);
6875 return NULL;
6876 }
6877 int _start_lineno = p->tokens[_mark]->lineno;
6878 UNUSED(_start_lineno); // Only used by EXTRA macro
6879 int _start_col_offset = p->tokens[_mark]->col_offset;
6880 UNUSED(_start_col_offset); // Only used by EXTRA macro
Brandt Bucher145bf262021-02-26 14:51:55 -08006881 { // attr !('.' | '(' | '=')
6882 if (p->error_indicator) {
6883 D(p->level--);
6884 return NULL;
6885 }
6886 D(fprintf(stderr, "%*c> value_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
6887 expr_ty attr;
6888 if (
6889 (attr = attr_rule(p)) // attr
6890 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006891 _PyPegen_lookahead(0, _tmp_56_rule, p)
Brandt Bucher145bf262021-02-26 14:51:55 -08006892 )
6893 {
6894 D(fprintf(stderr, "%*c+ value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr !('.' | '(' | '=')"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10006895 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6896 if (_token == NULL) {
6897 D(p->level--);
6898 return NULL;
6899 }
6900 int _end_lineno = _token->end_lineno;
6901 UNUSED(_end_lineno); // Only used by EXTRA macro
6902 int _end_col_offset = _token->end_col_offset;
6903 UNUSED(_end_col_offset); // Only used by EXTRA macro
6904 _res = _PyAST_MatchValue ( attr , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08006905 if (_res == NULL && PyErr_Occurred()) {
6906 p->error_indicator = 1;
6907 D(p->level--);
6908 return NULL;
6909 }
6910 goto done;
6911 }
6912 p->mark = _mark;
6913 D(fprintf(stderr, "%*c%s value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
6914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr !('.' | '(' | '=')"));
6915 }
6916 _res = NULL;
6917 done:
6918 D(p->level--);
6919 return _res;
6920}
6921
6922// Left-recursive
6923// attr: name_or_attr '.' NAME
6924static expr_ty attr_raw(Parser *);
6925static expr_ty
6926attr_rule(Parser *p)
6927{
6928 D(p->level++);
6929 expr_ty _res = NULL;
6930 if (_PyPegen_is_memoized(p, attr_type, &_res)) {
6931 D(p->level--);
6932 return _res;
6933 }
6934 int _mark = p->mark;
6935 int _resmark = p->mark;
6936 while (1) {
6937 int tmpvar_1 = _PyPegen_update_memo(p, _mark, attr_type, _res);
6938 if (tmpvar_1) {
6939 D(p->level--);
6940 return _res;
6941 }
6942 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006943 p->in_raw_rule++;
Brandt Bucher145bf262021-02-26 14:51:55 -08006944 void *_raw = attr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -07006945 p->in_raw_rule--;
Brandt Bucher145bf262021-02-26 14:51:55 -08006946 if (p->error_indicator)
6947 return NULL;
6948 if (_raw == NULL || p->mark <= _resmark)
6949 break;
6950 _resmark = p->mark;
6951 _res = _raw;
6952 }
6953 p->mark = _resmark;
6954 D(p->level--);
6955 return _res;
6956}
6957static expr_ty
6958attr_raw(Parser *p)
6959{
6960 D(p->level++);
6961 if (p->error_indicator) {
6962 D(p->level--);
6963 return NULL;
6964 }
6965 expr_ty _res = NULL;
6966 int _mark = p->mark;
6967 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6968 p->error_indicator = 1;
6969 D(p->level--);
6970 return NULL;
6971 }
6972 int _start_lineno = p->tokens[_mark]->lineno;
6973 UNUSED(_start_lineno); // Only used by EXTRA macro
6974 int _start_col_offset = p->tokens[_mark]->col_offset;
6975 UNUSED(_start_col_offset); // Only used by EXTRA macro
6976 { // name_or_attr '.' NAME
6977 if (p->error_indicator) {
6978 D(p->level--);
6979 return NULL;
6980 }
6981 D(fprintf(stderr, "%*c> attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6982 Token * _literal;
6983 expr_ty attr;
6984 expr_ty value;
6985 if (
6986 (value = name_or_attr_rule(p)) // name_or_attr
6987 &&
6988 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
6989 &&
6990 (attr = _PyPegen_name_token(p)) // NAME
6991 )
6992 {
6993 D(fprintf(stderr, "%*c+ attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '.' NAME"));
6994 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6995 if (_token == NULL) {
6996 D(p->level--);
6997 return NULL;
6998 }
6999 int _end_lineno = _token->end_lineno;
7000 UNUSED(_end_lineno); // Only used by EXTRA macro
7001 int _end_col_offset = _token->end_col_offset;
7002 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02007003 _res = _PyAST_Attribute ( value , attr -> v . Name . id , Load , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007004 if (_res == NULL && PyErr_Occurred()) {
7005 p->error_indicator = 1;
7006 D(p->level--);
7007 return NULL;
7008 }
7009 goto done;
7010 }
7011 p->mark = _mark;
7012 D(fprintf(stderr, "%*c%s attr[%d-%d]: %s failed!\n", p->level, ' ',
7013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '.' NAME"));
7014 }
7015 _res = NULL;
7016 done:
7017 D(p->level--);
7018 return _res;
7019}
7020
7021// Left-recursive
7022// name_or_attr: attr | NAME
7023static expr_ty
7024name_or_attr_rule(Parser *p)
7025{
7026 D(p->level++);
7027 if (p->error_indicator) {
7028 D(p->level--);
7029 return NULL;
7030 }
7031 expr_ty _res = NULL;
7032 int _mark = p->mark;
7033 { // attr
7034 if (p->error_indicator) {
7035 D(p->level--);
7036 return NULL;
7037 }
7038 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
7039 expr_ty attr_var;
7040 if (
7041 (attr_var = attr_rule(p)) // attr
7042 )
7043 {
7044 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
7045 _res = attr_var;
7046 goto done;
7047 }
7048 p->mark = _mark;
7049 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7050 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
7051 }
7052 { // NAME
7053 if (p->error_indicator) {
7054 D(p->level--);
7055 return NULL;
7056 }
7057 D(fprintf(stderr, "%*c> name_or_attr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
7058 expr_ty name_var;
7059 if (
7060 (name_var = _PyPegen_name_token(p)) // NAME
7061 )
7062 {
7063 D(fprintf(stderr, "%*c+ name_or_attr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
7064 _res = name_var;
7065 goto done;
7066 }
7067 p->mark = _mark;
7068 D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ',
7069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
7070 }
7071 _res = NULL;
7072 done:
7073 D(p->level--);
7074 return _res;
7075}
7076
7077// group_pattern: '(' pattern ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007078static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007079group_pattern_rule(Parser *p)
7080{
7081 D(p->level++);
7082 if (p->error_indicator) {
7083 D(p->level--);
7084 return NULL;
7085 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007086 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007087 int _mark = p->mark;
7088 { // '(' pattern ')'
7089 if (p->error_indicator) {
7090 D(p->level--);
7091 return NULL;
7092 }
7093 D(fprintf(stderr, "%*c> group_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7094 Token * _literal;
7095 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007096 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007097 if (
7098 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7099 &&
7100 (pattern = pattern_rule(p)) // pattern
7101 &&
7102 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7103 )
7104 {
7105 D(fprintf(stderr, "%*c+ group_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' pattern ')'"));
7106 _res = pattern;
7107 if (_res == NULL && PyErr_Occurred()) {
7108 p->error_indicator = 1;
7109 D(p->level--);
7110 return NULL;
7111 }
7112 goto done;
7113 }
7114 p->mark = _mark;
7115 D(fprintf(stderr, "%*c%s group_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' pattern ')'"));
7117 }
7118 _res = NULL;
7119 done:
7120 D(p->level--);
7121 return _res;
7122}
7123
7124// sequence_pattern: '[' maybe_sequence_pattern? ']' | '(' open_sequence_pattern? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007125static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007126sequence_pattern_rule(Parser *p)
7127{
7128 D(p->level++);
7129 if (p->error_indicator) {
7130 D(p->level--);
7131 return NULL;
7132 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007133 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007134 int _mark = p->mark;
7135 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7136 p->error_indicator = 1;
7137 D(p->level--);
7138 return NULL;
7139 }
7140 int _start_lineno = p->tokens[_mark]->lineno;
7141 UNUSED(_start_lineno); // Only used by EXTRA macro
7142 int _start_col_offset = p->tokens[_mark]->col_offset;
7143 UNUSED(_start_col_offset); // Only used by EXTRA macro
7144 { // '[' maybe_sequence_pattern? ']'
7145 if (p->error_indicator) {
7146 D(p->level--);
7147 return NULL;
7148 }
7149 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7150 Token * _literal;
7151 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007152 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007153 if (
7154 (_literal = _PyPegen_expect_token(p, 9)) // token='['
7155 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007156 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007157 &&
7158 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
7159 )
7160 {
7161 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7162 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7163 if (_token == NULL) {
7164 D(p->level--);
7165 return NULL;
7166 }
7167 int _end_lineno = _token->end_lineno;
7168 UNUSED(_end_lineno); // Only used by EXTRA macro
7169 int _end_col_offset = _token->end_col_offset;
7170 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007171 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007172 if (_res == NULL && PyErr_Occurred()) {
7173 p->error_indicator = 1;
7174 D(p->level--);
7175 return NULL;
7176 }
7177 goto done;
7178 }
7179 p->mark = _mark;
7180 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'"));
7182 }
7183 { // '(' open_sequence_pattern? ')'
7184 if (p->error_indicator) {
7185 D(p->level--);
7186 return NULL;
7187 }
7188 D(fprintf(stderr, "%*c> sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7189 Token * _literal;
7190 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007191 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007192 if (
7193 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7194 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007195 (patterns = open_sequence_pattern_rule(p), 1) // open_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007196 &&
7197 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7198 )
7199 {
7200 D(fprintf(stderr, "%*c+ sequence_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7201 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7202 if (_token == NULL) {
7203 D(p->level--);
7204 return NULL;
7205 }
7206 int _end_lineno = _token->end_lineno;
7207 UNUSED(_end_lineno); // Only used by EXTRA macro
7208 int _end_col_offset = _token->end_col_offset;
7209 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007210 _res = _PyAST_MatchSequence ( patterns , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007211 if (_res == NULL && PyErr_Occurred()) {
7212 p->error_indicator = 1;
7213 D(p->level--);
7214 return NULL;
7215 }
7216 goto done;
7217 }
7218 p->mark = _mark;
7219 D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'"));
7221 }
7222 _res = NULL;
7223 done:
7224 D(p->level--);
7225 return _res;
7226}
7227
7228// open_sequence_pattern: maybe_star_pattern ',' maybe_sequence_pattern?
7229static asdl_seq*
7230open_sequence_pattern_rule(Parser *p)
7231{
7232 D(p->level++);
7233 if (p->error_indicator) {
7234 D(p->level--);
7235 return NULL;
7236 }
7237 asdl_seq* _res = NULL;
7238 int _mark = p->mark;
7239 { // maybe_star_pattern ',' maybe_sequence_pattern?
7240 if (p->error_indicator) {
7241 D(p->level--);
7242 return NULL;
7243 }
7244 D(fprintf(stderr, "%*c> open_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7245 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007246 pattern_ty pattern;
7247 void *patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007248 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007249 (pattern = maybe_star_pattern_rule(p)) // maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007250 &&
7251 (_literal = _PyPegen_expect_token(p, 12)) // token=','
7252 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007253 (patterns = maybe_sequence_pattern_rule(p), 1) // maybe_sequence_pattern?
Brandt Bucher145bf262021-02-26 14:51:55 -08007254 )
7255 {
7256 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 +10007257 _res = _PyPegen_seq_insert_in_front ( p , pattern , patterns );
Brandt Bucher145bf262021-02-26 14:51:55 -08007258 if (_res == NULL && PyErr_Occurred()) {
7259 p->error_indicator = 1;
7260 D(p->level--);
7261 return NULL;
7262 }
7263 goto done;
7264 }
7265 p->mark = _mark;
7266 D(fprintf(stderr, "%*c%s open_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern ',' maybe_sequence_pattern?"));
7268 }
7269 _res = NULL;
7270 done:
7271 D(p->level--);
7272 return _res;
7273}
7274
7275// maybe_sequence_pattern: ','.maybe_star_pattern+ ','?
7276static asdl_seq*
7277maybe_sequence_pattern_rule(Parser *p)
7278{
7279 D(p->level++);
7280 if (p->error_indicator) {
7281 D(p->level--);
7282 return NULL;
7283 }
7284 asdl_seq* _res = NULL;
7285 int _mark = p->mark;
7286 { // ','.maybe_star_pattern+ ','?
7287 if (p->error_indicator) {
7288 D(p->level--);
7289 return NULL;
7290 }
7291 D(fprintf(stderr, "%*c> maybe_sequence_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7292 void *_opt_var;
7293 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007294 asdl_seq * patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007295 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007296 (patterns = _gather_57_rule(p)) // ','.maybe_star_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007297 &&
7298 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7299 )
7300 {
7301 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 +10007302 _res = patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007303 if (_res == NULL && PyErr_Occurred()) {
7304 p->error_indicator = 1;
7305 D(p->level--);
7306 return NULL;
7307 }
7308 goto done;
7309 }
7310 p->mark = _mark;
7311 D(fprintf(stderr, "%*c%s maybe_sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.maybe_star_pattern+ ','?"));
7313 }
7314 _res = NULL;
7315 done:
7316 D(p->level--);
7317 return _res;
7318}
7319
7320// maybe_star_pattern: star_pattern | pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007321static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007322maybe_star_pattern_rule(Parser *p)
7323{
7324 D(p->level++);
7325 if (p->error_indicator) {
7326 D(p->level--);
7327 return NULL;
7328 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007329 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007330 int _mark = p->mark;
7331 { // star_pattern
7332 if (p->error_indicator) {
7333 D(p->level--);
7334 return NULL;
7335 }
7336 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 +10007337 pattern_ty star_pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007338 if (
7339 (star_pattern_var = star_pattern_rule(p)) // star_pattern
7340 )
7341 {
7342 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_pattern"));
7343 _res = star_pattern_var;
7344 goto done;
7345 }
7346 p->mark = _mark;
7347 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern"));
7349 }
7350 { // pattern
7351 if (p->error_indicator) {
7352 D(p->level--);
7353 return NULL;
7354 }
7355 D(fprintf(stderr, "%*c> maybe_star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pattern"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007356 pattern_ty pattern_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007357 if (
7358 (pattern_var = pattern_rule(p)) // pattern
7359 )
7360 {
7361 D(fprintf(stderr, "%*c+ maybe_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern"));
7362 _res = pattern_var;
7363 goto done;
7364 }
7365 p->mark = _mark;
7366 D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern"));
7368 }
7369 _res = NULL;
7370 done:
7371 D(p->level--);
7372 return _res;
7373}
7374
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007375// star_pattern: '*' pattern_capture_target | '*' wildcard_pattern
7376static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007377star_pattern_rule(Parser *p)
7378{
7379 D(p->level++);
7380 if (p->error_indicator) {
7381 D(p->level--);
7382 return NULL;
7383 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007384 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007385 int _mark = p->mark;
7386 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7387 p->error_indicator = 1;
7388 D(p->level--);
7389 return NULL;
7390 }
7391 int _start_lineno = p->tokens[_mark]->lineno;
7392 UNUSED(_start_lineno); // Only used by EXTRA macro
7393 int _start_col_offset = p->tokens[_mark]->col_offset;
7394 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007395 { // '*' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007396 if (p->error_indicator) {
7397 D(p->level--);
7398 return NULL;
7399 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007400 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 -08007401 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007402 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007403 if (
7404 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7405 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007406 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007407 )
7408 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007409 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 -08007410 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7411 if (_token == NULL) {
7412 D(p->level--);
7413 return NULL;
7414 }
7415 int _end_lineno = _token->end_lineno;
7416 UNUSED(_end_lineno); // Only used by EXTRA macro
7417 int _end_col_offset = _token->end_col_offset;
7418 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007419 _res = _PyAST_MatchStar ( target -> v . Name . id , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007420 if (_res == NULL && PyErr_Occurred()) {
7421 p->error_indicator = 1;
7422 D(p->level--);
7423 return NULL;
7424 }
7425 goto done;
7426 }
7427 p->mark = _mark;
7428 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target"));
7430 }
7431 { // '*' wildcard_pattern
7432 if (p->error_indicator) {
7433 D(p->level--);
7434 return NULL;
7435 }
7436 D(fprintf(stderr, "%*c> star_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7437 Token * _literal;
7438 pattern_ty wildcard_pattern_var;
7439 if (
7440 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
7441 &&
7442 (wildcard_pattern_var = wildcard_pattern_rule(p)) // wildcard_pattern
7443 )
7444 {
7445 D(fprintf(stderr, "%*c+ star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' wildcard_pattern"));
7446 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7447 if (_token == NULL) {
7448 D(p->level--);
7449 return NULL;
7450 }
7451 int _end_lineno = _token->end_lineno;
7452 UNUSED(_end_lineno); // Only used by EXTRA macro
7453 int _end_col_offset = _token->end_col_offset;
7454 UNUSED(_end_col_offset); // Only used by EXTRA macro
7455 _res = _PyAST_MatchStar ( NULL , EXTRA );
7456 if (_res == NULL && PyErr_Occurred()) {
7457 p->error_indicator = 1;
7458 D(p->level--);
7459 return NULL;
7460 }
7461 goto done;
7462 }
7463 p->mark = _mark;
7464 D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7465 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' wildcard_pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007466 }
7467 _res = NULL;
7468 done:
7469 D(p->level--);
7470 return _res;
7471}
7472
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007473// mapping_pattern:
7474// | '{' '}'
7475// | '{' double_star_pattern ','? '}'
7476// | '{' items_pattern ',' double_star_pattern ','? '}'
7477// | '{' items_pattern ','? '}'
7478static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007479mapping_pattern_rule(Parser *p)
7480{
7481 D(p->level++);
7482 if (p->error_indicator) {
7483 D(p->level--);
7484 return NULL;
7485 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007486 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007487 int _mark = p->mark;
7488 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7489 p->error_indicator = 1;
7490 D(p->level--);
7491 return NULL;
7492 }
7493 int _start_lineno = p->tokens[_mark]->lineno;
7494 UNUSED(_start_lineno); // Only used by EXTRA macro
7495 int _start_col_offset = p->tokens[_mark]->col_offset;
7496 UNUSED(_start_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007497 { // '{' '}'
Brandt Bucher145bf262021-02-26 14:51:55 -08007498 if (p->error_indicator) {
7499 D(p->level--);
7500 return NULL;
7501 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007502 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007503 Token * _literal;
7504 Token * _literal_1;
Brandt Bucher145bf262021-02-26 14:51:55 -08007505 if (
7506 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7507 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08007508 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7509 )
7510 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007511 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007512 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7513 if (_token == NULL) {
7514 D(p->level--);
7515 return NULL;
7516 }
7517 int _end_lineno = _token->end_lineno;
7518 UNUSED(_end_lineno); // Only used by EXTRA macro
7519 int _end_col_offset = _token->end_col_offset;
7520 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007521 _res = _PyAST_MatchMapping ( NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007522 if (_res == NULL && PyErr_Occurred()) {
7523 p->error_indicator = 1;
7524 D(p->level--);
7525 return NULL;
7526 }
7527 goto done;
7528 }
7529 p->mark = _mark;
7530 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'"));
7532 }
7533 { // '{' double_star_pattern ','? '}'
7534 if (p->error_indicator) {
7535 D(p->level--);
7536 return NULL;
7537 }
7538 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7539 Token * _literal;
7540 Token * _literal_1;
7541 void *_opt_var;
7542 UNUSED(_opt_var); // Silence compiler warnings
7543 expr_ty rest;
7544 if (
7545 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7546 &&
7547 (rest = double_star_pattern_rule(p)) // double_star_pattern
7548 &&
7549 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7550 &&
7551 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7552 )
7553 {
7554 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7555 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7556 if (_token == NULL) {
7557 D(p->level--);
7558 return NULL;
7559 }
7560 int _end_lineno = _token->end_lineno;
7561 UNUSED(_end_lineno); // Only used by EXTRA macro
7562 int _end_col_offset = _token->end_col_offset;
7563 UNUSED(_end_col_offset); // Only used by EXTRA macro
7564 _res = _PyAST_MatchMapping ( NULL , NULL , rest -> v . Name . id , EXTRA );
7565 if (_res == NULL && PyErr_Occurred()) {
7566 p->error_indicator = 1;
7567 D(p->level--);
7568 return NULL;
7569 }
7570 goto done;
7571 }
7572 p->mark = _mark;
7573 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'"));
7575 }
7576 { // '{' items_pattern ',' double_star_pattern ','? '}'
7577 if (p->error_indicator) {
7578 D(p->level--);
7579 return NULL;
7580 }
7581 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7582 Token * _literal;
7583 Token * _literal_1;
7584 Token * _literal_2;
7585 void *_opt_var;
7586 UNUSED(_opt_var); // Silence compiler warnings
7587 asdl_seq* items;
7588 expr_ty rest;
7589 if (
7590 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7591 &&
7592 (items = items_pattern_rule(p)) // items_pattern
7593 &&
7594 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7595 &&
7596 (rest = double_star_pattern_rule(p)) // double_star_pattern
7597 &&
7598 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7599 &&
7600 (_literal_2 = _PyPegen_expect_token(p, 26)) // token='}'
7601 )
7602 {
7603 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7604 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7605 if (_token == NULL) {
7606 D(p->level--);
7607 return NULL;
7608 }
7609 int _end_lineno = _token->end_lineno;
7610 UNUSED(_end_lineno); // Only used by EXTRA macro
7611 int _end_col_offset = _token->end_col_offset;
7612 UNUSED(_end_col_offset); // Only used by EXTRA macro
7613 _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 );
7614 if (_res == NULL && PyErr_Occurred()) {
7615 p->error_indicator = 1;
7616 D(p->level--);
7617 return NULL;
7618 }
7619 goto done;
7620 }
7621 p->mark = _mark;
7622 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7623 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'"));
7624 }
7625 { // '{' items_pattern ','? '}'
7626 if (p->error_indicator) {
7627 D(p->level--);
7628 return NULL;
7629 }
7630 D(fprintf(stderr, "%*c> mapping_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7631 Token * _literal;
7632 Token * _literal_1;
7633 void *_opt_var;
7634 UNUSED(_opt_var); // Silence compiler warnings
7635 asdl_seq* items;
7636 if (
7637 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
7638 &&
7639 (items = items_pattern_rule(p)) // items_pattern
7640 &&
7641 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7642 &&
7643 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
7644 )
7645 {
7646 D(fprintf(stderr, "%*c+ mapping_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' items_pattern ','? '}'"));
7647 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7648 if (_token == NULL) {
7649 D(p->level--);
7650 return NULL;
7651 }
7652 int _end_lineno = _token->end_lineno;
7653 UNUSED(_end_lineno); // Only used by EXTRA macro
7654 int _end_col_offset = _token->end_col_offset;
7655 UNUSED(_end_col_offset); // Only used by EXTRA macro
7656 _res = _PyAST_MatchMapping ( CHECK ( asdl_expr_seq * , _PyPegen_get_pattern_keys ( p , items ) ) , CHECK ( asdl_pattern_seq * , _PyPegen_get_patterns ( p , items ) ) , NULL , EXTRA );
7657 if (_res == NULL && PyErr_Occurred()) {
7658 p->error_indicator = 1;
7659 D(p->level--);
7660 return NULL;
7661 }
7662 goto done;
7663 }
7664 p->mark = _mark;
7665 D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7666 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007667 }
7668 _res = NULL;
7669 done:
7670 D(p->level--);
7671 return _res;
7672}
7673
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007674// items_pattern: ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007675static asdl_seq*
7676items_pattern_rule(Parser *p)
7677{
7678 D(p->level++);
7679 if (p->error_indicator) {
7680 D(p->level--);
7681 return NULL;
7682 }
7683 asdl_seq* _res = NULL;
7684 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007685 { // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007686 if (p->error_indicator) {
7687 D(p->level--);
7688 return NULL;
7689 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007690 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 -07007691 asdl_seq * _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007692 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07007693 (_gather_59_var = _gather_59_rule(p)) // ','.key_value_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08007694 )
7695 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007696 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 -07007697 _res = _gather_59_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08007698 goto done;
7699 }
7700 p->mark = _mark;
7701 D(fprintf(stderr, "%*c%s items_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.key_value_pattern+"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007703 }
7704 _res = NULL;
7705 done:
7706 D(p->level--);
7707 return _res;
7708}
7709
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007710// key_value_pattern: (literal_expr | attr) ':' pattern
7711static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08007712key_value_pattern_rule(Parser *p)
7713{
7714 D(p->level++);
7715 if (p->error_indicator) {
7716 D(p->level--);
7717 return NULL;
7718 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007719 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007720 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007721 { // (literal_expr | attr) ':' pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007722 if (p->error_indicator) {
7723 D(p->level--);
7724 return NULL;
7725 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007726 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 -08007727 Token * _literal;
7728 void *key;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007729 pattern_ty pattern;
Brandt Bucher145bf262021-02-26 14:51:55 -08007730 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007731 (key = _tmp_61_rule(p)) // literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007732 &&
7733 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
7734 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007735 (pattern = pattern_rule(p)) // pattern
Brandt Bucher145bf262021-02-26 14:51:55 -08007736 )
7737 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007738 D(fprintf(stderr, "%*c+ key_value_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(literal_expr | attr) ':' pattern"));
7739 _res = _PyPegen_key_pattern_pair ( p , key , pattern );
Brandt Bucher145bf262021-02-26 14:51:55 -08007740 if (_res == NULL && PyErr_Occurred()) {
7741 p->error_indicator = 1;
7742 D(p->level--);
7743 return NULL;
7744 }
7745 goto done;
7746 }
7747 p->mark = _mark;
7748 D(fprintf(stderr, "%*c%s key_value_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(literal_expr | attr) ':' pattern"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007750 }
7751 _res = NULL;
7752 done:
7753 D(p->level--);
7754 return _res;
7755}
7756
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007757// double_star_pattern: '**' pattern_capture_target
7758static expr_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007759double_star_pattern_rule(Parser *p)
7760{
7761 D(p->level++);
7762 if (p->error_indicator) {
7763 D(p->level--);
7764 return NULL;
7765 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007766 expr_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007767 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007768 { // '**' pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007769 if (p->error_indicator) {
7770 D(p->level--);
7771 return NULL;
7772 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007773 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 -08007774 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007775 expr_ty target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007776 if (
7777 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
7778 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007779 (target = pattern_capture_target_rule(p)) // pattern_capture_target
Brandt Bucher145bf262021-02-26 14:51:55 -08007780 )
7781 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007782 D(fprintf(stderr, "%*c+ double_star_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' pattern_capture_target"));
7783 _res = target;
Brandt Bucher145bf262021-02-26 14:51:55 -08007784 if (_res == NULL && PyErr_Occurred()) {
7785 p->error_indicator = 1;
7786 D(p->level--);
7787 return NULL;
7788 }
7789 goto done;
7790 }
7791 p->mark = _mark;
7792 D(fprintf(stderr, "%*c%s double_star_pattern[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' pattern_capture_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -08007794 }
7795 _res = NULL;
7796 done:
7797 D(p->level--);
7798 return _res;
7799}
7800
7801// class_pattern:
7802// | name_or_attr '(' ')'
7803// | name_or_attr '(' positional_patterns ','? ')'
7804// | name_or_attr '(' keyword_patterns ','? ')'
7805// | name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007806static pattern_ty
Brandt Bucher145bf262021-02-26 14:51:55 -08007807class_pattern_rule(Parser *p)
7808{
7809 D(p->level++);
7810 if (p->error_indicator) {
7811 D(p->level--);
7812 return NULL;
7813 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007814 pattern_ty _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08007815 int _mark = p->mark;
7816 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7817 p->error_indicator = 1;
7818 D(p->level--);
7819 return NULL;
7820 }
7821 int _start_lineno = p->tokens[_mark]->lineno;
7822 UNUSED(_start_lineno); // Only used by EXTRA macro
7823 int _start_col_offset = p->tokens[_mark]->col_offset;
7824 UNUSED(_start_col_offset); // Only used by EXTRA macro
7825 { // name_or_attr '(' ')'
7826 if (p->error_indicator) {
7827 D(p->level--);
7828 return NULL;
7829 }
7830 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7831 Token * _literal;
7832 Token * _literal_1;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007833 expr_ty cls;
Brandt Bucher145bf262021-02-26 14:51:55 -08007834 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007835 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007836 &&
7837 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7838 &&
7839 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7840 )
7841 {
7842 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' ')'"));
7843 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7844 if (_token == NULL) {
7845 D(p->level--);
7846 return NULL;
7847 }
7848 int _end_lineno = _token->end_lineno;
7849 UNUSED(_end_lineno); // Only used by EXTRA macro
7850 int _end_col_offset = _token->end_col_offset;
7851 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007852 _res = _PyAST_MatchClass ( cls , NULL , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007853 if (_res == NULL && PyErr_Occurred()) {
7854 p->error_indicator = 1;
7855 D(p->level--);
7856 return NULL;
7857 }
7858 goto done;
7859 }
7860 p->mark = _mark;
7861 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'"));
7863 }
7864 { // name_or_attr '(' positional_patterns ','? ')'
7865 if (p->error_indicator) {
7866 D(p->level--);
7867 return NULL;
7868 }
7869 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7870 Token * _literal;
7871 Token * _literal_1;
7872 void *_opt_var;
7873 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007874 expr_ty cls;
7875 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007876 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007877 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007878 &&
7879 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7880 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007881 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007882 &&
7883 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7884 &&
7885 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7886 )
7887 {
7888 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7889 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7890 if (_token == NULL) {
7891 D(p->level--);
7892 return NULL;
7893 }
7894 int _end_lineno = _token->end_lineno;
7895 UNUSED(_end_lineno); // Only used by EXTRA macro
7896 int _end_col_offset = _token->end_col_offset;
7897 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007898 _res = _PyAST_MatchClass ( cls , patterns , NULL , NULL , EXTRA );
Brandt Bucher145bf262021-02-26 14:51:55 -08007899 if (_res == NULL && PyErr_Occurred()) {
7900 p->error_indicator = 1;
7901 D(p->level--);
7902 return NULL;
7903 }
7904 goto done;
7905 }
7906 p->mark = _mark;
7907 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'"));
7909 }
7910 { // name_or_attr '(' keyword_patterns ','? ')'
7911 if (p->error_indicator) {
7912 D(p->level--);
7913 return NULL;
7914 }
7915 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7916 Token * _literal;
7917 Token * _literal_1;
7918 void *_opt_var;
7919 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007920 expr_ty cls;
7921 asdl_seq* keywords;
Brandt Bucher145bf262021-02-26 14:51:55 -08007922 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007923 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007924 &&
7925 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7926 &&
7927 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7928 &&
7929 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7930 &&
7931 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
7932 )
7933 {
7934 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7935 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7936 if (_token == NULL) {
7937 D(p->level--);
7938 return NULL;
7939 }
7940 int _end_lineno = _token->end_lineno;
7941 UNUSED(_end_lineno); // Only used by EXTRA macro
7942 int _end_col_offset = _token->end_col_offset;
7943 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007944 _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 -08007945 if (_res == NULL && PyErr_Occurred()) {
7946 p->error_indicator = 1;
7947 D(p->level--);
7948 return NULL;
7949 }
7950 goto done;
7951 }
7952 p->mark = _mark;
7953 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
7954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'"));
7955 }
7956 { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'
7957 if (p->error_indicator) {
7958 D(p->level--);
7959 return NULL;
7960 }
7961 D(fprintf(stderr, "%*c> class_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7962 Token * _literal;
7963 Token * _literal_1;
7964 Token * _literal_2;
7965 void *_opt_var;
7966 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007967 expr_ty cls;
7968 asdl_seq* keywords;
7969 asdl_pattern_seq* patterns;
Brandt Bucher145bf262021-02-26 14:51:55 -08007970 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007971 (cls = name_or_attr_rule(p)) // name_or_attr
Brandt Bucher145bf262021-02-26 14:51:55 -08007972 &&
7973 (_literal = _PyPegen_expect_token(p, 7)) // token='('
7974 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007975 (patterns = positional_patterns_rule(p)) // positional_patterns
Brandt Bucher145bf262021-02-26 14:51:55 -08007976 &&
7977 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
7978 &&
7979 (keywords = keyword_patterns_rule(p)) // keyword_patterns
7980 &&
7981 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
7982 &&
7983 (_literal_2 = _PyPegen_expect_token(p, 8)) // token=')'
7984 )
7985 {
7986 D(fprintf(stderr, "%*c+ class_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
7987 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7988 if (_token == NULL) {
7989 D(p->level--);
7990 return NULL;
7991 }
7992 int _end_lineno = _token->end_lineno;
7993 UNUSED(_end_lineno); // Only used by EXTRA macro
7994 int _end_col_offset = _token->end_col_offset;
7995 UNUSED(_end_col_offset); // Only used by EXTRA macro
Nick Coghlan1e7b8582021-04-29 15:58:44 +10007996 _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 -08007997 if (_res == NULL && PyErr_Occurred()) {
7998 p->error_indicator = 1;
7999 D(p->level--);
8000 return NULL;
8001 }
8002 goto done;
8003 }
8004 p->mark = _mark;
8005 D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'"));
8007 }
8008 _res = NULL;
8009 done:
8010 D(p->level--);
8011 return _res;
8012}
8013
8014// positional_patterns: ','.pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008015static asdl_pattern_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008016positional_patterns_rule(Parser *p)
8017{
8018 D(p->level++);
8019 if (p->error_indicator) {
8020 D(p->level--);
8021 return NULL;
8022 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008023 asdl_pattern_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008024 int _mark = p->mark;
8025 { // ','.pattern+
8026 if (p->error_indicator) {
8027 D(p->level--);
8028 return NULL;
8029 }
8030 D(fprintf(stderr, "%*c> positional_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008031 asdl_pattern_seq* args;
Brandt Bucher145bf262021-02-26 14:51:55 -08008032 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008033 (args = (asdl_pattern_seq*)_gather_62_rule(p)) // ','.pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008034 )
8035 {
8036 D(fprintf(stderr, "%*c+ positional_patterns[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.pattern+"));
8037 _res = args;
8038 if (_res == NULL && PyErr_Occurred()) {
8039 p->error_indicator = 1;
8040 D(p->level--);
8041 return NULL;
8042 }
8043 goto done;
8044 }
8045 p->mark = _mark;
8046 D(fprintf(stderr, "%*c%s positional_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.pattern+"));
8048 }
8049 _res = NULL;
8050 done:
8051 D(p->level--);
8052 return _res;
8053}
8054
8055// keyword_patterns: ','.keyword_pattern+
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008056static asdl_seq*
Brandt Bucher145bf262021-02-26 14:51:55 -08008057keyword_patterns_rule(Parser *p)
8058{
8059 D(p->level++);
8060 if (p->error_indicator) {
8061 D(p->level--);
8062 return NULL;
8063 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008064 asdl_seq* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008065 int _mark = p->mark;
8066 { // ','.keyword_pattern+
8067 if (p->error_indicator) {
8068 D(p->level--);
8069 return NULL;
8070 }
8071 D(fprintf(stderr, "%*c> keyword_patterns[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.keyword_pattern+"));
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008072 asdl_seq * _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008073 if (
Brandt Bucherdbe60ee2021-04-29 17:19:28 -07008074 (_gather_64_var = _gather_64_rule(p)) // ','.keyword_pattern+
Brandt Bucher145bf262021-02-26 14:51:55 -08008075 )
8076 {
8077 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 -07008078 _res = _gather_64_var;
Brandt Bucher145bf262021-02-26 14:51:55 -08008079 goto done;
8080 }
8081 p->mark = _mark;
8082 D(fprintf(stderr, "%*c%s keyword_patterns[%d-%d]: %s failed!\n", p->level, ' ',
8083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.keyword_pattern+"));
8084 }
8085 _res = NULL;
8086 done:
8087 D(p->level--);
8088 return _res;
8089}
8090
8091// keyword_pattern: NAME '=' pattern
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008092static KeyPatternPair*
Brandt Bucher145bf262021-02-26 14:51:55 -08008093keyword_pattern_rule(Parser *p)
8094{
8095 D(p->level++);
8096 if (p->error_indicator) {
8097 D(p->level--);
8098 return NULL;
8099 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008100 KeyPatternPair* _res = NULL;
Brandt Bucher145bf262021-02-26 14:51:55 -08008101 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -08008102 { // NAME '=' pattern
8103 if (p->error_indicator) {
8104 D(p->level--);
8105 return NULL;
8106 }
8107 D(fprintf(stderr, "%*c> keyword_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' pattern"));
8108 Token * _literal;
8109 expr_ty arg;
Nick Coghlan1e7b8582021-04-29 15:58:44 +10008110 pattern_ty value;
Brandt Bucher145bf262021-02-26 14:51:55 -08008111 if (
8112 (arg = _PyPegen_name_token(p)) // NAME
8113 &&
8114 (_literal = _PyPegen_expect_token(p, 22)) // token='='
8115 &&
8116 (value = pattern_rule(p)) // pattern
8117 )
8118 {
8119 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 +10008120 _res = _PyPegen_key_pattern_pair ( p , arg , value );
Brandt Bucher145bf262021-02-26 14:51:55 -08008121 if (_res == NULL && PyErr_Occurred()) {
8122 p->error_indicator = 1;
8123 D(p->level--);
8124 return NULL;
8125 }
8126 goto done;
8127 }
8128 p->mark = _mark;
8129 D(fprintf(stderr, "%*c%s keyword_pattern[%d-%d]: %s failed!\n", p->level, ' ',
8130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' pattern"));
8131 }
8132 _res = NULL;
8133 done:
8134 D(p->level--);
8135 return _res;
8136}
8137
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008138// return_stmt: 'return' star_expressions?
8139static stmt_ty
8140return_stmt_rule(Parser *p)
8141{
8142 D(p->level++);
8143 if (p->error_indicator) {
8144 D(p->level--);
8145 return NULL;
8146 }
8147 stmt_ty _res = NULL;
8148 int _mark = p->mark;
8149 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8150 p->error_indicator = 1;
8151 D(p->level--);
8152 return NULL;
8153 }
8154 int _start_lineno = p->tokens[_mark]->lineno;
8155 UNUSED(_start_lineno); // Only used by EXTRA macro
8156 int _start_col_offset = p->tokens[_mark]->col_offset;
8157 UNUSED(_start_col_offset); // Only used by EXTRA macro
8158 { // 'return' star_expressions?
8159 if (p->error_indicator) {
8160 D(p->level--);
8161 return NULL;
8162 }
8163 D(fprintf(stderr, "%*c> return_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8164 Token * _keyword;
8165 void *a;
8166 if (
8167 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
8168 &&
8169 (a = star_expressions_rule(p), 1) // star_expressions?
8170 )
8171 {
8172 D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
8173 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8174 if (_token == NULL) {
8175 D(p->level--);
8176 return NULL;
8177 }
8178 int _end_lineno = _token->end_lineno;
8179 UNUSED(_end_lineno); // Only used by EXTRA macro
8180 int _end_col_offset = _token->end_col_offset;
8181 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008182 _res = _PyAST_Return ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008183 if (_res == NULL && PyErr_Occurred()) {
8184 p->error_indicator = 1;
8185 D(p->level--);
8186 return NULL;
8187 }
8188 goto done;
8189 }
8190 p->mark = _mark;
8191 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
8193 }
8194 _res = NULL;
8195 done:
8196 D(p->level--);
8197 return _res;
8198}
8199
8200// raise_stmt: 'raise' expression ['from' expression] | 'raise'
8201static stmt_ty
8202raise_stmt_rule(Parser *p)
8203{
8204 D(p->level++);
8205 if (p->error_indicator) {
8206 D(p->level--);
8207 return NULL;
8208 }
8209 stmt_ty _res = NULL;
8210 int _mark = p->mark;
8211 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8212 p->error_indicator = 1;
8213 D(p->level--);
8214 return NULL;
8215 }
8216 int _start_lineno = p->tokens[_mark]->lineno;
8217 UNUSED(_start_lineno); // Only used by EXTRA macro
8218 int _start_col_offset = p->tokens[_mark]->col_offset;
8219 UNUSED(_start_col_offset); // Only used by EXTRA macro
8220 { // 'raise' expression ['from' expression]
8221 if (p->error_indicator) {
8222 D(p->level--);
8223 return NULL;
8224 }
8225 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8226 Token * _keyword;
8227 expr_ty a;
8228 void *b;
8229 if (
8230 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8231 &&
8232 (a = expression_rule(p)) // expression
8233 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008234 (b = _tmp_66_rule(p), 1) // ['from' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008235 )
8236 {
8237 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
8238 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8239 if (_token == NULL) {
8240 D(p->level--);
8241 return NULL;
8242 }
8243 int _end_lineno = _token->end_lineno;
8244 UNUSED(_end_lineno); // Only used by EXTRA macro
8245 int _end_col_offset = _token->end_col_offset;
8246 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008247 _res = _PyAST_Raise ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008248 if (_res == NULL && PyErr_Occurred()) {
8249 p->error_indicator = 1;
8250 D(p->level--);
8251 return NULL;
8252 }
8253 goto done;
8254 }
8255 p->mark = _mark;
8256 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
8258 }
8259 { // 'raise'
8260 if (p->error_indicator) {
8261 D(p->level--);
8262 return NULL;
8263 }
8264 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
8265 Token * _keyword;
8266 if (
8267 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
8268 )
8269 {
8270 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
8271 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8272 if (_token == NULL) {
8273 D(p->level--);
8274 return NULL;
8275 }
8276 int _end_lineno = _token->end_lineno;
8277 UNUSED(_end_lineno); // Only used by EXTRA macro
8278 int _end_col_offset = _token->end_col_offset;
8279 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008280 _res = _PyAST_Raise ( NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008281 if (_res == NULL && PyErr_Occurred()) {
8282 p->error_indicator = 1;
8283 D(p->level--);
8284 return NULL;
8285 }
8286 goto done;
8287 }
8288 p->mark = _mark;
8289 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
8290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
8291 }
8292 _res = NULL;
8293 done:
8294 D(p->level--);
8295 return _res;
8296}
8297
8298// function_def: decorators function_def_raw | function_def_raw
8299static stmt_ty
8300function_def_rule(Parser *p)
8301{
8302 D(p->level++);
8303 if (p->error_indicator) {
8304 D(p->level--);
8305 return NULL;
8306 }
8307 stmt_ty _res = NULL;
8308 int _mark = p->mark;
8309 { // decorators function_def_raw
8310 if (p->error_indicator) {
8311 D(p->level--);
8312 return NULL;
8313 }
8314 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 +01008315 asdl_expr_seq* d;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008316 stmt_ty f;
8317 if (
8318 (d = decorators_rule(p)) // decorators
8319 &&
8320 (f = function_def_raw_rule(p)) // function_def_raw
8321 )
8322 {
8323 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators function_def_raw"));
8324 _res = _PyPegen_function_def_decorators ( p , d , f );
8325 if (_res == NULL && PyErr_Occurred()) {
8326 p->error_indicator = 1;
8327 D(p->level--);
8328 return NULL;
8329 }
8330 goto done;
8331 }
8332 p->mark = _mark;
8333 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
8335 }
8336 { // function_def_raw
8337 if (p->error_indicator) {
8338 D(p->level--);
8339 return NULL;
8340 }
8341 D(fprintf(stderr, "%*c> function_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8342 stmt_ty function_def_raw_var;
8343 if (
8344 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
8345 )
8346 {
8347 D(fprintf(stderr, "%*c+ function_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "function_def_raw"));
8348 _res = function_def_raw_var;
8349 goto done;
8350 }
8351 p->mark = _mark;
8352 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
8353 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
8354 }
8355 _res = NULL;
8356 done:
8357 D(p->level--);
8358 return _res;
8359}
8360
8361// function_def_raw:
Pablo Galindo56c95df2021-04-21 15:28:21 +01008362// | invalid_def_raw
Pablo Galindo58fb1562021-02-02 19:54:22 +00008363// | 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
8364// | ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008365static stmt_ty
8366function_def_raw_rule(Parser *p)
8367{
8368 D(p->level++);
8369 if (p->error_indicator) {
8370 D(p->level--);
8371 return NULL;
8372 }
8373 stmt_ty _res = NULL;
8374 int _mark = p->mark;
8375 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8376 p->error_indicator = 1;
8377 D(p->level--);
8378 return NULL;
8379 }
8380 int _start_lineno = p->tokens[_mark]->lineno;
8381 UNUSED(_start_lineno); // Only used by EXTRA macro
8382 int _start_col_offset = p->tokens[_mark]->col_offset;
8383 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01008384 if (p->call_invalid_rules) { // invalid_def_raw
8385 if (p->error_indicator) {
8386 D(p->level--);
8387 return NULL;
8388 }
8389 D(fprintf(stderr, "%*c> function_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8390 void *invalid_def_raw_var;
8391 if (
8392 (invalid_def_raw_var = invalid_def_raw_rule(p)) // invalid_def_raw
8393 )
8394 {
8395 D(fprintf(stderr, "%*c+ function_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_def_raw"));
8396 _res = invalid_def_raw_var;
8397 goto done;
8398 }
8399 p->mark = _mark;
8400 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
8401 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw"));
8402 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008403 { // 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008404 if (p->error_indicator) {
8405 D(p->level--);
8406 return NULL;
8407 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008408 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 +01008409 Token * _keyword;
8410 Token * _literal;
8411 Token * _literal_1;
8412 Token * _literal_2;
8413 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008414 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008415 expr_ty n;
8416 void *params;
8417 void *tc;
8418 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008419 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008420 &&
8421 (n = _PyPegen_name_token(p)) // NAME
8422 &&
8423 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8424 &&
8425 (params = params_rule(p), 1) // params?
8426 &&
8427 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8428 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008429 (a = _tmp_67_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008430 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008431 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008432 &&
8433 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8434 &&
8435 (b = block_rule(p)) // block
8436 )
8437 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008438 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 +01008439 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8440 if (_token == NULL) {
8441 D(p->level--);
8442 return NULL;
8443 }
8444 int _end_lineno = _token->end_lineno;
8445 UNUSED(_end_lineno); // Only used by EXTRA macro
8446 int _end_col_offset = _token->end_col_offset;
8447 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008448 _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 +01008449 if (_res == NULL && PyErr_Occurred()) {
8450 p->error_indicator = 1;
8451 D(p->level--);
8452 return NULL;
8453 }
8454 goto done;
8455 }
8456 p->mark = _mark;
8457 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008458 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008459 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008460 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008461 if (p->error_indicator) {
8462 D(p->level--);
8463 return NULL;
8464 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00008465 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 +01008466 Token * _keyword;
8467 Token * _literal;
8468 Token * _literal_1;
8469 Token * _literal_2;
8470 void *a;
8471 Token * async_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008472 asdl_stmt_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008473 expr_ty n;
8474 void *params;
8475 void *tc;
8476 if (
8477 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
8478 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008479 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008480 &&
8481 (n = _PyPegen_name_token(p)) // NAME
8482 &&
8483 (_literal = _PyPegen_expect_token(p, 7)) // token='('
8484 &&
8485 (params = params_rule(p), 1) // params?
8486 &&
8487 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
8488 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008489 (a = _tmp_68_rule(p), 1) // ['->' expression]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008490 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00008491 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008492 &&
8493 (tc = func_type_comment_rule(p), 1) // func_type_comment?
8494 &&
8495 (b = block_rule(p)) // block
8496 )
8497 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00008498 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 +01008499 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8500 if (_token == NULL) {
8501 D(p->level--);
8502 return NULL;
8503 }
8504 int _end_lineno = _token->end_lineno;
8505 UNUSED(_end_lineno); // Only used by EXTRA macro
8506 int _end_col_offset = _token->end_col_offset;
8507 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02008508 _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 +01008509 if (_res == NULL && PyErr_Occurred()) {
8510 p->error_indicator = 1;
8511 D(p->level--);
8512 return NULL;
8513 }
8514 goto done;
8515 }
8516 p->mark = _mark;
8517 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00008518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] &&':' func_type_comment? block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008519 }
8520 _res = NULL;
8521 done:
8522 D(p->level--);
8523 return _res;
8524}
8525
8526// func_type_comment:
8527// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8528// | invalid_double_type_comments
8529// | TYPE_COMMENT
8530static Token*
8531func_type_comment_rule(Parser *p)
8532{
8533 D(p->level++);
8534 if (p->error_indicator) {
8535 D(p->level--);
8536 return NULL;
8537 }
8538 Token* _res = NULL;
8539 int _mark = p->mark;
8540 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
8541 if (p->error_indicator) {
8542 D(p->level--);
8543 return NULL;
8544 }
8545 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8546 Token * newline_var;
8547 Token * t;
8548 if (
8549 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
8550 &&
8551 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8552 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008553 _PyPegen_lookahead(1, _tmp_69_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008554 )
8555 {
8556 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8557 _res = t;
8558 if (_res == NULL && PyErr_Occurred()) {
8559 p->error_indicator = 1;
8560 D(p->level--);
8561 return NULL;
8562 }
8563 goto done;
8564 }
8565 p->mark = _mark;
8566 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8567 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
8568 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008569 if (p->call_invalid_rules) { // invalid_double_type_comments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008570 if (p->error_indicator) {
8571 D(p->level--);
8572 return NULL;
8573 }
8574 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8575 void *invalid_double_type_comments_var;
8576 if (
8577 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
8578 )
8579 {
8580 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_double_type_comments"));
8581 _res = invalid_double_type_comments_var;
8582 goto done;
8583 }
8584 p->mark = _mark;
8585 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
8587 }
8588 { // TYPE_COMMENT
8589 if (p->error_indicator) {
8590 D(p->level--);
8591 return NULL;
8592 }
8593 D(fprintf(stderr, "%*c> func_type_comment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8594 Token * type_comment_var;
8595 if (
8596 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
8597 )
8598 {
8599 D(fprintf(stderr, "%*c+ func_type_comment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT"));
8600 _res = type_comment_var;
8601 goto done;
8602 }
8603 p->mark = _mark;
8604 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
8605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
8606 }
8607 _res = NULL;
8608 done:
8609 D(p->level--);
8610 return _res;
8611}
8612
8613// params: invalid_parameters | parameters
8614static arguments_ty
8615params_rule(Parser *p)
8616{
8617 D(p->level++);
8618 if (p->error_indicator) {
8619 D(p->level--);
8620 return NULL;
8621 }
8622 arguments_ty _res = NULL;
8623 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02008624 if (p->call_invalid_rules) { // invalid_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008625 if (p->error_indicator) {
8626 D(p->level--);
8627 return NULL;
8628 }
8629 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8630 void *invalid_parameters_var;
8631 if (
8632 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
8633 )
8634 {
8635 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
8636 _res = invalid_parameters_var;
8637 goto done;
8638 }
8639 p->mark = _mark;
8640 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8641 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
8642 }
8643 { // parameters
8644 if (p->error_indicator) {
8645 D(p->level--);
8646 return NULL;
8647 }
8648 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
8649 arguments_ty parameters_var;
8650 if (
8651 (parameters_var = parameters_rule(p)) // parameters
8652 )
8653 {
8654 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
8655 _res = parameters_var;
8656 goto done;
8657 }
8658 p->mark = _mark;
8659 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
8660 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
8661 }
8662 _res = NULL;
8663 done:
8664 D(p->level--);
8665 return _res;
8666}
8667
8668// parameters:
8669// | slash_no_default param_no_default* param_with_default* star_etc?
8670// | slash_with_default param_with_default* star_etc?
8671// | param_no_default+ param_with_default* star_etc?
8672// | param_with_default+ star_etc?
8673// | star_etc
8674static arguments_ty
8675parameters_rule(Parser *p)
8676{
8677 D(p->level++);
8678 if (p->error_indicator) {
8679 D(p->level--);
8680 return NULL;
8681 }
8682 arguments_ty _res = NULL;
8683 int _mark = p->mark;
8684 { // slash_no_default param_no_default* param_with_default* star_etc?
8685 if (p->error_indicator) {
8686 D(p->level--);
8687 return NULL;
8688 }
8689 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 +01008690 asdl_arg_seq* a;
8691 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008692 asdl_seq * c;
8693 void *d;
8694 if (
8695 (a = slash_no_default_rule(p)) // slash_no_default
8696 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008697 (b = (asdl_arg_seq*)_loop0_70_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008698 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008699 (c = _loop0_71_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008700 &&
8701 (d = star_etc_rule(p), 1) // star_etc?
8702 )
8703 {
8704 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?"));
8705 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
8706 if (_res == NULL && PyErr_Occurred()) {
8707 p->error_indicator = 1;
8708 D(p->level--);
8709 return NULL;
8710 }
8711 goto done;
8712 }
8713 p->mark = _mark;
8714 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
8716 }
8717 { // slash_with_default param_with_default* star_etc?
8718 if (p->error_indicator) {
8719 D(p->level--);
8720 return NULL;
8721 }
8722 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8723 SlashWithDefault* a;
8724 asdl_seq * b;
8725 void *c;
8726 if (
8727 (a = slash_with_default_rule(p)) // slash_with_default
8728 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008729 (b = _loop0_72_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008730 &&
8731 (c = star_etc_rule(p), 1) // star_etc?
8732 )
8733 {
8734 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8735 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
8736 if (_res == NULL && PyErr_Occurred()) {
8737 p->error_indicator = 1;
8738 D(p->level--);
8739 return NULL;
8740 }
8741 goto done;
8742 }
8743 p->mark = _mark;
8744 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
8746 }
8747 { // param_no_default+ param_with_default* star_etc?
8748 if (p->error_indicator) {
8749 D(p->level--);
8750 return NULL;
8751 }
8752 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01008753 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008754 asdl_seq * b;
8755 void *c;
8756 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008757 (a = (asdl_arg_seq*)_loop1_73_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008758 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008759 (b = _loop0_74_rule(p)) // param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008760 &&
8761 (c = star_etc_rule(p), 1) // star_etc?
8762 )
8763 {
8764 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8765 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
8766 if (_res == NULL && PyErr_Occurred()) {
8767 p->error_indicator = 1;
8768 D(p->level--);
8769 return NULL;
8770 }
8771 goto done;
8772 }
8773 p->mark = _mark;
8774 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8775 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
8776 }
8777 { // param_with_default+ star_etc?
8778 if (p->error_indicator) {
8779 D(p->level--);
8780 return NULL;
8781 }
8782 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8783 asdl_seq * a;
8784 void *b;
8785 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008786 (a = _loop1_75_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008787 &&
8788 (b = star_etc_rule(p), 1) // star_etc?
8789 )
8790 {
8791 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
8792 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
8793 if (_res == NULL && PyErr_Occurred()) {
8794 p->error_indicator = 1;
8795 D(p->level--);
8796 return NULL;
8797 }
8798 goto done;
8799 }
8800 p->mark = _mark;
8801 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
8803 }
8804 { // star_etc
8805 if (p->error_indicator) {
8806 D(p->level--);
8807 return NULL;
8808 }
8809 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
8810 StarEtc* a;
8811 if (
8812 (a = star_etc_rule(p)) // star_etc
8813 )
8814 {
8815 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
8816 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
8817 if (_res == NULL && PyErr_Occurred()) {
8818 p->error_indicator = 1;
8819 D(p->level--);
8820 return NULL;
8821 }
8822 goto done;
8823 }
8824 p->mark = _mark;
8825 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
8826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
8827 }
8828 _res = NULL;
8829 done:
8830 D(p->level--);
8831 return _res;
8832}
8833
8834// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoa5634c42020-09-16 19:42:00 +01008835static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008836slash_no_default_rule(Parser *p)
8837{
8838 D(p->level++);
8839 if (p->error_indicator) {
8840 D(p->level--);
8841 return NULL;
8842 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01008843 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008844 int _mark = p->mark;
8845 { // param_no_default+ '/' ','
8846 if (p->error_indicator) {
8847 D(p->level--);
8848 return NULL;
8849 }
8850 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8851 Token * _literal;
8852 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008853 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008854 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008855 (a = (asdl_arg_seq*)_loop1_76_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008856 &&
8857 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8858 &&
8859 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8860 )
8861 {
8862 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' ','"));
8863 _res = a;
8864 if (_res == NULL && PyErr_Occurred()) {
8865 p->error_indicator = 1;
8866 D(p->level--);
8867 return NULL;
8868 }
8869 goto done;
8870 }
8871 p->mark = _mark;
8872 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
8874 }
8875 { // param_no_default+ '/' &')'
8876 if (p->error_indicator) {
8877 D(p->level--);
8878 return NULL;
8879 }
8880 D(fprintf(stderr, "%*c> slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8881 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +01008882 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008883 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008884 (a = (asdl_arg_seq*)_loop1_77_rule(p)) // param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008885 &&
8886 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8887 &&
8888 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8889 )
8890 {
8891 D(fprintf(stderr, "%*c+ slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ '/' &')'"));
8892 _res = a;
8893 if (_res == NULL && PyErr_Occurred()) {
8894 p->error_indicator = 1;
8895 D(p->level--);
8896 return NULL;
8897 }
8898 goto done;
8899 }
8900 p->mark = _mark;
8901 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
8902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
8903 }
8904 _res = NULL;
8905 done:
8906 D(p->level--);
8907 return _res;
8908}
8909
8910// slash_with_default:
8911// | param_no_default* param_with_default+ '/' ','
8912// | param_no_default* param_with_default+ '/' &')'
8913static SlashWithDefault*
8914slash_with_default_rule(Parser *p)
8915{
8916 D(p->level++);
8917 if (p->error_indicator) {
8918 D(p->level--);
8919 return NULL;
8920 }
8921 SlashWithDefault* _res = NULL;
8922 int _mark = p->mark;
8923 { // param_no_default* param_with_default+ '/' ','
8924 if (p->error_indicator) {
8925 D(p->level--);
8926 return NULL;
8927 }
8928 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8929 Token * _literal;
8930 Token * _literal_1;
8931 asdl_seq * a;
8932 asdl_seq * b;
8933 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008934 (a = _loop0_78_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008935 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008936 (b = _loop1_79_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008937 &&
8938 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8939 &&
8940 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
8941 )
8942 {
8943 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 +01008944 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008945 if (_res == NULL && PyErr_Occurred()) {
8946 p->error_indicator = 1;
8947 D(p->level--);
8948 return NULL;
8949 }
8950 goto done;
8951 }
8952 p->mark = _mark;
8953 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
8955 }
8956 { // param_no_default* param_with_default+ '/' &')'
8957 if (p->error_indicator) {
8958 D(p->level--);
8959 return NULL;
8960 }
8961 D(fprintf(stderr, "%*c> slash_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8962 Token * _literal;
8963 asdl_seq * a;
8964 asdl_seq * b;
8965 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08008966 (a = _loop0_80_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008967 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08008968 (b = _loop1_81_rule(p)) // param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008969 &&
8970 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
8971 &&
8972 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
8973 )
8974 {
8975 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 +01008976 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01008977 if (_res == NULL && PyErr_Occurred()) {
8978 p->error_indicator = 1;
8979 D(p->level--);
8980 return NULL;
8981 }
8982 goto done;
8983 }
8984 p->mark = _mark;
8985 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
8986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
8987 }
8988 _res = NULL;
8989 done:
8990 D(p->level--);
8991 return _res;
8992}
8993
8994// star_etc:
8995// | '*' param_no_default param_maybe_default* kwds?
8996// | '*' ',' param_maybe_default+ kwds?
8997// | kwds
8998// | invalid_star_etc
8999static StarEtc*
9000star_etc_rule(Parser *p)
9001{
9002 D(p->level++);
9003 if (p->error_indicator) {
9004 D(p->level--);
9005 return NULL;
9006 }
9007 StarEtc* _res = NULL;
9008 int _mark = p->mark;
9009 { // '*' param_no_default param_maybe_default* kwds?
9010 if (p->error_indicator) {
9011 D(p->level--);
9012 return NULL;
9013 }
9014 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9015 Token * _literal;
9016 arg_ty a;
9017 asdl_seq * b;
9018 void *c;
9019 if (
9020 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9021 &&
9022 (a = param_no_default_rule(p)) // param_no_default
9023 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009024 (b = _loop0_82_rule(p)) // param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009025 &&
9026 (c = kwds_rule(p), 1) // kwds?
9027 )
9028 {
9029 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9030 _res = _PyPegen_star_etc ( p , a , b , c );
9031 if (_res == NULL && PyErr_Occurred()) {
9032 p->error_indicator = 1;
9033 D(p->level--);
9034 return NULL;
9035 }
9036 goto done;
9037 }
9038 p->mark = _mark;
9039 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
9041 }
9042 { // '*' ',' param_maybe_default+ kwds?
9043 if (p->error_indicator) {
9044 D(p->level--);
9045 return NULL;
9046 }
9047 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9048 Token * _literal;
9049 Token * _literal_1;
9050 asdl_seq * b;
9051 void *c;
9052 if (
9053 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
9054 &&
9055 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
9056 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009057 (b = _loop1_83_rule(p)) // param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009058 &&
9059 (c = kwds_rule(p), 1) // kwds?
9060 )
9061 {
9062 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9063 _res = _PyPegen_star_etc ( p , NULL , b , c );
9064 if (_res == NULL && PyErr_Occurred()) {
9065 p->error_indicator = 1;
9066 D(p->level--);
9067 return NULL;
9068 }
9069 goto done;
9070 }
9071 p->mark = _mark;
9072 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
9074 }
9075 { // kwds
9076 if (p->error_indicator) {
9077 D(p->level--);
9078 return NULL;
9079 }
9080 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
9081 arg_ty a;
9082 if (
9083 (a = kwds_rule(p)) // kwds
9084 )
9085 {
9086 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
9087 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
9088 if (_res == NULL && PyErr_Occurred()) {
9089 p->error_indicator = 1;
9090 D(p->level--);
9091 return NULL;
9092 }
9093 goto done;
9094 }
9095 p->mark = _mark;
9096 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
9098 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009099 if (p->call_invalid_rules) { // invalid_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009100 if (p->error_indicator) {
9101 D(p->level--);
9102 return NULL;
9103 }
9104 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9105 void *invalid_star_etc_var;
9106 if (
9107 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
9108 )
9109 {
9110 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
9111 _res = invalid_star_etc_var;
9112 goto done;
9113 }
9114 p->mark = _mark;
9115 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
9116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
9117 }
9118 _res = NULL;
9119 done:
9120 D(p->level--);
9121 return _res;
9122}
9123
9124// kwds: '**' param_no_default
9125static arg_ty
9126kwds_rule(Parser *p)
9127{
9128 D(p->level++);
9129 if (p->error_indicator) {
9130 D(p->level--);
9131 return NULL;
9132 }
9133 arg_ty _res = NULL;
9134 int _mark = p->mark;
9135 { // '**' param_no_default
9136 if (p->error_indicator) {
9137 D(p->level--);
9138 return NULL;
9139 }
9140 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9141 Token * _literal;
9142 arg_ty a;
9143 if (
9144 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
9145 &&
9146 (a = param_no_default_rule(p)) // param_no_default
9147 )
9148 {
9149 D(fprintf(stderr, "%*c+ kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
9150 _res = a;
9151 if (_res == NULL && PyErr_Occurred()) {
9152 p->error_indicator = 1;
9153 D(p->level--);
9154 return NULL;
9155 }
9156 goto done;
9157 }
9158 p->mark = _mark;
9159 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
9160 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
9161 }
9162 _res = NULL;
9163 done:
9164 D(p->level--);
9165 return _res;
9166}
9167
9168// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
9169static arg_ty
9170param_no_default_rule(Parser *p)
9171{
9172 D(p->level++);
9173 if (p->error_indicator) {
9174 D(p->level--);
9175 return NULL;
9176 }
9177 arg_ty _res = NULL;
9178 int _mark = p->mark;
9179 { // param ',' TYPE_COMMENT?
9180 if (p->error_indicator) {
9181 D(p->level--);
9182 return NULL;
9183 }
9184 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9185 Token * _literal;
9186 arg_ty a;
9187 void *tc;
9188 if (
9189 (a = param_rule(p)) // param
9190 &&
9191 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9192 &&
9193 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9194 )
9195 {
9196 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
9197 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9198 if (_res == NULL && PyErr_Occurred()) {
9199 p->error_indicator = 1;
9200 D(p->level--);
9201 return NULL;
9202 }
9203 goto done;
9204 }
9205 p->mark = _mark;
9206 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
9208 }
9209 { // param TYPE_COMMENT? &')'
9210 if (p->error_indicator) {
9211 D(p->level--);
9212 return NULL;
9213 }
9214 D(fprintf(stderr, "%*c> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9215 arg_ty a;
9216 void *tc;
9217 if (
9218 (a = param_rule(p)) // param
9219 &&
9220 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9221 &&
9222 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9223 )
9224 {
9225 D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
9226 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
9227 if (_res == NULL && PyErr_Occurred()) {
9228 p->error_indicator = 1;
9229 D(p->level--);
9230 return NULL;
9231 }
9232 goto done;
9233 }
9234 p->mark = _mark;
9235 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
9236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
9237 }
9238 _res = NULL;
9239 done:
9240 D(p->level--);
9241 return _res;
9242}
9243
9244// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
9245static NameDefaultPair*
9246param_with_default_rule(Parser *p)
9247{
9248 D(p->level++);
9249 if (p->error_indicator) {
9250 D(p->level--);
9251 return NULL;
9252 }
9253 NameDefaultPair* _res = NULL;
9254 int _mark = p->mark;
9255 { // param default ',' TYPE_COMMENT?
9256 if (p->error_indicator) {
9257 D(p->level--);
9258 return NULL;
9259 }
9260 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9261 Token * _literal;
9262 arg_ty a;
9263 expr_ty c;
9264 void *tc;
9265 if (
9266 (a = param_rule(p)) // param
9267 &&
9268 (c = default_rule(p)) // default
9269 &&
9270 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9271 &&
9272 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9273 )
9274 {
9275 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9276 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9277 if (_res == NULL && PyErr_Occurred()) {
9278 p->error_indicator = 1;
9279 D(p->level--);
9280 return NULL;
9281 }
9282 goto done;
9283 }
9284 p->mark = _mark;
9285 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
9287 }
9288 { // param default TYPE_COMMENT? &')'
9289 if (p->error_indicator) {
9290 D(p->level--);
9291 return NULL;
9292 }
9293 D(fprintf(stderr, "%*c> param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9294 arg_ty a;
9295 expr_ty c;
9296 void *tc;
9297 if (
9298 (a = param_rule(p)) // param
9299 &&
9300 (c = default_rule(p)) // default
9301 &&
9302 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9303 &&
9304 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9305 )
9306 {
9307 D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9308 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9309 if (_res == NULL && PyErr_Occurred()) {
9310 p->error_indicator = 1;
9311 D(p->level--);
9312 return NULL;
9313 }
9314 goto done;
9315 }
9316 p->mark = _mark;
9317 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
9318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
9319 }
9320 _res = NULL;
9321 done:
9322 D(p->level--);
9323 return _res;
9324}
9325
9326// param_maybe_default:
9327// | param default? ',' TYPE_COMMENT?
9328// | param default? TYPE_COMMENT? &')'
9329static NameDefaultPair*
9330param_maybe_default_rule(Parser *p)
9331{
9332 D(p->level++);
9333 if (p->error_indicator) {
9334 D(p->level--);
9335 return NULL;
9336 }
9337 NameDefaultPair* _res = NULL;
9338 int _mark = p->mark;
9339 { // param default? ',' TYPE_COMMENT?
9340 if (p->error_indicator) {
9341 D(p->level--);
9342 return NULL;
9343 }
9344 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9345 Token * _literal;
9346 arg_ty a;
9347 void *c;
9348 void *tc;
9349 if (
9350 (a = param_rule(p)) // param
9351 &&
9352 (c = default_rule(p), 1) // default?
9353 &&
9354 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9355 &&
9356 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9357 )
9358 {
9359 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9360 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9361 if (_res == NULL && PyErr_Occurred()) {
9362 p->error_indicator = 1;
9363 D(p->level--);
9364 return NULL;
9365 }
9366 goto done;
9367 }
9368 p->mark = _mark;
9369 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9370 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
9371 }
9372 { // param default? TYPE_COMMENT? &')'
9373 if (p->error_indicator) {
9374 D(p->level--);
9375 return NULL;
9376 }
9377 D(fprintf(stderr, "%*c> param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9378 arg_ty a;
9379 void *c;
9380 void *tc;
9381 if (
9382 (a = param_rule(p)) // param
9383 &&
9384 (c = default_rule(p), 1) // default?
9385 &&
9386 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
9387 &&
9388 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
9389 )
9390 {
9391 D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9392 _res = _PyPegen_name_default_pair ( p , a , c , tc );
9393 if (_res == NULL && PyErr_Occurred()) {
9394 p->error_indicator = 1;
9395 D(p->level--);
9396 return NULL;
9397 }
9398 goto done;
9399 }
9400 p->mark = _mark;
9401 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
9402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
9403 }
9404 _res = NULL;
9405 done:
9406 D(p->level--);
9407 return _res;
9408}
9409
9410// param: NAME annotation?
9411static arg_ty
9412param_rule(Parser *p)
9413{
9414 D(p->level++);
9415 if (p->error_indicator) {
9416 D(p->level--);
9417 return NULL;
9418 }
9419 arg_ty _res = NULL;
9420 int _mark = p->mark;
9421 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9422 p->error_indicator = 1;
9423 D(p->level--);
9424 return NULL;
9425 }
9426 int _start_lineno = p->tokens[_mark]->lineno;
9427 UNUSED(_start_lineno); // Only used by EXTRA macro
9428 int _start_col_offset = p->tokens[_mark]->col_offset;
9429 UNUSED(_start_col_offset); // Only used by EXTRA macro
9430 { // NAME annotation?
9431 if (p->error_indicator) {
9432 D(p->level--);
9433 return NULL;
9434 }
9435 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9436 expr_ty a;
9437 void *b;
9438 if (
9439 (a = _PyPegen_name_token(p)) // NAME
9440 &&
9441 (b = annotation_rule(p), 1) // annotation?
9442 )
9443 {
9444 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
9445 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9446 if (_token == NULL) {
9447 D(p->level--);
9448 return NULL;
9449 }
9450 int _end_lineno = _token->end_lineno;
9451 UNUSED(_end_lineno); // Only used by EXTRA macro
9452 int _end_col_offset = _token->end_col_offset;
9453 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009454 _res = _PyAST_arg ( a -> v . Name . id , b , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009455 if (_res == NULL && PyErr_Occurred()) {
9456 p->error_indicator = 1;
9457 D(p->level--);
9458 return NULL;
9459 }
9460 goto done;
9461 }
9462 p->mark = _mark;
9463 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
9464 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
9465 }
9466 _res = NULL;
9467 done:
9468 D(p->level--);
9469 return _res;
9470}
9471
9472// annotation: ':' expression
9473static expr_ty
9474annotation_rule(Parser *p)
9475{
9476 D(p->level++);
9477 if (p->error_indicator) {
9478 D(p->level--);
9479 return NULL;
9480 }
9481 expr_ty _res = NULL;
9482 int _mark = p->mark;
9483 { // ':' expression
9484 if (p->error_indicator) {
9485 D(p->level--);
9486 return NULL;
9487 }
9488 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
9489 Token * _literal;
9490 expr_ty a;
9491 if (
9492 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
9493 &&
9494 (a = expression_rule(p)) // expression
9495 )
9496 {
9497 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
9498 _res = a;
9499 if (_res == NULL && PyErr_Occurred()) {
9500 p->error_indicator = 1;
9501 D(p->level--);
9502 return NULL;
9503 }
9504 goto done;
9505 }
9506 p->mark = _mark;
9507 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
9508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
9509 }
9510 _res = NULL;
9511 done:
9512 D(p->level--);
9513 return _res;
9514}
9515
9516// default: '=' expression
9517static expr_ty
9518default_rule(Parser *p)
9519{
9520 D(p->level++);
9521 if (p->error_indicator) {
9522 D(p->level--);
9523 return NULL;
9524 }
9525 expr_ty _res = NULL;
9526 int _mark = p->mark;
9527 { // '=' expression
9528 if (p->error_indicator) {
9529 D(p->level--);
9530 return NULL;
9531 }
9532 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9533 Token * _literal;
9534 expr_ty a;
9535 if (
9536 (_literal = _PyPegen_expect_token(p, 22)) // token='='
9537 &&
9538 (a = expression_rule(p)) // expression
9539 )
9540 {
9541 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
9542 _res = a;
9543 if (_res == NULL && PyErr_Occurred()) {
9544 p->error_indicator = 1;
9545 D(p->level--);
9546 return NULL;
9547 }
9548 goto done;
9549 }
9550 p->mark = _mark;
9551 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
9552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
9553 }
9554 _res = NULL;
9555 done:
9556 D(p->level--);
9557 return _res;
9558}
9559
9560// decorators: (('@' named_expression NEWLINE))+
Pablo Galindoa5634c42020-09-16 19:42:00 +01009561static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009562decorators_rule(Parser *p)
9563{
9564 D(p->level++);
9565 if (p->error_indicator) {
9566 D(p->level--);
9567 return NULL;
9568 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009569 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009570 int _mark = p->mark;
9571 { // (('@' named_expression NEWLINE))+
9572 if (p->error_indicator) {
9573 D(p->level--);
9574 return NULL;
9575 }
9576 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoa5634c42020-09-16 19:42:00 +01009577 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009578 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009579 (a = (asdl_expr_seq*)_loop1_84_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009580 )
9581 {
9582 D(fprintf(stderr, "%*c+ decorators[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9583 _res = a;
9584 if (_res == NULL && PyErr_Occurred()) {
9585 p->error_indicator = 1;
9586 D(p->level--);
9587 return NULL;
9588 }
9589 goto done;
9590 }
9591 p->mark = _mark;
9592 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
9593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
9594 }
9595 _res = NULL;
9596 done:
9597 D(p->level--);
9598 return _res;
9599}
9600
9601// class_def: decorators class_def_raw | class_def_raw
9602static stmt_ty
9603class_def_rule(Parser *p)
9604{
9605 D(p->level++);
9606 if (p->error_indicator) {
9607 D(p->level--);
9608 return NULL;
9609 }
9610 stmt_ty _res = NULL;
9611 int _mark = p->mark;
9612 { // decorators class_def_raw
9613 if (p->error_indicator) {
9614 D(p->level--);
9615 return NULL;
9616 }
9617 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 +01009618 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009619 stmt_ty b;
9620 if (
9621 (a = decorators_rule(p)) // decorators
9622 &&
9623 (b = class_def_raw_rule(p)) // class_def_raw
9624 )
9625 {
9626 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "decorators class_def_raw"));
9627 _res = _PyPegen_class_def_decorators ( p , a , b );
9628 if (_res == NULL && PyErr_Occurred()) {
9629 p->error_indicator = 1;
9630 D(p->level--);
9631 return NULL;
9632 }
9633 goto done;
9634 }
9635 p->mark = _mark;
9636 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
9638 }
9639 { // class_def_raw
9640 if (p->error_indicator) {
9641 D(p->level--);
9642 return NULL;
9643 }
9644 D(fprintf(stderr, "%*c> class_def[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9645 stmt_ty class_def_raw_var;
9646 if (
9647 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
9648 )
9649 {
9650 D(fprintf(stderr, "%*c+ class_def[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "class_def_raw"));
9651 _res = class_def_raw_var;
9652 goto done;
9653 }
9654 p->mark = _mark;
9655 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
9656 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
9657 }
9658 _res = NULL;
9659 done:
9660 D(p->level--);
9661 return _res;
9662}
9663
Pablo Galindo56c95df2021-04-21 15:28:21 +01009664// class_def_raw: invalid_class_def_raw | 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009665static stmt_ty
9666class_def_raw_rule(Parser *p)
9667{
9668 D(p->level++);
9669 if (p->error_indicator) {
9670 D(p->level--);
9671 return NULL;
9672 }
9673 stmt_ty _res = NULL;
9674 int _mark = p->mark;
9675 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9676 p->error_indicator = 1;
9677 D(p->level--);
9678 return NULL;
9679 }
9680 int _start_lineno = p->tokens[_mark]->lineno;
9681 UNUSED(_start_lineno); // Only used by EXTRA macro
9682 int _start_col_offset = p->tokens[_mark]->col_offset;
9683 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo56c95df2021-04-21 15:28:21 +01009684 if (p->call_invalid_rules) { // invalid_class_def_raw
9685 if (p->error_indicator) {
9686 D(p->level--);
9687 return NULL;
9688 }
9689 D(fprintf(stderr, "%*c> class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9690 void *invalid_class_def_raw_var;
9691 if (
9692 (invalid_class_def_raw_var = invalid_class_def_raw_rule(p)) // invalid_class_def_raw
9693 )
9694 {
9695 D(fprintf(stderr, "%*c+ class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_class_def_raw"));
9696 _res = invalid_class_def_raw_var;
9697 goto done;
9698 }
9699 p->mark = _mark;
9700 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
9701 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw"));
9702 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009703 { // 'class' NAME ['(' arguments? ')'] &&':' block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009704 if (p->error_indicator) {
9705 D(p->level--);
9706 return NULL;
9707 }
Pablo Galindo58fb1562021-02-02 19:54:22 +00009708 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 +01009709 Token * _keyword;
9710 Token * _literal;
9711 expr_ty a;
9712 void *b;
Pablo Galindoa5634c42020-09-16 19:42:00 +01009713 asdl_stmt_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009714 if (
Brandt Bucher145bf262021-02-26 14:51:55 -08009715 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009716 &&
9717 (a = _PyPegen_name_token(p)) // NAME
9718 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009719 (b = _tmp_85_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009720 &&
Pablo Galindo58fb1562021-02-02 19:54:22 +00009721 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009722 &&
9723 (c = block_rule(p)) // block
9724 )
9725 {
Pablo Galindo58fb1562021-02-02 19:54:22 +00009726 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 +01009727 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9728 if (_token == NULL) {
9729 D(p->level--);
9730 return NULL;
9731 }
9732 int _end_lineno = _token->end_lineno;
9733 UNUSED(_end_lineno); // Only used by EXTRA macro
9734 int _end_col_offset = _token->end_col_offset;
9735 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009736 _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 +01009737 if (_res == NULL && PyErr_Occurred()) {
9738 p->error_indicator = 1;
9739 D(p->level--);
9740 return NULL;
9741 }
9742 goto done;
9743 }
9744 p->mark = _mark;
9745 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +00009746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] &&':' block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009747 }
9748 _res = NULL;
9749 done:
9750 D(p->level--);
9751 return _res;
9752}
9753
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009754// block: NEWLINE INDENT statements DEDENT | simple_stmts | invalid_block
Pablo Galindoa5634c42020-09-16 19:42:00 +01009755static asdl_stmt_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009756block_rule(Parser *p)
9757{
9758 D(p->level++);
9759 if (p->error_indicator) {
9760 D(p->level--);
9761 return NULL;
9762 }
Pablo Galindoa5634c42020-09-16 19:42:00 +01009763 asdl_stmt_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009764 if (_PyPegen_is_memoized(p, block_type, &_res)) {
9765 D(p->level--);
9766 return _res;
9767 }
9768 int _mark = p->mark;
9769 { // NEWLINE INDENT statements DEDENT
9770 if (p->error_indicator) {
9771 D(p->level--);
9772 return NULL;
9773 }
9774 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 +01009775 asdl_stmt_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009776 Token * dedent_var;
9777 Token * indent_var;
9778 Token * newline_var;
9779 if (
9780 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
9781 &&
9782 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
9783 &&
9784 (a = statements_rule(p)) // statements
9785 &&
9786 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
9787 )
9788 {
9789 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9790 _res = a;
9791 if (_res == NULL && PyErr_Occurred()) {
9792 p->error_indicator = 1;
9793 D(p->level--);
9794 return NULL;
9795 }
9796 goto done;
9797 }
9798 p->mark = _mark;
9799 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
9801 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009802 { // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009803 if (p->error_indicator) {
9804 D(p->level--);
9805 return NULL;
9806 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009807 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9808 asdl_stmt_seq* simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009809 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009810 (simple_stmts_var = simple_stmts_rule(p)) // simple_stmts
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009811 )
9812 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009813 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmts"));
9814 _res = simple_stmts_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009815 goto done;
9816 }
9817 p->mark = _mark;
9818 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +00009819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009820 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +02009821 if (p->call_invalid_rules) { // invalid_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009822 if (p->error_indicator) {
9823 D(p->level--);
9824 return NULL;
9825 }
9826 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9827 void *invalid_block_var;
9828 if (
9829 (invalid_block_var = invalid_block_rule(p)) // invalid_block
9830 )
9831 {
9832 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
9833 _res = invalid_block_var;
9834 goto done;
9835 }
9836 p->mark = _mark;
9837 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
9838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
9839 }
9840 _res = NULL;
9841 done:
9842 _PyPegen_insert_memo(p, _mark, block_type, _res);
9843 D(p->level--);
9844 return _res;
9845}
9846
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009847// star_expressions:
9848// | star_expression ((',' star_expression))+ ','?
9849// | star_expression ','
9850// | star_expression
9851static expr_ty
9852star_expressions_rule(Parser *p)
9853{
9854 D(p->level++);
9855 if (p->error_indicator) {
9856 D(p->level--);
9857 return NULL;
9858 }
9859 expr_ty _res = NULL;
9860 int _mark = p->mark;
9861 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9862 p->error_indicator = 1;
9863 D(p->level--);
9864 return NULL;
9865 }
9866 int _start_lineno = p->tokens[_mark]->lineno;
9867 UNUSED(_start_lineno); // Only used by EXTRA macro
9868 int _start_col_offset = p->tokens[_mark]->col_offset;
9869 UNUSED(_start_col_offset); // Only used by EXTRA macro
9870 { // star_expression ((',' star_expression))+ ','?
9871 if (p->error_indicator) {
9872 D(p->level--);
9873 return NULL;
9874 }
9875 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9876 void *_opt_var;
9877 UNUSED(_opt_var); // Silence compiler warnings
9878 expr_ty a;
9879 asdl_seq * b;
9880 if (
9881 (a = star_expression_rule(p)) // star_expression
9882 &&
Brandt Bucher145bf262021-02-26 14:51:55 -08009883 (b = _loop1_86_rule(p)) // ((',' star_expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009884 &&
9885 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
9886 )
9887 {
9888 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9889 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9890 if (_token == NULL) {
9891 D(p->level--);
9892 return NULL;
9893 }
9894 int _end_lineno = _token->end_lineno;
9895 UNUSED(_end_lineno); // Only used by EXTRA macro
9896 int _end_col_offset = _token->end_col_offset;
9897 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009898 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009899 if (_res == NULL && PyErr_Occurred()) {
9900 p->error_indicator = 1;
9901 D(p->level--);
9902 return NULL;
9903 }
9904 goto done;
9905 }
9906 p->mark = _mark;
9907 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
9909 }
9910 { // star_expression ','
9911 if (p->error_indicator) {
9912 D(p->level--);
9913 return NULL;
9914 }
9915 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9916 Token * _literal;
9917 expr_ty a;
9918 if (
9919 (a = star_expression_rule(p)) // star_expression
9920 &&
9921 (_literal = _PyPegen_expect_token(p, 12)) // token=','
9922 )
9923 {
9924 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
9925 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9926 if (_token == NULL) {
9927 D(p->level--);
9928 return NULL;
9929 }
9930 int _end_lineno = _token->end_lineno;
9931 UNUSED(_end_lineno); // Only used by EXTRA macro
9932 int _end_col_offset = _token->end_col_offset;
9933 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +02009934 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +01009935 if (_res == NULL && PyErr_Occurred()) {
9936 p->error_indicator = 1;
9937 D(p->level--);
9938 return NULL;
9939 }
9940 goto done;
9941 }
9942 p->mark = _mark;
9943 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
9945 }
9946 { // star_expression
9947 if (p->error_indicator) {
9948 D(p->level--);
9949 return NULL;
9950 }
9951 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
9952 expr_ty star_expression_var;
9953 if (
9954 (star_expression_var = star_expression_rule(p)) // star_expression
9955 )
9956 {
9957 D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression"));
9958 _res = star_expression_var;
9959 goto done;
9960 }
9961 p->mark = _mark;
9962 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
9963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
9964 }
9965 _res = NULL;
9966 done:
9967 D(p->level--);
9968 return _res;
9969}
9970
9971// star_expression: '*' bitwise_or | expression
9972static expr_ty
9973star_expression_rule(Parser *p)
9974{
9975 D(p->level++);
9976 if (p->error_indicator) {
9977 D(p->level--);
9978 return NULL;
9979 }
9980 expr_ty _res = NULL;
9981 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
9982 D(p->level--);
9983 return _res;
9984 }
9985 int _mark = p->mark;
9986 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9987 p->error_indicator = 1;
9988 D(p->level--);
9989 return NULL;
9990 }
9991 int _start_lineno = p->tokens[_mark]->lineno;
9992 UNUSED(_start_lineno); // Only used by EXTRA macro
9993 int _start_col_offset = p->tokens[_mark]->col_offset;
9994 UNUSED(_start_col_offset); // Only used by EXTRA macro
9995 { // '*' bitwise_or
9996 if (p->error_indicator) {
9997 D(p->level--);
9998 return NULL;
9999 }
10000 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10001 Token * _literal;
10002 expr_ty a;
10003 if (
10004 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10005 &&
10006 (a = bitwise_or_rule(p)) // bitwise_or
10007 )
10008 {
10009 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10010 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10011 if (_token == NULL) {
10012 D(p->level--);
10013 return NULL;
10014 }
10015 int _end_lineno = _token->end_lineno;
10016 UNUSED(_end_lineno); // Only used by EXTRA macro
10017 int _end_col_offset = _token->end_col_offset;
10018 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010019 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010020 if (_res == NULL && PyErr_Occurred()) {
10021 p->error_indicator = 1;
10022 D(p->level--);
10023 return NULL;
10024 }
10025 goto done;
10026 }
10027 p->mark = _mark;
10028 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10030 }
10031 { // expression
10032 if (p->error_indicator) {
10033 D(p->level--);
10034 return NULL;
10035 }
10036 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10037 expr_ty expression_var;
10038 if (
10039 (expression_var = expression_rule(p)) // expression
10040 )
10041 {
10042 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10043 _res = expression_var;
10044 goto done;
10045 }
10046 p->mark = _mark;
10047 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
10048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10049 }
10050 _res = NULL;
10051 done:
10052 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
10053 D(p->level--);
10054 return _res;
10055}
10056
10057// star_named_expressions: ','.star_named_expression+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010010058static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010059star_named_expressions_rule(Parser *p)
10060{
10061 D(p->level++);
10062 if (p->error_indicator) {
10063 D(p->level--);
10064 return NULL;
10065 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010066 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010067 int _mark = p->mark;
10068 { // ','.star_named_expression+ ','?
10069 if (p->error_indicator) {
10070 D(p->level--);
10071 return NULL;
10072 }
10073 D(fprintf(stderr, "%*c> star_named_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10074 void *_opt_var;
10075 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010010076 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010077 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010078 (a = (asdl_expr_seq*)_gather_87_rule(p)) // ','.star_named_expression+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010079 &&
10080 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10081 )
10082 {
10083 D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
10084 _res = a;
10085 if (_res == NULL && PyErr_Occurred()) {
10086 p->error_indicator = 1;
10087 D(p->level--);
10088 return NULL;
10089 }
10090 goto done;
10091 }
10092 p->mark = _mark;
10093 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
10094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
10095 }
10096 _res = NULL;
10097 done:
10098 D(p->level--);
10099 return _res;
10100}
10101
10102// star_named_expression: '*' bitwise_or | named_expression
10103static expr_ty
10104star_named_expression_rule(Parser *p)
10105{
10106 D(p->level++);
10107 if (p->error_indicator) {
10108 D(p->level--);
10109 return NULL;
10110 }
10111 expr_ty _res = NULL;
10112 int _mark = p->mark;
10113 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10114 p->error_indicator = 1;
10115 D(p->level--);
10116 return NULL;
10117 }
10118 int _start_lineno = p->tokens[_mark]->lineno;
10119 UNUSED(_start_lineno); // Only used by EXTRA macro
10120 int _start_col_offset = p->tokens[_mark]->col_offset;
10121 UNUSED(_start_col_offset); // Only used by EXTRA macro
10122 { // '*' bitwise_or
10123 if (p->error_indicator) {
10124 D(p->level--);
10125 return NULL;
10126 }
10127 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10128 Token * _literal;
10129 expr_ty a;
10130 if (
10131 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
10132 &&
10133 (a = bitwise_or_rule(p)) // bitwise_or
10134 )
10135 {
10136 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
10137 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10138 if (_token == NULL) {
10139 D(p->level--);
10140 return NULL;
10141 }
10142 int _end_lineno = _token->end_lineno;
10143 UNUSED(_end_lineno); // Only used by EXTRA macro
10144 int _end_col_offset = _token->end_col_offset;
10145 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010146 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010147 if (_res == NULL && PyErr_Occurred()) {
10148 p->error_indicator = 1;
10149 D(p->level--);
10150 return NULL;
10151 }
10152 goto done;
10153 }
10154 p->mark = _mark;
10155 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10156 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
10157 }
10158 { // named_expression
10159 if (p->error_indicator) {
10160 D(p->level--);
10161 return NULL;
10162 }
10163 D(fprintf(stderr, "%*c> star_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
10164 expr_ty named_expression_var;
10165 if (
10166 (named_expression_var = named_expression_rule(p)) // named_expression
10167 )
10168 {
10169 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
10170 _res = named_expression_var;
10171 goto done;
10172 }
10173 p->mark = _mark;
10174 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
10176 }
10177 _res = NULL;
10178 done:
10179 D(p->level--);
10180 return _res;
10181}
10182
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010183// assigment_expression: NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010184static expr_ty
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010185assigment_expression_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010186{
10187 D(p->level++);
10188 if (p->error_indicator) {
10189 D(p->level--);
10190 return NULL;
10191 }
10192 expr_ty _res = NULL;
10193 int _mark = p->mark;
10194 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10195 p->error_indicator = 1;
10196 D(p->level--);
10197 return NULL;
10198 }
10199 int _start_lineno = p->tokens[_mark]->lineno;
10200 UNUSED(_start_lineno); // Only used by EXTRA macro
10201 int _start_col_offset = p->tokens[_mark]->col_offset;
10202 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010203 { // NAME ':=' ~ expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010204 if (p->error_indicator) {
10205 D(p->level--);
10206 return NULL;
10207 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010208 D(fprintf(stderr, "%*c> assigment_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010209 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010210 Token * _literal;
10211 expr_ty a;
10212 expr_ty b;
10213 if (
10214 (a = _PyPegen_name_token(p)) // NAME
10215 &&
10216 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
10217 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010218 (_cut_var = 1)
10219 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010220 (b = expression_rule(p)) // expression
10221 )
10222 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010223 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 +010010224 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10225 if (_token == NULL) {
10226 D(p->level--);
10227 return NULL;
10228 }
10229 int _end_lineno = _token->end_lineno;
10230 UNUSED(_end_lineno); // Only used by EXTRA macro
10231 int _end_col_offset = _token->end_col_offset;
10232 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010233 _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010234 if (_res == NULL && PyErr_Occurred()) {
10235 p->error_indicator = 1;
10236 D(p->level--);
10237 return NULL;
10238 }
10239 goto done;
10240 }
10241 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010242 D(fprintf(stderr, "%*c%s assigment_expression[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030010243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
10244 if (_cut_var) {
10245 D(p->level--);
10246 return NULL;
10247 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010248 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070010249 _res = NULL;
10250 done:
10251 D(p->level--);
10252 return _res;
10253}
10254
10255// named_expression: assigment_expression | invalid_named_expression | expression !':='
10256static expr_ty
10257named_expression_rule(Parser *p)
10258{
10259 D(p->level++);
10260 if (p->error_indicator) {
10261 D(p->level--);
10262 return NULL;
10263 }
10264 expr_ty _res = NULL;
10265 int _mark = p->mark;
10266 { // assigment_expression
10267 if (p->error_indicator) {
10268 D(p->level--);
10269 return NULL;
10270 }
10271 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10272 expr_ty assigment_expression_var;
10273 if (
10274 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
10275 )
10276 {
10277 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
10278 _res = assigment_expression_var;
10279 goto done;
10280 }
10281 p->mark = _mark;
10282 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
10284 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010010285 if (p->call_invalid_rules) { // invalid_named_expression
10286 if (p->error_indicator) {
10287 D(p->level--);
10288 return NULL;
10289 }
10290 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10291 void *invalid_named_expression_var;
10292 if (
10293 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
10294 )
10295 {
10296 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_named_expression"));
10297 _res = invalid_named_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, "invalid_named_expression"));
10303 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010304 { // expression !':='
10305 if (p->error_indicator) {
10306 D(p->level--);
10307 return NULL;
10308 }
10309 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10310 expr_ty expression_var;
10311 if (
10312 (expression_var = expression_rule(p)) // expression
10313 &&
10314 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
10315 )
10316 {
10317 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
10318 _res = expression_var;
10319 goto done;
10320 }
10321 p->mark = _mark;
10322 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
10323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
10324 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010325 _res = NULL;
10326 done:
10327 D(p->level--);
10328 return _res;
10329}
10330
10331// annotated_rhs: yield_expr | star_expressions
10332static expr_ty
10333annotated_rhs_rule(Parser *p)
10334{
10335 D(p->level++);
10336 if (p->error_indicator) {
10337 D(p->level--);
10338 return NULL;
10339 }
10340 expr_ty _res = NULL;
10341 int _mark = p->mark;
10342 { // yield_expr
10343 if (p->error_indicator) {
10344 D(p->level--);
10345 return NULL;
10346 }
10347 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10348 expr_ty yield_expr_var;
10349 if (
10350 (yield_expr_var = yield_expr_rule(p)) // yield_expr
10351 )
10352 {
10353 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
10354 _res = yield_expr_var;
10355 goto done;
10356 }
10357 p->mark = _mark;
10358 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10359 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
10360 }
10361 { // star_expressions
10362 if (p->error_indicator) {
10363 D(p->level--);
10364 return NULL;
10365 }
10366 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10367 expr_ty star_expressions_var;
10368 if (
10369 (star_expressions_var = star_expressions_rule(p)) // star_expressions
10370 )
10371 {
10372 D(fprintf(stderr, "%*c+ annotated_rhs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
10373 _res = star_expressions_var;
10374 goto done;
10375 }
10376 p->mark = _mark;
10377 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
10378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
10379 }
10380 _res = NULL;
10381 done:
10382 D(p->level--);
10383 return _res;
10384}
10385
10386// expressions: expression ((',' expression))+ ','? | expression ',' | expression
10387static expr_ty
10388expressions_rule(Parser *p)
10389{
10390 D(p->level++);
10391 if (p->error_indicator) {
10392 D(p->level--);
10393 return NULL;
10394 }
10395 expr_ty _res = NULL;
10396 int _mark = p->mark;
10397 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10398 p->error_indicator = 1;
10399 D(p->level--);
10400 return NULL;
10401 }
10402 int _start_lineno = p->tokens[_mark]->lineno;
10403 UNUSED(_start_lineno); // Only used by EXTRA macro
10404 int _start_col_offset = p->tokens[_mark]->col_offset;
10405 UNUSED(_start_col_offset); // Only used by EXTRA macro
10406 { // expression ((',' expression))+ ','?
10407 if (p->error_indicator) {
10408 D(p->level--);
10409 return NULL;
10410 }
10411 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10412 void *_opt_var;
10413 UNUSED(_opt_var); // Silence compiler warnings
10414 expr_ty a;
10415 asdl_seq * b;
10416 if (
10417 (a = expression_rule(p)) // expression
10418 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010419 (b = _loop1_89_rule(p)) // ((',' expression))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010420 &&
10421 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
10422 )
10423 {
10424 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
10425 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10426 if (_token == NULL) {
10427 D(p->level--);
10428 return NULL;
10429 }
10430 int _end_lineno = _token->end_lineno;
10431 UNUSED(_end_lineno); // Only used by EXTRA macro
10432 int _end_col_offset = _token->end_col_offset;
10433 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010434 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010435 if (_res == NULL && PyErr_Occurred()) {
10436 p->error_indicator = 1;
10437 D(p->level--);
10438 return NULL;
10439 }
10440 goto done;
10441 }
10442 p->mark = _mark;
10443 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
10445 }
10446 { // expression ','
10447 if (p->error_indicator) {
10448 D(p->level--);
10449 return NULL;
10450 }
10451 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
10452 Token * _literal;
10453 expr_ty a;
10454 if (
10455 (a = expression_rule(p)) // expression
10456 &&
10457 (_literal = _PyPegen_expect_token(p, 12)) // token=','
10458 )
10459 {
10460 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
10461 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10462 if (_token == NULL) {
10463 D(p->level--);
10464 return NULL;
10465 }
10466 int _end_lineno = _token->end_lineno;
10467 UNUSED(_end_lineno); // Only used by EXTRA macro
10468 int _end_col_offset = _token->end_col_offset;
10469 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010470 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010471 if (_res == NULL && PyErr_Occurred()) {
10472 p->error_indicator = 1;
10473 D(p->level--);
10474 return NULL;
10475 }
10476 goto done;
10477 }
10478 p->mark = _mark;
10479 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
10481 }
10482 { // expression
10483 if (p->error_indicator) {
10484 D(p->level--);
10485 return NULL;
10486 }
10487 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
10488 expr_ty expression_var;
10489 if (
10490 (expression_var = expression_rule(p)) // expression
10491 )
10492 {
10493 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
10494 _res = expression_var;
10495 goto done;
10496 }
10497 p->mark = _mark;
10498 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
10499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
10500 }
10501 _res = NULL;
10502 done:
10503 D(p->level--);
10504 return _res;
10505}
10506
Pablo Galindob2802482021-04-15 21:38:45 +010010507// expression:
10508// | invalid_expression
10509// | disjunction 'if' disjunction 'else' expression
10510// | disjunction
10511// | lambdef
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010512static expr_ty
10513expression_rule(Parser *p)
10514{
10515 D(p->level++);
10516 if (p->error_indicator) {
10517 D(p->level--);
10518 return NULL;
10519 }
10520 expr_ty _res = NULL;
10521 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
10522 D(p->level--);
10523 return _res;
10524 }
10525 int _mark = p->mark;
10526 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10527 p->error_indicator = 1;
10528 D(p->level--);
10529 return NULL;
10530 }
10531 int _start_lineno = p->tokens[_mark]->lineno;
10532 UNUSED(_start_lineno); // Only used by EXTRA macro
10533 int _start_col_offset = p->tokens[_mark]->col_offset;
10534 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob2802482021-04-15 21:38:45 +010010535 if (p->call_invalid_rules) { // invalid_expression
10536 if (p->error_indicator) {
10537 D(p->level--);
10538 return NULL;
10539 }
10540 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10541 void *invalid_expression_var;
10542 if (
10543 (invalid_expression_var = invalid_expression_rule(p)) // invalid_expression
10544 )
10545 {
10546 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_expression"));
10547 _res = invalid_expression_var;
10548 goto done;
10549 }
10550 p->mark = _mark;
10551 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
10553 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010554 { // disjunction 'if' disjunction 'else' expression
10555 if (p->error_indicator) {
10556 D(p->level--);
10557 return NULL;
10558 }
10559 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10560 Token * _keyword;
10561 Token * _keyword_1;
10562 expr_ty a;
10563 expr_ty b;
10564 expr_ty c;
10565 if (
10566 (a = disjunction_rule(p)) // disjunction
10567 &&
10568 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
10569 &&
10570 (b = disjunction_rule(p)) // disjunction
10571 &&
10572 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
10573 &&
10574 (c = expression_rule(p)) // expression
10575 )
10576 {
10577 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10578 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10579 if (_token == NULL) {
10580 D(p->level--);
10581 return NULL;
10582 }
10583 int _end_lineno = _token->end_lineno;
10584 UNUSED(_end_lineno); // Only used by EXTRA macro
10585 int _end_col_offset = _token->end_col_offset;
10586 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010587 _res = _PyAST_IfExp ( b , a , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010588 if (_res == NULL && PyErr_Occurred()) {
10589 p->error_indicator = 1;
10590 D(p->level--);
10591 return NULL;
10592 }
10593 goto done;
10594 }
10595 p->mark = _mark;
10596 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
10598 }
10599 { // disjunction
10600 if (p->error_indicator) {
10601 D(p->level--);
10602 return NULL;
10603 }
10604 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
10605 expr_ty disjunction_var;
10606 if (
10607 (disjunction_var = disjunction_rule(p)) // disjunction
10608 )
10609 {
10610 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
10611 _res = disjunction_var;
10612 goto done;
10613 }
10614 p->mark = _mark;
10615 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
10617 }
10618 { // lambdef
10619 if (p->error_indicator) {
10620 D(p->level--);
10621 return NULL;
10622 }
10623 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
10624 expr_ty lambdef_var;
10625 if (
10626 (lambdef_var = lambdef_rule(p)) // lambdef
10627 )
10628 {
10629 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
10630 _res = lambdef_var;
10631 goto done;
10632 }
10633 p->mark = _mark;
10634 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
10635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
10636 }
10637 _res = NULL;
10638 done:
10639 _PyPegen_insert_memo(p, _mark, expression_type, _res);
10640 D(p->level--);
10641 return _res;
10642}
10643
10644// lambdef: 'lambda' lambda_params? ':' expression
10645static expr_ty
10646lambdef_rule(Parser *p)
10647{
10648 D(p->level++);
10649 if (p->error_indicator) {
10650 D(p->level--);
10651 return NULL;
10652 }
10653 expr_ty _res = NULL;
10654 int _mark = p->mark;
10655 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10656 p->error_indicator = 1;
10657 D(p->level--);
10658 return NULL;
10659 }
10660 int _start_lineno = p->tokens[_mark]->lineno;
10661 UNUSED(_start_lineno); // Only used by EXTRA macro
10662 int _start_col_offset = p->tokens[_mark]->col_offset;
10663 UNUSED(_start_col_offset); // Only used by EXTRA macro
10664 { // 'lambda' lambda_params? ':' expression
10665 if (p->error_indicator) {
10666 D(p->level--);
10667 return NULL;
10668 }
10669 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10670 Token * _keyword;
10671 Token * _literal;
10672 void *a;
10673 expr_ty b;
10674 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010675 (_keyword = _PyPegen_expect_token(p, 528)) // token='lambda'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010676 &&
10677 (a = lambda_params_rule(p), 1) // lambda_params?
10678 &&
10679 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
10680 &&
10681 (b = expression_rule(p)) // expression
10682 )
10683 {
10684 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10685 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10686 if (_token == NULL) {
10687 D(p->level--);
10688 return NULL;
10689 }
10690 int _end_lineno = _token->end_lineno;
10691 UNUSED(_end_lineno); // Only used by EXTRA macro
10692 int _end_col_offset = _token->end_col_offset;
10693 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020010694 _res = _PyAST_Lambda ( ( a ) ? a : CHECK ( arguments_ty , _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010695 if (_res == NULL && PyErr_Occurred()) {
10696 p->error_indicator = 1;
10697 D(p->level--);
10698 return NULL;
10699 }
10700 goto done;
10701 }
10702 p->mark = _mark;
10703 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
10704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' expression"));
10705 }
10706 _res = NULL;
10707 done:
10708 D(p->level--);
10709 return _res;
10710}
10711
10712// lambda_params: invalid_lambda_parameters | lambda_parameters
10713static arguments_ty
10714lambda_params_rule(Parser *p)
10715{
10716 D(p->level++);
10717 if (p->error_indicator) {
10718 D(p->level--);
10719 return NULL;
10720 }
10721 arguments_ty _res = NULL;
10722 int _mark = p->mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020010723 if (p->call_invalid_rules) { // invalid_lambda_parameters
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010724 if (p->error_indicator) {
10725 D(p->level--);
10726 return NULL;
10727 }
10728 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10729 void *invalid_lambda_parameters_var;
10730 if (
10731 (invalid_lambda_parameters_var = invalid_lambda_parameters_rule(p)) // invalid_lambda_parameters
10732 )
10733 {
10734 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_parameters"));
10735 _res = invalid_lambda_parameters_var;
10736 goto done;
10737 }
10738 p->mark = _mark;
10739 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10740 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters"));
10741 }
10742 { // lambda_parameters
10743 if (p->error_indicator) {
10744 D(p->level--);
10745 return NULL;
10746 }
10747 D(fprintf(stderr, "%*c> lambda_params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10748 arguments_ty lambda_parameters_var;
10749 if (
10750 (lambda_parameters_var = lambda_parameters_rule(p)) // lambda_parameters
10751 )
10752 {
10753 D(fprintf(stderr, "%*c+ lambda_params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_parameters"));
10754 _res = lambda_parameters_var;
10755 goto done;
10756 }
10757 p->mark = _mark;
10758 D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ',
10759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_parameters"));
10760 }
10761 _res = NULL;
10762 done:
10763 D(p->level--);
10764 return _res;
10765}
10766
10767// lambda_parameters:
10768// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10769// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10770// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10771// | lambda_param_with_default+ lambda_star_etc?
10772// | lambda_star_etc
10773static arguments_ty
10774lambda_parameters_rule(Parser *p)
10775{
10776 D(p->level++);
10777 if (p->error_indicator) {
10778 D(p->level--);
10779 return NULL;
10780 }
10781 arguments_ty _res = NULL;
10782 int _mark = p->mark;
10783 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
10784 if (p->error_indicator) {
10785 D(p->level--);
10786 return NULL;
10787 }
10788 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 +010010789 asdl_arg_seq* a;
10790 asdl_arg_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010791 asdl_seq * c;
10792 void *d;
10793 if (
10794 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
10795 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010796 (b = (asdl_arg_seq*)_loop0_90_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010797 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010798 (c = _loop0_91_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010799 &&
10800 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10801 )
10802 {
10803 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?"));
10804 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
10805 if (_res == NULL && PyErr_Occurred()) {
10806 p->error_indicator = 1;
10807 D(p->level--);
10808 return NULL;
10809 }
10810 goto done;
10811 }
10812 p->mark = _mark;
10813 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
10815 }
10816 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
10817 if (p->error_indicator) {
10818 D(p->level--);
10819 return NULL;
10820 }
10821 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?"));
10822 SlashWithDefault* a;
10823 asdl_seq * b;
10824 void *c;
10825 if (
10826 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
10827 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010828 (b = _loop0_92_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010829 &&
10830 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10831 )
10832 {
10833 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10834 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
10835 if (_res == NULL && PyErr_Occurred()) {
10836 p->error_indicator = 1;
10837 D(p->level--);
10838 return NULL;
10839 }
10840 goto done;
10841 }
10842 p->mark = _mark;
10843 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
10845 }
10846 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
10847 if (p->error_indicator) {
10848 D(p->level--);
10849 return NULL;
10850 }
10851 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010010852 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010853 asdl_seq * b;
10854 void *c;
10855 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010856 (a = (asdl_arg_seq*)_loop1_93_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010857 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080010858 (b = _loop0_94_rule(p)) // lambda_param_with_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010859 &&
10860 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10861 )
10862 {
10863 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10864 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
10865 if (_res == NULL && PyErr_Occurred()) {
10866 p->error_indicator = 1;
10867 D(p->level--);
10868 return NULL;
10869 }
10870 goto done;
10871 }
10872 p->mark = _mark;
10873 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
10875 }
10876 { // lambda_param_with_default+ lambda_star_etc?
10877 if (p->error_indicator) {
10878 D(p->level--);
10879 return NULL;
10880 }
10881 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10882 asdl_seq * a;
10883 void *b;
10884 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010885 (a = _loop1_95_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010886 &&
10887 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
10888 )
10889 {
10890 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10891 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
10892 if (_res == NULL && PyErr_Occurred()) {
10893 p->error_indicator = 1;
10894 D(p->level--);
10895 return NULL;
10896 }
10897 goto done;
10898 }
10899 p->mark = _mark;
10900 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
10902 }
10903 { // lambda_star_etc
10904 if (p->error_indicator) {
10905 D(p->level--);
10906 return NULL;
10907 }
10908 D(fprintf(stderr, "%*c> lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10909 StarEtc* a;
10910 if (
10911 (a = lambda_star_etc_rule(p)) // lambda_star_etc
10912 )
10913 {
10914 D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_star_etc"));
10915 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
10916 if (_res == NULL && PyErr_Occurred()) {
10917 p->error_indicator = 1;
10918 D(p->level--);
10919 return NULL;
10920 }
10921 goto done;
10922 }
10923 p->mark = _mark;
10924 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
10925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
10926 }
10927 _res = NULL;
10928 done:
10929 D(p->level--);
10930 return _res;
10931}
10932
10933// lambda_slash_no_default:
10934// | lambda_param_no_default+ '/' ','
10935// | lambda_param_no_default+ '/' &':'
Pablo Galindoa5634c42020-09-16 19:42:00 +010010936static asdl_arg_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010937lambda_slash_no_default_rule(Parser *p)
10938{
10939 D(p->level++);
10940 if (p->error_indicator) {
10941 D(p->level--);
10942 return NULL;
10943 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010010944 asdl_arg_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010945 int _mark = p->mark;
10946 { // lambda_param_no_default+ '/' ','
10947 if (p->error_indicator) {
10948 D(p->level--);
10949 return NULL;
10950 }
10951 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10952 Token * _literal;
10953 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010954 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010955 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010956 (a = (asdl_arg_seq*)_loop1_96_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010957 &&
10958 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10959 &&
10960 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
10961 )
10962 {
10963 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10964 _res = a;
10965 if (_res == NULL && PyErr_Occurred()) {
10966 p->error_indicator = 1;
10967 D(p->level--);
10968 return NULL;
10969 }
10970 goto done;
10971 }
10972 p->mark = _mark;
10973 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
10974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
10975 }
10976 { // lambda_param_no_default+ '/' &':'
10977 if (p->error_indicator) {
10978 D(p->level--);
10979 return NULL;
10980 }
10981 D(fprintf(stderr, "%*c> lambda_slash_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10982 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010010983 asdl_arg_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010984 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080010985 (a = (asdl_arg_seq*)_loop1_97_rule(p)) // lambda_param_no_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010010986 &&
10987 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
10988 &&
10989 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
10990 )
10991 {
10992 D(fprintf(stderr, "%*c+ lambda_slash_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
10993 _res = a;
10994 if (_res == NULL && PyErr_Occurred()) {
10995 p->error_indicator = 1;
10996 D(p->level--);
10997 return NULL;
10998 }
10999 goto done;
11000 }
11001 p->mark = _mark;
11002 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
11004 }
11005 _res = NULL;
11006 done:
11007 D(p->level--);
11008 return _res;
11009}
11010
11011// lambda_slash_with_default:
11012// | lambda_param_no_default* lambda_param_with_default+ '/' ','
11013// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
11014static SlashWithDefault*
11015lambda_slash_with_default_rule(Parser *p)
11016{
11017 D(p->level++);
11018 if (p->error_indicator) {
11019 D(p->level--);
11020 return NULL;
11021 }
11022 SlashWithDefault* _res = NULL;
11023 int _mark = p->mark;
11024 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
11025 if (p->error_indicator) {
11026 D(p->level--);
11027 return NULL;
11028 }
11029 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+ '/' ','"));
11030 Token * _literal;
11031 Token * _literal_1;
11032 asdl_seq * a;
11033 asdl_seq * b;
11034 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011035 (a = _loop0_98_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011036 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011037 (b = _loop1_99_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011038 &&
11039 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11040 &&
11041 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11042 )
11043 {
11044 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 +010011045 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011046 if (_res == NULL && PyErr_Occurred()) {
11047 p->error_indicator = 1;
11048 D(p->level--);
11049 return NULL;
11050 }
11051 goto done;
11052 }
11053 p->mark = _mark;
11054 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
11056 }
11057 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
11058 if (p->error_indicator) {
11059 D(p->level--);
11060 return NULL;
11061 }
11062 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+ '/' &':'"));
11063 Token * _literal;
11064 asdl_seq * a;
11065 asdl_seq * b;
11066 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011067 (a = _loop0_100_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011068 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011069 (b = _loop1_101_rule(p)) // lambda_param_with_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011070 &&
11071 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
11072 &&
11073 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11074 )
11075 {
11076 D(fprintf(stderr, "%*c+ lambda_slash_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010011077 _res = _PyPegen_slash_with_default ( p , ( asdl_arg_seq * ) a , b );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011078 if (_res == NULL && PyErr_Occurred()) {
11079 p->error_indicator = 1;
11080 D(p->level--);
11081 return NULL;
11082 }
11083 goto done;
11084 }
11085 p->mark = _mark;
11086 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
11088 }
11089 _res = NULL;
11090 done:
11091 D(p->level--);
11092 return _res;
11093}
11094
11095// lambda_star_etc:
11096// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11097// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
11098// | lambda_kwds
11099// | invalid_lambda_star_etc
11100static StarEtc*
11101lambda_star_etc_rule(Parser *p)
11102{
11103 D(p->level++);
11104 if (p->error_indicator) {
11105 D(p->level--);
11106 return NULL;
11107 }
11108 StarEtc* _res = NULL;
11109 int _mark = p->mark;
11110 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
11111 if (p->error_indicator) {
11112 D(p->level--);
11113 return NULL;
11114 }
11115 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?"));
11116 Token * _literal;
11117 arg_ty a;
11118 asdl_seq * b;
11119 void *c;
11120 if (
11121 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11122 &&
11123 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11124 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011125 (b = _loop0_102_rule(p)) // lambda_param_maybe_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011126 &&
11127 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11128 )
11129 {
11130 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?"));
11131 _res = _PyPegen_star_etc ( p , a , b , c );
11132 if (_res == NULL && PyErr_Occurred()) {
11133 p->error_indicator = 1;
11134 D(p->level--);
11135 return NULL;
11136 }
11137 goto done;
11138 }
11139 p->mark = _mark;
11140 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
11142 }
11143 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
11144 if (p->error_indicator) {
11145 D(p->level--);
11146 return NULL;
11147 }
11148 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11149 Token * _literal;
11150 Token * _literal_1;
11151 asdl_seq * b;
11152 void *c;
11153 if (
11154 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
11155 &&
11156 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
11157 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011158 (b = _loop1_103_rule(p)) // lambda_param_maybe_default+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011159 &&
11160 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
11161 )
11162 {
11163 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11164 _res = _PyPegen_star_etc ( p , NULL , b , c );
11165 if (_res == NULL && PyErr_Occurred()) {
11166 p->error_indicator = 1;
11167 D(p->level--);
11168 return NULL;
11169 }
11170 goto done;
11171 }
11172 p->mark = _mark;
11173 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11174 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
11175 }
11176 { // lambda_kwds
11177 if (p->error_indicator) {
11178 D(p->level--);
11179 return NULL;
11180 }
11181 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11182 arg_ty a;
11183 if (
11184 (a = lambda_kwds_rule(p)) // lambda_kwds
11185 )
11186 {
11187 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_kwds"));
11188 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
11189 if (_res == NULL && PyErr_Occurred()) {
11190 p->error_indicator = 1;
11191 D(p->level--);
11192 return NULL;
11193 }
11194 goto done;
11195 }
11196 p->mark = _mark;
11197 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
11199 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020011200 if (p->call_invalid_rules) { // invalid_lambda_star_etc
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011201 if (p->error_indicator) {
11202 D(p->level--);
11203 return NULL;
11204 }
11205 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11206 void *invalid_lambda_star_etc_var;
11207 if (
11208 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
11209 )
11210 {
11211 D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_lambda_star_etc"));
11212 _res = invalid_lambda_star_etc_var;
11213 goto done;
11214 }
11215 p->mark = _mark;
11216 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
11217 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
11218 }
11219 _res = NULL;
11220 done:
11221 D(p->level--);
11222 return _res;
11223}
11224
11225// lambda_kwds: '**' lambda_param_no_default
11226static arg_ty
11227lambda_kwds_rule(Parser *p)
11228{
11229 D(p->level++);
11230 if (p->error_indicator) {
11231 D(p->level--);
11232 return NULL;
11233 }
11234 arg_ty _res = NULL;
11235 int _mark = p->mark;
11236 { // '**' lambda_param_no_default
11237 if (p->error_indicator) {
11238 D(p->level--);
11239 return NULL;
11240 }
11241 D(fprintf(stderr, "%*c> lambda_kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11242 Token * _literal;
11243 arg_ty a;
11244 if (
11245 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
11246 &&
11247 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
11248 )
11249 {
11250 D(fprintf(stderr, "%*c+ lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param_no_default"));
11251 _res = a;
11252 if (_res == NULL && PyErr_Occurred()) {
11253 p->error_indicator = 1;
11254 D(p->level--);
11255 return NULL;
11256 }
11257 goto done;
11258 }
11259 p->mark = _mark;
11260 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
11261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
11262 }
11263 _res = NULL;
11264 done:
11265 D(p->level--);
11266 return _res;
11267}
11268
11269// lambda_param_no_default: lambda_param ',' | lambda_param &':'
11270static arg_ty
11271lambda_param_no_default_rule(Parser *p)
11272{
11273 D(p->level++);
11274 if (p->error_indicator) {
11275 D(p->level--);
11276 return NULL;
11277 }
11278 arg_ty _res = NULL;
11279 int _mark = p->mark;
11280 { // lambda_param ','
11281 if (p->error_indicator) {
11282 D(p->level--);
11283 return NULL;
11284 }
11285 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11286 Token * _literal;
11287 arg_ty a;
11288 if (
11289 (a = lambda_param_rule(p)) // lambda_param
11290 &&
11291 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11292 )
11293 {
11294 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param ','"));
11295 _res = a;
11296 if (_res == NULL && PyErr_Occurred()) {
11297 p->error_indicator = 1;
11298 D(p->level--);
11299 return NULL;
11300 }
11301 goto done;
11302 }
11303 p->mark = _mark;
11304 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
11306 }
11307 { // lambda_param &':'
11308 if (p->error_indicator) {
11309 D(p->level--);
11310 return NULL;
11311 }
11312 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11313 arg_ty a;
11314 if (
11315 (a = lambda_param_rule(p)) // lambda_param
11316 &&
11317 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11318 )
11319 {
11320 D(fprintf(stderr, "%*c+ lambda_param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
11321 _res = a;
11322 if (_res == NULL && PyErr_Occurred()) {
11323 p->error_indicator = 1;
11324 D(p->level--);
11325 return NULL;
11326 }
11327 goto done;
11328 }
11329 p->mark = _mark;
11330 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
11331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
11332 }
11333 _res = NULL;
11334 done:
11335 D(p->level--);
11336 return _res;
11337}
11338
11339// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
11340static NameDefaultPair*
11341lambda_param_with_default_rule(Parser *p)
11342{
11343 D(p->level++);
11344 if (p->error_indicator) {
11345 D(p->level--);
11346 return NULL;
11347 }
11348 NameDefaultPair* _res = NULL;
11349 int _mark = p->mark;
11350 { // lambda_param default ','
11351 if (p->error_indicator) {
11352 D(p->level--);
11353 return NULL;
11354 }
11355 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11356 Token * _literal;
11357 arg_ty a;
11358 expr_ty c;
11359 if (
11360 (a = lambda_param_rule(p)) // lambda_param
11361 &&
11362 (c = default_rule(p)) // default
11363 &&
11364 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11365 )
11366 {
11367 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
11368 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11369 if (_res == NULL && PyErr_Occurred()) {
11370 p->error_indicator = 1;
11371 D(p->level--);
11372 return NULL;
11373 }
11374 goto done;
11375 }
11376 p->mark = _mark;
11377 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
11379 }
11380 { // lambda_param default &':'
11381 if (p->error_indicator) {
11382 D(p->level--);
11383 return NULL;
11384 }
11385 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11386 arg_ty a;
11387 expr_ty c;
11388 if (
11389 (a = lambda_param_rule(p)) // lambda_param
11390 &&
11391 (c = default_rule(p)) // default
11392 &&
11393 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11394 )
11395 {
11396 D(fprintf(stderr, "%*c+ lambda_param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default &':'"));
11397 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11398 if (_res == NULL && PyErr_Occurred()) {
11399 p->error_indicator = 1;
11400 D(p->level--);
11401 return NULL;
11402 }
11403 goto done;
11404 }
11405 p->mark = _mark;
11406 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
11407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
11408 }
11409 _res = NULL;
11410 done:
11411 D(p->level--);
11412 return _res;
11413}
11414
11415// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
11416static NameDefaultPair*
11417lambda_param_maybe_default_rule(Parser *p)
11418{
11419 D(p->level++);
11420 if (p->error_indicator) {
11421 D(p->level--);
11422 return NULL;
11423 }
11424 NameDefaultPair* _res = NULL;
11425 int _mark = p->mark;
11426 { // lambda_param default? ','
11427 if (p->error_indicator) {
11428 D(p->level--);
11429 return NULL;
11430 }
11431 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11432 Token * _literal;
11433 arg_ty a;
11434 void *c;
11435 if (
11436 (a = lambda_param_rule(p)) // lambda_param
11437 &&
11438 (c = default_rule(p), 1) // default?
11439 &&
11440 (_literal = _PyPegen_expect_token(p, 12)) // token=','
11441 )
11442 {
11443 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? ','"));
11444 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11445 if (_res == NULL && PyErr_Occurred()) {
11446 p->error_indicator = 1;
11447 D(p->level--);
11448 return NULL;
11449 }
11450 goto done;
11451 }
11452 p->mark = _mark;
11453 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
11455 }
11456 { // lambda_param default? &':'
11457 if (p->error_indicator) {
11458 D(p->level--);
11459 return NULL;
11460 }
11461 D(fprintf(stderr, "%*c> lambda_param_maybe_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11462 arg_ty a;
11463 void *c;
11464 if (
11465 (a = lambda_param_rule(p)) // lambda_param
11466 &&
11467 (c = default_rule(p), 1) // default?
11468 &&
11469 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
11470 )
11471 {
11472 D(fprintf(stderr, "%*c+ lambda_param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param default? &':'"));
11473 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
11474 if (_res == NULL && PyErr_Occurred()) {
11475 p->error_indicator = 1;
11476 D(p->level--);
11477 return NULL;
11478 }
11479 goto done;
11480 }
11481 p->mark = _mark;
11482 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
11483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
11484 }
11485 _res = NULL;
11486 done:
11487 D(p->level--);
11488 return _res;
11489}
11490
11491// lambda_param: NAME
11492static arg_ty
11493lambda_param_rule(Parser *p)
11494{
11495 D(p->level++);
11496 if (p->error_indicator) {
11497 D(p->level--);
11498 return NULL;
11499 }
11500 arg_ty _res = NULL;
11501 int _mark = p->mark;
11502 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11503 p->error_indicator = 1;
11504 D(p->level--);
11505 return NULL;
11506 }
11507 int _start_lineno = p->tokens[_mark]->lineno;
11508 UNUSED(_start_lineno); // Only used by EXTRA macro
11509 int _start_col_offset = p->tokens[_mark]->col_offset;
11510 UNUSED(_start_col_offset); // Only used by EXTRA macro
11511 { // NAME
11512 if (p->error_indicator) {
11513 D(p->level--);
11514 return NULL;
11515 }
11516 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
11517 expr_ty a;
11518 if (
11519 (a = _PyPegen_name_token(p)) // NAME
11520 )
11521 {
11522 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
11523 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11524 if (_token == NULL) {
11525 D(p->level--);
11526 return NULL;
11527 }
11528 int _end_lineno = _token->end_lineno;
11529 UNUSED(_end_lineno); // Only used by EXTRA macro
11530 int _end_col_offset = _token->end_col_offset;
11531 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011532 _res = _PyAST_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011533 if (_res == NULL && PyErr_Occurred()) {
11534 p->error_indicator = 1;
11535 D(p->level--);
11536 return NULL;
11537 }
11538 goto done;
11539 }
11540 p->mark = _mark;
11541 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
11542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
11543 }
11544 _res = NULL;
11545 done:
11546 D(p->level--);
11547 return _res;
11548}
11549
11550// disjunction: conjunction (('or' conjunction))+ | conjunction
11551static expr_ty
11552disjunction_rule(Parser *p)
11553{
11554 D(p->level++);
11555 if (p->error_indicator) {
11556 D(p->level--);
11557 return NULL;
11558 }
11559 expr_ty _res = NULL;
11560 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
11561 D(p->level--);
11562 return _res;
11563 }
11564 int _mark = p->mark;
11565 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11566 p->error_indicator = 1;
11567 D(p->level--);
11568 return NULL;
11569 }
11570 int _start_lineno = p->tokens[_mark]->lineno;
11571 UNUSED(_start_lineno); // Only used by EXTRA macro
11572 int _start_col_offset = p->tokens[_mark]->col_offset;
11573 UNUSED(_start_col_offset); // Only used by EXTRA macro
11574 { // conjunction (('or' conjunction))+
11575 if (p->error_indicator) {
11576 D(p->level--);
11577 return NULL;
11578 }
11579 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11580 expr_ty a;
11581 asdl_seq * b;
11582 if (
11583 (a = conjunction_rule(p)) // conjunction
11584 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011585 (b = _loop1_104_rule(p)) // (('or' conjunction))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011586 )
11587 {
11588 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
11589 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11590 if (_token == NULL) {
11591 D(p->level--);
11592 return NULL;
11593 }
11594 int _end_lineno = _token->end_lineno;
11595 UNUSED(_end_lineno); // Only used by EXTRA macro
11596 int _end_col_offset = _token->end_col_offset;
11597 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011598 _res = _PyAST_BoolOp ( Or , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011599 if (_res == NULL && PyErr_Occurred()) {
11600 p->error_indicator = 1;
11601 D(p->level--);
11602 return NULL;
11603 }
11604 goto done;
11605 }
11606 p->mark = _mark;
11607 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
11609 }
11610 { // conjunction
11611 if (p->error_indicator) {
11612 D(p->level--);
11613 return NULL;
11614 }
11615 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
11616 expr_ty conjunction_var;
11617 if (
11618 (conjunction_var = conjunction_rule(p)) // conjunction
11619 )
11620 {
11621 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
11622 _res = conjunction_var;
11623 goto done;
11624 }
11625 p->mark = _mark;
11626 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
11627 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
11628 }
11629 _res = NULL;
11630 done:
11631 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
11632 D(p->level--);
11633 return _res;
11634}
11635
11636// conjunction: inversion (('and' inversion))+ | inversion
11637static expr_ty
11638conjunction_rule(Parser *p)
11639{
11640 D(p->level++);
11641 if (p->error_indicator) {
11642 D(p->level--);
11643 return NULL;
11644 }
11645 expr_ty _res = NULL;
11646 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
11647 D(p->level--);
11648 return _res;
11649 }
11650 int _mark = p->mark;
11651 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11652 p->error_indicator = 1;
11653 D(p->level--);
11654 return NULL;
11655 }
11656 int _start_lineno = p->tokens[_mark]->lineno;
11657 UNUSED(_start_lineno); // Only used by EXTRA macro
11658 int _start_col_offset = p->tokens[_mark]->col_offset;
11659 UNUSED(_start_col_offset); // Only used by EXTRA macro
11660 { // inversion (('and' inversion))+
11661 if (p->error_indicator) {
11662 D(p->level--);
11663 return NULL;
11664 }
11665 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11666 expr_ty a;
11667 asdl_seq * b;
11668 if (
11669 (a = inversion_rule(p)) // inversion
11670 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011671 (b = _loop1_105_rule(p)) // (('and' inversion))+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011672 )
11673 {
11674 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
11675 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11676 if (_token == NULL) {
11677 D(p->level--);
11678 return NULL;
11679 }
11680 int _end_lineno = _token->end_lineno;
11681 UNUSED(_end_lineno); // Only used by EXTRA macro
11682 int _end_col_offset = _token->end_col_offset;
11683 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011684 _res = _PyAST_BoolOp ( And , CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011685 if (_res == NULL && PyErr_Occurred()) {
11686 p->error_indicator = 1;
11687 D(p->level--);
11688 return NULL;
11689 }
11690 goto done;
11691 }
11692 p->mark = _mark;
11693 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
11695 }
11696 { // inversion
11697 if (p->error_indicator) {
11698 D(p->level--);
11699 return NULL;
11700 }
11701 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
11702 expr_ty inversion_var;
11703 if (
11704 (inversion_var = inversion_rule(p)) // inversion
11705 )
11706 {
11707 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
11708 _res = inversion_var;
11709 goto done;
11710 }
11711 p->mark = _mark;
11712 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
11713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
11714 }
11715 _res = NULL;
11716 done:
11717 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
11718 D(p->level--);
11719 return _res;
11720}
11721
11722// inversion: 'not' inversion | comparison
11723static expr_ty
11724inversion_rule(Parser *p)
11725{
11726 D(p->level++);
11727 if (p->error_indicator) {
11728 D(p->level--);
11729 return NULL;
11730 }
11731 expr_ty _res = NULL;
11732 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
11733 D(p->level--);
11734 return _res;
11735 }
11736 int _mark = p->mark;
11737 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11738 p->error_indicator = 1;
11739 D(p->level--);
11740 return NULL;
11741 }
11742 int _start_lineno = p->tokens[_mark]->lineno;
11743 UNUSED(_start_lineno); // Only used by EXTRA macro
11744 int _start_col_offset = p->tokens[_mark]->col_offset;
11745 UNUSED(_start_col_offset); // Only used by EXTRA macro
11746 { // 'not' inversion
11747 if (p->error_indicator) {
11748 D(p->level--);
11749 return NULL;
11750 }
11751 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11752 Token * _keyword;
11753 expr_ty a;
11754 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080011755 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011756 &&
11757 (a = inversion_rule(p)) // inversion
11758 )
11759 {
11760 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
11761 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11762 if (_token == NULL) {
11763 D(p->level--);
11764 return NULL;
11765 }
11766 int _end_lineno = _token->end_lineno;
11767 UNUSED(_end_lineno); // Only used by EXTRA macro
11768 int _end_col_offset = _token->end_col_offset;
11769 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011770 _res = _PyAST_UnaryOp ( Not , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011771 if (_res == NULL && PyErr_Occurred()) {
11772 p->error_indicator = 1;
11773 D(p->level--);
11774 return NULL;
11775 }
11776 goto done;
11777 }
11778 p->mark = _mark;
11779 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
11781 }
11782 { // comparison
11783 if (p->error_indicator) {
11784 D(p->level--);
11785 return NULL;
11786 }
11787 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
11788 expr_ty comparison_var;
11789 if (
11790 (comparison_var = comparison_rule(p)) // comparison
11791 )
11792 {
11793 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
11794 _res = comparison_var;
11795 goto done;
11796 }
11797 p->mark = _mark;
11798 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
11799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
11800 }
11801 _res = NULL;
11802 done:
11803 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
11804 D(p->level--);
11805 return _res;
11806}
11807
11808// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
11809static expr_ty
11810comparison_rule(Parser *p)
11811{
11812 D(p->level++);
11813 if (p->error_indicator) {
11814 D(p->level--);
11815 return NULL;
11816 }
11817 expr_ty _res = NULL;
11818 int _mark = p->mark;
11819 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11820 p->error_indicator = 1;
11821 D(p->level--);
11822 return NULL;
11823 }
11824 int _start_lineno = p->tokens[_mark]->lineno;
11825 UNUSED(_start_lineno); // Only used by EXTRA macro
11826 int _start_col_offset = p->tokens[_mark]->col_offset;
11827 UNUSED(_start_col_offset); // Only used by EXTRA macro
11828 { // bitwise_or compare_op_bitwise_or_pair+
11829 if (p->error_indicator) {
11830 D(p->level--);
11831 return NULL;
11832 }
11833 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11834 expr_ty a;
11835 asdl_seq * b;
11836 if (
11837 (a = bitwise_or_rule(p)) // bitwise_or
11838 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080011839 (b = _loop1_106_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010011840 )
11841 {
11842 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11843 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11844 if (_token == NULL) {
11845 D(p->level--);
11846 return NULL;
11847 }
11848 int _end_lineno = _token->end_lineno;
11849 UNUSED(_end_lineno); // Only used by EXTRA macro
11850 int _end_col_offset = _token->end_col_offset;
11851 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020011852 _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 +010011853 if (_res == NULL && PyErr_Occurred()) {
11854 p->error_indicator = 1;
11855 D(p->level--);
11856 return NULL;
11857 }
11858 goto done;
11859 }
11860 p->mark = _mark;
11861 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
11863 }
11864 { // bitwise_or
11865 if (p->error_indicator) {
11866 D(p->level--);
11867 return NULL;
11868 }
11869 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11870 expr_ty bitwise_or_var;
11871 if (
11872 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
11873 )
11874 {
11875 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
11876 _res = bitwise_or_var;
11877 goto done;
11878 }
11879 p->mark = _mark;
11880 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
11881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
11882 }
11883 _res = NULL;
11884 done:
11885 D(p->level--);
11886 return _res;
11887}
11888
11889// compare_op_bitwise_or_pair:
11890// | eq_bitwise_or
11891// | noteq_bitwise_or
11892// | lte_bitwise_or
11893// | lt_bitwise_or
11894// | gte_bitwise_or
11895// | gt_bitwise_or
11896// | notin_bitwise_or
11897// | in_bitwise_or
11898// | isnot_bitwise_or
11899// | is_bitwise_or
11900static CmpopExprPair*
11901compare_op_bitwise_or_pair_rule(Parser *p)
11902{
11903 D(p->level++);
11904 if (p->error_indicator) {
11905 D(p->level--);
11906 return NULL;
11907 }
11908 CmpopExprPair* _res = NULL;
11909 int _mark = p->mark;
11910 { // eq_bitwise_or
11911 if (p->error_indicator) {
11912 D(p->level--);
11913 return NULL;
11914 }
11915 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11916 CmpopExprPair* eq_bitwise_or_var;
11917 if (
11918 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
11919 )
11920 {
11921 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "eq_bitwise_or"));
11922 _res = eq_bitwise_or_var;
11923 goto done;
11924 }
11925 p->mark = _mark;
11926 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
11928 }
11929 { // noteq_bitwise_or
11930 if (p->error_indicator) {
11931 D(p->level--);
11932 return NULL;
11933 }
11934 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11935 CmpopExprPair* noteq_bitwise_or_var;
11936 if (
11937 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
11938 )
11939 {
11940 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "noteq_bitwise_or"));
11941 _res = noteq_bitwise_or_var;
11942 goto done;
11943 }
11944 p->mark = _mark;
11945 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11946 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
11947 }
11948 { // lte_bitwise_or
11949 if (p->error_indicator) {
11950 D(p->level--);
11951 return NULL;
11952 }
11953 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11954 CmpopExprPair* lte_bitwise_or_var;
11955 if (
11956 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
11957 )
11958 {
11959 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lte_bitwise_or"));
11960 _res = lte_bitwise_or_var;
11961 goto done;
11962 }
11963 p->mark = _mark;
11964 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11965 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
11966 }
11967 { // lt_bitwise_or
11968 if (p->error_indicator) {
11969 D(p->level--);
11970 return NULL;
11971 }
11972 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11973 CmpopExprPair* lt_bitwise_or_var;
11974 if (
11975 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
11976 )
11977 {
11978 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lt_bitwise_or"));
11979 _res = lt_bitwise_or_var;
11980 goto done;
11981 }
11982 p->mark = _mark;
11983 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
11984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
11985 }
11986 { // gte_bitwise_or
11987 if (p->error_indicator) {
11988 D(p->level--);
11989 return NULL;
11990 }
11991 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11992 CmpopExprPair* gte_bitwise_or_var;
11993 if (
11994 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
11995 )
11996 {
11997 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gte_bitwise_or"));
11998 _res = gte_bitwise_or_var;
11999 goto done;
12000 }
12001 p->mark = _mark;
12002 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
12004 }
12005 { // gt_bitwise_or
12006 if (p->error_indicator) {
12007 D(p->level--);
12008 return NULL;
12009 }
12010 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12011 CmpopExprPair* gt_bitwise_or_var;
12012 if (
12013 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
12014 )
12015 {
12016 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "gt_bitwise_or"));
12017 _res = gt_bitwise_or_var;
12018 goto done;
12019 }
12020 p->mark = _mark;
12021 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
12023 }
12024 { // notin_bitwise_or
12025 if (p->error_indicator) {
12026 D(p->level--);
12027 return NULL;
12028 }
12029 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12030 CmpopExprPair* notin_bitwise_or_var;
12031 if (
12032 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
12033 )
12034 {
12035 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
12036 _res = notin_bitwise_or_var;
12037 goto done;
12038 }
12039 p->mark = _mark;
12040 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
12042 }
12043 { // in_bitwise_or
12044 if (p->error_indicator) {
12045 D(p->level--);
12046 return NULL;
12047 }
12048 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12049 CmpopExprPair* in_bitwise_or_var;
12050 if (
12051 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
12052 )
12053 {
12054 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "in_bitwise_or"));
12055 _res = in_bitwise_or_var;
12056 goto done;
12057 }
12058 p->mark = _mark;
12059 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
12061 }
12062 { // isnot_bitwise_or
12063 if (p->error_indicator) {
12064 D(p->level--);
12065 return NULL;
12066 }
12067 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12068 CmpopExprPair* isnot_bitwise_or_var;
12069 if (
12070 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
12071 )
12072 {
12073 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "isnot_bitwise_or"));
12074 _res = isnot_bitwise_or_var;
12075 goto done;
12076 }
12077 p->mark = _mark;
12078 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12079 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
12080 }
12081 { // is_bitwise_or
12082 if (p->error_indicator) {
12083 D(p->level--);
12084 return NULL;
12085 }
12086 D(fprintf(stderr, "%*c> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12087 CmpopExprPair* is_bitwise_or_var;
12088 if (
12089 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
12090 )
12091 {
12092 D(fprintf(stderr, "%*c+ compare_op_bitwise_or_pair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "is_bitwise_or"));
12093 _res = is_bitwise_or_var;
12094 goto done;
12095 }
12096 p->mark = _mark;
12097 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
12098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
12099 }
12100 _res = NULL;
12101 done:
12102 D(p->level--);
12103 return _res;
12104}
12105
12106// eq_bitwise_or: '==' bitwise_or
12107static CmpopExprPair*
12108eq_bitwise_or_rule(Parser *p)
12109{
12110 D(p->level++);
12111 if (p->error_indicator) {
12112 D(p->level--);
12113 return NULL;
12114 }
12115 CmpopExprPair* _res = NULL;
12116 int _mark = p->mark;
12117 { // '==' bitwise_or
12118 if (p->error_indicator) {
12119 D(p->level--);
12120 return NULL;
12121 }
12122 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12123 Token * _literal;
12124 expr_ty a;
12125 if (
12126 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
12127 &&
12128 (a = bitwise_or_rule(p)) // bitwise_or
12129 )
12130 {
12131 D(fprintf(stderr, "%*c+ eq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
12132 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
12133 if (_res == NULL && PyErr_Occurred()) {
12134 p->error_indicator = 1;
12135 D(p->level--);
12136 return NULL;
12137 }
12138 goto done;
12139 }
12140 p->mark = _mark;
12141 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12142 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
12143 }
12144 _res = NULL;
12145 done:
12146 D(p->level--);
12147 return _res;
12148}
12149
12150// noteq_bitwise_or: ('!=') bitwise_or
12151static CmpopExprPair*
12152noteq_bitwise_or_rule(Parser *p)
12153{
12154 D(p->level++);
12155 if (p->error_indicator) {
12156 D(p->level--);
12157 return NULL;
12158 }
12159 CmpopExprPair* _res = NULL;
12160 int _mark = p->mark;
12161 { // ('!=') bitwise_or
12162 if (p->error_indicator) {
12163 D(p->level--);
12164 return NULL;
12165 }
12166 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 -080012167 void *_tmp_107_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012168 expr_ty a;
12169 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012170 (_tmp_107_var = _tmp_107_rule(p)) // '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012171 &&
12172 (a = bitwise_or_rule(p)) // bitwise_or
12173 )
12174 {
12175 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
12176 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
12177 if (_res == NULL && PyErr_Occurred()) {
12178 p->error_indicator = 1;
12179 D(p->level--);
12180 return NULL;
12181 }
12182 goto done;
12183 }
12184 p->mark = _mark;
12185 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
12187 }
12188 _res = NULL;
12189 done:
12190 D(p->level--);
12191 return _res;
12192}
12193
12194// lte_bitwise_or: '<=' bitwise_or
12195static CmpopExprPair*
12196lte_bitwise_or_rule(Parser *p)
12197{
12198 D(p->level++);
12199 if (p->error_indicator) {
12200 D(p->level--);
12201 return NULL;
12202 }
12203 CmpopExprPair* _res = NULL;
12204 int _mark = p->mark;
12205 { // '<=' bitwise_or
12206 if (p->error_indicator) {
12207 D(p->level--);
12208 return NULL;
12209 }
12210 D(fprintf(stderr, "%*c> lte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12211 Token * _literal;
12212 expr_ty a;
12213 if (
12214 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
12215 &&
12216 (a = bitwise_or_rule(p)) // bitwise_or
12217 )
12218 {
12219 D(fprintf(stderr, "%*c+ lte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<=' bitwise_or"));
12220 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
12221 if (_res == NULL && PyErr_Occurred()) {
12222 p->error_indicator = 1;
12223 D(p->level--);
12224 return NULL;
12225 }
12226 goto done;
12227 }
12228 p->mark = _mark;
12229 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12230 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
12231 }
12232 _res = NULL;
12233 done:
12234 D(p->level--);
12235 return _res;
12236}
12237
12238// lt_bitwise_or: '<' bitwise_or
12239static CmpopExprPair*
12240lt_bitwise_or_rule(Parser *p)
12241{
12242 D(p->level++);
12243 if (p->error_indicator) {
12244 D(p->level--);
12245 return NULL;
12246 }
12247 CmpopExprPair* _res = NULL;
12248 int _mark = p->mark;
12249 { // '<' bitwise_or
12250 if (p->error_indicator) {
12251 D(p->level--);
12252 return NULL;
12253 }
12254 D(fprintf(stderr, "%*c> lt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12255 Token * _literal;
12256 expr_ty a;
12257 if (
12258 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
12259 &&
12260 (a = bitwise_or_rule(p)) // bitwise_or
12261 )
12262 {
12263 D(fprintf(stderr, "%*c+ lt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<' bitwise_or"));
12264 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
12265 if (_res == NULL && PyErr_Occurred()) {
12266 p->error_indicator = 1;
12267 D(p->level--);
12268 return NULL;
12269 }
12270 goto done;
12271 }
12272 p->mark = _mark;
12273 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12274 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
12275 }
12276 _res = NULL;
12277 done:
12278 D(p->level--);
12279 return _res;
12280}
12281
12282// gte_bitwise_or: '>=' bitwise_or
12283static CmpopExprPair*
12284gte_bitwise_or_rule(Parser *p)
12285{
12286 D(p->level++);
12287 if (p->error_indicator) {
12288 D(p->level--);
12289 return NULL;
12290 }
12291 CmpopExprPair* _res = NULL;
12292 int _mark = p->mark;
12293 { // '>=' bitwise_or
12294 if (p->error_indicator) {
12295 D(p->level--);
12296 return NULL;
12297 }
12298 D(fprintf(stderr, "%*c> gte_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12299 Token * _literal;
12300 expr_ty a;
12301 if (
12302 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
12303 &&
12304 (a = bitwise_or_rule(p)) // bitwise_or
12305 )
12306 {
12307 D(fprintf(stderr, "%*c+ gte_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>=' bitwise_or"));
12308 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
12309 if (_res == NULL && PyErr_Occurred()) {
12310 p->error_indicator = 1;
12311 D(p->level--);
12312 return NULL;
12313 }
12314 goto done;
12315 }
12316 p->mark = _mark;
12317 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
12319 }
12320 _res = NULL;
12321 done:
12322 D(p->level--);
12323 return _res;
12324}
12325
12326// gt_bitwise_or: '>' bitwise_or
12327static CmpopExprPair*
12328gt_bitwise_or_rule(Parser *p)
12329{
12330 D(p->level++);
12331 if (p->error_indicator) {
12332 D(p->level--);
12333 return NULL;
12334 }
12335 CmpopExprPair* _res = NULL;
12336 int _mark = p->mark;
12337 { // '>' bitwise_or
12338 if (p->error_indicator) {
12339 D(p->level--);
12340 return NULL;
12341 }
12342 D(fprintf(stderr, "%*c> gt_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12343 Token * _literal;
12344 expr_ty a;
12345 if (
12346 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
12347 &&
12348 (a = bitwise_or_rule(p)) // bitwise_or
12349 )
12350 {
12351 D(fprintf(stderr, "%*c+ gt_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>' bitwise_or"));
12352 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
12353 if (_res == NULL && PyErr_Occurred()) {
12354 p->error_indicator = 1;
12355 D(p->level--);
12356 return NULL;
12357 }
12358 goto done;
12359 }
12360 p->mark = _mark;
12361 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12362 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
12363 }
12364 _res = NULL;
12365 done:
12366 D(p->level--);
12367 return _res;
12368}
12369
12370// notin_bitwise_or: 'not' 'in' bitwise_or
12371static CmpopExprPair*
12372notin_bitwise_or_rule(Parser *p)
12373{
12374 D(p->level++);
12375 if (p->error_indicator) {
12376 D(p->level--);
12377 return NULL;
12378 }
12379 CmpopExprPair* _res = NULL;
12380 int _mark = p->mark;
12381 { // 'not' 'in' bitwise_or
12382 if (p->error_indicator) {
12383 D(p->level--);
12384 return NULL;
12385 }
12386 D(fprintf(stderr, "%*c> notin_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12387 Token * _keyword;
12388 Token * _keyword_1;
12389 expr_ty a;
12390 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012391 (_keyword = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012392 &&
12393 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
12394 &&
12395 (a = bitwise_or_rule(p)) // bitwise_or
12396 )
12397 {
12398 D(fprintf(stderr, "%*c+ notin_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' 'in' bitwise_or"));
12399 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
12400 if (_res == NULL && PyErr_Occurred()) {
12401 p->error_indicator = 1;
12402 D(p->level--);
12403 return NULL;
12404 }
12405 goto done;
12406 }
12407 p->mark = _mark;
12408 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
12410 }
12411 _res = NULL;
12412 done:
12413 D(p->level--);
12414 return _res;
12415}
12416
12417// in_bitwise_or: 'in' bitwise_or
12418static CmpopExprPair*
12419in_bitwise_or_rule(Parser *p)
12420{
12421 D(p->level++);
12422 if (p->error_indicator) {
12423 D(p->level--);
12424 return NULL;
12425 }
12426 CmpopExprPair* _res = NULL;
12427 int _mark = p->mark;
12428 { // 'in' bitwise_or
12429 if (p->error_indicator) {
12430 D(p->level--);
12431 return NULL;
12432 }
12433 D(fprintf(stderr, "%*c> in_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12434 Token * _keyword;
12435 expr_ty a;
12436 if (
12437 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
12438 &&
12439 (a = bitwise_or_rule(p)) // bitwise_or
12440 )
12441 {
12442 D(fprintf(stderr, "%*c+ in_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'in' bitwise_or"));
12443 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
12444 if (_res == NULL && PyErr_Occurred()) {
12445 p->error_indicator = 1;
12446 D(p->level--);
12447 return NULL;
12448 }
12449 goto done;
12450 }
12451 p->mark = _mark;
12452 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12453 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
12454 }
12455 _res = NULL;
12456 done:
12457 D(p->level--);
12458 return _res;
12459}
12460
12461// isnot_bitwise_or: 'is' 'not' bitwise_or
12462static CmpopExprPair*
12463isnot_bitwise_or_rule(Parser *p)
12464{
12465 D(p->level++);
12466 if (p->error_indicator) {
12467 D(p->level--);
12468 return NULL;
12469 }
12470 CmpopExprPair* _res = NULL;
12471 int _mark = p->mark;
12472 { // 'is' 'not' bitwise_or
12473 if (p->error_indicator) {
12474 D(p->level--);
12475 return NULL;
12476 }
12477 D(fprintf(stderr, "%*c> isnot_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12478 Token * _keyword;
12479 Token * _keyword_1;
12480 expr_ty a;
12481 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012482 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012483 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080012484 (_keyword_1 = _PyPegen_expect_token(p, 529)) // token='not'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012485 &&
12486 (a = bitwise_or_rule(p)) // bitwise_or
12487 )
12488 {
12489 D(fprintf(stderr, "%*c+ isnot_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' 'not' bitwise_or"));
12490 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
12491 if (_res == NULL && PyErr_Occurred()) {
12492 p->error_indicator = 1;
12493 D(p->level--);
12494 return NULL;
12495 }
12496 goto done;
12497 }
12498 p->mark = _mark;
12499 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
12501 }
12502 _res = NULL;
12503 done:
12504 D(p->level--);
12505 return _res;
12506}
12507
12508// is_bitwise_or: 'is' bitwise_or
12509static CmpopExprPair*
12510is_bitwise_or_rule(Parser *p)
12511{
12512 D(p->level++);
12513 if (p->error_indicator) {
12514 D(p->level--);
12515 return NULL;
12516 }
12517 CmpopExprPair* _res = NULL;
12518 int _mark = p->mark;
12519 { // 'is' bitwise_or
12520 if (p->error_indicator) {
12521 D(p->level--);
12522 return NULL;
12523 }
12524 D(fprintf(stderr, "%*c> is_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12525 Token * _keyword;
12526 expr_ty a;
12527 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080012528 (_keyword = _PyPegen_expect_token(p, 530)) // token='is'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012529 &&
12530 (a = bitwise_or_rule(p)) // bitwise_or
12531 )
12532 {
12533 D(fprintf(stderr, "%*c+ is_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'is' bitwise_or"));
12534 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
12535 if (_res == NULL && PyErr_Occurred()) {
12536 p->error_indicator = 1;
12537 D(p->level--);
12538 return NULL;
12539 }
12540 goto done;
12541 }
12542 p->mark = _mark;
12543 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
12545 }
12546 _res = NULL;
12547 done:
12548 D(p->level--);
12549 return _res;
12550}
12551
12552// Left-recursive
12553// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
12554static expr_ty bitwise_or_raw(Parser *);
12555static expr_ty
12556bitwise_or_rule(Parser *p)
12557{
12558 D(p->level++);
12559 expr_ty _res = NULL;
12560 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
12561 D(p->level--);
12562 return _res;
12563 }
12564 int _mark = p->mark;
12565 int _resmark = p->mark;
12566 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012567 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
12568 if (tmpvar_2) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012569 D(p->level--);
12570 return _res;
12571 }
12572 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012573 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012574 void *_raw = bitwise_or_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012575 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012576 if (p->error_indicator)
12577 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012578 if (_raw == NULL || p->mark <= _resmark)
12579 break;
12580 _resmark = p->mark;
12581 _res = _raw;
12582 }
12583 p->mark = _resmark;
12584 D(p->level--);
12585 return _res;
12586}
12587static expr_ty
12588bitwise_or_raw(Parser *p)
12589{
12590 D(p->level++);
12591 if (p->error_indicator) {
12592 D(p->level--);
12593 return NULL;
12594 }
12595 expr_ty _res = NULL;
12596 int _mark = p->mark;
12597 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12598 p->error_indicator = 1;
12599 D(p->level--);
12600 return NULL;
12601 }
12602 int _start_lineno = p->tokens[_mark]->lineno;
12603 UNUSED(_start_lineno); // Only used by EXTRA macro
12604 int _start_col_offset = p->tokens[_mark]->col_offset;
12605 UNUSED(_start_col_offset); // Only used by EXTRA macro
12606 { // bitwise_or '|' bitwise_xor
12607 if (p->error_indicator) {
12608 D(p->level--);
12609 return NULL;
12610 }
12611 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12612 Token * _literal;
12613 expr_ty a;
12614 expr_ty b;
12615 if (
12616 (a = bitwise_or_rule(p)) // bitwise_or
12617 &&
12618 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
12619 &&
12620 (b = bitwise_xor_rule(p)) // bitwise_xor
12621 )
12622 {
12623 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12624 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12625 if (_token == NULL) {
12626 D(p->level--);
12627 return NULL;
12628 }
12629 int _end_lineno = _token->end_lineno;
12630 UNUSED(_end_lineno); // Only used by EXTRA macro
12631 int _end_col_offset = _token->end_col_offset;
12632 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012633 _res = _PyAST_BinOp ( a , BitOr , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012634 if (_res == NULL && PyErr_Occurred()) {
12635 p->error_indicator = 1;
12636 D(p->level--);
12637 return NULL;
12638 }
12639 goto done;
12640 }
12641 p->mark = _mark;
12642 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
12644 }
12645 { // bitwise_xor
12646 if (p->error_indicator) {
12647 D(p->level--);
12648 return NULL;
12649 }
12650 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12651 expr_ty bitwise_xor_var;
12652 if (
12653 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
12654 )
12655 {
12656 D(fprintf(stderr, "%*c+ bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
12657 _res = bitwise_xor_var;
12658 goto done;
12659 }
12660 p->mark = _mark;
12661 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
12662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
12663 }
12664 _res = NULL;
12665 done:
12666 D(p->level--);
12667 return _res;
12668}
12669
12670// Left-recursive
12671// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
12672static expr_ty bitwise_xor_raw(Parser *);
12673static expr_ty
12674bitwise_xor_rule(Parser *p)
12675{
12676 D(p->level++);
12677 expr_ty _res = NULL;
12678 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
12679 D(p->level--);
12680 return _res;
12681 }
12682 int _mark = p->mark;
12683 int _resmark = p->mark;
12684 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012685 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
12686 if (tmpvar_3) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012687 D(p->level--);
12688 return _res;
12689 }
12690 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012691 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012692 void *_raw = bitwise_xor_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012693 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012694 if (p->error_indicator)
12695 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012696 if (_raw == NULL || p->mark <= _resmark)
12697 break;
12698 _resmark = p->mark;
12699 _res = _raw;
12700 }
12701 p->mark = _resmark;
12702 D(p->level--);
12703 return _res;
12704}
12705static expr_ty
12706bitwise_xor_raw(Parser *p)
12707{
12708 D(p->level++);
12709 if (p->error_indicator) {
12710 D(p->level--);
12711 return NULL;
12712 }
12713 expr_ty _res = NULL;
12714 int _mark = p->mark;
12715 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12716 p->error_indicator = 1;
12717 D(p->level--);
12718 return NULL;
12719 }
12720 int _start_lineno = p->tokens[_mark]->lineno;
12721 UNUSED(_start_lineno); // Only used by EXTRA macro
12722 int _start_col_offset = p->tokens[_mark]->col_offset;
12723 UNUSED(_start_col_offset); // Only used by EXTRA macro
12724 { // bitwise_xor '^' bitwise_and
12725 if (p->error_indicator) {
12726 D(p->level--);
12727 return NULL;
12728 }
12729 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12730 Token * _literal;
12731 expr_ty a;
12732 expr_ty b;
12733 if (
12734 (a = bitwise_xor_rule(p)) // bitwise_xor
12735 &&
12736 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
12737 &&
12738 (b = bitwise_and_rule(p)) // bitwise_and
12739 )
12740 {
12741 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12742 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12743 if (_token == NULL) {
12744 D(p->level--);
12745 return NULL;
12746 }
12747 int _end_lineno = _token->end_lineno;
12748 UNUSED(_end_lineno); // Only used by EXTRA macro
12749 int _end_col_offset = _token->end_col_offset;
12750 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012751 _res = _PyAST_BinOp ( a , BitXor , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012752 if (_res == NULL && PyErr_Occurred()) {
12753 p->error_indicator = 1;
12754 D(p->level--);
12755 return NULL;
12756 }
12757 goto done;
12758 }
12759 p->mark = _mark;
12760 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12761 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
12762 }
12763 { // bitwise_and
12764 if (p->error_indicator) {
12765 D(p->level--);
12766 return NULL;
12767 }
12768 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12769 expr_ty bitwise_and_var;
12770 if (
12771 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
12772 )
12773 {
12774 D(fprintf(stderr, "%*c+ bitwise_xor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
12775 _res = bitwise_and_var;
12776 goto done;
12777 }
12778 p->mark = _mark;
12779 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
12780 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
12781 }
12782 _res = NULL;
12783 done:
12784 D(p->level--);
12785 return _res;
12786}
12787
12788// Left-recursive
12789// bitwise_and: bitwise_and '&' shift_expr | shift_expr
12790static expr_ty bitwise_and_raw(Parser *);
12791static expr_ty
12792bitwise_and_rule(Parser *p)
12793{
12794 D(p->level++);
12795 expr_ty _res = NULL;
12796 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
12797 D(p->level--);
12798 return _res;
12799 }
12800 int _mark = p->mark;
12801 int _resmark = p->mark;
12802 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012803 int tmpvar_4 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
12804 if (tmpvar_4) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012805 D(p->level--);
12806 return _res;
12807 }
12808 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012809 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012810 void *_raw = bitwise_and_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012811 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012812 if (p->error_indicator)
12813 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012814 if (_raw == NULL || p->mark <= _resmark)
12815 break;
12816 _resmark = p->mark;
12817 _res = _raw;
12818 }
12819 p->mark = _resmark;
12820 D(p->level--);
12821 return _res;
12822}
12823static expr_ty
12824bitwise_and_raw(Parser *p)
12825{
12826 D(p->level++);
12827 if (p->error_indicator) {
12828 D(p->level--);
12829 return NULL;
12830 }
12831 expr_ty _res = NULL;
12832 int _mark = p->mark;
12833 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12834 p->error_indicator = 1;
12835 D(p->level--);
12836 return NULL;
12837 }
12838 int _start_lineno = p->tokens[_mark]->lineno;
12839 UNUSED(_start_lineno); // Only used by EXTRA macro
12840 int _start_col_offset = p->tokens[_mark]->col_offset;
12841 UNUSED(_start_col_offset); // Only used by EXTRA macro
12842 { // bitwise_and '&' shift_expr
12843 if (p->error_indicator) {
12844 D(p->level--);
12845 return NULL;
12846 }
12847 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12848 Token * _literal;
12849 expr_ty a;
12850 expr_ty b;
12851 if (
12852 (a = bitwise_and_rule(p)) // bitwise_and
12853 &&
12854 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
12855 &&
12856 (b = shift_expr_rule(p)) // shift_expr
12857 )
12858 {
12859 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_and '&' shift_expr"));
12860 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12861 if (_token == NULL) {
12862 D(p->level--);
12863 return NULL;
12864 }
12865 int _end_lineno = _token->end_lineno;
12866 UNUSED(_end_lineno); // Only used by EXTRA macro
12867 int _end_col_offset = _token->end_col_offset;
12868 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012869 _res = _PyAST_BinOp ( a , BitAnd , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012870 if (_res == NULL && PyErr_Occurred()) {
12871 p->error_indicator = 1;
12872 D(p->level--);
12873 return NULL;
12874 }
12875 goto done;
12876 }
12877 p->mark = _mark;
12878 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
12880 }
12881 { // shift_expr
12882 if (p->error_indicator) {
12883 D(p->level--);
12884 return NULL;
12885 }
12886 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12887 expr_ty shift_expr_var;
12888 if (
12889 (shift_expr_var = shift_expr_rule(p)) // shift_expr
12890 )
12891 {
12892 D(fprintf(stderr, "%*c+ bitwise_and[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr"));
12893 _res = shift_expr_var;
12894 goto done;
12895 }
12896 p->mark = _mark;
12897 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
12898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
12899 }
12900 _res = NULL;
12901 done:
12902 D(p->level--);
12903 return _res;
12904}
12905
12906// Left-recursive
12907// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
12908static expr_ty shift_expr_raw(Parser *);
12909static expr_ty
12910shift_expr_rule(Parser *p)
12911{
12912 D(p->level++);
12913 expr_ty _res = NULL;
12914 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
12915 D(p->level--);
12916 return _res;
12917 }
12918 int _mark = p->mark;
12919 int _resmark = p->mark;
12920 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080012921 int tmpvar_5 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
12922 if (tmpvar_5) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012923 D(p->level--);
12924 return _res;
12925 }
12926 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012927 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012928 void *_raw = shift_expr_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070012929 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020012930 if (p->error_indicator)
12931 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012932 if (_raw == NULL || p->mark <= _resmark)
12933 break;
12934 _resmark = p->mark;
12935 _res = _raw;
12936 }
12937 p->mark = _resmark;
12938 D(p->level--);
12939 return _res;
12940}
12941static expr_ty
12942shift_expr_raw(Parser *p)
12943{
12944 D(p->level++);
12945 if (p->error_indicator) {
12946 D(p->level--);
12947 return NULL;
12948 }
12949 expr_ty _res = NULL;
12950 int _mark = p->mark;
12951 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12952 p->error_indicator = 1;
12953 D(p->level--);
12954 return NULL;
12955 }
12956 int _start_lineno = p->tokens[_mark]->lineno;
12957 UNUSED(_start_lineno); // Only used by EXTRA macro
12958 int _start_col_offset = p->tokens[_mark]->col_offset;
12959 UNUSED(_start_col_offset); // Only used by EXTRA macro
12960 { // shift_expr '<<' sum
12961 if (p->error_indicator) {
12962 D(p->level--);
12963 return NULL;
12964 }
12965 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12966 Token * _literal;
12967 expr_ty a;
12968 expr_ty b;
12969 if (
12970 (a = shift_expr_rule(p)) // shift_expr
12971 &&
12972 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
12973 &&
12974 (b = sum_rule(p)) // sum
12975 )
12976 {
12977 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '<<' sum"));
12978 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12979 if (_token == NULL) {
12980 D(p->level--);
12981 return NULL;
12982 }
12983 int _end_lineno = _token->end_lineno;
12984 UNUSED(_end_lineno); // Only used by EXTRA macro
12985 int _end_col_offset = _token->end_col_offset;
12986 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020012987 _res = _PyAST_BinOp ( a , LShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010012988 if (_res == NULL && PyErr_Occurred()) {
12989 p->error_indicator = 1;
12990 D(p->level--);
12991 return NULL;
12992 }
12993 goto done;
12994 }
12995 p->mark = _mark;
12996 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
12997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
12998 }
12999 { // shift_expr '>>' sum
13000 if (p->error_indicator) {
13001 D(p->level--);
13002 return NULL;
13003 }
13004 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13005 Token * _literal;
13006 expr_ty a;
13007 expr_ty b;
13008 if (
13009 (a = shift_expr_rule(p)) // shift_expr
13010 &&
13011 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
13012 &&
13013 (b = sum_rule(p)) // sum
13014 )
13015 {
13016 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "shift_expr '>>' sum"));
13017 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13018 if (_token == NULL) {
13019 D(p->level--);
13020 return NULL;
13021 }
13022 int _end_lineno = _token->end_lineno;
13023 UNUSED(_end_lineno); // Only used by EXTRA macro
13024 int _end_col_offset = _token->end_col_offset;
13025 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013026 _res = _PyAST_BinOp ( a , RShift , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013027 if (_res == NULL && PyErr_Occurred()) {
13028 p->error_indicator = 1;
13029 D(p->level--);
13030 return NULL;
13031 }
13032 goto done;
13033 }
13034 p->mark = _mark;
13035 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
13037 }
13038 { // sum
13039 if (p->error_indicator) {
13040 D(p->level--);
13041 return NULL;
13042 }
13043 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
13044 expr_ty sum_var;
13045 if (
13046 (sum_var = sum_rule(p)) // sum
13047 )
13048 {
13049 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
13050 _res = sum_var;
13051 goto done;
13052 }
13053 p->mark = _mark;
13054 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
13055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
13056 }
13057 _res = NULL;
13058 done:
13059 D(p->level--);
13060 return _res;
13061}
13062
13063// Left-recursive
13064// sum: sum '+' term | sum '-' term | term
13065static expr_ty sum_raw(Parser *);
13066static expr_ty
13067sum_rule(Parser *p)
13068{
13069 D(p->level++);
13070 expr_ty _res = NULL;
13071 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
13072 D(p->level--);
13073 return _res;
13074 }
13075 int _mark = p->mark;
13076 int _resmark = p->mark;
13077 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013078 int tmpvar_6 = _PyPegen_update_memo(p, _mark, sum_type, _res);
13079 if (tmpvar_6) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013080 D(p->level--);
13081 return _res;
13082 }
13083 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013084 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013085 void *_raw = sum_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013086 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013087 if (p->error_indicator)
13088 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013089 if (_raw == NULL || p->mark <= _resmark)
13090 break;
13091 _resmark = p->mark;
13092 _res = _raw;
13093 }
13094 p->mark = _resmark;
13095 D(p->level--);
13096 return _res;
13097}
13098static expr_ty
13099sum_raw(Parser *p)
13100{
13101 D(p->level++);
13102 if (p->error_indicator) {
13103 D(p->level--);
13104 return NULL;
13105 }
13106 expr_ty _res = NULL;
13107 int _mark = p->mark;
13108 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13109 p->error_indicator = 1;
13110 D(p->level--);
13111 return NULL;
13112 }
13113 int _start_lineno = p->tokens[_mark]->lineno;
13114 UNUSED(_start_lineno); // Only used by EXTRA macro
13115 int _start_col_offset = p->tokens[_mark]->col_offset;
13116 UNUSED(_start_col_offset); // Only used by EXTRA macro
13117 { // sum '+' term
13118 if (p->error_indicator) {
13119 D(p->level--);
13120 return NULL;
13121 }
13122 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13123 Token * _literal;
13124 expr_ty a;
13125 expr_ty b;
13126 if (
13127 (a = sum_rule(p)) // sum
13128 &&
13129 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13130 &&
13131 (b = term_rule(p)) // term
13132 )
13133 {
13134 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
13135 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13136 if (_token == NULL) {
13137 D(p->level--);
13138 return NULL;
13139 }
13140 int _end_lineno = _token->end_lineno;
13141 UNUSED(_end_lineno); // Only used by EXTRA macro
13142 int _end_col_offset = _token->end_col_offset;
13143 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013144 _res = _PyAST_BinOp ( a , Add , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013145 if (_res == NULL && PyErr_Occurred()) {
13146 p->error_indicator = 1;
13147 D(p->level--);
13148 return NULL;
13149 }
13150 goto done;
13151 }
13152 p->mark = _mark;
13153 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
13155 }
13156 { // sum '-' term
13157 if (p->error_indicator) {
13158 D(p->level--);
13159 return NULL;
13160 }
13161 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13162 Token * _literal;
13163 expr_ty a;
13164 expr_ty b;
13165 if (
13166 (a = sum_rule(p)) // sum
13167 &&
13168 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13169 &&
13170 (b = term_rule(p)) // term
13171 )
13172 {
13173 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
13174 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13175 if (_token == NULL) {
13176 D(p->level--);
13177 return NULL;
13178 }
13179 int _end_lineno = _token->end_lineno;
13180 UNUSED(_end_lineno); // Only used by EXTRA macro
13181 int _end_col_offset = _token->end_col_offset;
13182 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013183 _res = _PyAST_BinOp ( a , Sub , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013184 if (_res == NULL && PyErr_Occurred()) {
13185 p->error_indicator = 1;
13186 D(p->level--);
13187 return NULL;
13188 }
13189 goto done;
13190 }
13191 p->mark = _mark;
13192 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
13194 }
13195 { // term
13196 if (p->error_indicator) {
13197 D(p->level--);
13198 return NULL;
13199 }
13200 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
13201 expr_ty term_var;
13202 if (
13203 (term_var = term_rule(p)) // term
13204 )
13205 {
13206 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
13207 _res = term_var;
13208 goto done;
13209 }
13210 p->mark = _mark;
13211 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
13212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
13213 }
13214 _res = NULL;
13215 done:
13216 D(p->level--);
13217 return _res;
13218}
13219
13220// Left-recursive
13221// term:
13222// | term '*' factor
13223// | term '/' factor
13224// | term '//' factor
13225// | term '%' factor
13226// | term '@' factor
13227// | factor
13228static expr_ty term_raw(Parser *);
13229static expr_ty
13230term_rule(Parser *p)
13231{
13232 D(p->level++);
13233 expr_ty _res = NULL;
13234 if (_PyPegen_is_memoized(p, term_type, &_res)) {
13235 D(p->level--);
13236 return _res;
13237 }
13238 int _mark = p->mark;
13239 int _resmark = p->mark;
13240 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013241 int tmpvar_7 = _PyPegen_update_memo(p, _mark, term_type, _res);
13242 if (tmpvar_7) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013243 D(p->level--);
13244 return _res;
13245 }
13246 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013247 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013248 void *_raw = term_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013249 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013250 if (p->error_indicator)
13251 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013252 if (_raw == NULL || p->mark <= _resmark)
13253 break;
13254 _resmark = p->mark;
13255 _res = _raw;
13256 }
13257 p->mark = _resmark;
13258 D(p->level--);
13259 return _res;
13260}
13261static expr_ty
13262term_raw(Parser *p)
13263{
13264 D(p->level++);
13265 if (p->error_indicator) {
13266 D(p->level--);
13267 return NULL;
13268 }
13269 expr_ty _res = NULL;
13270 int _mark = p->mark;
13271 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13272 p->error_indicator = 1;
13273 D(p->level--);
13274 return NULL;
13275 }
13276 int _start_lineno = p->tokens[_mark]->lineno;
13277 UNUSED(_start_lineno); // Only used by EXTRA macro
13278 int _start_col_offset = p->tokens[_mark]->col_offset;
13279 UNUSED(_start_col_offset); // Only used by EXTRA macro
13280 { // term '*' factor
13281 if (p->error_indicator) {
13282 D(p->level--);
13283 return NULL;
13284 }
13285 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13286 Token * _literal;
13287 expr_ty a;
13288 expr_ty b;
13289 if (
13290 (a = term_rule(p)) // term
13291 &&
13292 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
13293 &&
13294 (b = factor_rule(p)) // factor
13295 )
13296 {
13297 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
13298 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13299 if (_token == NULL) {
13300 D(p->level--);
13301 return NULL;
13302 }
13303 int _end_lineno = _token->end_lineno;
13304 UNUSED(_end_lineno); // Only used by EXTRA macro
13305 int _end_col_offset = _token->end_col_offset;
13306 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013307 _res = _PyAST_BinOp ( a , Mult , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013308 if (_res == NULL && PyErr_Occurred()) {
13309 p->error_indicator = 1;
13310 D(p->level--);
13311 return NULL;
13312 }
13313 goto done;
13314 }
13315 p->mark = _mark;
13316 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
13318 }
13319 { // term '/' factor
13320 if (p->error_indicator) {
13321 D(p->level--);
13322 return NULL;
13323 }
13324 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13325 Token * _literal;
13326 expr_ty a;
13327 expr_ty b;
13328 if (
13329 (a = term_rule(p)) // term
13330 &&
13331 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
13332 &&
13333 (b = factor_rule(p)) // factor
13334 )
13335 {
13336 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
13337 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13338 if (_token == NULL) {
13339 D(p->level--);
13340 return NULL;
13341 }
13342 int _end_lineno = _token->end_lineno;
13343 UNUSED(_end_lineno); // Only used by EXTRA macro
13344 int _end_col_offset = _token->end_col_offset;
13345 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013346 _res = _PyAST_BinOp ( a , Div , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013347 if (_res == NULL && PyErr_Occurred()) {
13348 p->error_indicator = 1;
13349 D(p->level--);
13350 return NULL;
13351 }
13352 goto done;
13353 }
13354 p->mark = _mark;
13355 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
13357 }
13358 { // term '//' factor
13359 if (p->error_indicator) {
13360 D(p->level--);
13361 return NULL;
13362 }
13363 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13364 Token * _literal;
13365 expr_ty a;
13366 expr_ty b;
13367 if (
13368 (a = term_rule(p)) // term
13369 &&
13370 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
13371 &&
13372 (b = factor_rule(p)) // factor
13373 )
13374 {
13375 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
13376 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13377 if (_token == NULL) {
13378 D(p->level--);
13379 return NULL;
13380 }
13381 int _end_lineno = _token->end_lineno;
13382 UNUSED(_end_lineno); // Only used by EXTRA macro
13383 int _end_col_offset = _token->end_col_offset;
13384 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013385 _res = _PyAST_BinOp ( a , FloorDiv , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013386 if (_res == NULL && PyErr_Occurred()) {
13387 p->error_indicator = 1;
13388 D(p->level--);
13389 return NULL;
13390 }
13391 goto done;
13392 }
13393 p->mark = _mark;
13394 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13395 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
13396 }
13397 { // term '%' factor
13398 if (p->error_indicator) {
13399 D(p->level--);
13400 return NULL;
13401 }
13402 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13403 Token * _literal;
13404 expr_ty a;
13405 expr_ty b;
13406 if (
13407 (a = term_rule(p)) // term
13408 &&
13409 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
13410 &&
13411 (b = factor_rule(p)) // factor
13412 )
13413 {
13414 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
13415 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13416 if (_token == NULL) {
13417 D(p->level--);
13418 return NULL;
13419 }
13420 int _end_lineno = _token->end_lineno;
13421 UNUSED(_end_lineno); // Only used by EXTRA macro
13422 int _end_col_offset = _token->end_col_offset;
13423 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013424 _res = _PyAST_BinOp ( a , Mod , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013425 if (_res == NULL && PyErr_Occurred()) {
13426 p->error_indicator = 1;
13427 D(p->level--);
13428 return NULL;
13429 }
13430 goto done;
13431 }
13432 p->mark = _mark;
13433 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13434 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
13435 }
13436 { // term '@' factor
13437 if (p->error_indicator) {
13438 D(p->level--);
13439 return NULL;
13440 }
13441 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13442 Token * _literal;
13443 expr_ty a;
13444 expr_ty b;
13445 if (
13446 (a = term_rule(p)) // term
13447 &&
13448 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
13449 &&
13450 (b = factor_rule(p)) // factor
13451 )
13452 {
13453 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
13454 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13455 if (_token == NULL) {
13456 D(p->level--);
13457 return NULL;
13458 }
13459 int _end_lineno = _token->end_lineno;
13460 UNUSED(_end_lineno); // Only used by EXTRA macro
13461 int _end_col_offset = _token->end_col_offset;
13462 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013463 _res = CHECK_VERSION ( expr_ty , 5 , "The '@' operator is" , _PyAST_BinOp ( a , MatMult , b , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013464 if (_res == NULL && PyErr_Occurred()) {
13465 p->error_indicator = 1;
13466 D(p->level--);
13467 return NULL;
13468 }
13469 goto done;
13470 }
13471 p->mark = _mark;
13472 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
13474 }
13475 { // factor
13476 if (p->error_indicator) {
13477 D(p->level--);
13478 return NULL;
13479 }
13480 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
13481 expr_ty factor_var;
13482 if (
13483 (factor_var = factor_rule(p)) // factor
13484 )
13485 {
13486 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
13487 _res = factor_var;
13488 goto done;
13489 }
13490 p->mark = _mark;
13491 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
13492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
13493 }
13494 _res = NULL;
13495 done:
13496 D(p->level--);
13497 return _res;
13498}
13499
13500// factor: '+' factor | '-' factor | '~' factor | power
13501static expr_ty
13502factor_rule(Parser *p)
13503{
13504 D(p->level++);
13505 if (p->error_indicator) {
13506 D(p->level--);
13507 return NULL;
13508 }
13509 expr_ty _res = NULL;
13510 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
13511 D(p->level--);
13512 return _res;
13513 }
13514 int _mark = p->mark;
13515 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13516 p->error_indicator = 1;
13517 D(p->level--);
13518 return NULL;
13519 }
13520 int _start_lineno = p->tokens[_mark]->lineno;
13521 UNUSED(_start_lineno); // Only used by EXTRA macro
13522 int _start_col_offset = p->tokens[_mark]->col_offset;
13523 UNUSED(_start_col_offset); // Only used by EXTRA macro
13524 { // '+' factor
13525 if (p->error_indicator) {
13526 D(p->level--);
13527 return NULL;
13528 }
13529 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13530 Token * _literal;
13531 expr_ty a;
13532 if (
13533 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
13534 &&
13535 (a = factor_rule(p)) // factor
13536 )
13537 {
13538 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
13539 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13540 if (_token == NULL) {
13541 D(p->level--);
13542 return NULL;
13543 }
13544 int _end_lineno = _token->end_lineno;
13545 UNUSED(_end_lineno); // Only used by EXTRA macro
13546 int _end_col_offset = _token->end_col_offset;
13547 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013548 _res = _PyAST_UnaryOp ( UAdd , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013549 if (_res == NULL && PyErr_Occurred()) {
13550 p->error_indicator = 1;
13551 D(p->level--);
13552 return NULL;
13553 }
13554 goto done;
13555 }
13556 p->mark = _mark;
13557 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
13559 }
13560 { // '-' factor
13561 if (p->error_indicator) {
13562 D(p->level--);
13563 return NULL;
13564 }
13565 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13566 Token * _literal;
13567 expr_ty a;
13568 if (
13569 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
13570 &&
13571 (a = factor_rule(p)) // factor
13572 )
13573 {
13574 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
13575 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13576 if (_token == NULL) {
13577 D(p->level--);
13578 return NULL;
13579 }
13580 int _end_lineno = _token->end_lineno;
13581 UNUSED(_end_lineno); // Only used by EXTRA macro
13582 int _end_col_offset = _token->end_col_offset;
13583 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013584 _res = _PyAST_UnaryOp ( USub , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013585 if (_res == NULL && PyErr_Occurred()) {
13586 p->error_indicator = 1;
13587 D(p->level--);
13588 return NULL;
13589 }
13590 goto done;
13591 }
13592 p->mark = _mark;
13593 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
13595 }
13596 { // '~' factor
13597 if (p->error_indicator) {
13598 D(p->level--);
13599 return NULL;
13600 }
13601 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13602 Token * _literal;
13603 expr_ty a;
13604 if (
13605 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
13606 &&
13607 (a = factor_rule(p)) // factor
13608 )
13609 {
13610 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
13611 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13612 if (_token == NULL) {
13613 D(p->level--);
13614 return NULL;
13615 }
13616 int _end_lineno = _token->end_lineno;
13617 UNUSED(_end_lineno); // Only used by EXTRA macro
13618 int _end_col_offset = _token->end_col_offset;
13619 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013620 _res = _PyAST_UnaryOp ( Invert , a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013621 if (_res == NULL && PyErr_Occurred()) {
13622 p->error_indicator = 1;
13623 D(p->level--);
13624 return NULL;
13625 }
13626 goto done;
13627 }
13628 p->mark = _mark;
13629 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
13631 }
13632 { // power
13633 if (p->error_indicator) {
13634 D(p->level--);
13635 return NULL;
13636 }
13637 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
13638 expr_ty power_var;
13639 if (
13640 (power_var = power_rule(p)) // power
13641 )
13642 {
13643 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
13644 _res = power_var;
13645 goto done;
13646 }
13647 p->mark = _mark;
13648 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
13649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
13650 }
13651 _res = NULL;
13652 done:
13653 _PyPegen_insert_memo(p, _mark, factor_type, _res);
13654 D(p->level--);
13655 return _res;
13656}
13657
13658// power: await_primary '**' factor | await_primary
13659static expr_ty
13660power_rule(Parser *p)
13661{
13662 D(p->level++);
13663 if (p->error_indicator) {
13664 D(p->level--);
13665 return NULL;
13666 }
13667 expr_ty _res = NULL;
13668 int _mark = p->mark;
13669 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13670 p->error_indicator = 1;
13671 D(p->level--);
13672 return NULL;
13673 }
13674 int _start_lineno = p->tokens[_mark]->lineno;
13675 UNUSED(_start_lineno); // Only used by EXTRA macro
13676 int _start_col_offset = p->tokens[_mark]->col_offset;
13677 UNUSED(_start_col_offset); // Only used by EXTRA macro
13678 { // await_primary '**' factor
13679 if (p->error_indicator) {
13680 D(p->level--);
13681 return NULL;
13682 }
13683 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13684 Token * _literal;
13685 expr_ty a;
13686 expr_ty b;
13687 if (
13688 (a = await_primary_rule(p)) // await_primary
13689 &&
13690 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
13691 &&
13692 (b = factor_rule(p)) // factor
13693 )
13694 {
13695 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
13696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13697 if (_token == NULL) {
13698 D(p->level--);
13699 return NULL;
13700 }
13701 int _end_lineno = _token->end_lineno;
13702 UNUSED(_end_lineno); // Only used by EXTRA macro
13703 int _end_col_offset = _token->end_col_offset;
13704 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013705 _res = _PyAST_BinOp ( a , Pow , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013706 if (_res == NULL && PyErr_Occurred()) {
13707 p->error_indicator = 1;
13708 D(p->level--);
13709 return NULL;
13710 }
13711 goto done;
13712 }
13713 p->mark = _mark;
13714 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
13716 }
13717 { // await_primary
13718 if (p->error_indicator) {
13719 D(p->level--);
13720 return NULL;
13721 }
13722 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
13723 expr_ty await_primary_var;
13724 if (
13725 (await_primary_var = await_primary_rule(p)) // await_primary
13726 )
13727 {
13728 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
13729 _res = await_primary_var;
13730 goto done;
13731 }
13732 p->mark = _mark;
13733 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
13734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
13735 }
13736 _res = NULL;
13737 done:
13738 D(p->level--);
13739 return _res;
13740}
13741
13742// await_primary: AWAIT primary | primary
13743static expr_ty
13744await_primary_rule(Parser *p)
13745{
13746 D(p->level++);
13747 if (p->error_indicator) {
13748 D(p->level--);
13749 return NULL;
13750 }
13751 expr_ty _res = NULL;
13752 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
13753 D(p->level--);
13754 return _res;
13755 }
13756 int _mark = p->mark;
13757 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13758 p->error_indicator = 1;
13759 D(p->level--);
13760 return NULL;
13761 }
13762 int _start_lineno = p->tokens[_mark]->lineno;
13763 UNUSED(_start_lineno); // Only used by EXTRA macro
13764 int _start_col_offset = p->tokens[_mark]->col_offset;
13765 UNUSED(_start_col_offset); // Only used by EXTRA macro
13766 { // AWAIT primary
13767 if (p->error_indicator) {
13768 D(p->level--);
13769 return NULL;
13770 }
13771 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13772 expr_ty a;
13773 Token * await_var;
13774 if (
13775 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
13776 &&
13777 (a = primary_rule(p)) // primary
13778 )
13779 {
13780 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
13781 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13782 if (_token == NULL) {
13783 D(p->level--);
13784 return NULL;
13785 }
13786 int _end_lineno = _token->end_lineno;
13787 UNUSED(_end_lineno); // Only used by EXTRA macro
13788 int _end_col_offset = _token->end_col_offset;
13789 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013790 _res = CHECK_VERSION ( expr_ty , 5 , "Await expressions are" , _PyAST_Await ( a , EXTRA ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013791 if (_res == NULL && PyErr_Occurred()) {
13792 p->error_indicator = 1;
13793 D(p->level--);
13794 return NULL;
13795 }
13796 goto done;
13797 }
13798 p->mark = _mark;
13799 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
13801 }
13802 { // primary
13803 if (p->error_indicator) {
13804 D(p->level--);
13805 return NULL;
13806 }
13807 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
13808 expr_ty primary_var;
13809 if (
13810 (primary_var = primary_rule(p)) // primary
13811 )
13812 {
13813 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
13814 _res = primary_var;
13815 goto done;
13816 }
13817 p->mark = _mark;
13818 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
13819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
13820 }
13821 _res = NULL;
13822 done:
13823 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
13824 D(p->level--);
13825 return _res;
13826}
13827
13828// Left-recursive
13829// primary:
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013830// | invalid_primary
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013831// | primary '.' NAME
13832// | primary genexp
13833// | primary '(' arguments? ')'
13834// | primary '[' slices ']'
13835// | atom
13836static expr_ty primary_raw(Parser *);
13837static expr_ty
13838primary_rule(Parser *p)
13839{
13840 D(p->level++);
13841 expr_ty _res = NULL;
13842 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
13843 D(p->level--);
13844 return _res;
13845 }
13846 int _mark = p->mark;
13847 int _resmark = p->mark;
13848 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080013849 int tmpvar_8 = _PyPegen_update_memo(p, _mark, primary_type, _res);
13850 if (tmpvar_8) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013851 D(p->level--);
13852 return _res;
13853 }
13854 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013855 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013856 void *_raw = primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070013857 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020013858 if (p->error_indicator)
13859 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013860 if (_raw == NULL || p->mark <= _resmark)
13861 break;
13862 _resmark = p->mark;
13863 _res = _raw;
13864 }
13865 p->mark = _resmark;
13866 D(p->level--);
13867 return _res;
13868}
13869static expr_ty
13870primary_raw(Parser *p)
13871{
13872 D(p->level++);
13873 if (p->error_indicator) {
13874 D(p->level--);
13875 return NULL;
13876 }
13877 expr_ty _res = NULL;
13878 int _mark = p->mark;
13879 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13880 p->error_indicator = 1;
13881 D(p->level--);
13882 return NULL;
13883 }
13884 int _start_lineno = p->tokens[_mark]->lineno;
13885 UNUSED(_start_lineno); // Only used by EXTRA macro
13886 int _start_col_offset = p->tokens[_mark]->col_offset;
13887 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020013888 if (p->call_invalid_rules) { // invalid_primary
13889 if (p->error_indicator) {
13890 D(p->level--);
13891 return NULL;
13892 }
13893 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13894 void *invalid_primary_var;
13895 if (
13896 (invalid_primary_var = invalid_primary_rule(p)) // invalid_primary
13897 )
13898 {
13899 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_primary"));
13900 _res = invalid_primary_var;
13901 goto done;
13902 }
13903 p->mark = _mark;
13904 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_primary"));
13906 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013907 { // primary '.' NAME
13908 if (p->error_indicator) {
13909 D(p->level--);
13910 return NULL;
13911 }
13912 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13913 Token * _literal;
13914 expr_ty a;
13915 expr_ty b;
13916 if (
13917 (a = primary_rule(p)) // primary
13918 &&
13919 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
13920 &&
13921 (b = _PyPegen_name_token(p)) // NAME
13922 )
13923 {
13924 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
13925 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13926 if (_token == NULL) {
13927 D(p->level--);
13928 return NULL;
13929 }
13930 int _end_lineno = _token->end_lineno;
13931 UNUSED(_end_lineno); // Only used by EXTRA macro
13932 int _end_col_offset = _token->end_col_offset;
13933 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013934 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010013935 if (_res == NULL && PyErr_Occurred()) {
13936 p->error_indicator = 1;
13937 D(p->level--);
13938 return NULL;
13939 }
13940 goto done;
13941 }
13942 p->mark = _mark;
13943 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
13945 }
13946 { // primary genexp
13947 if (p->error_indicator) {
13948 D(p->level--);
13949 return NULL;
13950 }
13951 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13952 expr_ty a;
13953 expr_ty b;
13954 if (
13955 (a = primary_rule(p)) // primary
13956 &&
13957 (b = genexp_rule(p)) // genexp
13958 )
13959 {
13960 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
13961 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13962 if (_token == NULL) {
13963 D(p->level--);
13964 return NULL;
13965 }
13966 int _end_lineno = _token->end_lineno;
13967 UNUSED(_end_lineno); // Only used by EXTRA macro
13968 int _end_col_offset = _token->end_col_offset;
13969 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020013970 _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 +010013971 if (_res == NULL && PyErr_Occurred()) {
13972 p->error_indicator = 1;
13973 D(p->level--);
13974 return NULL;
13975 }
13976 goto done;
13977 }
13978 p->mark = _mark;
13979 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
13980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
13981 }
13982 { // primary '(' arguments? ')'
13983 if (p->error_indicator) {
13984 D(p->level--);
13985 return NULL;
13986 }
13987 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
13988 Token * _literal;
13989 Token * _literal_1;
13990 expr_ty a;
13991 void *b;
13992 if (
13993 (a = primary_rule(p)) // primary
13994 &&
13995 (_literal = _PyPegen_expect_token(p, 7)) // token='('
13996 &&
13997 (b = arguments_rule(p), 1) // arguments?
13998 &&
13999 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14000 )
14001 {
14002 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
14003 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14004 if (_token == NULL) {
14005 D(p->level--);
14006 return NULL;
14007 }
14008 int _end_lineno = _token->end_lineno;
14009 UNUSED(_end_lineno); // Only used by EXTRA macro
14010 int _end_col_offset = _token->end_col_offset;
14011 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014012 _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 +010014013 if (_res == NULL && PyErr_Occurred()) {
14014 p->error_indicator = 1;
14015 D(p->level--);
14016 return NULL;
14017 }
14018 goto done;
14019 }
14020 p->mark = _mark;
14021 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14022 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
14023 }
14024 { // primary '[' slices ']'
14025 if (p->error_indicator) {
14026 D(p->level--);
14027 return NULL;
14028 }
14029 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14030 Token * _literal;
14031 Token * _literal_1;
14032 expr_ty a;
14033 expr_ty b;
14034 if (
14035 (a = primary_rule(p)) // primary
14036 &&
14037 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14038 &&
14039 (b = slices_rule(p)) // slices
14040 &&
14041 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14042 )
14043 {
14044 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
14045 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14046 if (_token == NULL) {
14047 D(p->level--);
14048 return NULL;
14049 }
14050 int _end_lineno = _token->end_lineno;
14051 UNUSED(_end_lineno); // Only used by EXTRA macro
14052 int _end_col_offset = _token->end_col_offset;
14053 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014054 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014055 if (_res == NULL && PyErr_Occurred()) {
14056 p->error_indicator = 1;
14057 D(p->level--);
14058 return NULL;
14059 }
14060 goto done;
14061 }
14062 p->mark = _mark;
14063 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14064 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
14065 }
14066 { // atom
14067 if (p->error_indicator) {
14068 D(p->level--);
14069 return NULL;
14070 }
14071 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
14072 expr_ty atom_var;
14073 if (
14074 (atom_var = atom_rule(p)) // atom
14075 )
14076 {
14077 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
14078 _res = atom_var;
14079 goto done;
14080 }
14081 p->mark = _mark;
14082 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
14083 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
14084 }
14085 _res = NULL;
14086 done:
14087 D(p->level--);
14088 return _res;
14089}
14090
14091// slices: slice !',' | ','.slice+ ','?
14092static expr_ty
14093slices_rule(Parser *p)
14094{
14095 D(p->level++);
14096 if (p->error_indicator) {
14097 D(p->level--);
14098 return NULL;
14099 }
14100 expr_ty _res = NULL;
14101 int _mark = p->mark;
14102 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14103 p->error_indicator = 1;
14104 D(p->level--);
14105 return NULL;
14106 }
14107 int _start_lineno = p->tokens[_mark]->lineno;
14108 UNUSED(_start_lineno); // Only used by EXTRA macro
14109 int _start_col_offset = p->tokens[_mark]->col_offset;
14110 UNUSED(_start_col_offset); // Only used by EXTRA macro
14111 { // slice !','
14112 if (p->error_indicator) {
14113 D(p->level--);
14114 return NULL;
14115 }
14116 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
14117 expr_ty a;
14118 if (
14119 (a = slice_rule(p)) // slice
14120 &&
14121 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
14122 )
14123 {
14124 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
14125 _res = a;
14126 if (_res == NULL && PyErr_Occurred()) {
14127 p->error_indicator = 1;
14128 D(p->level--);
14129 return NULL;
14130 }
14131 goto done;
14132 }
14133 p->mark = _mark;
14134 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
14136 }
14137 { // ','.slice+ ','?
14138 if (p->error_indicator) {
14139 D(p->level--);
14140 return NULL;
14141 }
14142 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14143 void *_opt_var;
14144 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010014145 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014146 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014147 (a = (asdl_expr_seq*)_gather_108_rule(p)) // ','.slice+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014148 &&
14149 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
14150 )
14151 {
14152 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
14153 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14154 if (_token == NULL) {
14155 D(p->level--);
14156 return NULL;
14157 }
14158 int _end_lineno = _token->end_lineno;
14159 UNUSED(_end_lineno); // Only used by EXTRA macro
14160 int _end_col_offset = _token->end_col_offset;
14161 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014162 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014163 if (_res == NULL && PyErr_Occurred()) {
14164 p->error_indicator = 1;
14165 D(p->level--);
14166 return NULL;
14167 }
14168 goto done;
14169 }
14170 p->mark = _mark;
14171 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
14172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
14173 }
14174 _res = NULL;
14175 done:
14176 D(p->level--);
14177 return _res;
14178}
14179
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014180// slice: expression? ':' expression? [':' expression?] | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014181static expr_ty
14182slice_rule(Parser *p)
14183{
14184 D(p->level++);
14185 if (p->error_indicator) {
14186 D(p->level--);
14187 return NULL;
14188 }
14189 expr_ty _res = NULL;
14190 int _mark = p->mark;
14191 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14192 p->error_indicator = 1;
14193 D(p->level--);
14194 return NULL;
14195 }
14196 int _start_lineno = p->tokens[_mark]->lineno;
14197 UNUSED(_start_lineno); // Only used by EXTRA macro
14198 int _start_col_offset = p->tokens[_mark]->col_offset;
14199 UNUSED(_start_col_offset); // Only used by EXTRA macro
14200 { // expression? ':' expression? [':' expression?]
14201 if (p->error_indicator) {
14202 D(p->level--);
14203 return NULL;
14204 }
14205 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14206 Token * _literal;
14207 void *a;
14208 void *b;
14209 void *c;
14210 if (
14211 (a = expression_rule(p), 1) // expression?
14212 &&
14213 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
14214 &&
14215 (b = expression_rule(p), 1) // expression?
14216 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014217 (c = _tmp_110_rule(p), 1) // [':' expression?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014218 )
14219 {
14220 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14221 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14222 if (_token == NULL) {
14223 D(p->level--);
14224 return NULL;
14225 }
14226 int _end_lineno = _token->end_lineno;
14227 UNUSED(_end_lineno); // Only used by EXTRA macro
14228 int _end_col_offset = _token->end_col_offset;
14229 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014230 _res = _PyAST_Slice ( a , b , c , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014231 if (_res == NULL && PyErr_Occurred()) {
14232 p->error_indicator = 1;
14233 D(p->level--);
14234 return NULL;
14235 }
14236 goto done;
14237 }
14238 p->mark = _mark;
14239 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
14240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
14241 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014242 { // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014243 if (p->error_indicator) {
14244 D(p->level--);
14245 return NULL;
14246 }
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014247 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014248 expr_ty a;
14249 if (
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014250 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014251 )
14252 {
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014253 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014254 _res = a;
14255 if (_res == NULL && PyErr_Occurred()) {
14256 p->error_indicator = 1;
14257 D(p->level--);
14258 return NULL;
14259 }
14260 goto done;
14261 }
14262 p->mark = _mark;
14263 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoucae60182020-11-17 01:09:35 +020014264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014265 }
14266 _res = NULL;
14267 done:
14268 D(p->level--);
14269 return _res;
14270}
14271
14272// atom:
14273// | NAME
14274// | 'True'
14275// | 'False'
14276// | 'None'
14277// | &STRING strings
14278// | NUMBER
14279// | &'(' (tuple | group | genexp)
14280// | &'[' (list | listcomp)
14281// | &'{' (dict | set | dictcomp | setcomp)
14282// | '...'
14283static expr_ty
14284atom_rule(Parser *p)
14285{
14286 D(p->level++);
14287 if (p->error_indicator) {
14288 D(p->level--);
14289 return NULL;
14290 }
14291 expr_ty _res = NULL;
14292 int _mark = p->mark;
14293 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14294 p->error_indicator = 1;
14295 D(p->level--);
14296 return NULL;
14297 }
14298 int _start_lineno = p->tokens[_mark]->lineno;
14299 UNUSED(_start_lineno); // Only used by EXTRA macro
14300 int _start_col_offset = p->tokens[_mark]->col_offset;
14301 UNUSED(_start_col_offset); // Only used by EXTRA macro
14302 { // NAME
14303 if (p->error_indicator) {
14304 D(p->level--);
14305 return NULL;
14306 }
14307 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
14308 expr_ty name_var;
14309 if (
14310 (name_var = _PyPegen_name_token(p)) // NAME
14311 )
14312 {
14313 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
14314 _res = name_var;
14315 goto done;
14316 }
14317 p->mark = _mark;
14318 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14319 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
14320 }
14321 { // 'True'
14322 if (p->error_indicator) {
14323 D(p->level--);
14324 return NULL;
14325 }
14326 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
14327 Token * _keyword;
14328 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014329 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014330 )
14331 {
14332 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
14333 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14334 if (_token == NULL) {
14335 D(p->level--);
14336 return NULL;
14337 }
14338 int _end_lineno = _token->end_lineno;
14339 UNUSED(_end_lineno); // Only used by EXTRA macro
14340 int _end_col_offset = _token->end_col_offset;
14341 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014342 _res = _PyAST_Constant ( Py_True , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014343 if (_res == NULL && PyErr_Occurred()) {
14344 p->error_indicator = 1;
14345 D(p->level--);
14346 return NULL;
14347 }
14348 goto done;
14349 }
14350 p->mark = _mark;
14351 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
14353 }
14354 { // 'False'
14355 if (p->error_indicator) {
14356 D(p->level--);
14357 return NULL;
14358 }
14359 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
14360 Token * _keyword;
14361 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014362 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014363 )
14364 {
14365 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
14366 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14367 if (_token == NULL) {
14368 D(p->level--);
14369 return NULL;
14370 }
14371 int _end_lineno = _token->end_lineno;
14372 UNUSED(_end_lineno); // Only used by EXTRA macro
14373 int _end_col_offset = _token->end_col_offset;
14374 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014375 _res = _PyAST_Constant ( Py_False , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014376 if (_res == NULL && PyErr_Occurred()) {
14377 p->error_indicator = 1;
14378 D(p->level--);
14379 return NULL;
14380 }
14381 goto done;
14382 }
14383 p->mark = _mark;
14384 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
14386 }
14387 { // 'None'
14388 if (p->error_indicator) {
14389 D(p->level--);
14390 return NULL;
14391 }
14392 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
14393 Token * _keyword;
14394 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014395 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014396 )
14397 {
14398 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
14399 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14400 if (_token == NULL) {
14401 D(p->level--);
14402 return NULL;
14403 }
14404 int _end_lineno = _token->end_lineno;
14405 UNUSED(_end_lineno); // Only used by EXTRA macro
14406 int _end_col_offset = _token->end_col_offset;
14407 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014408 _res = _PyAST_Constant ( Py_None , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014409 if (_res == NULL && PyErr_Occurred()) {
14410 p->error_indicator = 1;
14411 D(p->level--);
14412 return NULL;
14413 }
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, "'None'"));
14419 }
14420 { // &STRING strings
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, "&STRING strings"));
14426 expr_ty strings_var;
14427 if (
14428 _PyPegen_lookahead(1, _PyPegen_string_token, p)
14429 &&
14430 (strings_var = strings_rule(p)) // strings
14431 )
14432 {
14433 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
14434 _res = strings_var;
14435 goto done;
14436 }
14437 p->mark = _mark;
14438 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14439 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
14440 }
14441 { // NUMBER
14442 if (p->error_indicator) {
14443 D(p->level--);
14444 return NULL;
14445 }
14446 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14447 expr_ty number_var;
14448 if (
14449 (number_var = _PyPegen_number_token(p)) // NUMBER
14450 )
14451 {
14452 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
14453 _res = number_var;
14454 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, "NUMBER"));
14459 }
14460 { // &'(' (tuple | group | genexp)
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, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014466 void *_tmp_111_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014467 if (
14468 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
14469 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014470 (_tmp_111_var = _tmp_111_rule(p)) // tuple | group | genexp
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, "&'(' (tuple | group | genexp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014474 _res = _tmp_111_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, "&'(' (tuple | group | genexp)"));
14480 }
14481 { // &'[' (list | listcomp)
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, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014487 void *_tmp_112_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014488 if (
14489 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
14490 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014491 (_tmp_112_var = _tmp_112_rule(p)) // list | listcomp
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, "&'[' (list | listcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014495 _res = _tmp_112_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, "&'[' (list | listcomp)"));
14501 }
14502 { // &'{' (dict | set | dictcomp | setcomp)
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, "&'{' (dict | set | dictcomp | setcomp)"));
Brandt Bucher145bf262021-02-26 14:51:55 -080014508 void *_tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014509 if (
14510 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
14511 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014512 (_tmp_113_var = _tmp_113_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014513 )
14514 {
14515 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 -080014516 _res = _tmp_113_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014517 goto done;
14518 }
14519 p->mark = _mark;
14520 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
14522 }
14523 { // '...'
14524 if (p->error_indicator) {
14525 D(p->level--);
14526 return NULL;
14527 }
14528 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
14529 Token * _literal;
14530 if (
14531 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
14532 )
14533 {
14534 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
14535 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14536 if (_token == NULL) {
14537 D(p->level--);
14538 return NULL;
14539 }
14540 int _end_lineno = _token->end_lineno;
14541 UNUSED(_end_lineno); // Only used by EXTRA macro
14542 int _end_col_offset = _token->end_col_offset;
14543 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014544 _res = _PyAST_Constant ( Py_Ellipsis , NULL , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014545 if (_res == NULL && PyErr_Occurred()) {
14546 p->error_indicator = 1;
14547 D(p->level--);
14548 return NULL;
14549 }
14550 goto done;
14551 }
14552 p->mark = _mark;
14553 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
14554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
14555 }
14556 _res = NULL;
14557 done:
14558 D(p->level--);
14559 return _res;
14560}
14561
14562// strings: STRING+
14563static expr_ty
14564strings_rule(Parser *p)
14565{
14566 D(p->level++);
14567 if (p->error_indicator) {
14568 D(p->level--);
14569 return NULL;
14570 }
14571 expr_ty _res = NULL;
14572 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
14573 D(p->level--);
14574 return _res;
14575 }
14576 int _mark = p->mark;
14577 { // STRING+
14578 if (p->error_indicator) {
14579 D(p->level--);
14580 return NULL;
14581 }
14582 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
14583 asdl_seq * a;
14584 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080014585 (a = _loop1_114_rule(p)) // STRING+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014586 )
14587 {
14588 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
14589 _res = _PyPegen_concatenate_strings ( p , a );
14590 if (_res == NULL && PyErr_Occurred()) {
14591 p->error_indicator = 1;
14592 D(p->level--);
14593 return NULL;
14594 }
14595 goto done;
14596 }
14597 p->mark = _mark;
14598 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
14599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
14600 }
14601 _res = NULL;
14602 done:
14603 _PyPegen_insert_memo(p, _mark, strings_type, _res);
14604 D(p->level--);
14605 return _res;
14606}
14607
14608// list: '[' star_named_expressions? ']'
14609static expr_ty
14610list_rule(Parser *p)
14611{
14612 D(p->level++);
14613 if (p->error_indicator) {
14614 D(p->level--);
14615 return NULL;
14616 }
14617 expr_ty _res = NULL;
14618 int _mark = p->mark;
14619 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14620 p->error_indicator = 1;
14621 D(p->level--);
14622 return NULL;
14623 }
14624 int _start_lineno = p->tokens[_mark]->lineno;
14625 UNUSED(_start_lineno); // Only used by EXTRA macro
14626 int _start_col_offset = p->tokens[_mark]->col_offset;
14627 UNUSED(_start_col_offset); // Only used by EXTRA macro
14628 { // '[' star_named_expressions? ']'
14629 if (p->error_indicator) {
14630 D(p->level--);
14631 return NULL;
14632 }
14633 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14634 Token * _literal;
14635 Token * _literal_1;
14636 void *a;
14637 if (
14638 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14639 &&
14640 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
14641 &&
14642 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14643 )
14644 {
14645 D(fprintf(stderr, "%*c+ list[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
14646 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14647 if (_token == NULL) {
14648 D(p->level--);
14649 return NULL;
14650 }
14651 int _end_lineno = _token->end_lineno;
14652 UNUSED(_end_lineno); // Only used by EXTRA macro
14653 int _end_col_offset = _token->end_col_offset;
14654 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014655 _res = _PyAST_List ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014656 if (_res == NULL && PyErr_Occurred()) {
14657 p->error_indicator = 1;
14658 D(p->level--);
14659 return NULL;
14660 }
14661 goto done;
14662 }
14663 p->mark = _mark;
14664 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
14665 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
14666 }
14667 _res = NULL;
14668 done:
14669 D(p->level--);
14670 return _res;
14671}
14672
Pablo Galindo835f14f2021-01-31 22:52:56 +000014673// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014674static expr_ty
14675listcomp_rule(Parser *p)
14676{
14677 D(p->level++);
14678 if (p->error_indicator) {
14679 D(p->level--);
14680 return NULL;
14681 }
14682 expr_ty _res = NULL;
14683 int _mark = p->mark;
14684 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14685 p->error_indicator = 1;
14686 D(p->level--);
14687 return NULL;
14688 }
14689 int _start_lineno = p->tokens[_mark]->lineno;
14690 UNUSED(_start_lineno); // Only used by EXTRA macro
14691 int _start_col_offset = p->tokens[_mark]->col_offset;
14692 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000014693 { // '[' named_expression for_if_clauses ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014694 if (p->error_indicator) {
14695 D(p->level--);
14696 return NULL;
14697 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000014698 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 +010014699 Token * _literal;
14700 Token * _literal_1;
14701 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014702 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014703 if (
14704 (_literal = _PyPegen_expect_token(p, 9)) // token='['
14705 &&
14706 (a = named_expression_rule(p)) // named_expression
14707 &&
14708 (b = for_if_clauses_rule(p)) // for_if_clauses
14709 &&
14710 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
14711 )
14712 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000014713 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 +010014714 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14715 if (_token == NULL) {
14716 D(p->level--);
14717 return NULL;
14718 }
14719 int _end_lineno = _token->end_lineno;
14720 UNUSED(_end_lineno); // Only used by EXTRA macro
14721 int _end_col_offset = _token->end_col_offset;
14722 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014723 _res = _PyAST_ListComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014724 if (_res == NULL && PyErr_Occurred()) {
14725 p->error_indicator = 1;
14726 D(p->level--);
14727 return NULL;
14728 }
14729 goto done;
14730 }
14731 p->mark = _mark;
14732 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000014733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014734 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014735 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014736 if (p->error_indicator) {
14737 D(p->level--);
14738 return NULL;
14739 }
14740 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14741 void *invalid_comprehension_var;
14742 if (
14743 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14744 )
14745 {
14746 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14747 _res = invalid_comprehension_var;
14748 goto done;
14749 }
14750 p->mark = _mark;
14751 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
14752 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14753 }
14754 _res = NULL;
14755 done:
14756 D(p->level--);
14757 return _res;
14758}
14759
14760// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
14761static expr_ty
14762tuple_rule(Parser *p)
14763{
14764 D(p->level++);
14765 if (p->error_indicator) {
14766 D(p->level--);
14767 return NULL;
14768 }
14769 expr_ty _res = NULL;
14770 int _mark = p->mark;
14771 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14772 p->error_indicator = 1;
14773 D(p->level--);
14774 return NULL;
14775 }
14776 int _start_lineno = p->tokens[_mark]->lineno;
14777 UNUSED(_start_lineno); // Only used by EXTRA macro
14778 int _start_col_offset = p->tokens[_mark]->col_offset;
14779 UNUSED(_start_col_offset); // Only used by EXTRA macro
14780 { // '(' [star_named_expression ',' star_named_expressions?] ')'
14781 if (p->error_indicator) {
14782 D(p->level--);
14783 return NULL;
14784 }
14785 D(fprintf(stderr, "%*c> tuple[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14786 Token * _literal;
14787 Token * _literal_1;
14788 void *a;
14789 if (
14790 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14791 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014792 (a = _tmp_115_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014793 &&
14794 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14795 )
14796 {
14797 D(fprintf(stderr, "%*c+ tuple[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14798 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14799 if (_token == NULL) {
14800 D(p->level--);
14801 return NULL;
14802 }
14803 int _end_lineno = _token->end_lineno;
14804 UNUSED(_end_lineno); // Only used by EXTRA macro
14805 int _end_col_offset = _token->end_col_offset;
14806 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014807 _res = _PyAST_Tuple ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014808 if (_res == NULL && PyErr_Occurred()) {
14809 p->error_indicator = 1;
14810 D(p->level--);
14811 return NULL;
14812 }
14813 goto done;
14814 }
14815 p->mark = _mark;
14816 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
14817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
14818 }
14819 _res = NULL;
14820 done:
14821 D(p->level--);
14822 return _res;
14823}
14824
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014825// group: '(' (yield_expr | named_expression) ')' | invalid_group
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014826static expr_ty
14827group_rule(Parser *p)
14828{
14829 D(p->level++);
14830 if (p->error_indicator) {
14831 D(p->level--);
14832 return NULL;
14833 }
14834 expr_ty _res = NULL;
14835 int _mark = p->mark;
14836 { // '(' (yield_expr | named_expression) ')'
14837 if (p->error_indicator) {
14838 D(p->level--);
14839 return NULL;
14840 }
14841 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14842 Token * _literal;
14843 Token * _literal_1;
14844 void *a;
14845 if (
14846 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14847 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080014848 (a = _tmp_116_rule(p)) // yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014849 &&
14850 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14851 )
14852 {
14853 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14854 _res = a;
14855 if (_res == NULL && PyErr_Occurred()) {
14856 p->error_indicator = 1;
14857 D(p->level--);
14858 return NULL;
14859 }
14860 goto done;
14861 }
14862 p->mark = _mark;
14863 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
14865 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014866 if (p->call_invalid_rules) { // invalid_group
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030014867 if (p->error_indicator) {
14868 D(p->level--);
14869 return NULL;
14870 }
14871 D(fprintf(stderr, "%*c> group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14872 void *invalid_group_var;
14873 if (
14874 (invalid_group_var = invalid_group_rule(p)) // invalid_group
14875 )
14876 {
14877 D(fprintf(stderr, "%*c+ group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_group"));
14878 _res = invalid_group_var;
14879 goto done;
14880 }
14881 p->mark = _mark;
14882 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
14883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_group"));
14884 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014885 _res = NULL;
14886 done:
14887 D(p->level--);
14888 return _res;
14889}
14890
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014891// genexp:
14892// | '(' (assigment_expression | expression !':=') for_if_clauses ')'
14893// | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014894static expr_ty
14895genexp_rule(Parser *p)
14896{
14897 D(p->level++);
14898 if (p->error_indicator) {
14899 D(p->level--);
14900 return NULL;
14901 }
14902 expr_ty _res = NULL;
14903 int _mark = p->mark;
14904 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14905 p->error_indicator = 1;
14906 D(p->level--);
14907 return NULL;
14908 }
14909 int _start_lineno = p->tokens[_mark]->lineno;
14910 UNUSED(_start_lineno); // Only used by EXTRA macro
14911 int _start_col_offset = p->tokens[_mark]->col_offset;
14912 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014913 { // '(' (assigment_expression | expression !':=') for_if_clauses ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014914 if (p->error_indicator) {
14915 D(p->level--);
14916 return NULL;
14917 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014918 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 +010014919 Token * _literal;
14920 Token * _literal_1;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014921 void *a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010014922 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014923 if (
14924 (_literal = _PyPegen_expect_token(p, 7)) // token='('
14925 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014926 (a = _tmp_117_rule(p)) // assigment_expression | expression !':='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014927 &&
14928 (b = for_if_clauses_rule(p)) // for_if_clauses
14929 &&
14930 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
14931 )
14932 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014933 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 +010014934 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14935 if (_token == NULL) {
14936 D(p->level--);
14937 return NULL;
14938 }
14939 int _end_lineno = _token->end_lineno;
14940 UNUSED(_end_lineno); // Only used by EXTRA macro
14941 int _end_col_offset = _token->end_col_offset;
14942 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020014943 _res = _PyAST_GeneratorExp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014944 if (_res == NULL && PyErr_Occurred()) {
14945 p->error_indicator = 1;
14946 D(p->level--);
14947 return NULL;
14948 }
14949 goto done;
14950 }
14951 p->mark = _mark;
14952 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070014953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assigment_expression | expression !':=') for_if_clauses ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014954 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020014955 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014956 if (p->error_indicator) {
14957 D(p->level--);
14958 return NULL;
14959 }
14960 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14961 void *invalid_comprehension_var;
14962 if (
14963 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
14964 )
14965 {
14966 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
14967 _res = invalid_comprehension_var;
14968 goto done;
14969 }
14970 p->mark = _mark;
14971 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
14972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
14973 }
14974 _res = NULL;
14975 done:
14976 D(p->level--);
14977 return _res;
14978}
14979
Pablo Galindob0aba1f2020-11-17 01:17:12 +000014980// set: '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010014981static expr_ty
14982set_rule(Parser *p)
14983{
14984 D(p->level++);
14985 if (p->error_indicator) {
14986 D(p->level--);
14987 return NULL;
14988 }
14989 expr_ty _res = NULL;
14990 int _mark = p->mark;
14991 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14992 p->error_indicator = 1;
14993 D(p->level--);
14994 return NULL;
14995 }
14996 int _start_lineno = p->tokens[_mark]->lineno;
14997 UNUSED(_start_lineno); // Only used by EXTRA macro
14998 int _start_col_offset = p->tokens[_mark]->col_offset;
14999 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015000 { // '{' star_named_expressions '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015001 if (p->error_indicator) {
15002 D(p->level--);
15003 return NULL;
15004 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015005 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015006 Token * _literal;
15007 Token * _literal_1;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015008 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015009 if (
15010 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15011 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015012 (a = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015013 &&
15014 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15015 )
15016 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015017 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 +010015018 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15019 if (_token == NULL) {
15020 D(p->level--);
15021 return NULL;
15022 }
15023 int _end_lineno = _token->end_lineno;
15024 UNUSED(_end_lineno); // Only used by EXTRA macro
15025 int _end_col_offset = _token->end_col_offset;
15026 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015027 _res = _PyAST_Set ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015028 if (_res == NULL && PyErr_Occurred()) {
15029 p->error_indicator = 1;
15030 D(p->level--);
15031 return NULL;
15032 }
15033 goto done;
15034 }
15035 p->mark = _mark;
15036 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expressions '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015038 }
15039 _res = NULL;
15040 done:
15041 D(p->level--);
15042 return _res;
15043}
15044
Pablo Galindo835f14f2021-01-31 22:52:56 +000015045// setcomp: '{' named_expression for_if_clauses '}' | invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015046static expr_ty
15047setcomp_rule(Parser *p)
15048{
15049 D(p->level++);
15050 if (p->error_indicator) {
15051 D(p->level--);
15052 return NULL;
15053 }
15054 expr_ty _res = NULL;
15055 int _mark = p->mark;
15056 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15057 p->error_indicator = 1;
15058 D(p->level--);
15059 return NULL;
15060 }
15061 int _start_lineno = p->tokens[_mark]->lineno;
15062 UNUSED(_start_lineno); // Only used by EXTRA macro
15063 int _start_col_offset = p->tokens[_mark]->col_offset;
15064 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo835f14f2021-01-31 22:52:56 +000015065 { // '{' named_expression for_if_clauses '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015066 if (p->error_indicator) {
15067 D(p->level--);
15068 return NULL;
15069 }
Pablo Galindo835f14f2021-01-31 22:52:56 +000015070 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 +010015071 Token * _literal;
15072 Token * _literal_1;
15073 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015074 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015075 if (
15076 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15077 &&
Pablo Galindob0aba1f2020-11-17 01:17:12 +000015078 (a = named_expression_rule(p)) // named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015079 &&
15080 (b = for_if_clauses_rule(p)) // for_if_clauses
15081 &&
15082 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15083 )
15084 {
Pablo Galindo835f14f2021-01-31 22:52:56 +000015085 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 +010015086 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15087 if (_token == NULL) {
15088 D(p->level--);
15089 return NULL;
15090 }
15091 int _end_lineno = _token->end_lineno;
15092 UNUSED(_end_lineno); // Only used by EXTRA macro
15093 int _end_col_offset = _token->end_col_offset;
15094 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015095 _res = _PyAST_SetComp ( a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015096 if (_res == NULL && PyErr_Occurred()) {
15097 p->error_indicator = 1;
15098 D(p->level--);
15099 return NULL;
15100 }
15101 goto done;
15102 }
15103 p->mark = _mark;
15104 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo835f14f2021-01-31 22:52:56 +000015105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' named_expression for_if_clauses '}'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015106 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015107 if (p->call_invalid_rules) { // invalid_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015108 if (p->error_indicator) {
15109 D(p->level--);
15110 return NULL;
15111 }
15112 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15113 void *invalid_comprehension_var;
15114 if (
15115 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
15116 )
15117 {
15118 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
15119 _res = invalid_comprehension_var;
15120 goto done;
15121 }
15122 p->mark = _mark;
15123 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
15124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
15125 }
15126 _res = NULL;
15127 done:
15128 D(p->level--);
15129 return _res;
15130}
15131
Pablo Galindoda743502021-04-15 14:06:39 +010015132// dict: '{' double_starred_kvpairs? '}' | '{' invalid_double_starred_kvpairs '}'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015133static expr_ty
15134dict_rule(Parser *p)
15135{
15136 D(p->level++);
15137 if (p->error_indicator) {
15138 D(p->level--);
15139 return NULL;
15140 }
15141 expr_ty _res = NULL;
15142 int _mark = p->mark;
15143 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15144 p->error_indicator = 1;
15145 D(p->level--);
15146 return NULL;
15147 }
15148 int _start_lineno = p->tokens[_mark]->lineno;
15149 UNUSED(_start_lineno); // Only used by EXTRA macro
15150 int _start_col_offset = p->tokens[_mark]->col_offset;
15151 UNUSED(_start_col_offset); // Only used by EXTRA macro
15152 { // '{' double_starred_kvpairs? '}'
15153 if (p->error_indicator) {
15154 D(p->level--);
15155 return NULL;
15156 }
15157 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15158 Token * _literal;
15159 Token * _literal_1;
15160 void *a;
15161 if (
15162 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15163 &&
15164 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
15165 &&
15166 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15167 )
15168 {
15169 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15170 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15171 if (_token == NULL) {
15172 D(p->level--);
15173 return NULL;
15174 }
15175 int _end_lineno = _token->end_lineno;
15176 UNUSED(_end_lineno); // Only used by EXTRA macro
15177 int _end_col_offset = _token->end_col_offset;
15178 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015179 _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 +010015180 if (_res == NULL && PyErr_Occurred()) {
15181 p->error_indicator = 1;
15182 D(p->level--);
15183 return NULL;
15184 }
15185 goto done;
15186 }
15187 p->mark = _mark;
15188 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
15190 }
Pablo Galindoda743502021-04-15 14:06:39 +010015191 { // '{' invalid_double_starred_kvpairs '}'
15192 if (p->error_indicator) {
15193 D(p->level--);
15194 return NULL;
15195 }
15196 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15197 Token * _literal;
15198 Token * _literal_1;
15199 void *invalid_double_starred_kvpairs_var;
15200 if (
15201 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15202 &&
15203 (invalid_double_starred_kvpairs_var = invalid_double_starred_kvpairs_rule(p)) // invalid_double_starred_kvpairs
15204 &&
15205 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15206 )
15207 {
15208 D(fprintf(stderr, "%*c+ dict[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15209 _res = _PyPegen_dummy_name(p, _literal, invalid_double_starred_kvpairs_var, _literal_1);
15210 goto done;
15211 }
15212 p->mark = _mark;
15213 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
15214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' invalid_double_starred_kvpairs '}'"));
15215 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015216 _res = NULL;
15217 done:
15218 D(p->level--);
15219 return _res;
15220}
15221
15222// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
15223static expr_ty
15224dictcomp_rule(Parser *p)
15225{
15226 D(p->level++);
15227 if (p->error_indicator) {
15228 D(p->level--);
15229 return NULL;
15230 }
15231 expr_ty _res = NULL;
15232 int _mark = p->mark;
15233 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15234 p->error_indicator = 1;
15235 D(p->level--);
15236 return NULL;
15237 }
15238 int _start_lineno = p->tokens[_mark]->lineno;
15239 UNUSED(_start_lineno); // Only used by EXTRA macro
15240 int _start_col_offset = p->tokens[_mark]->col_offset;
15241 UNUSED(_start_col_offset); // Only used by EXTRA macro
15242 { // '{' kvpair for_if_clauses '}'
15243 if (p->error_indicator) {
15244 D(p->level--);
15245 return NULL;
15246 }
15247 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15248 Token * _literal;
15249 Token * _literal_1;
15250 KeyValuePair* a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015251 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015252 if (
15253 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
15254 &&
15255 (a = kvpair_rule(p)) // kvpair
15256 &&
15257 (b = for_if_clauses_rule(p)) // for_if_clauses
15258 &&
15259 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
15260 )
15261 {
15262 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15263 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15264 if (_token == NULL) {
15265 D(p->level--);
15266 return NULL;
15267 }
15268 int _end_lineno = _token->end_lineno;
15269 UNUSED(_end_lineno); // Only used by EXTRA macro
15270 int _end_col_offset = _token->end_col_offset;
15271 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015272 _res = _PyAST_DictComp ( a -> key , a -> value , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015273 if (_res == NULL && PyErr_Occurred()) {
15274 p->error_indicator = 1;
15275 D(p->level--);
15276 return NULL;
15277 }
15278 goto done;
15279 }
15280 p->mark = _mark;
15281 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
15283 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015284 if (p->call_invalid_rules) { // invalid_dict_comprehension
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015285 if (p->error_indicator) {
15286 D(p->level--);
15287 return NULL;
15288 }
15289 D(fprintf(stderr, "%*c> dictcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15290 void *invalid_dict_comprehension_var;
15291 if (
15292 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
15293 )
15294 {
15295 D(fprintf(stderr, "%*c+ dictcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_dict_comprehension"));
15296 _res = invalid_dict_comprehension_var;
15297 goto done;
15298 }
15299 p->mark = _mark;
15300 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
15301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
15302 }
15303 _res = NULL;
15304 done:
15305 D(p->level--);
15306 return _res;
15307}
15308
15309// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
15310static asdl_seq*
15311double_starred_kvpairs_rule(Parser *p)
15312{
15313 D(p->level++);
15314 if (p->error_indicator) {
15315 D(p->level--);
15316 return NULL;
15317 }
15318 asdl_seq* _res = NULL;
15319 int _mark = p->mark;
15320 { // ','.double_starred_kvpair+ ','?
15321 if (p->error_indicator) {
15322 D(p->level--);
15323 return NULL;
15324 }
15325 D(fprintf(stderr, "%*c> double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15326 void *_opt_var;
15327 UNUSED(_opt_var); // Silence compiler warnings
15328 asdl_seq * a;
15329 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015330 (a = _gather_118_rule(p)) // ','.double_starred_kvpair+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015331 &&
15332 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15333 )
15334 {
15335 D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15336 _res = a;
15337 if (_res == NULL && PyErr_Occurred()) {
15338 p->error_indicator = 1;
15339 D(p->level--);
15340 return NULL;
15341 }
15342 goto done;
15343 }
15344 p->mark = _mark;
15345 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
15346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
15347 }
15348 _res = NULL;
15349 done:
15350 D(p->level--);
15351 return _res;
15352}
15353
15354// double_starred_kvpair: '**' bitwise_or | kvpair
15355static KeyValuePair*
15356double_starred_kvpair_rule(Parser *p)
15357{
15358 D(p->level++);
15359 if (p->error_indicator) {
15360 D(p->level--);
15361 return NULL;
15362 }
15363 KeyValuePair* _res = NULL;
15364 int _mark = p->mark;
15365 { // '**' bitwise_or
15366 if (p->error_indicator) {
15367 D(p->level--);
15368 return NULL;
15369 }
15370 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15371 Token * _literal;
15372 expr_ty a;
15373 if (
15374 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
15375 &&
15376 (a = bitwise_or_rule(p)) // bitwise_or
15377 )
15378 {
15379 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' bitwise_or"));
15380 _res = _PyPegen_key_value_pair ( p , NULL , a );
15381 if (_res == NULL && PyErr_Occurred()) {
15382 p->error_indicator = 1;
15383 D(p->level--);
15384 return NULL;
15385 }
15386 goto done;
15387 }
15388 p->mark = _mark;
15389 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15390 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
15391 }
15392 { // kvpair
15393 if (p->error_indicator) {
15394 D(p->level--);
15395 return NULL;
15396 }
15397 D(fprintf(stderr, "%*c> double_starred_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kvpair"));
15398 KeyValuePair* kvpair_var;
15399 if (
15400 (kvpair_var = kvpair_rule(p)) // kvpair
15401 )
15402 {
15403 D(fprintf(stderr, "%*c+ double_starred_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kvpair"));
15404 _res = kvpair_var;
15405 goto done;
15406 }
15407 p->mark = _mark;
15408 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
15410 }
15411 _res = NULL;
15412 done:
15413 D(p->level--);
15414 return _res;
15415}
15416
15417// kvpair: expression ':' expression
15418static KeyValuePair*
15419kvpair_rule(Parser *p)
15420{
15421 D(p->level++);
15422 if (p->error_indicator) {
15423 D(p->level--);
15424 return NULL;
15425 }
15426 KeyValuePair* _res = NULL;
15427 int _mark = p->mark;
15428 { // expression ':' expression
15429 if (p->error_indicator) {
15430 D(p->level--);
15431 return NULL;
15432 }
15433 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15434 Token * _literal;
15435 expr_ty a;
15436 expr_ty b;
15437 if (
15438 (a = expression_rule(p)) // expression
15439 &&
15440 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
15441 &&
15442 (b = expression_rule(p)) // expression
15443 )
15444 {
15445 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
15446 _res = _PyPegen_key_value_pair ( p , a , b );
15447 if (_res == NULL && PyErr_Occurred()) {
15448 p->error_indicator = 1;
15449 D(p->level--);
15450 return NULL;
15451 }
15452 goto done;
15453 }
15454 p->mark = _mark;
15455 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
15456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
15457 }
15458 _res = NULL;
15459 done:
15460 D(p->level--);
15461 return _res;
15462}
15463
15464// for_if_clauses: for_if_clause+
Pablo Galindoa5634c42020-09-16 19:42:00 +010015465static asdl_comprehension_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015466for_if_clauses_rule(Parser *p)
15467{
15468 D(p->level++);
15469 if (p->error_indicator) {
15470 D(p->level--);
15471 return NULL;
15472 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010015473 asdl_comprehension_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015474 int _mark = p->mark;
15475 { // for_if_clause+
15476 if (p->error_indicator) {
15477 D(p->level--);
15478 return NULL;
15479 }
15480 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 +010015481 asdl_comprehension_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015482 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015483 (a = (asdl_comprehension_seq*)_loop1_120_rule(p)) // for_if_clause+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015484 )
15485 {
15486 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 +010015487 _res = a;
15488 if (_res == NULL && PyErr_Occurred()) {
15489 p->error_indicator = 1;
15490 D(p->level--);
15491 return NULL;
15492 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015493 goto done;
15494 }
15495 p->mark = _mark;
15496 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
15497 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
15498 }
15499 _res = NULL;
15500 done:
15501 D(p->level--);
15502 return _res;
15503}
15504
15505// for_if_clause:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015506// | ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15507// | 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
15508// | invalid_for_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015509static comprehension_ty
15510for_if_clause_rule(Parser *p)
15511{
15512 D(p->level++);
15513 if (p->error_indicator) {
15514 D(p->level--);
15515 return NULL;
15516 }
15517 comprehension_ty _res = NULL;
15518 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015519 { // ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015520 if (p->error_indicator) {
15521 D(p->level--);
15522 return NULL;
15523 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015524 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15525 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015526 Token * _keyword;
15527 Token * _keyword_1;
15528 expr_ty a;
15529 Token * async_var;
15530 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015531 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015532 if (
15533 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
15534 &&
15535 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15536 &&
15537 (a = star_targets_rule(p)) // star_targets
15538 &&
15539 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15540 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015541 (_cut_var = 1)
15542 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015543 (b = disjunction_rule(p)) // disjunction
15544 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015545 (c = (asdl_expr_seq*)_loop0_121_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015546 )
15547 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015548 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 +020015549 _res = CHECK_VERSION ( comprehension_ty , 6 , "Async comprehensions are" , _PyAST_comprehension ( a , b , c , 1 , p -> arena ) );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015550 if (_res == NULL && PyErr_Occurred()) {
15551 p->error_indicator = 1;
15552 D(p->level--);
15553 return NULL;
15554 }
15555 goto done;
15556 }
15557 p->mark = _mark;
15558 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015559 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15560 if (_cut_var) {
15561 D(p->level--);
15562 return NULL;
15563 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015564 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015565 { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015566 if (p->error_indicator) {
15567 D(p->level--);
15568 return NULL;
15569 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015570 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15571 int _cut_var = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015572 Token * _keyword;
15573 Token * _keyword_1;
15574 expr_ty a;
15575 expr_ty b;
Pablo Galindoa5634c42020-09-16 19:42:00 +010015576 asdl_expr_seq* c;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015577 if (
15578 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
15579 &&
15580 (a = star_targets_rule(p)) // star_targets
15581 &&
15582 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
15583 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015584 (_cut_var = 1)
15585 &&
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015586 (b = disjunction_rule(p)) // disjunction
15587 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015588 (c = (asdl_expr_seq*)_loop0_122_rule(p)) // (('if' disjunction))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015589 )
15590 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015591 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 +020015592 _res = _PyAST_comprehension ( a , b , c , 0 , p -> arena );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015593 if (_res == NULL && PyErr_Occurred()) {
15594 p->error_indicator = 1;
15595 D(p->level--);
15596 return NULL;
15597 }
15598 goto done;
15599 }
15600 p->mark = _mark;
15601 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' ~ disjunction (('if' disjunction))*"));
15603 if (_cut_var) {
15604 D(p->level--);
15605 return NULL;
15606 }
15607 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015608 if (p->call_invalid_rules) { // invalid_for_target
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030015609 if (p->error_indicator) {
15610 D(p->level--);
15611 return NULL;
15612 }
15613 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15614 void *invalid_for_target_var;
15615 if (
15616 (invalid_for_target_var = invalid_for_target_rule(p)) // invalid_for_target
15617 )
15618 {
15619 D(fprintf(stderr, "%*c+ for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_for_target"));
15620 _res = invalid_for_target_var;
15621 goto done;
15622 }
15623 p->mark = _mark;
15624 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
15625 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015626 }
15627 _res = NULL;
15628 done:
15629 D(p->level--);
15630 return _res;
15631}
15632
15633// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
15634static expr_ty
15635yield_expr_rule(Parser *p)
15636{
15637 D(p->level++);
15638 if (p->error_indicator) {
15639 D(p->level--);
15640 return NULL;
15641 }
15642 expr_ty _res = NULL;
15643 int _mark = p->mark;
15644 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15645 p->error_indicator = 1;
15646 D(p->level--);
15647 return NULL;
15648 }
15649 int _start_lineno = p->tokens[_mark]->lineno;
15650 UNUSED(_start_lineno); // Only used by EXTRA macro
15651 int _start_col_offset = p->tokens[_mark]->col_offset;
15652 UNUSED(_start_col_offset); // Only used by EXTRA macro
15653 { // 'yield' 'from' expression
15654 if (p->error_indicator) {
15655 D(p->level--);
15656 return NULL;
15657 }
15658 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15659 Token * _keyword;
15660 Token * _keyword_1;
15661 expr_ty a;
15662 if (
15663 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15664 &&
15665 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
15666 &&
15667 (a = expression_rule(p)) // expression
15668 )
15669 {
15670 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' 'from' expression"));
15671 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15672 if (_token == NULL) {
15673 D(p->level--);
15674 return NULL;
15675 }
15676 int _end_lineno = _token->end_lineno;
15677 UNUSED(_end_lineno); // Only used by EXTRA macro
15678 int _end_col_offset = _token->end_col_offset;
15679 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015680 _res = _PyAST_YieldFrom ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015681 if (_res == NULL && PyErr_Occurred()) {
15682 p->error_indicator = 1;
15683 D(p->level--);
15684 return NULL;
15685 }
15686 goto done;
15687 }
15688 p->mark = _mark;
15689 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15690 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
15691 }
15692 { // 'yield' star_expressions?
15693 if (p->error_indicator) {
15694 D(p->level--);
15695 return NULL;
15696 }
15697 D(fprintf(stderr, "%*c> yield_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15698 Token * _keyword;
15699 void *a;
15700 if (
15701 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
15702 &&
15703 (a = star_expressions_rule(p), 1) // star_expressions?
15704 )
15705 {
15706 D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
15707 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15708 if (_token == NULL) {
15709 D(p->level--);
15710 return NULL;
15711 }
15712 int _end_lineno = _token->end_lineno;
15713 UNUSED(_end_lineno); // Only used by EXTRA macro
15714 int _end_col_offset = _token->end_col_offset;
15715 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015716 _res = _PyAST_Yield ( a , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015717 if (_res == NULL && PyErr_Occurred()) {
15718 p->error_indicator = 1;
15719 D(p->level--);
15720 return NULL;
15721 }
15722 goto done;
15723 }
15724 p->mark = _mark;
15725 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
15726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
15727 }
15728 _res = NULL;
15729 done:
15730 D(p->level--);
15731 return _res;
15732}
15733
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015734// arguments: args ','? &')' | invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015735static expr_ty
15736arguments_rule(Parser *p)
15737{
15738 D(p->level++);
15739 if (p->error_indicator) {
15740 D(p->level--);
15741 return NULL;
15742 }
15743 expr_ty _res = NULL;
15744 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
15745 D(p->level--);
15746 return _res;
15747 }
15748 int _mark = p->mark;
15749 { // args ','? &')'
15750 if (p->error_indicator) {
15751 D(p->level--);
15752 return NULL;
15753 }
15754 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15755 void *_opt_var;
15756 UNUSED(_opt_var); // Silence compiler warnings
15757 expr_ty a;
15758 if (
15759 (a = args_rule(p)) // args
15760 &&
15761 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
15762 &&
15763 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
15764 )
15765 {
15766 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
15767 _res = a;
15768 if (_res == NULL && PyErr_Occurred()) {
15769 p->error_indicator = 1;
15770 D(p->level--);
15771 return NULL;
15772 }
15773 goto done;
15774 }
15775 p->mark = _mark;
15776 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
15777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
15778 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015779 if (p->call_invalid_rules) { // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015780 if (p->error_indicator) {
15781 D(p->level--);
15782 return NULL;
15783 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015784 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15785 void *invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015786 if (
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015787 (invalid_arguments_var = invalid_arguments_rule(p)) // invalid_arguments
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015788 )
15789 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015790 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_arguments"));
15791 _res = invalid_arguments_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015792 goto done;
15793 }
15794 p->mark = _mark;
15795 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020015796 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_arguments"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015797 }
15798 _res = NULL;
15799 done:
15800 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
15801 D(p->level--);
15802 return _res;
15803}
15804
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015805// args:
15806// | ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
15807// | kwargs
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015808static expr_ty
15809args_rule(Parser *p)
15810{
15811 D(p->level++);
15812 if (p->error_indicator) {
15813 D(p->level--);
15814 return NULL;
15815 }
15816 expr_ty _res = NULL;
15817 int _mark = p->mark;
15818 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
15819 p->error_indicator = 1;
15820 D(p->level--);
15821 return NULL;
15822 }
15823 int _start_lineno = p->tokens[_mark]->lineno;
15824 UNUSED(_start_lineno); // Only used by EXTRA macro
15825 int _start_col_offset = p->tokens[_mark]->col_offset;
15826 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015827 { // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015828 if (p->error_indicator) {
15829 D(p->level--);
15830 return NULL;
15831 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015832 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 +010015833 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015834 void *b;
15835 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015836 (a = (asdl_expr_seq*)_gather_123_rule(p)) // ','.(starred_expression | (assigment_expression | expression !':=') !'=')+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015837 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015838 (b = _tmp_125_rule(p), 1) // [',' kwargs]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015839 )
15840 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015841 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 +010015842 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15843 if (_token == NULL) {
15844 D(p->level--);
15845 return NULL;
15846 }
15847 int _end_lineno = _token->end_lineno;
15848 UNUSED(_end_lineno); // Only used by EXTRA macro
15849 int _end_col_offset = _token->end_col_offset;
15850 UNUSED(_end_col_offset); // Only used by EXTRA macro
15851 _res = _PyPegen_collect_call_seqs ( p , a , b , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015852 if (_res == NULL && PyErr_Occurred()) {
15853 p->error_indicator = 1;
15854 D(p->level--);
15855 return NULL;
15856 }
15857 goto done;
15858 }
15859 p->mark = _mark;
15860 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015861 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assigment_expression | expression !':=') !'=')+ [',' kwargs]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015862 }
15863 { // kwargs
15864 if (p->error_indicator) {
15865 D(p->level--);
15866 return NULL;
15867 }
15868 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
15869 asdl_seq* a;
15870 if (
15871 (a = kwargs_rule(p)) // kwargs
15872 )
15873 {
15874 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
15875 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
15876 if (_token == NULL) {
15877 D(p->level--);
15878 return NULL;
15879 }
15880 int _end_lineno = _token->end_lineno;
15881 UNUSED(_end_lineno); // Only used by EXTRA macro
15882 int _end_col_offset = _token->end_col_offset;
15883 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020015884 _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 +010015885 if (_res == NULL && PyErr_Occurred()) {
15886 p->error_indicator = 1;
15887 D(p->level--);
15888 return NULL;
15889 }
15890 goto done;
15891 }
15892 p->mark = _mark;
15893 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
15894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
15895 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015896 _res = NULL;
15897 done:
15898 D(p->level--);
15899 return _res;
15900}
15901
15902// kwargs:
15903// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15904// | ','.kwarg_or_starred+
15905// | ','.kwarg_or_double_starred+
15906static asdl_seq*
15907kwargs_rule(Parser *p)
15908{
15909 D(p->level++);
15910 if (p->error_indicator) {
15911 D(p->level--);
15912 return NULL;
15913 }
15914 asdl_seq* _res = NULL;
15915 int _mark = p->mark;
15916 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
15917 if (p->error_indicator) {
15918 D(p->level--);
15919 return NULL;
15920 }
15921 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15922 Token * _literal;
15923 asdl_seq * a;
15924 asdl_seq * b;
15925 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015926 (a = _gather_126_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015927 &&
15928 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15929 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015930 (b = _gather_128_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015931 )
15932 {
15933 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15934 _res = _PyPegen_join_sequences ( p , a , b );
15935 if (_res == NULL && PyErr_Occurred()) {
15936 p->error_indicator = 1;
15937 D(p->level--);
15938 return NULL;
15939 }
15940 goto done;
15941 }
15942 p->mark = _mark;
15943 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
15945 }
15946 { // ','.kwarg_or_starred+
15947 if (p->error_indicator) {
15948 D(p->level--);
15949 return NULL;
15950 }
15951 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015952 asdl_seq * _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015953 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015954 (_gather_130_var = _gather_130_rule(p)) // ','.kwarg_or_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015955 )
15956 {
15957 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 -070015958 _res = _gather_130_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015959 goto done;
15960 }
15961 p->mark = _mark;
15962 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
15964 }
15965 { // ','.kwarg_or_double_starred+
15966 if (p->error_indicator) {
15967 D(p->level--);
15968 return NULL;
15969 }
15970 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 -070015971 asdl_seq * _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015972 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070015973 (_gather_132_var = _gather_132_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015974 )
15975 {
15976 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 -070015977 _res = _gather_132_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010015978 goto done;
15979 }
15980 p->mark = _mark;
15981 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
15982 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
15983 }
15984 _res = NULL;
15985 done:
15986 D(p->level--);
15987 return _res;
15988}
15989
15990// starred_expression: '*' expression
15991static expr_ty
15992starred_expression_rule(Parser *p)
15993{
15994 D(p->level++);
15995 if (p->error_indicator) {
15996 D(p->level--);
15997 return NULL;
15998 }
15999 expr_ty _res = NULL;
16000 int _mark = p->mark;
16001 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16002 p->error_indicator = 1;
16003 D(p->level--);
16004 return NULL;
16005 }
16006 int _start_lineno = p->tokens[_mark]->lineno;
16007 UNUSED(_start_lineno); // Only used by EXTRA macro
16008 int _start_col_offset = p->tokens[_mark]->col_offset;
16009 UNUSED(_start_col_offset); // Only used by EXTRA macro
16010 { // '*' expression
16011 if (p->error_indicator) {
16012 D(p->level--);
16013 return NULL;
16014 }
16015 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16016 Token * _literal;
16017 expr_ty a;
16018 if (
16019 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16020 &&
16021 (a = expression_rule(p)) // expression
16022 )
16023 {
16024 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
16025 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16026 if (_token == NULL) {
16027 D(p->level--);
16028 return NULL;
16029 }
16030 int _end_lineno = _token->end_lineno;
16031 UNUSED(_end_lineno); // Only used by EXTRA macro
16032 int _end_col_offset = _token->end_col_offset;
16033 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016034 _res = _PyAST_Starred ( a , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016035 if (_res == NULL && PyErr_Occurred()) {
16036 p->error_indicator = 1;
16037 D(p->level--);
16038 return NULL;
16039 }
16040 goto done;
16041 }
16042 p->mark = _mark;
16043 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
16044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
16045 }
16046 _res = NULL;
16047 done:
16048 D(p->level--);
16049 return _res;
16050}
16051
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016052// kwarg_or_starred: invalid_kwarg | NAME '=' expression | starred_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016053static KeywordOrStarred*
16054kwarg_or_starred_rule(Parser *p)
16055{
16056 D(p->level++);
16057 if (p->error_indicator) {
16058 D(p->level--);
16059 return NULL;
16060 }
16061 KeywordOrStarred* _res = NULL;
16062 int _mark = p->mark;
16063 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16064 p->error_indicator = 1;
16065 D(p->level--);
16066 return NULL;
16067 }
16068 int _start_lineno = p->tokens[_mark]->lineno;
16069 UNUSED(_start_lineno); // Only used by EXTRA macro
16070 int _start_col_offset = p->tokens[_mark]->col_offset;
16071 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016072 if (p->call_invalid_rules) { // invalid_kwarg
16073 if (p->error_indicator) {
16074 D(p->level--);
16075 return NULL;
16076 }
16077 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16078 void *invalid_kwarg_var;
16079 if (
16080 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16081 )
16082 {
16083 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16084 _res = invalid_kwarg_var;
16085 goto done;
16086 }
16087 p->mark = _mark;
16088 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16090 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016091 { // NAME '=' expression
16092 if (p->error_indicator) {
16093 D(p->level--);
16094 return NULL;
16095 }
16096 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16097 Token * _literal;
16098 expr_ty a;
16099 expr_ty b;
16100 if (
16101 (a = _PyPegen_name_token(p)) // NAME
16102 &&
16103 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16104 &&
16105 (b = expression_rule(p)) // expression
16106 )
16107 {
16108 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16109 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16110 if (_token == NULL) {
16111 D(p->level--);
16112 return NULL;
16113 }
16114 int _end_lineno = _token->end_lineno;
16115 UNUSED(_end_lineno); // Only used by EXTRA macro
16116 int _end_col_offset = _token->end_col_offset;
16117 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016118 _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 +010016119 if (_res == NULL && PyErr_Occurred()) {
16120 p->error_indicator = 1;
16121 D(p->level--);
16122 return NULL;
16123 }
16124 goto done;
16125 }
16126 p->mark = _mark;
16127 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16129 }
16130 { // starred_expression
16131 if (p->error_indicator) {
16132 D(p->level--);
16133 return NULL;
16134 }
16135 D(fprintf(stderr, "%*c> kwarg_or_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16136 expr_ty a;
16137 if (
16138 (a = starred_expression_rule(p)) // starred_expression
16139 )
16140 {
16141 D(fprintf(stderr, "%*c+ kwarg_or_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression"));
16142 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
16143 if (_res == NULL && PyErr_Occurred()) {
16144 p->error_indicator = 1;
16145 D(p->level--);
16146 return NULL;
16147 }
16148 goto done;
16149 }
16150 p->mark = _mark;
16151 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
16152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
16153 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016154 _res = NULL;
16155 done:
16156 D(p->level--);
16157 return _res;
16158}
16159
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016160// kwarg_or_double_starred: invalid_kwarg | NAME '=' expression | '**' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016161static KeywordOrStarred*
16162kwarg_or_double_starred_rule(Parser *p)
16163{
16164 D(p->level++);
16165 if (p->error_indicator) {
16166 D(p->level--);
16167 return NULL;
16168 }
16169 KeywordOrStarred* _res = NULL;
16170 int _mark = p->mark;
16171 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16172 p->error_indicator = 1;
16173 D(p->level--);
16174 return NULL;
16175 }
16176 int _start_lineno = p->tokens[_mark]->lineno;
16177 UNUSED(_start_lineno); // Only used by EXTRA macro
16178 int _start_col_offset = p->tokens[_mark]->col_offset;
16179 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016180 if (p->call_invalid_rules) { // invalid_kwarg
16181 if (p->error_indicator) {
16182 D(p->level--);
16183 return NULL;
16184 }
16185 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16186 void *invalid_kwarg_var;
16187 if (
16188 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
16189 )
16190 {
16191 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_kwarg"));
16192 _res = invalid_kwarg_var;
16193 goto done;
16194 }
16195 p->mark = _mark;
16196 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
16198 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016199 { // NAME '=' expression
16200 if (p->error_indicator) {
16201 D(p->level--);
16202 return NULL;
16203 }
16204 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16205 Token * _literal;
16206 expr_ty a;
16207 expr_ty b;
16208 if (
16209 (a = _PyPegen_name_token(p)) // NAME
16210 &&
16211 (_literal = _PyPegen_expect_token(p, 22)) // token='='
16212 &&
16213 (b = expression_rule(p)) // expression
16214 )
16215 {
16216 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression"));
16217 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16218 if (_token == NULL) {
16219 D(p->level--);
16220 return NULL;
16221 }
16222 int _end_lineno = _token->end_lineno;
16223 UNUSED(_end_lineno); // Only used by EXTRA macro
16224 int _end_col_offset = _token->end_col_offset;
16225 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016226 _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 +010016227 if (_res == NULL && PyErr_Occurred()) {
16228 p->error_indicator = 1;
16229 D(p->level--);
16230 return NULL;
16231 }
16232 goto done;
16233 }
16234 p->mark = _mark;
16235 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
16237 }
16238 { // '**' expression
16239 if (p->error_indicator) {
16240 D(p->level--);
16241 return NULL;
16242 }
16243 D(fprintf(stderr, "%*c> kwarg_or_double_starred[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16244 Token * _literal;
16245 expr_ty a;
16246 if (
16247 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
16248 &&
16249 (a = expression_rule(p)) // expression
16250 )
16251 {
16252 D(fprintf(stderr, "%*c+ kwarg_or_double_starred[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
16253 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16254 if (_token == NULL) {
16255 D(p->level--);
16256 return NULL;
16257 }
16258 int _end_lineno = _token->end_lineno;
16259 UNUSED(_end_lineno); // Only used by EXTRA macro
16260 int _end_col_offset = _token->end_col_offset;
16261 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016262 _res = _PyPegen_keyword_or_starred ( p , CHECK ( keyword_ty , _PyAST_keyword ( NULL , a , EXTRA ) ) , 1 );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016263 if (_res == NULL && PyErr_Occurred()) {
16264 p->error_indicator = 1;
16265 D(p->level--);
16266 return NULL;
16267 }
16268 goto done;
16269 }
16270 p->mark = _mark;
16271 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
16272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
16273 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016274 _res = NULL;
16275 done:
16276 D(p->level--);
16277 return _res;
16278}
16279
16280// star_targets: star_target !',' | star_target ((',' star_target))* ','?
16281static expr_ty
16282star_targets_rule(Parser *p)
16283{
16284 D(p->level++);
16285 if (p->error_indicator) {
16286 D(p->level--);
16287 return NULL;
16288 }
16289 expr_ty _res = NULL;
16290 int _mark = p->mark;
16291 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16292 p->error_indicator = 1;
16293 D(p->level--);
16294 return NULL;
16295 }
16296 int _start_lineno = p->tokens[_mark]->lineno;
16297 UNUSED(_start_lineno); // Only used by EXTRA macro
16298 int _start_col_offset = p->tokens[_mark]->col_offset;
16299 UNUSED(_start_col_offset); // Only used by EXTRA macro
16300 { // star_target !','
16301 if (p->error_indicator) {
16302 D(p->level--);
16303 return NULL;
16304 }
16305 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16306 expr_ty a;
16307 if (
16308 (a = star_target_rule(p)) // star_target
16309 &&
16310 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
16311 )
16312 {
16313 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target !','"));
16314 _res = a;
16315 if (_res == NULL && PyErr_Occurred()) {
16316 p->error_indicator = 1;
16317 D(p->level--);
16318 return NULL;
16319 }
16320 goto done;
16321 }
16322 p->mark = _mark;
16323 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16324 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
16325 }
16326 { // star_target ((',' star_target))* ','?
16327 if (p->error_indicator) {
16328 D(p->level--);
16329 return NULL;
16330 }
16331 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16332 void *_opt_var;
16333 UNUSED(_opt_var); // Silence compiler warnings
16334 expr_ty a;
16335 asdl_seq * b;
16336 if (
16337 (a = star_target_rule(p)) // star_target
16338 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016339 (b = _loop0_134_rule(p)) // ((',' star_target))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016340 &&
16341 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16342 )
16343 {
16344 D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
16345 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16346 if (_token == NULL) {
16347 D(p->level--);
16348 return NULL;
16349 }
16350 int _end_lineno = _token->end_lineno;
16351 UNUSED(_end_lineno); // Only used by EXTRA macro
16352 int _end_col_offset = _token->end_col_offset;
16353 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016354 _res = _PyAST_Tuple ( CHECK ( asdl_expr_seq * , _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016355 if (_res == NULL && PyErr_Occurred()) {
16356 p->error_indicator = 1;
16357 D(p->level--);
16358 return NULL;
16359 }
16360 goto done;
16361 }
16362 p->mark = _mark;
16363 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
16364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
16365 }
16366 _res = NULL;
16367 done:
16368 D(p->level--);
16369 return _res;
16370}
16371
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016372// star_targets_list_seq: ','.star_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010016373static asdl_expr_seq*
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016374star_targets_list_seq_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016375{
16376 D(p->level++);
16377 if (p->error_indicator) {
16378 D(p->level--);
16379 return NULL;
16380 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010016381 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016382 int _mark = p->mark;
16383 { // ','.star_target+ ','?
16384 if (p->error_indicator) {
16385 D(p->level--);
16386 return NULL;
16387 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016388 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 +010016389 void *_opt_var;
16390 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010016391 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016392 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016393 (a = (asdl_expr_seq*)_gather_135_rule(p)) // ','.star_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016394 &&
16395 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16396 )
16397 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016398 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 +010016399 _res = a;
16400 if (_res == NULL && PyErr_Occurred()) {
16401 p->error_indicator = 1;
16402 D(p->level--);
16403 return NULL;
16404 }
16405 goto done;
16406 }
16407 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016408 D(fprintf(stderr, "%*c%s star_targets_list_seq[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
16410 }
16411 _res = NULL;
16412 done:
16413 D(p->level--);
16414 return _res;
16415}
16416
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016417// star_targets_tuple_seq: star_target ((',' star_target))+ ','? | star_target ','
16418static asdl_expr_seq*
16419star_targets_tuple_seq_rule(Parser *p)
16420{
16421 D(p->level++);
16422 if (p->error_indicator) {
16423 D(p->level--);
16424 return NULL;
16425 }
16426 asdl_expr_seq* _res = NULL;
16427 int _mark = p->mark;
16428 { // star_target ((',' star_target))+ ','?
16429 if (p->error_indicator) {
16430 D(p->level--);
16431 return NULL;
16432 }
16433 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16434 void *_opt_var;
16435 UNUSED(_opt_var); // Silence compiler warnings
16436 expr_ty a;
16437 asdl_seq * b;
16438 if (
16439 (a = star_target_rule(p)) // star_target
16440 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016441 (b = _loop1_137_rule(p)) // ((',' star_target))+
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016442 &&
16443 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
16444 )
16445 {
16446 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16447 _res = ( asdl_expr_seq * ) _PyPegen_seq_insert_in_front ( p , a , b );
16448 if (_res == NULL && PyErr_Occurred()) {
16449 p->error_indicator = 1;
16450 D(p->level--);
16451 return NULL;
16452 }
16453 goto done;
16454 }
16455 p->mark = _mark;
16456 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))+ ','?"));
16458 }
16459 { // star_target ','
16460 if (p->error_indicator) {
16461 D(p->level--);
16462 return NULL;
16463 }
16464 D(fprintf(stderr, "%*c> star_targets_tuple_seq[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16465 Token * _literal;
16466 expr_ty a;
16467 if (
16468 (a = star_target_rule(p)) // star_target
16469 &&
16470 (_literal = _PyPegen_expect_token(p, 12)) // token=','
16471 )
16472 {
16473 D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ','"));
16474 _res = ( asdl_expr_seq * ) _PyPegen_singleton_seq ( p , a );
16475 if (_res == NULL && PyErr_Occurred()) {
16476 p->error_indicator = 1;
16477 D(p->level--);
16478 return NULL;
16479 }
16480 goto done;
16481 }
16482 p->mark = _mark;
16483 D(fprintf(stderr, "%*c%s star_targets_tuple_seq[%d-%d]: %s failed!\n", p->level, ' ',
16484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ','"));
16485 }
16486 _res = NULL;
16487 done:
16488 D(p->level--);
16489 return _res;
16490}
16491
16492// star_target: '*' (!'*' star_target) | target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016493static expr_ty
16494star_target_rule(Parser *p)
16495{
16496 D(p->level++);
16497 if (p->error_indicator) {
16498 D(p->level--);
16499 return NULL;
16500 }
16501 expr_ty _res = NULL;
16502 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
16503 D(p->level--);
16504 return _res;
16505 }
16506 int _mark = p->mark;
16507 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16508 p->error_indicator = 1;
16509 D(p->level--);
16510 return NULL;
16511 }
16512 int _start_lineno = p->tokens[_mark]->lineno;
16513 UNUSED(_start_lineno); // Only used by EXTRA macro
16514 int _start_col_offset = p->tokens[_mark]->col_offset;
16515 UNUSED(_start_col_offset); // Only used by EXTRA macro
16516 { // '*' (!'*' star_target)
16517 if (p->error_indicator) {
16518 D(p->level--);
16519 return NULL;
16520 }
16521 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16522 Token * _literal;
16523 void *a;
16524 if (
16525 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
16526 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070016527 (a = _tmp_138_rule(p)) // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016528 )
16529 {
16530 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
16531 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16532 if (_token == NULL) {
16533 D(p->level--);
16534 return NULL;
16535 }
16536 int _end_lineno = _token->end_lineno;
16537 UNUSED(_end_lineno); // Only used by EXTRA macro
16538 int _end_col_offset = _token->end_col_offset;
16539 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016540 _res = _PyAST_Starred ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016541 if (_res == NULL && PyErr_Occurred()) {
16542 p->error_indicator = 1;
16543 D(p->level--);
16544 return NULL;
16545 }
16546 goto done;
16547 }
16548 p->mark = _mark;
16549 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
16551 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016552 { // target_with_star_atom
16553 if (p->error_indicator) {
16554 D(p->level--);
16555 return NULL;
16556 }
16557 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16558 expr_ty target_with_star_atom_var;
16559 if (
16560 (target_with_star_atom_var = target_with_star_atom_rule(p)) // target_with_star_atom
16561 )
16562 {
16563 D(fprintf(stderr, "%*c+ star_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target_with_star_atom"));
16564 _res = target_with_star_atom_var;
16565 goto done;
16566 }
16567 p->mark = _mark;
16568 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
16569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target_with_star_atom"));
16570 }
16571 _res = NULL;
16572 done:
16573 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
16574 D(p->level--);
16575 return _res;
16576}
16577
16578// target_with_star_atom:
16579// | t_primary '.' NAME !t_lookahead
16580// | t_primary '[' slices ']' !t_lookahead
16581// | star_atom
16582static expr_ty
16583target_with_star_atom_rule(Parser *p)
16584{
16585 D(p->level++);
16586 if (p->error_indicator) {
16587 D(p->level--);
16588 return NULL;
16589 }
16590 expr_ty _res = NULL;
16591 if (_PyPegen_is_memoized(p, target_with_star_atom_type, &_res)) {
16592 D(p->level--);
16593 return _res;
16594 }
16595 int _mark = p->mark;
16596 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16597 p->error_indicator = 1;
16598 D(p->level--);
16599 return NULL;
16600 }
16601 int _start_lineno = p->tokens[_mark]->lineno;
16602 UNUSED(_start_lineno); // Only used by EXTRA macro
16603 int _start_col_offset = p->tokens[_mark]->col_offset;
16604 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016605 { // t_primary '.' NAME !t_lookahead
16606 if (p->error_indicator) {
16607 D(p->level--);
16608 return NULL;
16609 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016610 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 +010016611 Token * _literal;
16612 expr_ty a;
16613 expr_ty b;
16614 if (
16615 (a = t_primary_rule(p)) // t_primary
16616 &&
16617 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
16618 &&
16619 (b = _PyPegen_name_token(p)) // NAME
16620 &&
16621 _PyPegen_lookahead(0, t_lookahead_rule, p)
16622 )
16623 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016624 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 +010016625 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16626 if (_token == NULL) {
16627 D(p->level--);
16628 return NULL;
16629 }
16630 int _end_lineno = _token->end_lineno;
16631 UNUSED(_end_lineno); // Only used by EXTRA macro
16632 int _end_col_offset = _token->end_col_offset;
16633 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016634 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016635 if (_res == NULL && PyErr_Occurred()) {
16636 p->error_indicator = 1;
16637 D(p->level--);
16638 return NULL;
16639 }
16640 goto done;
16641 }
16642 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016643 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16645 }
16646 { // t_primary '[' slices ']' !t_lookahead
16647 if (p->error_indicator) {
16648 D(p->level--);
16649 return NULL;
16650 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016651 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 +010016652 Token * _literal;
16653 Token * _literal_1;
16654 expr_ty a;
16655 expr_ty b;
16656 if (
16657 (a = t_primary_rule(p)) // t_primary
16658 &&
16659 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16660 &&
16661 (b = slices_rule(p)) // slices
16662 &&
16663 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16664 &&
16665 _PyPegen_lookahead(0, t_lookahead_rule, p)
16666 )
16667 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016668 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 +010016669 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16670 if (_token == NULL) {
16671 D(p->level--);
16672 return NULL;
16673 }
16674 int _end_lineno = _token->end_lineno;
16675 UNUSED(_end_lineno); // Only used by EXTRA macro
16676 int _end_col_offset = _token->end_col_offset;
16677 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016678 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016679 if (_res == NULL && PyErr_Occurred()) {
16680 p->error_indicator = 1;
16681 D(p->level--);
16682 return NULL;
16683 }
16684 goto done;
16685 }
16686 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016687 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016688 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
16689 }
16690 { // star_atom
16691 if (p->error_indicator) {
16692 D(p->level--);
16693 return NULL;
16694 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016695 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 +010016696 expr_ty star_atom_var;
16697 if (
16698 (star_atom_var = star_atom_rule(p)) // star_atom
16699 )
16700 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016701 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 +010016702 _res = star_atom_var;
16703 goto done;
16704 }
16705 p->mark = _mark;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016706 D(fprintf(stderr, "%*c%s target_with_star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
16708 }
16709 _res = NULL;
16710 done:
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016711 _PyPegen_insert_memo(p, _mark, target_with_star_atom_type, _res);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016712 D(p->level--);
16713 return _res;
16714}
16715
16716// star_atom:
16717// | NAME
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016718// | '(' target_with_star_atom ')'
16719// | '(' star_targets_tuple_seq? ')'
16720// | '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016721static expr_ty
16722star_atom_rule(Parser *p)
16723{
16724 D(p->level++);
16725 if (p->error_indicator) {
16726 D(p->level--);
16727 return NULL;
16728 }
16729 expr_ty _res = NULL;
16730 int _mark = p->mark;
16731 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16732 p->error_indicator = 1;
16733 D(p->level--);
16734 return NULL;
16735 }
16736 int _start_lineno = p->tokens[_mark]->lineno;
16737 UNUSED(_start_lineno); // Only used by EXTRA macro
16738 int _start_col_offset = p->tokens[_mark]->col_offset;
16739 UNUSED(_start_col_offset); // Only used by EXTRA macro
16740 { // NAME
16741 if (p->error_indicator) {
16742 D(p->level--);
16743 return NULL;
16744 }
16745 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16746 expr_ty a;
16747 if (
16748 (a = _PyPegen_name_token(p)) // NAME
16749 )
16750 {
16751 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16752 _res = _PyPegen_set_expr_context ( p , a , Store );
16753 if (_res == NULL && PyErr_Occurred()) {
16754 p->error_indicator = 1;
16755 D(p->level--);
16756 return NULL;
16757 }
16758 goto done;
16759 }
16760 p->mark = _mark;
16761 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
16762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16763 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016764 { // '(' target_with_star_atom ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016765 if (p->error_indicator) {
16766 D(p->level--);
16767 return NULL;
16768 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016769 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 +010016770 Token * _literal;
16771 Token * _literal_1;
16772 expr_ty a;
16773 if (
16774 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16775 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016776 (a = target_with_star_atom_rule(p)) // target_with_star_atom
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016777 &&
16778 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16779 )
16780 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016781 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 +010016782 _res = _PyPegen_set_expr_context ( p , a , Store );
16783 if (_res == NULL && PyErr_Occurred()) {
16784 p->error_indicator = 1;
16785 D(p->level--);
16786 return NULL;
16787 }
16788 goto done;
16789 }
16790 p->mark = _mark;
16791 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target_with_star_atom ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016793 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016794 { // '(' star_targets_tuple_seq? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016795 if (p->error_indicator) {
16796 D(p->level--);
16797 return NULL;
16798 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016799 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016800 Token * _literal;
16801 Token * _literal_1;
16802 void *a;
16803 if (
16804 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16805 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016806 (a = star_targets_tuple_seq_rule(p), 1) // star_targets_tuple_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016807 &&
16808 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16809 )
16810 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016811 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016812 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16813 if (_token == NULL) {
16814 D(p->level--);
16815 return NULL;
16816 }
16817 int _end_lineno = _token->end_lineno;
16818 UNUSED(_end_lineno); // Only used by EXTRA macro
16819 int _end_col_offset = _token->end_col_offset;
16820 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016821 _res = _PyAST_Tuple ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016822 if (_res == NULL && PyErr_Occurred()) {
16823 p->error_indicator = 1;
16824 D(p->level--);
16825 return NULL;
16826 }
16827 goto done;
16828 }
16829 p->mark = _mark;
16830 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016831 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_tuple_seq? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016832 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016833 { // '[' star_targets_list_seq? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016834 if (p->error_indicator) {
16835 D(p->level--);
16836 return NULL;
16837 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016838 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 +010016839 Token * _literal;
16840 Token * _literal_1;
16841 void *a;
16842 if (
16843 (_literal = _PyPegen_expect_token(p, 9)) // token='['
16844 &&
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016845 (a = star_targets_list_seq_rule(p), 1) // star_targets_list_seq?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016846 &&
16847 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
16848 )
16849 {
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016850 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 +010016851 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
16852 if (_token == NULL) {
16853 D(p->level--);
16854 return NULL;
16855 }
16856 int _end_lineno = _token->end_lineno;
16857 UNUSED(_end_lineno); // Only used by EXTRA macro
16858 int _end_col_offset = _token->end_col_offset;
16859 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020016860 _res = _PyAST_List ( a , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016861 if (_res == NULL && PyErr_Occurred()) {
16862 p->error_indicator = 1;
16863 D(p->level--);
16864 return NULL;
16865 }
16866 goto done;
16867 }
16868 p->mark = _mark;
16869 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020016870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_list_seq? ']'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010016871 }
16872 _res = NULL;
16873 done:
16874 D(p->level--);
16875 return _res;
16876}
16877
16878// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
16879static expr_ty
16880single_target_rule(Parser *p)
16881{
16882 D(p->level++);
16883 if (p->error_indicator) {
16884 D(p->level--);
16885 return NULL;
16886 }
16887 expr_ty _res = NULL;
16888 int _mark = p->mark;
16889 { // single_subscript_attribute_target
16890 if (p->error_indicator) {
16891 D(p->level--);
16892 return NULL;
16893 }
16894 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16895 expr_ty single_subscript_attribute_target_var;
16896 if (
16897 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
16898 )
16899 {
16900 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
16901 _res = single_subscript_attribute_target_var;
16902 goto done;
16903 }
16904 p->mark = _mark;
16905 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
16907 }
16908 { // NAME
16909 if (p->error_indicator) {
16910 D(p->level--);
16911 return NULL;
16912 }
16913 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
16914 expr_ty a;
16915 if (
16916 (a = _PyPegen_name_token(p)) // NAME
16917 )
16918 {
16919 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
16920 _res = _PyPegen_set_expr_context ( p , a , Store );
16921 if (_res == NULL && PyErr_Occurred()) {
16922 p->error_indicator = 1;
16923 D(p->level--);
16924 return NULL;
16925 }
16926 goto done;
16927 }
16928 p->mark = _mark;
16929 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
16931 }
16932 { // '(' single_target ')'
16933 if (p->error_indicator) {
16934 D(p->level--);
16935 return NULL;
16936 }
16937 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16938 Token * _literal;
16939 Token * _literal_1;
16940 expr_ty a;
16941 if (
16942 (_literal = _PyPegen_expect_token(p, 7)) // token='('
16943 &&
16944 (a = single_target_rule(p)) // single_target
16945 &&
16946 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
16947 )
16948 {
16949 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
16950 _res = a;
16951 if (_res == NULL && PyErr_Occurred()) {
16952 p->error_indicator = 1;
16953 D(p->level--);
16954 return NULL;
16955 }
16956 goto done;
16957 }
16958 p->mark = _mark;
16959 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
16960 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
16961 }
16962 _res = NULL;
16963 done:
16964 D(p->level--);
16965 return _res;
16966}
16967
16968// single_subscript_attribute_target:
16969// | t_primary '.' NAME !t_lookahead
16970// | t_primary '[' slices ']' !t_lookahead
16971static expr_ty
16972single_subscript_attribute_target_rule(Parser *p)
16973{
16974 D(p->level++);
16975 if (p->error_indicator) {
16976 D(p->level--);
16977 return NULL;
16978 }
16979 expr_ty _res = NULL;
16980 int _mark = p->mark;
16981 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
16982 p->error_indicator = 1;
16983 D(p->level--);
16984 return NULL;
16985 }
16986 int _start_lineno = p->tokens[_mark]->lineno;
16987 UNUSED(_start_lineno); // Only used by EXTRA macro
16988 int _start_col_offset = p->tokens[_mark]->col_offset;
16989 UNUSED(_start_col_offset); // Only used by EXTRA macro
16990 { // t_primary '.' NAME !t_lookahead
16991 if (p->error_indicator) {
16992 D(p->level--);
16993 return NULL;
16994 }
16995 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
16996 Token * _literal;
16997 expr_ty a;
16998 expr_ty b;
16999 if (
17000 (a = t_primary_rule(p)) // t_primary
17001 &&
17002 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17003 &&
17004 (b = _PyPegen_name_token(p)) // NAME
17005 &&
17006 _PyPegen_lookahead(0, t_lookahead_rule, p)
17007 )
17008 {
17009 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17010 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17011 if (_token == NULL) {
17012 D(p->level--);
17013 return NULL;
17014 }
17015 int _end_lineno = _token->end_lineno;
17016 UNUSED(_end_lineno); // Only used by EXTRA macro
17017 int _end_col_offset = _token->end_col_offset;
17018 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017019 _res = _PyAST_Attribute ( a , b -> v . Name . id , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017020 if (_res == NULL && PyErr_Occurred()) {
17021 p->error_indicator = 1;
17022 D(p->level--);
17023 return NULL;
17024 }
17025 goto done;
17026 }
17027 p->mark = _mark;
17028 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
17030 }
17031 { // t_primary '[' slices ']' !t_lookahead
17032 if (p->error_indicator) {
17033 D(p->level--);
17034 return NULL;
17035 }
17036 D(fprintf(stderr, "%*c> single_subscript_attribute_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17037 Token * _literal;
17038 Token * _literal_1;
17039 expr_ty a;
17040 expr_ty b;
17041 if (
17042 (a = t_primary_rule(p)) // t_primary
17043 &&
17044 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17045 &&
17046 (b = slices_rule(p)) // slices
17047 &&
17048 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17049 &&
17050 _PyPegen_lookahead(0, t_lookahead_rule, p)
17051 )
17052 {
17053 D(fprintf(stderr, "%*c+ single_subscript_attribute_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17054 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17055 if (_token == NULL) {
17056 D(p->level--);
17057 return NULL;
17058 }
17059 int _end_lineno = _token->end_lineno;
17060 UNUSED(_end_lineno); // Only used by EXTRA macro
17061 int _end_col_offset = _token->end_col_offset;
17062 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017063 _res = _PyAST_Subscript ( a , b , Store , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017064 if (_res == NULL && PyErr_Occurred()) {
17065 p->error_indicator = 1;
17066 D(p->level--);
17067 return NULL;
17068 }
17069 goto done;
17070 }
17071 p->mark = _mark;
17072 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
17073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
17074 }
17075 _res = NULL;
17076 done:
17077 D(p->level--);
17078 return _res;
17079}
17080
17081// del_targets: ','.del_target+ ','?
Pablo Galindoa5634c42020-09-16 19:42:00 +010017082static asdl_expr_seq*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017083del_targets_rule(Parser *p)
17084{
17085 D(p->level++);
17086 if (p->error_indicator) {
17087 D(p->level--);
17088 return NULL;
17089 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010017090 asdl_expr_seq* _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017091 int _mark = p->mark;
17092 { // ','.del_target+ ','?
17093 if (p->error_indicator) {
17094 D(p->level--);
17095 return NULL;
17096 }
17097 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17098 void *_opt_var;
17099 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoa5634c42020-09-16 19:42:00 +010017100 asdl_expr_seq* a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017101 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017102 (a = (asdl_expr_seq*)_gather_139_rule(p)) // ','.del_target+
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017103 &&
17104 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
17105 )
17106 {
17107 D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
17108 _res = a;
17109 if (_res == NULL && PyErr_Occurred()) {
17110 p->error_indicator = 1;
17111 D(p->level--);
17112 return NULL;
17113 }
17114 goto done;
17115 }
17116 p->mark = _mark;
17117 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
17118 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
17119 }
17120 _res = NULL;
17121 done:
17122 D(p->level--);
17123 return _res;
17124}
17125
17126// del_target:
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017127// | t_primary '.' NAME !t_lookahead
17128// | t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017129// | del_t_atom
17130static expr_ty
17131del_target_rule(Parser *p)
17132{
17133 D(p->level++);
17134 if (p->error_indicator) {
17135 D(p->level--);
17136 return NULL;
17137 }
17138 expr_ty _res = NULL;
17139 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
17140 D(p->level--);
17141 return _res;
17142 }
17143 int _mark = p->mark;
17144 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17145 p->error_indicator = 1;
17146 D(p->level--);
17147 return NULL;
17148 }
17149 int _start_lineno = p->tokens[_mark]->lineno;
17150 UNUSED(_start_lineno); // Only used by EXTRA macro
17151 int _start_col_offset = p->tokens[_mark]->col_offset;
17152 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017153 { // t_primary '.' NAME !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017154 if (p->error_indicator) {
17155 D(p->level--);
17156 return NULL;
17157 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017158 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 +010017159 Token * _literal;
17160 expr_ty a;
17161 expr_ty b;
17162 if (
17163 (a = t_primary_rule(p)) // t_primary
17164 &&
17165 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17166 &&
17167 (b = _PyPegen_name_token(p)) // NAME
17168 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017169 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017170 )
17171 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017172 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 +010017173 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17174 if (_token == NULL) {
17175 D(p->level--);
17176 return NULL;
17177 }
17178 int _end_lineno = _token->end_lineno;
17179 UNUSED(_end_lineno); // Only used by EXTRA macro
17180 int _end_col_offset = _token->end_col_offset;
17181 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017182 _res = _PyAST_Attribute ( a , b -> v . Name . id , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017183 if (_res == NULL && PyErr_Occurred()) {
17184 p->error_indicator = 1;
17185 D(p->level--);
17186 return NULL;
17187 }
17188 goto done;
17189 }
17190 p->mark = _mark;
17191 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017192 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017193 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017194 { // t_primary '[' slices ']' !t_lookahead
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017195 if (p->error_indicator) {
17196 D(p->level--);
17197 return NULL;
17198 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017199 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 +010017200 Token * _literal;
17201 Token * _literal_1;
17202 expr_ty a;
17203 expr_ty b;
17204 if (
17205 (a = t_primary_rule(p)) // t_primary
17206 &&
17207 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17208 &&
17209 (b = slices_rule(p)) // slices
17210 &&
17211 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17212 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017213 _PyPegen_lookahead(0, t_lookahead_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017214 )
17215 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017216 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 +010017217 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17218 if (_token == NULL) {
17219 D(p->level--);
17220 return NULL;
17221 }
17222 int _end_lineno = _token->end_lineno;
17223 UNUSED(_end_lineno); // Only used by EXTRA macro
17224 int _end_col_offset = _token->end_col_offset;
17225 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017226 _res = _PyAST_Subscript ( a , b , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017227 if (_res == NULL && PyErr_Occurred()) {
17228 p->error_indicator = 1;
17229 D(p->level--);
17230 return NULL;
17231 }
17232 goto done;
17233 }
17234 p->mark = _mark;
17235 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017237 }
17238 { // del_t_atom
17239 if (p->error_indicator) {
17240 D(p->level--);
17241 return NULL;
17242 }
17243 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17244 expr_ty del_t_atom_var;
17245 if (
17246 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
17247 )
17248 {
17249 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_t_atom"));
17250 _res = del_t_atom_var;
17251 goto done;
17252 }
17253 p->mark = _mark;
17254 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
17255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
17256 }
17257 _res = NULL;
17258 done:
17259 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
17260 D(p->level--);
17261 return _res;
17262}
17263
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017264// del_t_atom: NAME | '(' del_target ')' | '(' del_targets? ')' | '[' del_targets? ']'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017265static expr_ty
17266del_t_atom_rule(Parser *p)
17267{
17268 D(p->level++);
17269 if (p->error_indicator) {
17270 D(p->level--);
17271 return NULL;
17272 }
17273 expr_ty _res = NULL;
17274 int _mark = p->mark;
17275 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17276 p->error_indicator = 1;
17277 D(p->level--);
17278 return NULL;
17279 }
17280 int _start_lineno = p->tokens[_mark]->lineno;
17281 UNUSED(_start_lineno); // Only used by EXTRA macro
17282 int _start_col_offset = p->tokens[_mark]->col_offset;
17283 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017284 { // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017285 if (p->error_indicator) {
17286 D(p->level--);
17287 return NULL;
17288 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017289 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017290 expr_ty a;
17291 if (
17292 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017293 )
17294 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017295 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 +010017296 _res = _PyPegen_set_expr_context ( p , a , Del );
17297 if (_res == NULL && PyErr_Occurred()) {
17298 p->error_indicator = 1;
17299 D(p->level--);
17300 return NULL;
17301 }
17302 goto done;
17303 }
17304 p->mark = _mark;
17305 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030017306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017307 }
17308 { // '(' del_target ')'
17309 if (p->error_indicator) {
17310 D(p->level--);
17311 return NULL;
17312 }
17313 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17314 Token * _literal;
17315 Token * _literal_1;
17316 expr_ty a;
17317 if (
17318 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17319 &&
17320 (a = del_target_rule(p)) // del_target
17321 &&
17322 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17323 )
17324 {
17325 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_target ')'"));
17326 _res = _PyPegen_set_expr_context ( p , a , Del );
17327 if (_res == NULL && PyErr_Occurred()) {
17328 p->error_indicator = 1;
17329 D(p->level--);
17330 return NULL;
17331 }
17332 goto done;
17333 }
17334 p->mark = _mark;
17335 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
17337 }
17338 { // '(' del_targets? ')'
17339 if (p->error_indicator) {
17340 D(p->level--);
17341 return NULL;
17342 }
17343 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17344 Token * _literal;
17345 Token * _literal_1;
17346 void *a;
17347 if (
17348 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17349 &&
17350 (a = del_targets_rule(p), 1) // del_targets?
17351 &&
17352 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17353 )
17354 {
17355 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' del_targets? ')'"));
17356 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17357 if (_token == NULL) {
17358 D(p->level--);
17359 return NULL;
17360 }
17361 int _end_lineno = _token->end_lineno;
17362 UNUSED(_end_lineno); // Only used by EXTRA macro
17363 int _end_col_offset = _token->end_col_offset;
17364 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017365 _res = _PyAST_Tuple ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017366 if (_res == NULL && PyErr_Occurred()) {
17367 p->error_indicator = 1;
17368 D(p->level--);
17369 return NULL;
17370 }
17371 goto done;
17372 }
17373 p->mark = _mark;
17374 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
17376 }
17377 { // '[' del_targets? ']'
17378 if (p->error_indicator) {
17379 D(p->level--);
17380 return NULL;
17381 }
17382 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17383 Token * _literal;
17384 Token * _literal_1;
17385 void *a;
17386 if (
17387 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17388 &&
17389 (a = del_targets_rule(p), 1) // del_targets?
17390 &&
17391 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17392 )
17393 {
17394 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' del_targets? ']'"));
17395 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17396 if (_token == NULL) {
17397 D(p->level--);
17398 return NULL;
17399 }
17400 int _end_lineno = _token->end_lineno;
17401 UNUSED(_end_lineno); // Only used by EXTRA macro
17402 int _end_col_offset = _token->end_col_offset;
17403 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017404 _res = _PyAST_List ( a , Del , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017405 if (_res == NULL && PyErr_Occurred()) {
17406 p->error_indicator = 1;
17407 D(p->level--);
17408 return NULL;
17409 }
17410 goto done;
17411 }
17412 p->mark = _mark;
17413 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
17414 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
17415 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017416 _res = NULL;
17417 done:
17418 D(p->level--);
17419 return _res;
17420}
17421
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017422// Left-recursive
17423// t_primary:
17424// | t_primary '.' NAME &t_lookahead
17425// | t_primary '[' slices ']' &t_lookahead
17426// | t_primary genexp &t_lookahead
17427// | t_primary '(' arguments? ')' &t_lookahead
17428// | atom &t_lookahead
17429static expr_ty t_primary_raw(Parser *);
17430static expr_ty
17431t_primary_rule(Parser *p)
17432{
17433 D(p->level++);
17434 expr_ty _res = NULL;
17435 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
17436 D(p->level--);
17437 return _res;
17438 }
17439 int _mark = p->mark;
17440 int _resmark = p->mark;
17441 while (1) {
Brandt Bucher145bf262021-02-26 14:51:55 -080017442 int tmpvar_9 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
17443 if (tmpvar_9) {
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017444 D(p->level--);
17445 return _res;
17446 }
17447 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017448 p->in_raw_rule++;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017449 void *_raw = t_primary_raw(p);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017450 p->in_raw_rule--;
Lysandros Nikolaou02cdfc92020-10-31 20:31:41 +020017451 if (p->error_indicator)
17452 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017453 if (_raw == NULL || p->mark <= _resmark)
17454 break;
17455 _resmark = p->mark;
17456 _res = _raw;
17457 }
17458 p->mark = _resmark;
17459 D(p->level--);
17460 return _res;
17461}
17462static expr_ty
17463t_primary_raw(Parser *p)
17464{
17465 D(p->level++);
17466 if (p->error_indicator) {
17467 D(p->level--);
17468 return NULL;
17469 }
17470 expr_ty _res = NULL;
17471 int _mark = p->mark;
17472 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
17473 p->error_indicator = 1;
17474 D(p->level--);
17475 return NULL;
17476 }
17477 int _start_lineno = p->tokens[_mark]->lineno;
17478 UNUSED(_start_lineno); // Only used by EXTRA macro
17479 int _start_col_offset = p->tokens[_mark]->col_offset;
17480 UNUSED(_start_col_offset); // Only used by EXTRA macro
17481 { // t_primary '.' NAME &t_lookahead
17482 if (p->error_indicator) {
17483 D(p->level--);
17484 return NULL;
17485 }
17486 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17487 Token * _literal;
17488 expr_ty a;
17489 expr_ty b;
17490 if (
17491 (a = t_primary_rule(p)) // t_primary
17492 &&
17493 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17494 &&
17495 (b = _PyPegen_name_token(p)) // NAME
17496 &&
17497 _PyPegen_lookahead(1, t_lookahead_rule, p)
17498 )
17499 {
17500 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17501 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17502 if (_token == NULL) {
17503 D(p->level--);
17504 return NULL;
17505 }
17506 int _end_lineno = _token->end_lineno;
17507 UNUSED(_end_lineno); // Only used by EXTRA macro
17508 int _end_col_offset = _token->end_col_offset;
17509 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017510 _res = _PyAST_Attribute ( a , b -> v . Name . id , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017511 if (_res == NULL && PyErr_Occurred()) {
17512 p->error_indicator = 1;
17513 D(p->level--);
17514 return NULL;
17515 }
17516 goto done;
17517 }
17518 p->mark = _mark;
17519 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
17521 }
17522 { // t_primary '[' slices ']' &t_lookahead
17523 if (p->error_indicator) {
17524 D(p->level--);
17525 return NULL;
17526 }
17527 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17528 Token * _literal;
17529 Token * _literal_1;
17530 expr_ty a;
17531 expr_ty b;
17532 if (
17533 (a = t_primary_rule(p)) // t_primary
17534 &&
17535 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17536 &&
17537 (b = slices_rule(p)) // slices
17538 &&
17539 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
17540 &&
17541 _PyPegen_lookahead(1, t_lookahead_rule, p)
17542 )
17543 {
17544 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17545 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17546 if (_token == NULL) {
17547 D(p->level--);
17548 return NULL;
17549 }
17550 int _end_lineno = _token->end_lineno;
17551 UNUSED(_end_lineno); // Only used by EXTRA macro
17552 int _end_col_offset = _token->end_col_offset;
17553 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017554 _res = _PyAST_Subscript ( a , b , Load , EXTRA );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017555 if (_res == NULL && PyErr_Occurred()) {
17556 p->error_indicator = 1;
17557 D(p->level--);
17558 return NULL;
17559 }
17560 goto done;
17561 }
17562 p->mark = _mark;
17563 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
17565 }
17566 { // t_primary genexp &t_lookahead
17567 if (p->error_indicator) {
17568 D(p->level--);
17569 return NULL;
17570 }
17571 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17572 expr_ty a;
17573 expr_ty b;
17574 if (
17575 (a = t_primary_rule(p)) // t_primary
17576 &&
17577 (b = genexp_rule(p)) // genexp
17578 &&
17579 _PyPegen_lookahead(1, t_lookahead_rule, p)
17580 )
17581 {
17582 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary genexp &t_lookahead"));
17583 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17584 if (_token == NULL) {
17585 D(p->level--);
17586 return NULL;
17587 }
17588 int _end_lineno = _token->end_lineno;
17589 UNUSED(_end_lineno); // Only used by EXTRA macro
17590 int _end_col_offset = _token->end_col_offset;
17591 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017592 _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 +010017593 if (_res == NULL && PyErr_Occurred()) {
17594 p->error_indicator = 1;
17595 D(p->level--);
17596 return NULL;
17597 }
17598 goto done;
17599 }
17600 p->mark = _mark;
17601 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17602 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
17603 }
17604 { // t_primary '(' arguments? ')' &t_lookahead
17605 if (p->error_indicator) {
17606 D(p->level--);
17607 return NULL;
17608 }
17609 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17610 Token * _literal;
17611 Token * _literal_1;
17612 expr_ty a;
17613 void *b;
17614 if (
17615 (a = t_primary_rule(p)) // t_primary
17616 &&
17617 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17618 &&
17619 (b = arguments_rule(p), 1) // arguments?
17620 &&
17621 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
17622 &&
17623 _PyPegen_lookahead(1, t_lookahead_rule, p)
17624 )
17625 {
17626 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17627 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
17628 if (_token == NULL) {
17629 D(p->level--);
17630 return NULL;
17631 }
17632 int _end_lineno = _token->end_lineno;
17633 UNUSED(_end_lineno); // Only used by EXTRA macro
17634 int _end_col_offset = _token->end_col_offset;
17635 UNUSED(_end_col_offset); // Only used by EXTRA macro
Victor Stinnerd27f8d22021-04-07 21:34:22 +020017636 _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 +010017637 if (_res == NULL && PyErr_Occurred()) {
17638 p->error_indicator = 1;
17639 D(p->level--);
17640 return NULL;
17641 }
17642 goto done;
17643 }
17644 p->mark = _mark;
17645 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
17647 }
17648 { // atom &t_lookahead
17649 if (p->error_indicator) {
17650 D(p->level--);
17651 return NULL;
17652 }
17653 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17654 expr_ty a;
17655 if (
17656 (a = atom_rule(p)) // atom
17657 &&
17658 _PyPegen_lookahead(1, t_lookahead_rule, p)
17659 )
17660 {
17661 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
17662 _res = a;
17663 if (_res == NULL && PyErr_Occurred()) {
17664 p->error_indicator = 1;
17665 D(p->level--);
17666 return NULL;
17667 }
17668 goto done;
17669 }
17670 p->mark = _mark;
17671 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
17672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
17673 }
17674 _res = NULL;
17675 done:
17676 D(p->level--);
17677 return _res;
17678}
17679
17680// t_lookahead: '(' | '[' | '.'
17681static void *
17682t_lookahead_rule(Parser *p)
17683{
17684 D(p->level++);
17685 if (p->error_indicator) {
17686 D(p->level--);
17687 return NULL;
17688 }
17689 void * _res = NULL;
17690 int _mark = p->mark;
17691 { // '('
17692 if (p->error_indicator) {
17693 D(p->level--);
17694 return NULL;
17695 }
17696 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
17697 Token * _literal;
17698 if (
17699 (_literal = _PyPegen_expect_token(p, 7)) // token='('
17700 )
17701 {
17702 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
17703 _res = _literal;
17704 goto done;
17705 }
17706 p->mark = _mark;
17707 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17708 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
17709 }
17710 { // '['
17711 if (p->error_indicator) {
17712 D(p->level--);
17713 return NULL;
17714 }
17715 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
17716 Token * _literal;
17717 if (
17718 (_literal = _PyPegen_expect_token(p, 9)) // token='['
17719 )
17720 {
17721 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
17722 _res = _literal;
17723 goto done;
17724 }
17725 p->mark = _mark;
17726 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
17728 }
17729 { // '.'
17730 if (p->error_indicator) {
17731 D(p->level--);
17732 return NULL;
17733 }
17734 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
17735 Token * _literal;
17736 if (
17737 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
17738 )
17739 {
17740 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
17741 _res = _literal;
17742 goto done;
17743 }
17744 p->mark = _mark;
17745 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
17746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
17747 }
17748 _res = NULL;
17749 done:
17750 D(p->level--);
17751 return _res;
17752}
17753
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017754// invalid_arguments:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017755// | args ',' '*'
17756// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017757// | NAME '=' expression for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017758// | args for_if_clauses
17759// | args ',' expression for_if_clauses
17760// | args ',' args
17761static void *
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017762invalid_arguments_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017763{
17764 D(p->level++);
17765 if (p->error_indicator) {
17766 D(p->level--);
17767 return NULL;
17768 }
17769 void * _res = NULL;
17770 int _mark = p->mark;
17771 { // args ',' '*'
17772 if (p->error_indicator) {
17773 D(p->level--);
17774 return NULL;
17775 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017776 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017777 Token * _literal;
17778 Token * _literal_1;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017779 expr_ty a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017780 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010017781 (a = args_rule(p)) // args
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017782 &&
17783 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17784 &&
17785 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
17786 )
17787 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017788 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010017789 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable argument unpacking follows keyword argument unpacking" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017790 if (_res == NULL && PyErr_Occurred()) {
17791 p->error_indicator = 1;
17792 D(p->level--);
17793 return NULL;
17794 }
17795 goto done;
17796 }
17797 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017798 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
17800 }
17801 { // expression for_if_clauses ',' [args | expression for_if_clauses]
17802 if (p->error_indicator) {
17803 D(p->level--);
17804 return NULL;
17805 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017806 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017807 Token * _literal;
17808 void *_opt_var;
17809 UNUSED(_opt_var); // Silence compiler warnings
17810 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017811 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017812 if (
17813 (a = expression_rule(p)) // expression
17814 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017815 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017816 &&
17817 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17818 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070017819 (_opt_var = _tmp_141_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017820 )
17821 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017822 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 +010017823 _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 +010017824 if (_res == NULL && PyErr_Occurred()) {
17825 p->error_indicator = 1;
17826 D(p->level--);
17827 return NULL;
17828 }
17829 goto done;
17830 }
17831 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017832 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
17834 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017835 { // NAME '=' expression for_if_clauses
17836 if (p->error_indicator) {
17837 D(p->level--);
17838 return NULL;
17839 }
17840 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17841 expr_ty a;
17842 Token * b;
17843 expr_ty expression_var;
17844 asdl_comprehension_seq* for_if_clauses_var;
17845 if (
17846 (a = _PyPegen_name_token(p)) // NAME
17847 &&
17848 (b = _PyPegen_expect_token(p, 22)) // token='='
17849 &&
17850 (expression_var = expression_rule(p)) // expression
17851 &&
17852 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17853 )
17854 {
17855 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17856 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17857 if (_res == NULL && PyErr_Occurred()) {
17858 p->error_indicator = 1;
17859 D(p->level--);
17860 return NULL;
17861 }
17862 goto done;
17863 }
17864 p->mark = _mark;
17865 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
17866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
17867 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017868 { // args for_if_clauses
17869 if (p->error_indicator) {
17870 D(p->level--);
17871 return NULL;
17872 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017873 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 +010017874 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010017875 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017876 if (
17877 (a = args_rule(p)) // args
17878 &&
17879 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17880 )
17881 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017882 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 +010017883 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
17884 if (_res == NULL && PyErr_Occurred()) {
17885 p->error_indicator = 1;
17886 D(p->level--);
17887 return NULL;
17888 }
17889 goto done;
17890 }
17891 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017892 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
17894 }
17895 { // args ',' expression for_if_clauses
17896 if (p->error_indicator) {
17897 D(p->level--);
17898 return NULL;
17899 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017900 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 +010017901 Token * _literal;
17902 expr_ty a;
17903 expr_ty args_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010017904 asdl_comprehension_seq* b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017905 if (
17906 (args_var = args_rule(p)) // args
17907 &&
17908 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17909 &&
17910 (a = expression_rule(p)) // expression
17911 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010017912 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017913 )
17914 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017915 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 +010017916 _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 +010017917 if (_res == NULL && PyErr_Occurred()) {
17918 p->error_indicator = 1;
17919 D(p->level--);
17920 return NULL;
17921 }
17922 goto done;
17923 }
17924 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017925 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
17927 }
17928 { // args ',' args
17929 if (p->error_indicator) {
17930 D(p->level--);
17931 return NULL;
17932 }
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017933 D(fprintf(stderr, "%*c> invalid_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017934 Token * _literal;
17935 expr_ty a;
17936 expr_ty args_var;
17937 if (
17938 (a = args_rule(p)) // args
17939 &&
17940 (_literal = _PyPegen_expect_token(p, 12)) // token=','
17941 &&
17942 (args_var = args_rule(p)) // args
17943 )
17944 {
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017945 D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017946 _res = _PyPegen_arguments_parsing_error ( p , a );
17947 if (_res == NULL && PyErr_Occurred()) {
17948 p->error_indicator = 1;
17949 D(p->level--);
17950 return NULL;
17951 }
17952 goto done;
17953 }
17954 p->mark = _mark;
Lysandros Nikolaoubca70142020-10-27 00:42:04 +020017955 D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
17957 }
17958 _res = NULL;
17959 done:
17960 D(p->level--);
17961 return _res;
17962}
17963
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017964// invalid_kwarg: NAME '=' expression for_if_clauses | !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010017965static void *
17966invalid_kwarg_rule(Parser *p)
17967{
17968 D(p->level++);
17969 if (p->error_indicator) {
17970 D(p->level--);
17971 return NULL;
17972 }
17973 void * _res = NULL;
17974 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070017975 { // NAME '=' expression for_if_clauses
17976 if (p->error_indicator) {
17977 D(p->level--);
17978 return NULL;
17979 }
17980 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17981 expr_ty a;
17982 Token * b;
17983 expr_ty expression_var;
17984 asdl_comprehension_seq* for_if_clauses_var;
17985 if (
17986 (a = _PyPegen_name_token(p)) // NAME
17987 &&
17988 (b = _PyPegen_expect_token(p, 22)) // token='='
17989 &&
17990 (expression_var = expression_rule(p)) // expression
17991 &&
17992 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
17993 )
17994 {
17995 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' expression for_if_clauses"));
17996 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Maybe you meant '==' or ':=' instead of '='?" );
17997 if (_res == NULL && PyErr_Occurred()) {
17998 p->error_indicator = 1;
17999 D(p->level--);
18000 return NULL;
18001 }
18002 goto done;
18003 }
18004 p->mark = _mark;
18005 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
18006 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses"));
18007 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018008 { // !(NAME '=') expression '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018009 if (p->error_indicator) {
18010 D(p->level--);
18011 return NULL;
18012 }
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018013 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010018014 expr_ty a;
18015 Token * b;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018016 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018017 _PyPegen_lookahead(0, _tmp_142_rule, p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018018 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018019 (a = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018020 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018021 (b = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018022 )
18023 {
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018024 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 +010018025 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018026 if (_res == NULL && PyErr_Occurred()) {
18027 p->error_indicator = 1;
18028 D(p->level--);
18029 return NULL;
18030 }
18031 goto done;
18032 }
18033 p->mark = _mark;
18034 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070018035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018036 }
18037 _res = NULL;
18038 done:
18039 D(p->level--);
18040 return _res;
18041}
18042
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018043// expression_without_invalid:
18044// | disjunction 'if' disjunction 'else' expression
18045// | disjunction
18046// | lambdef
18047static expr_ty
18048expression_without_invalid_rule(Parser *p)
18049{
18050 D(p->level++);
18051 if (p->error_indicator) {
18052 D(p->level--);
18053 return NULL;
18054 }
18055 expr_ty _res = NULL;
18056 int _mark = p->mark;
18057 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
18058 p->error_indicator = 1;
18059 D(p->level--);
18060 return NULL;
18061 }
18062 int _start_lineno = p->tokens[_mark]->lineno;
18063 UNUSED(_start_lineno); // Only used by EXTRA macro
18064 int _start_col_offset = p->tokens[_mark]->col_offset;
18065 UNUSED(_start_col_offset); // Only used by EXTRA macro
18066 { // disjunction 'if' disjunction 'else' expression
18067 if (p->error_indicator) {
18068 D(p->level--);
18069 return NULL;
18070 }
18071 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18072 Token * _keyword;
18073 Token * _keyword_1;
18074 expr_ty a;
18075 expr_ty b;
18076 expr_ty c;
18077 if (
18078 (a = disjunction_rule(p)) // disjunction
18079 &&
18080 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
18081 &&
18082 (b = disjunction_rule(p)) // disjunction
18083 &&
18084 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
18085 &&
18086 (c = expression_rule(p)) // expression
18087 )
18088 {
18089 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18090 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
18091 if (_token == NULL) {
18092 D(p->level--);
18093 return NULL;
18094 }
18095 int _end_lineno = _token->end_lineno;
18096 UNUSED(_end_lineno); // Only used by EXTRA macro
18097 int _end_col_offset = _token->end_col_offset;
18098 UNUSED(_end_col_offset); // Only used by EXTRA macro
18099 _res = _PyAST_IfExp ( b , a , c , EXTRA );
18100 if (_res == NULL && PyErr_Occurred()) {
18101 p->error_indicator = 1;
18102 D(p->level--);
18103 return NULL;
18104 }
18105 goto done;
18106 }
18107 p->mark = _mark;
18108 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
18110 }
18111 { // disjunction
18112 if (p->error_indicator) {
18113 D(p->level--);
18114 return NULL;
18115 }
18116 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
18117 expr_ty disjunction_var;
18118 if (
18119 (disjunction_var = disjunction_rule(p)) // disjunction
18120 )
18121 {
18122 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
18123 _res = disjunction_var;
18124 goto done;
18125 }
18126 p->mark = _mark;
18127 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
18129 }
18130 { // lambdef
18131 if (p->error_indicator) {
18132 D(p->level--);
18133 return NULL;
18134 }
18135 D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
18136 expr_ty lambdef_var;
18137 if (
18138 (lambdef_var = lambdef_rule(p)) // lambdef
18139 )
18140 {
18141 D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
18142 _res = lambdef_var;
18143 goto done;
18144 }
18145 p->mark = _mark;
18146 D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ',
18147 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
18148 }
18149 _res = NULL;
18150 done:
18151 D(p->level--);
18152 return _res;
18153}
18154
18155// invalid_expression:
18156// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018157static void *
18158invalid_expression_rule(Parser *p)
18159{
18160 D(p->level++);
18161 if (p->error_indicator) {
18162 D(p->level--);
18163 return NULL;
18164 }
18165 void * _res = NULL;
18166 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018167 { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018168 if (p->error_indicator) {
18169 D(p->level--);
18170 return NULL;
18171 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018172 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 +010018173 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018174 expr_ty b;
Pablo Galindob2802482021-04-15 21:38:45 +010018175 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018176 _PyPegen_lookahead(0, _tmp_143_rule, p)
Pablo Galindob2802482021-04-15 21:38:45 +010018177 &&
18178 (a = disjunction_rule(p)) // disjunction
18179 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018180 (b = expression_without_invalid_rule(p)) // expression_without_invalid
Pablo Galindob2802482021-04-15 21:38:45 +010018181 )
18182 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018183 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 +010018184 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
Pablo Galindob2802482021-04-15 21:38:45 +010018185 if (_res == NULL && PyErr_Occurred()) {
18186 p->error_indicator = 1;
18187 D(p->level--);
18188 return NULL;
18189 }
18190 goto done;
18191 }
18192 p->mark = _mark;
18193 D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
Pablo Galindob2802482021-04-15 21:38:45 +010018195 }
18196 _res = NULL;
18197 done:
18198 D(p->level--);
18199 return _res;
18200}
18201
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018202// invalid_named_expression:
18203// | expression ':=' expression
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018204// | NAME '=' bitwise_or !('=' | ':=')
18205// | !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018206static void *
18207invalid_named_expression_rule(Parser *p)
18208{
18209 D(p->level++);
18210 if (p->error_indicator) {
18211 D(p->level--);
18212 return NULL;
18213 }
18214 void * _res = NULL;
18215 int _mark = p->mark;
18216 { // expression ':=' expression
18217 if (p->error_indicator) {
18218 D(p->level--);
18219 return NULL;
18220 }
18221 D(fprintf(stderr, "%*c> invalid_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18222 Token * _literal;
18223 expr_ty a;
18224 expr_ty expression_var;
18225 if (
18226 (a = expression_rule(p)) // expression
18227 &&
18228 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
18229 &&
18230 (expression_var = expression_rule(p)) // expression
18231 )
18232 {
18233 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':=' expression"));
18234 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use assignment expressions with %s" , _PyPegen_get_expr_name ( a ) );
18235 if (_res == NULL && PyErr_Occurred()) {
18236 p->error_indicator = 1;
18237 D(p->level--);
18238 return NULL;
18239 }
18240 goto done;
18241 }
18242 p->mark = _mark;
18243 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
18244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
18245 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018246 { // NAME '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018247 if (p->error_indicator) {
18248 D(p->level--);
18249 return NULL;
18250 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018251 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 +010018252 Token * _literal;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018253 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018254 expr_ty b;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018255 if (
18256 (a = _PyPegen_name_token(p)) // NAME
18257 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018258 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018259 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018260 (b = bitwise_or_rule(p)) // bitwise_or
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018261 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018262 _PyPegen_lookahead(0, _tmp_144_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018263 )
18264 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018265 D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
18266 _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 +010018267 if (_res == NULL && PyErr_Occurred()) {
18268 p->error_indicator = 1;
18269 D(p->level--);
18270 return NULL;
18271 }
18272 goto done;
18273 }
18274 p->mark = _mark;
18275 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018277 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018278 { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018279 if (p->error_indicator) {
18280 D(p->level--);
18281 return NULL;
18282 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018283 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 +010018284 expr_ty a;
18285 Token * b;
18286 expr_ty bitwise_or_var;
18287 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018288 _PyPegen_lookahead(0, _tmp_145_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018289 &&
18290 (a = bitwise_or_rule(p)) // bitwise_or
18291 &&
18292 (b = _PyPegen_expect_token(p, 22)) // token='='
18293 &&
18294 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18295 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018296 _PyPegen_lookahead(0, _tmp_146_rule, p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018297 )
18298 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018299 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 !('=' | ':=')"));
18300 _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 +010018301 if (_res == NULL && PyErr_Occurred()) {
18302 p->error_indicator = 1;
18303 D(p->level--);
18304 return NULL;
18305 }
18306 goto done;
18307 }
18308 p->mark = _mark;
18309 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070018310 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010018311 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018312 _res = NULL;
18313 done:
18314 D(p->level--);
18315 return _res;
18316}
18317
18318// invalid_assignment:
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018319// | invalid_ann_assign_target ':' expression
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018320// | star_named_expression ',' star_named_expressions* ':' expression
18321// | expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018322// | ((star_targets '='))* star_expressions '='
18323// | ((star_targets '='))* yield_expr '='
18324// | star_expressions augassign (yield_expr | star_expressions)
18325static void *
18326invalid_assignment_rule(Parser *p)
18327{
18328 D(p->level++);
18329 if (p->error_indicator) {
18330 D(p->level--);
18331 return NULL;
18332 }
18333 void * _res = NULL;
18334 int _mark = p->mark;
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018335 { // invalid_ann_assign_target ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018336 if (p->error_indicator) {
18337 D(p->level--);
18338 return NULL;
18339 }
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018340 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 +010018341 Token * _literal;
18342 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018343 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018344 if (
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018345 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018346 &&
18347 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018348 &&
18349 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018350 )
18351 {
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018352 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ann_assign_target ':' expression"));
18353 _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 +010018354 if (_res == NULL && PyErr_Occurred()) {
18355 p->error_indicator = 1;
18356 D(p->level--);
18357 return NULL;
18358 }
18359 goto done;
18360 }
18361 p->mark = _mark;
18362 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018364 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018365 { // star_named_expression ',' star_named_expressions* ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018366 if (p->error_indicator) {
18367 D(p->level--);
18368 return NULL;
18369 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018370 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 +010018371 Token * _literal;
18372 Token * _literal_1;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018373 asdl_seq * _loop0_147_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018374 expr_ty a;
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018375 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018376 if (
18377 (a = star_named_expression_rule(p)) // star_named_expression
18378 &&
18379 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18380 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018381 (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018382 &&
18383 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018384 &&
18385 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018386 )
18387 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018388 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 +010018389 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
18390 if (_res == NULL && PyErr_Occurred()) {
18391 p->error_indicator = 1;
18392 D(p->level--);
18393 return NULL;
18394 }
18395 goto done;
18396 }
18397 p->mark = _mark;
18398 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018399 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018400 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018401 { // expression ':' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018402 if (p->error_indicator) {
18403 D(p->level--);
18404 return NULL;
18405 }
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018406 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018407 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018408 expr_ty a;
18409 expr_ty expression_var;
18410 if (
18411 (a = expression_rule(p)) // expression
18412 &&
18413 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
18414 &&
18415 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018416 )
18417 {
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018418 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 +010018419 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
18420 if (_res == NULL && PyErr_Occurred()) {
18421 p->error_indicator = 1;
18422 D(p->level--);
18423 return NULL;
18424 }
18425 goto done;
18426 }
18427 p->mark = _mark;
18428 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030018429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018430 }
18431 { // ((star_targets '='))* star_expressions '='
18432 if (p->error_indicator) {
18433 D(p->level--);
18434 return NULL;
18435 }
18436 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18437 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018438 asdl_seq * _loop0_148_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018439 expr_ty a;
18440 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018441 (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018442 &&
18443 (a = star_expressions_rule(p)) // star_expressions
18444 &&
18445 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18446 )
18447 {
18448 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 +030018449 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018450 if (_res == NULL && PyErr_Occurred()) {
18451 p->error_indicator = 1;
18452 D(p->level--);
18453 return NULL;
18454 }
18455 goto done;
18456 }
18457 p->mark = _mark;
18458 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18459 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
18460 }
18461 { // ((star_targets '='))* yield_expr '='
18462 if (p->error_indicator) {
18463 D(p->level--);
18464 return NULL;
18465 }
18466 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18467 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018468 asdl_seq * _loop0_149_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018469 expr_ty a;
18470 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018471 (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018472 &&
18473 (a = yield_expr_rule(p)) // yield_expr
18474 &&
18475 (_literal = _PyPegen_expect_token(p, 22)) // token='='
18476 )
18477 {
18478 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18479 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
18480 if (_res == NULL && PyErr_Occurred()) {
18481 p->error_indicator = 1;
18482 D(p->level--);
18483 return NULL;
18484 }
18485 goto done;
18486 }
18487 p->mark = _mark;
18488 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
18490 }
18491 { // star_expressions augassign (yield_expr | star_expressions)
18492 if (p->error_indicator) {
18493 D(p->level--);
18494 return NULL;
18495 }
18496 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 -070018497 void *_tmp_150_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018498 expr_ty a;
18499 AugOperator* augassign_var;
18500 if (
18501 (a = star_expressions_rule(p)) // star_expressions
18502 &&
18503 (augassign_var = augassign_rule(p)) // augassign
18504 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018505 (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018506 )
18507 {
18508 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18509 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "'%s' is an illegal expression for augmented assignment" , _PyPegen_get_expr_name ( a ) );
18510 if (_res == NULL && PyErr_Occurred()) {
18511 p->error_indicator = 1;
18512 D(p->level--);
18513 return NULL;
18514 }
18515 goto done;
18516 }
18517 p->mark = _mark;
18518 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
18519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
18520 }
18521 _res = NULL;
18522 done:
18523 D(p->level--);
18524 return _res;
18525}
18526
Batuhan Taskayac8f29ad2020-06-27 21:33:08 +030018527// invalid_ann_assign_target: list | tuple | '(' invalid_ann_assign_target ')'
18528static expr_ty
18529invalid_ann_assign_target_rule(Parser *p)
18530{
18531 D(p->level++);
18532 if (p->error_indicator) {
18533 D(p->level--);
18534 return NULL;
18535 }
18536 expr_ty _res = NULL;
18537 int _mark = p->mark;
18538 { // list
18539 if (p->error_indicator) {
18540 D(p->level--);
18541 return NULL;
18542 }
18543 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
18544 expr_ty list_var;
18545 if (
18546 (list_var = list_rule(p)) // list
18547 )
18548 {
18549 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
18550 _res = list_var;
18551 goto done;
18552 }
18553 p->mark = _mark;
18554 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
18556 }
18557 { // tuple
18558 if (p->error_indicator) {
18559 D(p->level--);
18560 return NULL;
18561 }
18562 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
18563 expr_ty tuple_var;
18564 if (
18565 (tuple_var = tuple_rule(p)) // tuple
18566 )
18567 {
18568 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
18569 _res = tuple_var;
18570 goto done;
18571 }
18572 p->mark = _mark;
18573 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18574 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
18575 }
18576 { // '(' invalid_ann_assign_target ')'
18577 if (p->error_indicator) {
18578 D(p->level--);
18579 return NULL;
18580 }
18581 D(fprintf(stderr, "%*c> invalid_ann_assign_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18582 Token * _literal;
18583 Token * _literal_1;
18584 expr_ty a;
18585 if (
18586 (_literal = _PyPegen_expect_token(p, 7)) // token='('
18587 &&
18588 (a = invalid_ann_assign_target_rule(p)) // invalid_ann_assign_target
18589 &&
18590 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
18591 )
18592 {
18593 D(fprintf(stderr, "%*c+ invalid_ann_assign_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18594 _res = a;
18595 if (_res == NULL && PyErr_Occurred()) {
18596 p->error_indicator = 1;
18597 D(p->level--);
18598 return NULL;
18599 }
18600 goto done;
18601 }
18602 p->mark = _mark;
18603 D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ',
18604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' invalid_ann_assign_target ')'"));
18605 }
18606 _res = NULL;
18607 done:
18608 D(p->level--);
18609 return _res;
18610}
18611
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018612// invalid_del_stmt: 'del' star_expressions
18613static void *
18614invalid_del_stmt_rule(Parser *p)
18615{
18616 D(p->level++);
18617 if (p->error_indicator) {
18618 D(p->level--);
18619 return NULL;
18620 }
18621 void * _res = NULL;
18622 int _mark = p->mark;
18623 { // 'del' star_expressions
18624 if (p->error_indicator) {
18625 D(p->level--);
18626 return NULL;
18627 }
18628 D(fprintf(stderr, "%*c> invalid_del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' star_expressions"));
18629 Token * _keyword;
18630 expr_ty a;
18631 if (
18632 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
18633 &&
18634 (a = star_expressions_rule(p)) // star_expressions
18635 )
18636 {
18637 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 +030018638 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( DEL_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030018639 if (_res == NULL && PyErr_Occurred()) {
18640 p->error_indicator = 1;
18641 D(p->level--);
18642 return NULL;
18643 }
18644 goto done;
18645 }
18646 p->mark = _mark;
18647 D(fprintf(stderr, "%*c%s invalid_del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
18648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' star_expressions"));
18649 }
18650 _res = NULL;
18651 done:
18652 D(p->level--);
18653 return _res;
18654}
18655
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018656// invalid_block: NEWLINE !INDENT
18657static void *
18658invalid_block_rule(Parser *p)
18659{
18660 D(p->level++);
18661 if (p->error_indicator) {
18662 D(p->level--);
18663 return NULL;
18664 }
18665 void * _res = NULL;
18666 int _mark = p->mark;
18667 { // NEWLINE !INDENT
18668 if (p->error_indicator) {
18669 D(p->level--);
18670 return NULL;
18671 }
18672 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18673 Token * newline_var;
18674 if (
18675 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
18676 &&
18677 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
18678 )
18679 {
18680 D(fprintf(stderr, "%*c+ invalid_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
18681 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
18682 if (_res == NULL && PyErr_Occurred()) {
18683 p->error_indicator = 1;
18684 D(p->level--);
18685 return NULL;
18686 }
18687 goto done;
18688 }
18689 p->mark = _mark;
18690 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
18691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
18692 }
18693 _res = NULL;
18694 done:
18695 D(p->level--);
18696 return _res;
18697}
18698
Lysandros Nikolaou15acc4e2020-10-27 20:54:20 +020018699// Left-recursive
18700// invalid_primary: primary '{'
18701static void *
18702invalid_primary_rule(Parser *p)
18703{
18704 D(p->level++);
18705 if (p->error_indicator) {
18706 D(p->level--);
18707 return NULL;
18708 }
18709 void * _res = NULL;
18710 int _mark = p->mark;
18711 { // primary '{'
18712 if (p->error_indicator) {
18713 D(p->level--);
18714 return NULL;
18715 }
18716 D(fprintf(stderr, "%*c> invalid_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18717 Token * a;
18718 expr_ty primary_var;
18719 if (
18720 (primary_var = primary_rule(p)) // primary
18721 &&
18722 (a = _PyPegen_expect_token(p, 25)) // token='{'
18723 )
18724 {
18725 D(fprintf(stderr, "%*c+ invalid_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '{'"));
18726 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid syntax" );
18727 if (_res == NULL && PyErr_Occurred()) {
18728 p->error_indicator = 1;
18729 D(p->level--);
18730 return NULL;
18731 }
18732 goto done;
18733 }
18734 p->mark = _mark;
18735 D(fprintf(stderr, "%*c%s invalid_primary[%d-%d]: %s failed!\n", p->level, ' ',
18736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '{'"));
18737 }
18738 _res = NULL;
18739 done:
18740 D(p->level--);
18741 return _res;
18742}
18743
Pablo Galindo835f14f2021-01-31 22:52:56 +000018744// invalid_comprehension:
18745// | ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoa77aac42021-04-23 14:27:05 +010018746// | ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
18747// | ('[' | '{') star_named_expression ',' for_if_clauses
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018748static void *
18749invalid_comprehension_rule(Parser *p)
18750{
18751 D(p->level++);
18752 if (p->error_indicator) {
18753 D(p->level--);
18754 return NULL;
18755 }
18756 void * _res = NULL;
18757 int _mark = p->mark;
18758 { // ('[' | '(' | '{') starred_expression for_if_clauses
18759 if (p->error_indicator) {
18760 D(p->level--);
18761 return NULL;
18762 }
18763 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 -070018764 void *_tmp_151_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018765 expr_ty a;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018766 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018767 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018768 (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018769 &&
18770 (a = starred_expression_rule(p)) // starred_expression
18771 &&
18772 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18773 )
18774 {
18775 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18776 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
18777 if (_res == NULL && PyErr_Occurred()) {
18778 p->error_indicator = 1;
18779 D(p->level--);
18780 return NULL;
18781 }
18782 goto done;
18783 }
18784 p->mark = _mark;
18785 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
18787 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018788 { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018789 if (p->error_indicator) {
18790 D(p->level--);
18791 return NULL;
18792 }
Pablo Galindoa77aac42021-04-23 14:27:05 +010018793 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 +000018794 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018795 void *_tmp_152_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018796 expr_ty a;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018797 asdl_expr_seq* b;
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018798 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo835f14f2021-01-31 22:52:56 +000018799 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018800 (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{'
Pablo Galindo835f14f2021-01-31 22:52:56 +000018801 &&
18802 (a = star_named_expression_rule(p)) // star_named_expression
18803 &&
18804 (_literal = _PyPegen_expect_token(p, 12)) // token=','
18805 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018806 (b = star_named_expressions_rule(p)) // star_named_expressions
Pablo Galindod4e6ed72021-02-03 23:29:26 +000018807 &&
18808 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindo835f14f2021-01-31 22:52:56 +000018809 )
18810 {
Pablo Galindoa77aac42021-04-23 14:27:05 +010018811 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"));
18812 _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 +000018813 if (_res == NULL && PyErr_Occurred()) {
18814 p->error_indicator = 1;
18815 D(p->level--);
18816 return NULL;
18817 }
18818 goto done;
18819 }
18820 p->mark = _mark;
18821 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoa77aac42021-04-23 14:27:05 +010018822 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses"));
18823 }
18824 { // ('[' | '{') star_named_expression ',' for_if_clauses
18825 if (p->error_indicator) {
18826 D(p->level--);
18827 return NULL;
18828 }
18829 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 -070018830 void *_tmp_153_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018831 expr_ty a;
18832 Token * b;
18833 asdl_comprehension_seq* for_if_clauses_var;
18834 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018835 (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010018836 &&
18837 (a = star_named_expression_rule(p)) // star_named_expression
18838 &&
18839 (b = _PyPegen_expect_token(p, 12)) // token=','
18840 &&
18841 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18842 )
18843 {
18844 D(fprintf(stderr, "%*c+ invalid_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
18845 _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "did you forget parentheses around the comprehension target?" );
18846 if (_res == NULL && PyErr_Occurred()) {
18847 p->error_indicator = 1;
18848 D(p->level--);
18849 return NULL;
18850 }
18851 goto done;
18852 }
18853 p->mark = _mark;
18854 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18855 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses"));
Pablo Galindo835f14f2021-01-31 22:52:56 +000018856 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018857 _res = NULL;
18858 done:
18859 D(p->level--);
18860 return _res;
18861}
18862
18863// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
18864static void *
18865invalid_dict_comprehension_rule(Parser *p)
18866{
18867 D(p->level++);
18868 if (p->error_indicator) {
18869 D(p->level--);
18870 return NULL;
18871 }
18872 void * _res = NULL;
18873 int _mark = p->mark;
18874 { // '{' '**' bitwise_or for_if_clauses '}'
18875 if (p->error_indicator) {
18876 D(p->level--);
18877 return NULL;
18878 }
18879 D(fprintf(stderr, "%*c> invalid_dict_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18880 Token * _literal;
18881 Token * _literal_1;
18882 Token * a;
18883 expr_ty bitwise_or_var;
Pablo Galindoa5634c42020-09-16 19:42:00 +010018884 asdl_comprehension_seq* for_if_clauses_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018885 if (
18886 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
18887 &&
18888 (a = _PyPegen_expect_token(p, 35)) // token='**'
18889 &&
18890 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
18891 &&
18892 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
18893 &&
18894 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
18895 )
18896 {
18897 D(fprintf(stderr, "%*c+ invalid_dict_comprehension[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18898 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
18899 if (_res == NULL && PyErr_Occurred()) {
18900 p->error_indicator = 1;
18901 D(p->level--);
18902 return NULL;
18903 }
18904 goto done;
18905 }
18906 p->mark = _mark;
18907 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
18908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
18909 }
18910 _res = NULL;
18911 done:
18912 D(p->level--);
18913 return _res;
18914}
18915
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018916// invalid_parameters: param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018917static void *
18918invalid_parameters_rule(Parser *p)
18919{
18920 D(p->level++);
18921 if (p->error_indicator) {
18922 D(p->level--);
18923 return NULL;
18924 }
18925 void * _res = NULL;
18926 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018927 { // param_no_default* invalid_parameters_helper param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018928 if (p->error_indicator) {
18929 D(p->level--);
18930 return NULL;
18931 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018932 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 -070018933 asdl_seq * _loop0_154_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010018934 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018935 void *invalid_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018936 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070018937 (_loop0_154_var = _loop0_154_rule(p)) // param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018938 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018939 (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018940 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010018941 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018942 )
18943 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018944 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 +010018945 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010018946 if (_res == NULL && PyErr_Occurred()) {
18947 p->error_indicator = 1;
18948 D(p->level--);
18949 return NULL;
18950 }
18951 goto done;
18952 }
18953 p->mark = _mark;
18954 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020018955 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default"));
18956 }
18957 _res = NULL;
18958 done:
18959 D(p->level--);
18960 return _res;
18961}
18962
18963// invalid_parameters_helper: slash_with_default | param_with_default+
18964static void *
18965invalid_parameters_helper_rule(Parser *p)
18966{
18967 D(p->level++);
18968 if (p->error_indicator) {
18969 D(p->level--);
18970 return NULL;
18971 }
18972 void * _res = NULL;
18973 int _mark = p->mark;
18974 { // slash_with_default
18975 if (p->error_indicator) {
18976 D(p->level--);
18977 return NULL;
18978 }
18979 D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18980 SlashWithDefault* a;
18981 if (
18982 (a = slash_with_default_rule(p)) // slash_with_default
18983 )
18984 {
18985 D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
18986 _res = _PyPegen_singleton_seq ( p , a );
18987 if (_res == NULL && PyErr_Occurred()) {
18988 p->error_indicator = 1;
18989 D(p->level--);
18990 return NULL;
18991 }
18992 goto done;
18993 }
18994 p->mark = _mark;
18995 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
18996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
18997 }
18998 { // param_with_default+
18999 if (p->error_indicator) {
19000 D(p->level--);
19001 return NULL;
19002 }
19003 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 -070019004 asdl_seq * _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019005 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019006 (_loop1_155_var = _loop1_155_rule(p)) // param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019007 )
19008 {
19009 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 -070019010 _res = _loop1_155_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019011 goto done;
19012 }
19013 p->mark = _mark;
19014 D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19015 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019016 }
19017 _res = NULL;
19018 done:
19019 D(p->level--);
19020 return _res;
19021}
19022
19023// invalid_lambda_parameters:
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019024// | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019025static void *
19026invalid_lambda_parameters_rule(Parser *p)
19027{
19028 D(p->level++);
19029 if (p->error_indicator) {
19030 D(p->level--);
19031 return NULL;
19032 }
19033 void * _res = NULL;
19034 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019035 { // lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019036 if (p->error_indicator) {
19037 D(p->level--);
19038 return NULL;
19039 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019040 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 -070019041 asdl_seq * _loop0_156_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019042 arg_ty a;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019043 void *invalid_lambda_parameters_helper_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019044 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019045 (_loop0_156_var = _loop0_156_rule(p)) // lambda_param_no_default*
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019046 &&
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019047 (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019048 &&
Pablo Galindoa77aac42021-04-23 14:27:05 +010019049 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019050 )
19051 {
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019052 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 +010019053 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "non-default argument follows default argument" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019054 if (_res == NULL && PyErr_Occurred()) {
19055 p->error_indicator = 1;
19056 D(p->level--);
19057 return NULL;
19058 }
19059 goto done;
19060 }
19061 p->mark = _mark;
19062 D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default"));
19064 }
19065 _res = NULL;
19066 done:
19067 D(p->level--);
19068 return _res;
19069}
19070
19071// invalid_lambda_parameters_helper:
19072// | lambda_slash_with_default
19073// | lambda_param_with_default+
19074static void *
19075invalid_lambda_parameters_helper_rule(Parser *p)
19076{
19077 D(p->level++);
19078 if (p->error_indicator) {
19079 D(p->level--);
19080 return NULL;
19081 }
19082 void * _res = NULL;
19083 int _mark = p->mark;
19084 { // lambda_slash_with_default
19085 if (p->error_indicator) {
19086 D(p->level--);
19087 return NULL;
19088 }
19089 D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19090 SlashWithDefault* a;
19091 if (
19092 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
19093 )
19094 {
19095 D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default"));
19096 _res = _PyPegen_singleton_seq ( p , a );
19097 if (_res == NULL && PyErr_Occurred()) {
19098 p->error_indicator = 1;
19099 D(p->level--);
19100 return NULL;
19101 }
19102 goto done;
19103 }
19104 p->mark = _mark;
19105 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19106 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default"));
19107 }
19108 { // lambda_param_with_default+
19109 if (p->error_indicator) {
19110 D(p->level--);
19111 return NULL;
19112 }
19113 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 -070019114 asdl_seq * _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019115 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019116 (_loop1_157_var = _loop1_157_rule(p)) // lambda_param_with_default+
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019117 )
19118 {
19119 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 -070019120 _res = _loop1_157_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020019121 goto done;
19122 }
19123 p->mark = _mark;
19124 D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ',
19125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019126 }
19127 _res = NULL;
19128 done:
19129 D(p->level--);
19130 return _res;
19131}
19132
19133// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
19134static void *
19135invalid_star_etc_rule(Parser *p)
19136{
19137 D(p->level++);
19138 if (p->error_indicator) {
19139 D(p->level--);
19140 return NULL;
19141 }
19142 void * _res = NULL;
19143 int _mark = p->mark;
19144 { // '*' (')' | ',' (')' | '**'))
19145 if (p->error_indicator) {
19146 D(p->level--);
19147 return NULL;
19148 }
19149 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 -070019150 void *_tmp_158_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010019151 Token * a;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019152 if (
Pablo Galindoa77aac42021-04-23 14:27:05 +010019153 (a = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019154 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019155 (_tmp_158_var = _tmp_158_rule(p)) // ')' | ',' (')' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019156 )
19157 {
19158 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010019159 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "named arguments must follow bare *" );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019160 if (_res == NULL && PyErr_Occurred()) {
19161 p->error_indicator = 1;
19162 D(p->level--);
19163 return NULL;
19164 }
19165 goto done;
19166 }
19167 p->mark = _mark;
19168 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
19170 }
19171 { // '*' ',' TYPE_COMMENT
19172 if (p->error_indicator) {
19173 D(p->level--);
19174 return NULL;
19175 }
19176 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19177 Token * _literal;
19178 Token * _literal_1;
19179 Token * type_comment_var;
19180 if (
19181 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19182 &&
19183 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
19184 &&
19185 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19186 )
19187 {
19188 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19189 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
19190 if (_res == NULL && PyErr_Occurred()) {
19191 p->error_indicator = 1;
19192 D(p->level--);
19193 return NULL;
19194 }
19195 goto done;
19196 }
19197 p->mark = _mark;
19198 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19199 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
19200 }
19201 _res = NULL;
19202 done:
19203 D(p->level--);
19204 return _res;
19205}
19206
19207// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
19208static void *
19209invalid_lambda_star_etc_rule(Parser *p)
19210{
19211 D(p->level++);
19212 if (p->error_indicator) {
19213 D(p->level--);
19214 return NULL;
19215 }
19216 void * _res = NULL;
19217 int _mark = p->mark;
19218 { // '*' (':' | ',' (':' | '**'))
19219 if (p->error_indicator) {
19220 D(p->level--);
19221 return NULL;
19222 }
19223 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19224 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019225 void *_tmp_159_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019226 if (
19227 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
19228 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019229 (_tmp_159_var = _tmp_159_rule(p)) // ':' | ',' (':' | '**')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019230 )
19231 {
19232 D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19233 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
19234 if (_res == NULL && PyErr_Occurred()) {
19235 p->error_indicator = 1;
19236 D(p->level--);
19237 return NULL;
19238 }
19239 goto done;
19240 }
19241 p->mark = _mark;
19242 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
19243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
19244 }
19245 _res = NULL;
19246 done:
19247 D(p->level--);
19248 return _res;
19249}
19250
19251// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19252static void *
19253invalid_double_type_comments_rule(Parser *p)
19254{
19255 D(p->level++);
19256 if (p->error_indicator) {
19257 D(p->level--);
19258 return NULL;
19259 }
19260 void * _res = NULL;
19261 int _mark = p->mark;
19262 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
19263 if (p->error_indicator) {
19264 D(p->level--);
19265 return NULL;
19266 }
19267 D(fprintf(stderr, "%*c> invalid_double_type_comments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19268 Token * indent_var;
19269 Token * newline_var;
19270 Token * newline_var_1;
19271 Token * type_comment_var;
19272 Token * type_comment_var_1;
19273 if (
19274 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19275 &&
19276 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19277 &&
19278 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
19279 &&
19280 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19281 &&
19282 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
19283 )
19284 {
19285 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"));
19286 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
19287 if (_res == NULL && PyErr_Occurred()) {
19288 p->error_indicator = 1;
19289 D(p->level--);
19290 return NULL;
19291 }
19292 goto done;
19293 }
19294 p->mark = _mark;
19295 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
19296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
19297 }
19298 _res = NULL;
19299 done:
19300 D(p->level--);
19301 return _res;
19302}
19303
Pablo Galindo58fb1562021-02-02 19:54:22 +000019304// invalid_with_item: expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019305static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019306invalid_with_item_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019307{
19308 D(p->level++);
19309 if (p->error_indicator) {
19310 D(p->level--);
19311 return NULL;
19312 }
19313 void * _res = NULL;
19314 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019315 { // expression 'as' expression &(',' | ')' | ':')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019316 if (p->error_indicator) {
19317 D(p->level--);
19318 return NULL;
19319 }
Pablo Galindo58fb1562021-02-02 19:54:22 +000019320 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 +030019321 Token * _keyword;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019322 expr_ty a;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019323 expr_ty expression_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019324 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019325 (expression_var = expression_rule(p)) // expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019326 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019327 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
19328 &&
19329 (a = expression_rule(p)) // expression
Pablo Galindo58fb1562021-02-02 19:54:22 +000019330 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019331 _PyPegen_lookahead(1, _tmp_160_rule, p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019332 )
19333 {
Pablo Galindo58fb1562021-02-02 19:54:22 +000019334 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 +030019335 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( STAR_TARGETS , a );
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019336 if (_res == NULL && PyErr_Occurred()) {
19337 p->error_indicator = 1;
19338 D(p->level--);
19339 return NULL;
19340 }
19341 goto done;
19342 }
19343 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019344 D(fprintf(stderr, "%*c%s invalid_with_item[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo58fb1562021-02-02 19:54:22 +000019345 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019346 }
19347 _res = NULL;
19348 done:
19349 D(p->level--);
19350 return _res;
19351}
19352
19353// invalid_for_target: ASYNC? 'for' star_expressions
19354static void *
19355invalid_for_target_rule(Parser *p)
19356{
19357 D(p->level++);
19358 if (p->error_indicator) {
19359 D(p->level--);
19360 return NULL;
19361 }
19362 void * _res = NULL;
19363 int _mark = p->mark;
19364 { // ASYNC? 'for' star_expressions
19365 if (p->error_indicator) {
19366 D(p->level--);
19367 return NULL;
19368 }
19369 D(fprintf(stderr, "%*c> invalid_for_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'for' star_expressions"));
19370 Token * _keyword;
19371 void *_opt_var;
19372 UNUSED(_opt_var); // Silence compiler warnings
19373 expr_ty a;
19374 if (
19375 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19376 &&
19377 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
19378 &&
19379 (a = star_expressions_rule(p)) // star_expressions
19380 )
19381 {
19382 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 +030019383 _res = RAISE_SYNTAX_ERROR_INVALID_TARGET ( FOR_TARGETS , a );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019384 if (_res == NULL && PyErr_Occurred()) {
19385 p->error_indicator = 1;
19386 D(p->level--);
19387 return NULL;
19388 }
19389 goto done;
19390 }
19391 p->mark = _mark;
19392 D(fprintf(stderr, "%*c%s invalid_for_target[%d-%d]: %s failed!\n", p->level, ' ',
19393 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_expressions"));
19394 }
19395 _res = NULL;
19396 done:
19397 D(p->level--);
19398 return _res;
19399}
19400
Pablo Galindo8efad612021-03-24 19:34:17 +000019401// invalid_group: '(' starred_expression ')' | '(' '**' expression ')'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019402static void *
19403invalid_group_rule(Parser *p)
19404{
19405 D(p->level++);
19406 if (p->error_indicator) {
19407 D(p->level--);
19408 return NULL;
19409 }
19410 void * _res = NULL;
19411 int _mark = p->mark;
19412 { // '(' starred_expression ')'
19413 if (p->error_indicator) {
19414 D(p->level--);
19415 return NULL;
19416 }
19417 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' starred_expression ')'"));
19418 Token * _literal;
19419 Token * _literal_1;
19420 expr_ty a;
19421 if (
19422 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19423 &&
19424 (a = starred_expression_rule(p)) // starred_expression
19425 &&
19426 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19427 )
19428 {
19429 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 +010019430 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use starred expression here" );
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030019431 if (_res == NULL && PyErr_Occurred()) {
19432 p->error_indicator = 1;
19433 D(p->level--);
19434 return NULL;
19435 }
19436 goto done;
19437 }
19438 p->mark = _mark;
19439 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19440 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019441 }
Pablo Galindo8efad612021-03-24 19:34:17 +000019442 { // '(' '**' expression ')'
19443 if (p->error_indicator) {
19444 D(p->level--);
19445 return NULL;
19446 }
19447 D(fprintf(stderr, "%*c> invalid_group[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
19448 Token * _literal;
19449 Token * _literal_1;
19450 Token * a;
19451 expr_ty expression_var;
19452 if (
19453 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19454 &&
19455 (a = _PyPegen_expect_token(p, 35)) // token='**'
19456 &&
19457 (expression_var = expression_rule(p)) // expression
19458 &&
19459 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19460 )
19461 {
19462 D(fprintf(stderr, "%*c+ invalid_group[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' '**' expression ')'"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010019463 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use double starred expression here" );
Pablo Galindo8efad612021-03-24 19:34:17 +000019464 if (_res == NULL && PyErr_Occurred()) {
19465 p->error_indicator = 1;
19466 D(p->level--);
19467 return NULL;
19468 }
19469 goto done;
19470 }
19471 p->mark = _mark;
19472 D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ',
19473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression ')'"));
19474 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019475 _res = NULL;
19476 done:
19477 D(p->level--);
19478 return _res;
19479}
19480
19481// invalid_import_from_targets: import_from_as_names ','
19482static void *
19483invalid_import_from_targets_rule(Parser *p)
19484{
19485 D(p->level++);
19486 if (p->error_indicator) {
19487 D(p->level--);
19488 return NULL;
19489 }
19490 void * _res = NULL;
19491 int _mark = p->mark;
19492 { // import_from_as_names ','
19493 if (p->error_indicator) {
19494 D(p->level--);
19495 return NULL;
19496 }
19497 D(fprintf(stderr, "%*c> invalid_import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19498 Token * _literal;
Pablo Galindoa5634c42020-09-16 19:42:00 +010019499 asdl_alias_seq* import_from_as_names_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010019500 if (
19501 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
19502 &&
19503 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19504 )
19505 {
19506 D(fprintf(stderr, "%*c+ invalid_import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_names ','"));
19507 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
19508 if (_res == NULL && PyErr_Occurred()) {
19509 p->error_indicator = 1;
19510 D(p->level--);
19511 return NULL;
19512 }
19513 goto done;
19514 }
19515 p->mark = _mark;
19516 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
19517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
19518 }
19519 _res = NULL;
19520 done:
19521 D(p->level--);
19522 return _res;
19523}
19524
Pablo Galindo58fb1562021-02-02 19:54:22 +000019525// invalid_with_stmt:
19526// | ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19527// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19528static void *
19529invalid_with_stmt_rule(Parser *p)
19530{
19531 D(p->level++);
19532 if (p->error_indicator) {
19533 D(p->level--);
19534 return NULL;
19535 }
19536 void * _res = NULL;
19537 int _mark = p->mark;
19538 { // ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'
19539 if (p->error_indicator) {
19540 D(p->level--);
19541 return NULL;
19542 }
19543 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 -070019544 asdl_seq * _gather_161_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019545 Token * _keyword;
19546 Token * _literal;
19547 void *_opt_var;
19548 UNUSED(_opt_var); // Silence compiler warnings
19549 if (
19550 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19551 &&
19552 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19553 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019554 (_gather_161_var = _gather_161_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019555 &&
19556 (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19557 )
19558 {
19559 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 -070019560 _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_161_var, _literal);
Pablo Galindo58fb1562021-02-02 19:54:22 +000019561 goto done;
19562 }
19563 p->mark = _mark;
19564 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'"));
19566 }
19567 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'
19568 if (p->error_indicator) {
19569 D(p->level--);
19570 return NULL;
19571 }
19572 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 -070019573 asdl_seq * _gather_163_var;
Pablo Galindo58fb1562021-02-02 19:54:22 +000019574 Token * _keyword;
19575 Token * _literal;
19576 Token * _literal_1;
19577 Token * _literal_2;
19578 void *_opt_var;
19579 UNUSED(_opt_var); // Silence compiler warnings
19580 void *_opt_var_1;
19581 UNUSED(_opt_var_1); // Silence compiler warnings
19582 if (
19583 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19584 &&
19585 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
19586 &&
19587 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19588 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019589 (_gather_163_var = _gather_163_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo58fb1562021-02-02 19:54:22 +000019590 &&
19591 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19592 &&
19593 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19594 &&
19595 (_literal_2 = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':'
19596 )
19597 {
19598 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 -070019599 _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 +000019600 goto done;
19601 }
19602 p->mark = _mark;
19603 D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19604 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'"));
19605 }
19606 _res = NULL;
19607 done:
19608 D(p->level--);
19609 return _res;
19610}
19611
Pablo Galindo56c95df2021-04-21 15:28:21 +010019612// invalid_with_stmt_indent:
19613// | ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19614// | ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
Pablo Galindo206cbda2021-02-07 18:42:21 +000019615static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010019616invalid_with_stmt_indent_rule(Parser *p)
19617{
19618 D(p->level++);
19619 if (p->error_indicator) {
19620 D(p->level--);
19621 return NULL;
19622 }
19623 void * _res = NULL;
19624 int _mark = p->mark;
19625 { // ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT
19626 if (p->error_indicator) {
19627 D(p->level--);
19628 return NULL;
19629 }
19630 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 -070019631 asdl_seq * _gather_165_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019632 Token * _literal;
19633 void *_opt_var;
19634 UNUSED(_opt_var); // Silence compiler warnings
19635 Token * a;
19636 Token * newline_var;
19637 if (
19638 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19639 &&
19640 (a = _PyPegen_expect_token(p, 519)) // token='with'
19641 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019642 (_gather_165_var = _gather_165_rule(p)) // ','.(expression ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019643 &&
19644 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19645 &&
19646 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19647 &&
19648 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19649 )
19650 {
19651 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"));
19652 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19653 if (_res == NULL && PyErr_Occurred()) {
19654 p->error_indicator = 1;
19655 D(p->level--);
19656 return NULL;
19657 }
19658 goto done;
19659 }
19660 p->mark = _mark;
19661 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT"));
19663 }
19664 { // ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT
19665 if (p->error_indicator) {
19666 D(p->level--);
19667 return NULL;
19668 }
19669 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 -070019670 asdl_seq * _gather_167_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019671 Token * _literal;
19672 Token * _literal_1;
19673 Token * _literal_2;
19674 void *_opt_var;
19675 UNUSED(_opt_var); // Silence compiler warnings
19676 void *_opt_var_1;
19677 UNUSED(_opt_var_1); // Silence compiler warnings
19678 Token * a;
19679 Token * newline_var;
19680 if (
19681 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
19682 &&
19683 (a = _PyPegen_expect_token(p, 519)) // token='with'
19684 &&
19685 (_literal = _PyPegen_expect_token(p, 7)) // token='('
19686 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019687 (_gather_167_var = _gather_167_rule(p)) // ','.(expressions ['as' star_target])+
Pablo Galindo56c95df2021-04-21 15:28:21 +010019688 &&
19689 (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','?
19690 &&
19691 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
19692 &&
19693 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
19694 &&
19695 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19696 &&
19697 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19698 )
19699 {
19700 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"));
19701 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'with' statement on line %d" , a -> lineno );
19702 if (_res == NULL && PyErr_Occurred()) {
19703 p->error_indicator = 1;
19704 D(p->level--);
19705 return NULL;
19706 }
19707 goto done;
19708 }
19709 p->mark = _mark;
19710 D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
19711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT"));
19712 }
19713 _res = NULL;
19714 done:
19715 D(p->level--);
19716 return _res;
19717}
19718
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019719// invalid_try_stmt: 'try' ':' NEWLINE !INDENT | 'try' ':' block !('except' | 'finally')
Pablo Galindo56c95df2021-04-21 15:28:21 +010019720static void *
19721invalid_try_stmt_rule(Parser *p)
19722{
19723 D(p->level++);
19724 if (p->error_indicator) {
19725 D(p->level--);
19726 return NULL;
19727 }
19728 void * _res = NULL;
19729 int _mark = p->mark;
19730 { // 'try' ':' NEWLINE !INDENT
19731 if (p->error_indicator) {
19732 D(p->level--);
19733 return NULL;
19734 }
19735 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19736 Token * _literal;
19737 Token * a;
19738 Token * newline_var;
19739 if (
19740 (a = _PyPegen_expect_token(p, 511)) // token='try'
19741 &&
19742 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19743 &&
19744 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19745 &&
19746 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19747 )
19748 {
19749 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19750 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'try' statement on line %d" , a -> lineno );
19751 if (_res == NULL && PyErr_Occurred()) {
19752 p->error_indicator = 1;
19753 D(p->level--);
19754 return NULL;
19755 }
19756 goto done;
19757 }
19758 p->mark = _mark;
19759 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT"));
19761 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019762 { // 'try' ':' block !('except' | 'finally')
19763 if (p->error_indicator) {
19764 D(p->level--);
19765 return NULL;
19766 }
19767 D(fprintf(stderr, "%*c> invalid_try_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19768 Token * _keyword;
19769 Token * _literal;
19770 asdl_stmt_seq* block_var;
19771 if (
19772 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
19773 &&
19774 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19775 &&
19776 (block_var = block_rule(p)) // block
19777 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019778 _PyPegen_lookahead(0, _tmp_169_rule, p)
Pablo Galindoe53f72a2021-06-04 00:11:43 +010019779 )
19780 {
19781 D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19782 _res = RAISE_SYNTAX_ERROR ( "expected 'except' or 'finally' block" );
19783 if (_res == NULL && PyErr_Occurred()) {
19784 p->error_indicator = 1;
19785 D(p->level--);
19786 return NULL;
19787 }
19788 goto done;
19789 }
19790 p->mark = _mark;
19791 D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')"));
19793 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019794 _res = NULL;
19795 done:
19796 D(p->level--);
19797 return _res;
19798}
19799
19800// invalid_except_stmt:
19801// | 'except' expression ',' expressions ['as' NAME] ':'
19802// | 'except' expression ['as' NAME] NEWLINE
19803// | 'except' NEWLINE
19804static void *
19805invalid_except_stmt_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000019806{
19807 D(p->level++);
19808 if (p->error_indicator) {
19809 D(p->level--);
19810 return NULL;
19811 }
19812 void * _res = NULL;
19813 int _mark = p->mark;
19814 { // 'except' expression ',' expressions ['as' NAME] ':'
19815 if (p->error_indicator) {
19816 D(p->level--);
19817 return NULL;
19818 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019819 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 +000019820 Token * _keyword;
19821 Token * _literal;
19822 Token * _literal_1;
19823 void *_opt_var;
19824 UNUSED(_opt_var); // Silence compiler warnings
19825 expr_ty a;
19826 expr_ty expressions_var;
19827 if (
19828 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
19829 &&
19830 (a = expression_rule(p)) // expression
19831 &&
19832 (_literal = _PyPegen_expect_token(p, 12)) // token=','
19833 &&
19834 (expressions_var = expressions_rule(p)) // expressions
19835 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019836 (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019837 &&
19838 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
19839 )
19840 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019841 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 -070019842 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "multiple exception types must be parenthesized" );
Pablo Galindo206cbda2021-02-07 18:42:21 +000019843 if (_res == NULL && PyErr_Occurred()) {
19844 p->error_indicator = 1;
19845 D(p->level--);
19846 return NULL;
19847 }
19848 goto done;
19849 }
19850 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019851 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo206cbda2021-02-07 18:42:21 +000019852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions ['as' NAME] ':'"));
19853 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019854 { // 'except' expression ['as' NAME] NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019855 if (p->error_indicator) {
19856 D(p->level--);
19857 return NULL;
19858 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019859 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 +000019860 void *_opt_var;
19861 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindo56c95df2021-04-21 15:28:21 +010019862 Token * a;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019863 expr_ty expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019864 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019865 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019866 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019867 &&
19868 (expression_var = expression_rule(p)) // expression
19869 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070019870 (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME]
Pablo Galindo206cbda2021-02-07 18:42:21 +000019871 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019872 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019873 )
19874 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019875 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
19876 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19877 if (_res == NULL && PyErr_Occurred()) {
19878 p->error_indicator = 1;
19879 D(p->level--);
19880 return NULL;
19881 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019882 goto done;
19883 }
19884 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019885 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019887 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019888 { // 'except' NEWLINE
Pablo Galindo206cbda2021-02-07 18:42:21 +000019889 if (p->error_indicator) {
19890 D(p->level--);
19891 return NULL;
19892 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010019893 D(fprintf(stderr, "%*c> invalid_except_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19894 Token * a;
19895 Token * newline_var;
Pablo Galindo206cbda2021-02-07 18:42:21 +000019896 if (
Pablo Galindo56c95df2021-04-21 15:28:21 +010019897 (a = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019898 &&
Pablo Galindo56c95df2021-04-21 15:28:21 +010019899 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindo206cbda2021-02-07 18:42:21 +000019900 )
19901 {
Pablo Galindo56c95df2021-04-21 15:28:21 +010019902 D(fprintf(stderr, "%*c+ invalid_except_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' NEWLINE"));
19903 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
19904 if (_res == NULL && PyErr_Occurred()) {
19905 p->error_indicator = 1;
19906 D(p->level--);
19907 return NULL;
19908 }
Pablo Galindo206cbda2021-02-07 18:42:21 +000019909 goto done;
19910 }
19911 p->mark = _mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010019912 D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE"));
Pablo Galindo206cbda2021-02-07 18:42:21 +000019914 }
19915 _res = NULL;
19916 done:
19917 D(p->level--);
19918 return _res;
19919}
19920
Pablo Galindo56c95df2021-04-21 15:28:21 +010019921// invalid_finally_stmt: 'finally' ':' NEWLINE !INDENT
19922static void *
19923invalid_finally_stmt_rule(Parser *p)
19924{
19925 D(p->level++);
19926 if (p->error_indicator) {
19927 D(p->level--);
19928 return NULL;
19929 }
19930 void * _res = NULL;
19931 int _mark = p->mark;
19932 { // 'finally' ':' NEWLINE !INDENT
19933 if (p->error_indicator) {
19934 D(p->level--);
19935 return NULL;
19936 }
19937 D(fprintf(stderr, "%*c> invalid_finally_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19938 Token * _literal;
19939 Token * a;
19940 Token * newline_var;
19941 if (
19942 (a = _PyPegen_expect_token(p, 522)) // token='finally'
19943 &&
19944 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
19945 &&
19946 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
19947 &&
19948 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
19949 )
19950 {
19951 D(fprintf(stderr, "%*c+ invalid_finally_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19952 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'finally' statement on line %d" , a -> lineno );
19953 if (_res == NULL && PyErr_Occurred()) {
19954 p->error_indicator = 1;
19955 D(p->level--);
19956 return NULL;
19957 }
19958 goto done;
19959 }
19960 p->mark = _mark;
19961 D(fprintf(stderr, "%*c%s invalid_finally_stmt[%d-%d]: %s failed!\n", p->level, ' ',
19962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' NEWLINE !INDENT"));
19963 }
19964 _res = NULL;
19965 done:
19966 D(p->level--);
19967 return _res;
19968}
19969
19970// invalid_except_stmt_indent:
19971// | 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19972// | 'except' ':' NEWLINE !INDENT
19973static void *
19974invalid_except_stmt_indent_rule(Parser *p)
19975{
19976 D(p->level++);
19977 if (p->error_indicator) {
19978 D(p->level--);
19979 return NULL;
19980 }
19981 void * _res = NULL;
19982 int _mark = p->mark;
19983 { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT
19984 if (p->error_indicator) {
19985 D(p->level--);
19986 return NULL;
19987 }
19988 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
19989 Token * _literal;
19990 void *_opt_var;
19991 UNUSED(_opt_var); // Silence compiler warnings
19992 Token * a;
19993 expr_ty expression_var;
19994 Token * newline_var;
19995 if (
19996 (a = _PyPegen_expect_token(p, 521)) // token='except'
19997 &&
19998 (expression_var = expression_rule(p)) // expression
19999 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020000 (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020001 &&
20002 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20003 &&
20004 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20005 &&
20006 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20007 )
20008 {
20009 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20010 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'except' statement on line %d" , a -> lineno );
20011 if (_res == NULL && PyErr_Occurred()) {
20012 p->error_indicator = 1;
20013 D(p->level--);
20014 return NULL;
20015 }
20016 goto done;
20017 }
20018 p->mark = _mark;
20019 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT"));
20021 }
20022 { // 'except' ':' NEWLINE !INDENT
20023 if (p->error_indicator) {
20024 D(p->level--);
20025 return NULL;
20026 }
20027 D(fprintf(stderr, "%*c> invalid_except_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20028 Token * _literal;
20029 Token * a;
20030 Token * newline_var;
20031 if (
20032 (a = _PyPegen_expect_token(p, 521)) // token='except'
20033 &&
20034 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20035 &&
20036 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20037 &&
20038 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20039 )
20040 {
20041 D(fprintf(stderr, "%*c+ invalid_except_stmt_indent[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20042 _res = RAISE_SYNTAX_ERROR ( "expected an indented block after except statement on line %d" , a -> lineno );
20043 if (_res == NULL && PyErr_Occurred()) {
20044 p->error_indicator = 1;
20045 D(p->level--);
20046 return NULL;
20047 }
20048 goto done;
20049 }
20050 p->mark = _mark;
20051 D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ',
20052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' NEWLINE !INDENT"));
20053 }
20054 _res = NULL;
20055 done:
20056 D(p->level--);
20057 return _res;
20058}
20059
20060// invalid_match_stmt:
20061// | "match" subject_expr !':'
20062// | "match" subject_expr ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020063static void *
20064invalid_match_stmt_rule(Parser *p)
20065{
20066 D(p->level++);
20067 if (p->error_indicator) {
20068 D(p->level--);
20069 return NULL;
20070 }
20071 void * _res = NULL;
20072 int _mark = p->mark;
20073 { // "match" subject_expr !':'
20074 if (p->error_indicator) {
20075 D(p->level--);
20076 return NULL;
20077 }
20078 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20079 expr_ty _keyword;
20080 expr_ty subject_expr_var;
20081 if (
20082 (_keyword = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20083 &&
20084 (subject_expr_var = subject_expr_rule(p)) // subject_expr
20085 &&
20086 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20087 )
20088 {
20089 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr !':'"));
20090 _res = CHECK_VERSION ( void * , 10 , "Pattern matching is" , RAISE_SYNTAX_ERROR ( "expected ':'" ) );
20091 if (_res == NULL && PyErr_Occurred()) {
20092 p->error_indicator = 1;
20093 D(p->level--);
20094 return NULL;
20095 }
20096 goto done;
20097 }
20098 p->mark = _mark;
20099 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20100 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr !':'"));
20101 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020102 { // "match" subject_expr ':' NEWLINE !INDENT
20103 if (p->error_indicator) {
20104 D(p->level--);
20105 return NULL;
20106 }
20107 D(fprintf(stderr, "%*c> invalid_match_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20108 Token * _literal;
20109 expr_ty a;
20110 Token * newline_var;
20111 expr_ty subject;
20112 if (
20113 (a = _PyPegen_expect_soft_keyword(p, "match")) // soft_keyword='"match"'
20114 &&
20115 (subject = subject_expr_rule(p)) // subject_expr
20116 &&
20117 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20118 &&
20119 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20120 &&
20121 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20122 )
20123 {
20124 D(fprintf(stderr, "%*c+ invalid_match_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20125 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'match' statement on line %d" , a -> lineno );
20126 if (_res == NULL && PyErr_Occurred()) {
20127 p->error_indicator = 1;
20128 D(p->level--);
20129 return NULL;
20130 }
20131 goto done;
20132 }
20133 p->mark = _mark;
20134 D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT"));
20136 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020137 _res = NULL;
20138 done:
20139 D(p->level--);
20140 return _res;
20141}
20142
Pablo Galindo56c95df2021-04-21 15:28:21 +010020143// invalid_case_block:
20144// | "case" patterns guard? !':'
20145// | "case" patterns guard? ':' NEWLINE !INDENT
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020146static void *
20147invalid_case_block_rule(Parser *p)
20148{
20149 D(p->level++);
20150 if (p->error_indicator) {
20151 D(p->level--);
20152 return NULL;
20153 }
20154 void * _res = NULL;
20155 int _mark = p->mark;
20156 { // "case" patterns guard? !':'
20157 if (p->error_indicator) {
20158 D(p->level--);
20159 return NULL;
20160 }
20161 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20162 expr_ty _keyword;
20163 void *_opt_var;
20164 UNUSED(_opt_var); // Silence compiler warnings
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020165 pattern_ty patterns_var;
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020166 if (
20167 (_keyword = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20168 &&
20169 (patterns_var = patterns_rule(p)) // patterns
20170 &&
20171 (_opt_var = guard_rule(p), 1) // guard?
20172 &&
20173 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=':'
20174 )
20175 {
20176 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? !':'"));
20177 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20178 if (_res == NULL && PyErr_Occurred()) {
20179 p->error_indicator = 1;
20180 D(p->level--);
20181 return NULL;
20182 }
20183 goto done;
20184 }
20185 p->mark = _mark;
20186 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? !':'"));
20188 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020189 { // "case" patterns guard? ':' NEWLINE !INDENT
20190 if (p->error_indicator) {
20191 D(p->level--);
20192 return NULL;
20193 }
20194 D(fprintf(stderr, "%*c> invalid_case_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20195 Token * _literal;
20196 void *_opt_var;
20197 UNUSED(_opt_var); // Silence compiler warnings
20198 expr_ty a;
20199 Token * newline_var;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100020200 pattern_ty patterns_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010020201 if (
20202 (a = _PyPegen_expect_soft_keyword(p, "case")) // soft_keyword='"case"'
20203 &&
20204 (patterns_var = patterns_rule(p)) // patterns
20205 &&
20206 (_opt_var = guard_rule(p), 1) // guard?
20207 &&
20208 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20209 &&
20210 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20211 &&
20212 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20213 )
20214 {
20215 D(fprintf(stderr, "%*c+ invalid_case_block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20216 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'case' statement on line %d" , a -> lineno );
20217 if (_res == NULL && PyErr_Occurred()) {
20218 p->error_indicator = 1;
20219 D(p->level--);
20220 return NULL;
20221 }
20222 goto done;
20223 }
20224 p->mark = _mark;
20225 D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ',
20226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? ':' NEWLINE !INDENT"));
20227 }
Pablo Galindo08fb8ac2021-03-18 01:03:11 +000020228 _res = NULL;
20229 done:
20230 D(p->level--);
20231 return _res;
20232}
20233
Pablo Galindoa8c418d2021-06-18 22:15:57 +010020234// invalid_as_pattern: or_pattern 'as' "_" | or_pattern 'as' !NAME expression
20235static void *
20236invalid_as_pattern_rule(Parser *p)
20237{
20238 D(p->level++);
20239 if (p->error_indicator) {
20240 D(p->level--);
20241 return NULL;
20242 }
20243 void * _res = NULL;
20244 int _mark = p->mark;
20245 { // or_pattern 'as' "_"
20246 if (p->error_indicator) {
20247 D(p->level--);
20248 return NULL;
20249 }
20250 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20251 Token * _keyword;
20252 expr_ty a;
20253 pattern_ty or_pattern_var;
20254 if (
20255 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20256 &&
20257 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20258 &&
20259 (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"'
20260 )
20261 {
20262 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' \"_\""));
20263 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot use '_' as a target" );
20264 if (_res == NULL && PyErr_Occurred()) {
20265 p->error_indicator = 1;
20266 D(p->level--);
20267 return NULL;
20268 }
20269 goto done;
20270 }
20271 p->mark = _mark;
20272 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\""));
20274 }
20275 { // or_pattern 'as' !NAME expression
20276 if (p->error_indicator) {
20277 D(p->level--);
20278 return NULL;
20279 }
20280 D(fprintf(stderr, "%*c> invalid_as_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20281 Token * _keyword;
20282 expr_ty a;
20283 pattern_ty or_pattern_var;
20284 if (
20285 (or_pattern_var = or_pattern_rule(p)) // or_pattern
20286 &&
20287 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
20288 &&
20289 _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p)
20290 &&
20291 (a = expression_rule(p)) // expression
20292 )
20293 {
20294 D(fprintf(stderr, "%*c+ invalid_as_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "or_pattern 'as' !NAME expression"));
20295 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "invalid pattern target" );
20296 if (_res == NULL && PyErr_Occurred()) {
20297 p->error_indicator = 1;
20298 D(p->level--);
20299 return NULL;
20300 }
20301 goto done;
20302 }
20303 p->mark = _mark;
20304 D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ',
20305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' !NAME expression"));
20306 }
20307 _res = NULL;
20308 done:
20309 D(p->level--);
20310 return _res;
20311}
20312
Pablo Galindo56c95df2021-04-21 15:28:21 +010020313// invalid_if_stmt:
20314// | 'if' named_expression NEWLINE
20315// | 'if' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020316static void *
20317invalid_if_stmt_rule(Parser *p)
20318{
20319 D(p->level++);
20320 if (p->error_indicator) {
20321 D(p->level--);
20322 return NULL;
20323 }
20324 void * _res = NULL;
20325 int _mark = p->mark;
20326 { // 'if' named_expression NEWLINE
20327 if (p->error_indicator) {
20328 D(p->level--);
20329 return NULL;
20330 }
20331 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20332 Token * _keyword;
20333 expr_ty named_expression_var;
20334 Token * newline_var;
20335 if (
20336 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
20337 &&
20338 (named_expression_var = named_expression_rule(p)) // named_expression
20339 &&
20340 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20341 )
20342 {
20343 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression NEWLINE"));
20344 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20345 if (_res == NULL && PyErr_Occurred()) {
20346 p->error_indicator = 1;
20347 D(p->level--);
20348 return NULL;
20349 }
20350 goto done;
20351 }
20352 p->mark = _mark;
20353 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE"));
20355 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020356 { // 'if' named_expression ':' NEWLINE !INDENT
20357 if (p->error_indicator) {
20358 D(p->level--);
20359 return NULL;
20360 }
20361 D(fprintf(stderr, "%*c> invalid_if_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20362 Token * _literal;
20363 Token * a;
20364 expr_ty a_1;
20365 Token * newline_var;
20366 if (
20367 (a = _PyPegen_expect_token(p, 510)) // token='if'
20368 &&
20369 (a_1 = named_expression_rule(p)) // named_expression
20370 &&
20371 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20372 &&
20373 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20374 &&
20375 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20376 )
20377 {
20378 D(fprintf(stderr, "%*c+ invalid_if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20379 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'if' statement on line %d" , a -> lineno );
20380 if (_res == NULL && PyErr_Occurred()) {
20381 p->error_indicator = 1;
20382 D(p->level--);
20383 return NULL;
20384 }
20385 goto done;
20386 }
20387 p->mark = _mark;
20388 D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' NEWLINE !INDENT"));
20390 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020391 _res = NULL;
20392 done:
20393 D(p->level--);
20394 return _res;
20395}
20396
Pablo Galindo56c95df2021-04-21 15:28:21 +010020397// invalid_elif_stmt:
20398// | 'elif' named_expression NEWLINE
20399// | 'elif' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020400static void *
20401invalid_elif_stmt_rule(Parser *p)
20402{
20403 D(p->level++);
20404 if (p->error_indicator) {
20405 D(p->level--);
20406 return NULL;
20407 }
20408 void * _res = NULL;
20409 int _mark = p->mark;
20410 { // 'elif' named_expression NEWLINE
20411 if (p->error_indicator) {
20412 D(p->level--);
20413 return NULL;
20414 }
20415 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20416 Token * _keyword;
20417 expr_ty named_expression_var;
20418 Token * newline_var;
20419 if (
20420 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
20421 &&
20422 (named_expression_var = named_expression_rule(p)) // named_expression
20423 &&
20424 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20425 )
20426 {
20427 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression NEWLINE"));
20428 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20429 if (_res == NULL && PyErr_Occurred()) {
20430 p->error_indicator = 1;
20431 D(p->level--);
20432 return NULL;
20433 }
20434 goto done;
20435 }
20436 p->mark = _mark;
20437 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20438 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE"));
20439 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020440 { // 'elif' named_expression ':' NEWLINE !INDENT
20441 if (p->error_indicator) {
20442 D(p->level--);
20443 return NULL;
20444 }
20445 D(fprintf(stderr, "%*c> invalid_elif_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20446 Token * _literal;
20447 Token * a;
20448 expr_ty named_expression_var;
20449 Token * newline_var;
20450 if (
20451 (a = _PyPegen_expect_token(p, 515)) // token='elif'
20452 &&
20453 (named_expression_var = named_expression_rule(p)) // named_expression
20454 &&
20455 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20456 &&
20457 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20458 &&
20459 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20460 )
20461 {
20462 D(fprintf(stderr, "%*c+ invalid_elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20463 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'elif' statement on line %d" , a -> lineno );
20464 if (_res == NULL && PyErr_Occurred()) {
20465 p->error_indicator = 1;
20466 D(p->level--);
20467 return NULL;
20468 }
20469 goto done;
20470 }
20471 p->mark = _mark;
20472 D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' NEWLINE !INDENT"));
20474 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020475 _res = NULL;
20476 done:
20477 D(p->level--);
20478 return _res;
20479}
20480
Pablo Galindo56c95df2021-04-21 15:28:21 +010020481// invalid_else_stmt: 'else' ':' NEWLINE !INDENT
20482static void *
20483invalid_else_stmt_rule(Parser *p)
20484{
20485 D(p->level++);
20486 if (p->error_indicator) {
20487 D(p->level--);
20488 return NULL;
20489 }
20490 void * _res = NULL;
20491 int _mark = p->mark;
20492 { // 'else' ':' NEWLINE !INDENT
20493 if (p->error_indicator) {
20494 D(p->level--);
20495 return NULL;
20496 }
20497 D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20498 Token * _literal;
20499 Token * a;
20500 Token * newline_var;
20501 if (
20502 (a = _PyPegen_expect_token(p, 516)) // token='else'
20503 &&
20504 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20505 &&
20506 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20507 &&
20508 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20509 )
20510 {
20511 D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20512 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'else' statement on line %d" , a -> lineno );
20513 if (_res == NULL && PyErr_Occurred()) {
20514 p->error_indicator = 1;
20515 D(p->level--);
20516 return NULL;
20517 }
20518 goto done;
20519 }
20520 p->mark = _mark;
20521 D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20522 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT"));
20523 }
20524 _res = NULL;
20525 done:
20526 D(p->level--);
20527 return _res;
20528}
20529
20530// invalid_while_stmt:
20531// | 'while' named_expression NEWLINE
20532// | 'while' named_expression ':' NEWLINE !INDENT
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020533static void *
20534invalid_while_stmt_rule(Parser *p)
20535{
20536 D(p->level++);
20537 if (p->error_indicator) {
20538 D(p->level--);
20539 return NULL;
20540 }
20541 void * _res = NULL;
20542 int _mark = p->mark;
20543 { // 'while' named_expression NEWLINE
20544 if (p->error_indicator) {
20545 D(p->level--);
20546 return NULL;
20547 }
20548 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20549 Token * _keyword;
20550 expr_ty named_expression_var;
20551 Token * newline_var;
20552 if (
20553 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
20554 &&
20555 (named_expression_var = named_expression_rule(p)) // named_expression
20556 &&
20557 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20558 )
20559 {
20560 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression NEWLINE"));
20561 _res = RAISE_SYNTAX_ERROR ( "expected ':'" );
20562 if (_res == NULL && PyErr_Occurred()) {
20563 p->error_indicator = 1;
20564 D(p->level--);
20565 return NULL;
20566 }
20567 goto done;
20568 }
20569 p->mark = _mark;
20570 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE"));
20572 }
Pablo Galindo56c95df2021-04-21 15:28:21 +010020573 { // 'while' named_expression ':' NEWLINE !INDENT
20574 if (p->error_indicator) {
20575 D(p->level--);
20576 return NULL;
20577 }
20578 D(fprintf(stderr, "%*c> invalid_while_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20579 Token * _literal;
20580 Token * a;
20581 expr_ty named_expression_var;
20582 Token * newline_var;
20583 if (
20584 (a = _PyPegen_expect_token(p, 512)) // token='while'
20585 &&
20586 (named_expression_var = named_expression_rule(p)) // named_expression
20587 &&
20588 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20589 &&
20590 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20591 &&
20592 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20593 )
20594 {
20595 D(fprintf(stderr, "%*c+ invalid_while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20596 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'while' statement on line %d" , a -> lineno );
20597 if (_res == NULL && PyErr_Occurred()) {
20598 p->error_indicator = 1;
20599 D(p->level--);
20600 return NULL;
20601 }
20602 goto done;
20603 }
20604 p->mark = _mark;
20605 D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' NEWLINE !INDENT"));
20607 }
20608 _res = NULL;
20609 done:
20610 D(p->level--);
20611 return _res;
20612}
20613
20614// invalid_for_stmt: ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20615static void *
20616invalid_for_stmt_rule(Parser *p)
20617{
20618 D(p->level++);
20619 if (p->error_indicator) {
20620 D(p->level--);
20621 return NULL;
20622 }
20623 void * _res = NULL;
20624 int _mark = p->mark;
20625 { // ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT
20626 if (p->error_indicator) {
20627 D(p->level--);
20628 return NULL;
20629 }
20630 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"));
20631 Token * _keyword;
20632 Token * _literal;
20633 void *_opt_var;
20634 UNUSED(_opt_var); // Silence compiler warnings
20635 Token * a;
20636 Token * newline_var;
20637 expr_ty star_expressions_var;
20638 expr_ty star_targets_var;
20639 if (
20640 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20641 &&
20642 (a = _PyPegen_expect_token(p, 517)) // token='for'
20643 &&
20644 (star_targets_var = star_targets_rule(p)) // star_targets
20645 &&
20646 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
20647 &&
20648 (star_expressions_var = star_expressions_rule(p)) // star_expressions
20649 &&
20650 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20651 &&
20652 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20653 &&
20654 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20655 )
20656 {
20657 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"));
20658 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after 'for' statement on line %d" , a -> lineno );
20659 if (_res == NULL && PyErr_Occurred()) {
20660 p->error_indicator = 1;
20661 D(p->level--);
20662 return NULL;
20663 }
20664 goto done;
20665 }
20666 p->mark = _mark;
20667 D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
20668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT"));
20669 }
20670 _res = NULL;
20671 done:
20672 D(p->level--);
20673 return _res;
20674}
20675
20676// invalid_def_raw:
20677// | ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20678static void *
20679invalid_def_raw_rule(Parser *p)
20680{
20681 D(p->level++);
20682 if (p->error_indicator) {
20683 D(p->level--);
20684 return NULL;
20685 }
20686 void * _res = NULL;
20687 int _mark = p->mark;
20688 { // ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT
20689 if (p->error_indicator) {
20690 D(p->level--);
20691 return NULL;
20692 }
20693 D(fprintf(stderr, "%*c> invalid_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20694 Token * _literal;
20695 Token * _literal_1;
20696 Token * _literal_2;
20697 void *_opt_var;
20698 UNUSED(_opt_var); // Silence compiler warnings
20699 void *_opt_var_1;
20700 UNUSED(_opt_var_1); // Silence compiler warnings
20701 void *_opt_var_2;
20702 UNUSED(_opt_var_2); // Silence compiler warnings
20703 Token * a;
20704 expr_ty name_var;
20705 Token * newline_var;
20706 if (
20707 (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC?
20708 &&
20709 (a = _PyPegen_expect_token(p, 526)) // token='def'
20710 &&
20711 (name_var = _PyPegen_name_token(p)) // NAME
20712 &&
20713 (_literal = _PyPegen_expect_token(p, 7)) // token='('
20714 &&
20715 (_opt_var_1 = params_rule(p), 1) // params?
20716 &&
20717 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
20718 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020719 (_opt_var_2 = _tmp_173_rule(p), 1) // ['->' expression]
Pablo Galindo56c95df2021-04-21 15:28:21 +010020720 &&
20721 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
20722 &&
20723 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20724 &&
20725 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20726 )
20727 {
20728 D(fprintf(stderr, "%*c+ invalid_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20729 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after function definition on line %d" , a -> lineno );
20730 if (_res == NULL && PyErr_Occurred()) {
20731 p->error_indicator = 1;
20732 D(p->level--);
20733 return NULL;
20734 }
20735 goto done;
20736 }
20737 p->mark = _mark;
20738 D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20739 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC? 'def' NAME '(' params? ')' ['->' expression] ':' NEWLINE !INDENT"));
20740 }
20741 _res = NULL;
20742 done:
20743 D(p->level--);
20744 return _res;
20745}
20746
20747// invalid_class_def_raw: 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20748static void *
20749invalid_class_def_raw_rule(Parser *p)
20750{
20751 D(p->level++);
20752 if (p->error_indicator) {
20753 D(p->level--);
20754 return NULL;
20755 }
20756 void * _res = NULL;
20757 int _mark = p->mark;
20758 { // 'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT
20759 if (p->error_indicator) {
20760 D(p->level--);
20761 return NULL;
20762 }
20763 D(fprintf(stderr, "%*c> invalid_class_def_raw[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20764 Token * _literal;
20765 void *_opt_var;
20766 UNUSED(_opt_var); // Silence compiler warnings
20767 Token * a;
20768 expr_ty name_var;
20769 Token * newline_var;
20770 if (
20771 (a = _PyPegen_expect_token(p, 527)) // token='class'
20772 &&
20773 (name_var = _PyPegen_name_token(p)) // NAME
20774 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020775 (_opt_var = _tmp_174_rule(p), 1) // ['(' arguments? ')']
Pablo Galindo56c95df2021-04-21 15:28:21 +010020776 &&
20777 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20778 &&
20779 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
20780 &&
20781 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
20782 )
20783 {
20784 D(fprintf(stderr, "%*c+ invalid_class_def_raw[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20785 _res = RAISE_INDENTATION_ERROR ( "expected an indented block after class definition on line %d" , a -> lineno );
20786 if (_res == NULL && PyErr_Occurred()) {
20787 p->error_indicator = 1;
20788 D(p->level--);
20789 return NULL;
20790 }
20791 goto done;
20792 }
20793 p->mark = _mark;
20794 D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
20795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' NEWLINE !INDENT"));
20796 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010020797 _res = NULL;
20798 done:
20799 D(p->level--);
20800 return _res;
20801}
20802
Pablo Galindoda743502021-04-15 14:06:39 +010020803// invalid_double_starred_kvpairs:
20804// | ','.double_starred_kvpair+ ',' invalid_kvpair
20805// | expression ':' '*' bitwise_or
20806// | expression ':' &('}' | ',')
20807static void *
20808invalid_double_starred_kvpairs_rule(Parser *p)
20809{
20810 D(p->level++);
20811 if (p->error_indicator) {
20812 D(p->level--);
20813 return NULL;
20814 }
20815 void * _res = NULL;
20816 int _mark = p->mark;
20817 { // ','.double_starred_kvpair+ ',' invalid_kvpair
20818 if (p->error_indicator) {
20819 D(p->level--);
20820 return NULL;
20821 }
20822 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 -070020823 asdl_seq * _gather_175_var;
Pablo Galindoda743502021-04-15 14:06:39 +010020824 Token * _literal;
20825 void *invalid_kvpair_var;
20826 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020827 (_gather_175_var = _gather_175_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoda743502021-04-15 14:06:39 +010020828 &&
20829 (_literal = _PyPegen_expect_token(p, 12)) // token=','
20830 &&
20831 (invalid_kvpair_var = invalid_kvpair_rule(p)) // invalid_kvpair
20832 )
20833 {
20834 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 -070020835 _res = _PyPegen_dummy_name(p, _gather_175_var, _literal, invalid_kvpair_var);
Pablo Galindoda743502021-04-15 14:06:39 +010020836 goto done;
20837 }
20838 p->mark = _mark;
20839 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair"));
20841 }
20842 { // expression ':' '*' bitwise_or
20843 if (p->error_indicator) {
20844 D(p->level--);
20845 return NULL;
20846 }
20847 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20848 Token * _literal;
20849 Token * a;
20850 expr_ty bitwise_or_var;
20851 expr_ty expression_var;
20852 if (
20853 (expression_var = expression_rule(p)) // expression
20854 &&
20855 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20856 &&
20857 (a = _PyPegen_expect_token(p, 16)) // token='*'
20858 &&
20859 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20860 )
20861 {
20862 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 +010020863 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020864 if (_res == NULL && PyErr_Occurred()) {
20865 p->error_indicator = 1;
20866 D(p->level--);
20867 return NULL;
20868 }
20869 goto done;
20870 }
20871 p->mark = _mark;
20872 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20873 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20874 }
20875 { // expression ':' &('}' | ',')
20876 if (p->error_indicator) {
20877 D(p->level--);
20878 return NULL;
20879 }
20880 D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20881 Token * a;
20882 expr_ty expression_var;
20883 if (
20884 (expression_var = expression_rule(p)) // expression
20885 &&
20886 (a = _PyPegen_expect_token(p, 11)) // token=':'
20887 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070020888 _PyPegen_lookahead(1, _tmp_177_rule, p)
Pablo Galindoda743502021-04-15 14:06:39 +010020889 )
20890 {
20891 D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')"));
20892 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20893 if (_res == NULL && PyErr_Occurred()) {
20894 p->error_indicator = 1;
20895 D(p->level--);
20896 return NULL;
20897 }
20898 goto done;
20899 }
20900 p->mark = _mark;
20901 D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
20902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' &('}' | ',')"));
20903 }
20904 _res = NULL;
20905 done:
20906 D(p->level--);
20907 return _res;
20908}
20909
20910// invalid_kvpair: expression !(':') | expression ':' '*' bitwise_or | expression ':'
20911static void *
20912invalid_kvpair_rule(Parser *p)
20913{
20914 D(p->level++);
20915 if (p->error_indicator) {
20916 D(p->level--);
20917 return NULL;
20918 }
20919 void * _res = NULL;
20920 int _mark = p->mark;
20921 { // expression !(':')
20922 if (p->error_indicator) {
20923 D(p->level--);
20924 return NULL;
20925 }
20926 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
20927 expr_ty a;
20928 if (
20929 (a = expression_rule(p)) // expression
20930 &&
20931 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':')
20932 )
20933 {
20934 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !(':')"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010020935 _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 +010020936 if (_res == NULL && PyErr_Occurred()) {
20937 p->error_indicator = 1;
20938 D(p->level--);
20939 return NULL;
20940 }
20941 goto done;
20942 }
20943 p->mark = _mark;
20944 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')"));
20946 }
20947 { // expression ':' '*' bitwise_or
20948 if (p->error_indicator) {
20949 D(p->level--);
20950 return NULL;
20951 }
20952 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' '*' bitwise_or"));
20953 Token * _literal;
20954 Token * a;
20955 expr_ty bitwise_or_var;
20956 expr_ty expression_var;
20957 if (
20958 (expression_var = expression_rule(p)) // expression
20959 &&
20960 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
20961 &&
20962 (a = _PyPegen_expect_token(p, 16)) // token='*'
20963 &&
20964 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
20965 )
20966 {
20967 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 +010020968 _res = RAISE_SYNTAX_ERROR_STARTING_FROM ( a , "cannot use a starred expression in a dictionary value" );
Pablo Galindoda743502021-04-15 14:06:39 +010020969 if (_res == NULL && PyErr_Occurred()) {
20970 p->error_indicator = 1;
20971 D(p->level--);
20972 return NULL;
20973 }
20974 goto done;
20975 }
20976 p->mark = _mark;
20977 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
20978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or"));
20979 }
20980 { // expression ':'
20981 if (p->error_indicator) {
20982 D(p->level--);
20983 return NULL;
20984 }
20985 D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20986 Token * a;
20987 expr_ty expression_var;
20988 if (
20989 (expression_var = expression_rule(p)) // expression
20990 &&
20991 (a = _PyPegen_expect_token(p, 11)) // token=':'
20992 )
20993 {
20994 D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':'"));
20995 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression expected after dictionary key and ':'" );
20996 if (_res == NULL && PyErr_Occurred()) {
20997 p->error_indicator = 1;
20998 D(p->level--);
20999 return NULL;
21000 }
21001 goto done;
21002 }
21003 p->mark = _mark;
21004 D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
21005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':'"));
21006 }
21007 _res = NULL;
21008 done:
21009 D(p->level--);
21010 return _res;
21011}
21012
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021013// _loop0_1: NEWLINE
21014static asdl_seq *
21015_loop0_1_rule(Parser *p)
21016{
21017 D(p->level++);
21018 if (p->error_indicator) {
21019 D(p->level--);
21020 return NULL;
21021 }
21022 void *_res = NULL;
21023 int _mark = p->mark;
21024 int _start_mark = p->mark;
21025 void **_children = PyMem_Malloc(sizeof(void *));
21026 if (!_children) {
21027 p->error_indicator = 1;
21028 PyErr_NoMemory();
21029 D(p->level--);
21030 return NULL;
21031 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021032 Py_ssize_t _children_capacity = 1;
21033 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021034 { // NEWLINE
21035 if (p->error_indicator) {
21036 D(p->level--);
21037 return NULL;
21038 }
21039 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21040 Token * newline_var;
21041 while (
21042 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21043 )
21044 {
21045 _res = newline_var;
21046 if (_n == _children_capacity) {
21047 _children_capacity *= 2;
21048 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21049 if (!_new_children) {
21050 p->error_indicator = 1;
21051 PyErr_NoMemory();
21052 D(p->level--);
21053 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021054 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021055 _children = _new_children;
21056 }
21057 _children[_n++] = _res;
21058 _mark = p->mark;
21059 }
21060 p->mark = _mark;
21061 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
21062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21063 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021064 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021065 if (!_seq) {
21066 PyMem_Free(_children);
21067 p->error_indicator = 1;
21068 PyErr_NoMemory();
21069 D(p->level--);
21070 return NULL;
21071 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021072 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021073 PyMem_Free(_children);
21074 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
21075 D(p->level--);
21076 return _seq;
21077}
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021078
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021079// _loop0_2: NEWLINE
21080static asdl_seq *
21081_loop0_2_rule(Parser *p)
21082{
21083 D(p->level++);
21084 if (p->error_indicator) {
21085 D(p->level--);
21086 return NULL;
21087 }
21088 void *_res = NULL;
21089 int _mark = p->mark;
21090 int _start_mark = p->mark;
21091 void **_children = PyMem_Malloc(sizeof(void *));
21092 if (!_children) {
21093 p->error_indicator = 1;
21094 PyErr_NoMemory();
21095 D(p->level--);
21096 return NULL;
21097 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021098 Py_ssize_t _children_capacity = 1;
21099 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021100 { // NEWLINE
21101 if (p->error_indicator) {
21102 D(p->level--);
21103 return NULL;
21104 }
21105 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
21106 Token * newline_var;
21107 while (
21108 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
21109 )
21110 {
21111 _res = newline_var;
21112 if (_n == _children_capacity) {
21113 _children_capacity *= 2;
21114 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21115 if (!_new_children) {
21116 p->error_indicator = 1;
21117 PyErr_NoMemory();
21118 D(p->level--);
21119 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021120 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021121 _children = _new_children;
21122 }
21123 _children[_n++] = _res;
21124 _mark = p->mark;
21125 }
21126 p->mark = _mark;
21127 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
21128 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
21129 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021130 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021131 if (!_seq) {
21132 PyMem_Free(_children);
21133 p->error_indicator = 1;
21134 PyErr_NoMemory();
21135 D(p->level--);
21136 return NULL;
21137 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021138 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021139 PyMem_Free(_children);
21140 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
21141 D(p->level--);
21142 return _seq;
21143}
21144
21145// _loop0_4: ',' expression
21146static asdl_seq *
21147_loop0_4_rule(Parser *p)
21148{
21149 D(p->level++);
21150 if (p->error_indicator) {
21151 D(p->level--);
21152 return NULL;
21153 }
21154 void *_res = NULL;
21155 int _mark = p->mark;
21156 int _start_mark = p->mark;
21157 void **_children = PyMem_Malloc(sizeof(void *));
21158 if (!_children) {
21159 p->error_indicator = 1;
21160 PyErr_NoMemory();
21161 D(p->level--);
21162 return NULL;
21163 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021164 Py_ssize_t _children_capacity = 1;
21165 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021166 { // ',' expression
21167 if (p->error_indicator) {
21168 D(p->level--);
21169 return NULL;
21170 }
21171 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21172 Token * _literal;
21173 expr_ty elem;
21174 while (
21175 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21176 &&
21177 (elem = expression_rule(p)) // expression
21178 )
21179 {
21180 _res = elem;
21181 if (_res == NULL && PyErr_Occurred()) {
21182 p->error_indicator = 1;
21183 PyMem_Free(_children);
21184 D(p->level--);
21185 return NULL;
21186 }
21187 if (_n == _children_capacity) {
21188 _children_capacity *= 2;
21189 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21190 if (!_new_children) {
21191 p->error_indicator = 1;
21192 PyErr_NoMemory();
21193 D(p->level--);
21194 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021195 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021196 _children = _new_children;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021197 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021198 _children[_n++] = _res;
21199 _mark = p->mark;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021200 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021201 p->mark = _mark;
21202 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
21203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021204 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021205 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021206 if (!_seq) {
21207 PyMem_Free(_children);
21208 p->error_indicator = 1;
21209 PyErr_NoMemory();
21210 D(p->level--);
21211 return NULL;
21212 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021213 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021214 PyMem_Free(_children);
21215 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
21216 D(p->level--);
21217 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021218}
21219
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021220// _gather_3: expression _loop0_4
21221static asdl_seq *
21222_gather_3_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021223{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021224 D(p->level++);
21225 if (p->error_indicator) {
21226 D(p->level--);
21227 return NULL;
21228 }
21229 asdl_seq * _res = NULL;
21230 int _mark = p->mark;
21231 { // expression _loop0_4
21232 if (p->error_indicator) {
21233 D(p->level--);
21234 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021235 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021236 D(fprintf(stderr, "%*c> _gather_3[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21237 expr_ty elem;
21238 asdl_seq * seq;
21239 if (
21240 (elem = expression_rule(p)) // expression
21241 &&
21242 (seq = _loop0_4_rule(p)) // _loop0_4
21243 )
21244 {
21245 D(fprintf(stderr, "%*c+ _gather_3[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_4"));
21246 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21247 goto done;
21248 }
21249 p->mark = _mark;
21250 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
21251 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021252 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021253 _res = NULL;
21254 done:
21255 D(p->level--);
21256 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021257}
21258
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021259// _loop0_6: ',' expression
21260static asdl_seq *
21261_loop0_6_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021262{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021263 D(p->level++);
21264 if (p->error_indicator) {
21265 D(p->level--);
21266 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021267 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021268 void *_res = NULL;
21269 int _mark = p->mark;
21270 int _start_mark = p->mark;
21271 void **_children = PyMem_Malloc(sizeof(void *));
21272 if (!_children) {
21273 p->error_indicator = 1;
21274 PyErr_NoMemory();
21275 D(p->level--);
21276 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021277 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021278 Py_ssize_t _children_capacity = 1;
21279 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021280 { // ',' expression
21281 if (p->error_indicator) {
21282 D(p->level--);
21283 return NULL;
21284 }
21285 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21286 Token * _literal;
21287 expr_ty elem;
21288 while (
21289 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21290 &&
21291 (elem = expression_rule(p)) // expression
21292 )
21293 {
21294 _res = elem;
21295 if (_res == NULL && PyErr_Occurred()) {
21296 p->error_indicator = 1;
21297 PyMem_Free(_children);
21298 D(p->level--);
21299 return NULL;
21300 }
21301 if (_n == _children_capacity) {
21302 _children_capacity *= 2;
21303 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21304 if (!_new_children) {
21305 p->error_indicator = 1;
21306 PyErr_NoMemory();
21307 D(p->level--);
21308 return NULL;
21309 }
21310 _children = _new_children;
21311 }
21312 _children[_n++] = _res;
21313 _mark = p->mark;
21314 }
21315 p->mark = _mark;
21316 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
21317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21318 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021319 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021320 if (!_seq) {
21321 PyMem_Free(_children);
21322 p->error_indicator = 1;
21323 PyErr_NoMemory();
21324 D(p->level--);
21325 return NULL;
21326 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021327 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021328 PyMem_Free(_children);
21329 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
21330 D(p->level--);
21331 return _seq;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021332}
21333
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021334// _gather_5: expression _loop0_6
21335static asdl_seq *
21336_gather_5_rule(Parser *p)
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021337{
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021338 D(p->level++);
21339 if (p->error_indicator) {
21340 D(p->level--);
21341 return NULL;
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000021342 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021343 asdl_seq * _res = NULL;
21344 int _mark = p->mark;
21345 { // expression _loop0_6
21346 if (p->error_indicator) {
21347 D(p->level--);
21348 return NULL;
21349 }
21350 D(fprintf(stderr, "%*c> _gather_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21351 expr_ty elem;
21352 asdl_seq * seq;
21353 if (
21354 (elem = expression_rule(p)) // expression
21355 &&
21356 (seq = _loop0_6_rule(p)) // _loop0_6
21357 )
21358 {
21359 D(fprintf(stderr, "%*c+ _gather_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_6"));
21360 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21361 goto done;
21362 }
21363 p->mark = _mark;
21364 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
21365 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
21366 }
21367 _res = NULL;
21368 done:
21369 D(p->level--);
21370 return _res;
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021371}
21372
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021373// _loop0_8: ',' expression
21374static asdl_seq *
21375_loop0_8_rule(Parser *p)
21376{
21377 D(p->level++);
21378 if (p->error_indicator) {
21379 D(p->level--);
21380 return NULL;
21381 }
21382 void *_res = NULL;
21383 int _mark = p->mark;
21384 int _start_mark = p->mark;
21385 void **_children = PyMem_Malloc(sizeof(void *));
21386 if (!_children) {
21387 p->error_indicator = 1;
21388 PyErr_NoMemory();
21389 D(p->level--);
21390 return NULL;
21391 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021392 Py_ssize_t _children_capacity = 1;
21393 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021394 { // ',' expression
21395 if (p->error_indicator) {
21396 D(p->level--);
21397 return NULL;
21398 }
21399 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21400 Token * _literal;
21401 expr_ty elem;
21402 while (
21403 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21404 &&
21405 (elem = expression_rule(p)) // expression
21406 )
21407 {
21408 _res = elem;
21409 if (_res == NULL && PyErr_Occurred()) {
21410 p->error_indicator = 1;
21411 PyMem_Free(_children);
21412 D(p->level--);
21413 return NULL;
21414 }
21415 if (_n == _children_capacity) {
21416 _children_capacity *= 2;
21417 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21418 if (!_new_children) {
21419 p->error_indicator = 1;
21420 PyErr_NoMemory();
21421 D(p->level--);
21422 return NULL;
21423 }
21424 _children = _new_children;
21425 }
21426 _children[_n++] = _res;
21427 _mark = p->mark;
21428 }
21429 p->mark = _mark;
21430 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
21431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21432 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021433 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021434 if (!_seq) {
21435 PyMem_Free(_children);
21436 p->error_indicator = 1;
21437 PyErr_NoMemory();
21438 D(p->level--);
21439 return NULL;
21440 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021441 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021442 PyMem_Free(_children);
21443 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
21444 D(p->level--);
21445 return _seq;
21446}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021447
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021448// _gather_7: expression _loop0_8
21449static asdl_seq *
21450_gather_7_rule(Parser *p)
21451{
21452 D(p->level++);
21453 if (p->error_indicator) {
21454 D(p->level--);
21455 return NULL;
21456 }
21457 asdl_seq * _res = NULL;
21458 int _mark = p->mark;
21459 { // expression _loop0_8
21460 if (p->error_indicator) {
21461 D(p->level--);
21462 return NULL;
21463 }
21464 D(fprintf(stderr, "%*c> _gather_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21465 expr_ty elem;
21466 asdl_seq * seq;
21467 if (
21468 (elem = expression_rule(p)) // expression
21469 &&
21470 (seq = _loop0_8_rule(p)) // _loop0_8
21471 )
21472 {
21473 D(fprintf(stderr, "%*c+ _gather_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_8"));
21474 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21475 goto done;
21476 }
21477 p->mark = _mark;
21478 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
21479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
21480 }
21481 _res = NULL;
21482 done:
21483 D(p->level--);
21484 return _res;
21485}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021486
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021487// _loop0_10: ',' expression
21488static asdl_seq *
21489_loop0_10_rule(Parser *p)
21490{
21491 D(p->level++);
21492 if (p->error_indicator) {
21493 D(p->level--);
21494 return NULL;
21495 }
21496 void *_res = NULL;
21497 int _mark = p->mark;
21498 int _start_mark = p->mark;
21499 void **_children = PyMem_Malloc(sizeof(void *));
21500 if (!_children) {
21501 p->error_indicator = 1;
21502 PyErr_NoMemory();
21503 D(p->level--);
21504 return NULL;
21505 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021506 Py_ssize_t _children_capacity = 1;
21507 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021508 { // ',' expression
21509 if (p->error_indicator) {
21510 D(p->level--);
21511 return NULL;
21512 }
21513 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
21514 Token * _literal;
21515 expr_ty elem;
21516 while (
21517 (_literal = _PyPegen_expect_token(p, 12)) // token=','
21518 &&
21519 (elem = expression_rule(p)) // expression
21520 )
21521 {
21522 _res = elem;
21523 if (_res == NULL && PyErr_Occurred()) {
21524 p->error_indicator = 1;
21525 PyMem_Free(_children);
21526 D(p->level--);
21527 return NULL;
21528 }
21529 if (_n == _children_capacity) {
21530 _children_capacity *= 2;
21531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21532 if (!_new_children) {
21533 p->error_indicator = 1;
21534 PyErr_NoMemory();
21535 D(p->level--);
21536 return NULL;
21537 }
21538 _children = _new_children;
21539 }
21540 _children[_n++] = _res;
21541 _mark = p->mark;
21542 }
21543 p->mark = _mark;
21544 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
21545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
21546 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021547 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021548 if (!_seq) {
21549 PyMem_Free(_children);
21550 p->error_indicator = 1;
21551 PyErr_NoMemory();
21552 D(p->level--);
21553 return NULL;
21554 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021555 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021556 PyMem_Free(_children);
21557 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
21558 D(p->level--);
21559 return _seq;
21560}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021561
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021562// _gather_9: expression _loop0_10
21563static asdl_seq *
21564_gather_9_rule(Parser *p)
21565{
21566 D(p->level++);
21567 if (p->error_indicator) {
21568 D(p->level--);
21569 return NULL;
21570 }
21571 asdl_seq * _res = NULL;
21572 int _mark = p->mark;
21573 { // expression _loop0_10
21574 if (p->error_indicator) {
21575 D(p->level--);
21576 return NULL;
21577 }
21578 D(fprintf(stderr, "%*c> _gather_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21579 expr_ty elem;
21580 asdl_seq * seq;
21581 if (
21582 (elem = expression_rule(p)) // expression
21583 &&
21584 (seq = _loop0_10_rule(p)) // _loop0_10
21585 )
21586 {
21587 D(fprintf(stderr, "%*c+ _gather_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression _loop0_10"));
21588 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21589 goto done;
21590 }
21591 p->mark = _mark;
21592 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
21593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
21594 }
21595 _res = NULL;
21596 done:
21597 D(p->level--);
21598 return _res;
21599}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021600
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021601// _loop1_11: statement
21602static asdl_seq *
21603_loop1_11_rule(Parser *p)
21604{
21605 D(p->level++);
21606 if (p->error_indicator) {
21607 D(p->level--);
21608 return NULL;
21609 }
21610 void *_res = NULL;
21611 int _mark = p->mark;
21612 int _start_mark = p->mark;
21613 void **_children = PyMem_Malloc(sizeof(void *));
21614 if (!_children) {
21615 p->error_indicator = 1;
21616 PyErr_NoMemory();
21617 D(p->level--);
21618 return NULL;
21619 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021620 Py_ssize_t _children_capacity = 1;
21621 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021622 { // statement
21623 if (p->error_indicator) {
21624 D(p->level--);
21625 return NULL;
21626 }
21627 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoa5634c42020-09-16 19:42:00 +010021628 asdl_stmt_seq* statement_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021629 while (
21630 (statement_var = statement_rule(p)) // statement
21631 )
21632 {
21633 _res = statement_var;
21634 if (_n == _children_capacity) {
21635 _children_capacity *= 2;
21636 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21637 if (!_new_children) {
21638 p->error_indicator = 1;
21639 PyErr_NoMemory();
21640 D(p->level--);
21641 return NULL;
21642 }
21643 _children = _new_children;
21644 }
21645 _children[_n++] = _res;
21646 _mark = p->mark;
21647 }
21648 p->mark = _mark;
21649 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
21650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
21651 }
21652 if (_n == 0 || p->error_indicator) {
21653 PyMem_Free(_children);
21654 D(p->level--);
21655 return NULL;
21656 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021657 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021658 if (!_seq) {
21659 PyMem_Free(_children);
21660 p->error_indicator = 1;
21661 PyErr_NoMemory();
21662 D(p->level--);
21663 return NULL;
21664 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021665 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021666 PyMem_Free(_children);
21667 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
21668 D(p->level--);
21669 return _seq;
21670}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021671
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021672// _loop0_13: ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021673static asdl_seq *
21674_loop0_13_rule(Parser *p)
21675{
21676 D(p->level++);
21677 if (p->error_indicator) {
21678 D(p->level--);
21679 return NULL;
21680 }
21681 void *_res = NULL;
21682 int _mark = p->mark;
21683 int _start_mark = p->mark;
21684 void **_children = PyMem_Malloc(sizeof(void *));
21685 if (!_children) {
21686 p->error_indicator = 1;
21687 PyErr_NoMemory();
21688 D(p->level--);
21689 return NULL;
21690 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010021691 Py_ssize_t _children_capacity = 1;
21692 Py_ssize_t _n = 0;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021693 { // ';' simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021694 if (p->error_indicator) {
21695 D(p->level--);
21696 return NULL;
21697 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021698 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021699 Token * _literal;
21700 stmt_ty elem;
21701 while (
21702 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
21703 &&
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021704 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021705 )
21706 {
21707 _res = elem;
21708 if (_res == NULL && PyErr_Occurred()) {
21709 p->error_indicator = 1;
21710 PyMem_Free(_children);
21711 D(p->level--);
21712 return NULL;
21713 }
21714 if (_n == _children_capacity) {
21715 _children_capacity *= 2;
21716 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21717 if (!_new_children) {
21718 p->error_indicator = 1;
21719 PyErr_NoMemory();
21720 D(p->level--);
21721 return NULL;
21722 }
21723 _children = _new_children;
21724 }
21725 _children[_n++] = _res;
21726 _mark = p->mark;
21727 }
21728 p->mark = _mark;
21729 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' simple_stmt"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021731 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021732 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021733 if (!_seq) {
21734 PyMem_Free(_children);
21735 p->error_indicator = 1;
21736 PyErr_NoMemory();
21737 D(p->level--);
21738 return NULL;
21739 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010021740 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021741 PyMem_Free(_children);
21742 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
21743 D(p->level--);
21744 return _seq;
21745}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021746
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021747// _gather_12: simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021748static asdl_seq *
21749_gather_12_rule(Parser *p)
21750{
21751 D(p->level++);
21752 if (p->error_indicator) {
21753 D(p->level--);
21754 return NULL;
21755 }
21756 asdl_seq * _res = NULL;
21757 int _mark = p->mark;
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021758 { // simple_stmt _loop0_13
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021759 if (p->error_indicator) {
21760 D(p->level--);
21761 return NULL;
21762 }
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021763 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 +010021764 stmt_ty elem;
21765 asdl_seq * seq;
21766 if (
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021767 (elem = simple_stmt_rule(p)) // simple_stmt
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021768 &&
21769 (seq = _loop0_13_rule(p)) // _loop0_13
21770 )
21771 {
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021772 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 +010021773 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
21774 goto done;
21775 }
21776 p->mark = _mark;
21777 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo9bdc40e2020-11-30 19:42:38 +000021778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt _loop0_13"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021779 }
21780 _res = NULL;
21781 done:
21782 D(p->level--);
21783 return _res;
21784}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021785
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021786// _tmp_14: 'import' | 'from'
21787static void *
21788_tmp_14_rule(Parser *p)
21789{
21790 D(p->level++);
21791 if (p->error_indicator) {
21792 D(p->level--);
21793 return NULL;
21794 }
21795 void * _res = NULL;
21796 int _mark = p->mark;
21797 { // 'import'
21798 if (p->error_indicator) {
21799 D(p->level--);
21800 return NULL;
21801 }
21802 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
21803 Token * _keyword;
21804 if (
21805 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
21806 )
21807 {
21808 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
21809 _res = _keyword;
21810 goto done;
21811 }
21812 p->mark = _mark;
21813 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21814 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
21815 }
21816 { // 'from'
21817 if (p->error_indicator) {
21818 D(p->level--);
21819 return NULL;
21820 }
21821 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
21822 Token * _keyword;
21823 if (
21824 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
21825 )
21826 {
21827 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
21828 _res = _keyword;
21829 goto done;
21830 }
21831 p->mark = _mark;
21832 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
21833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
21834 }
21835 _res = NULL;
21836 done:
21837 D(p->level--);
21838 return _res;
21839}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021840
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021841// _tmp_15: 'def' | '@' | ASYNC
21842static void *
21843_tmp_15_rule(Parser *p)
21844{
21845 D(p->level++);
21846 if (p->error_indicator) {
21847 D(p->level--);
21848 return NULL;
21849 }
21850 void * _res = NULL;
21851 int _mark = p->mark;
21852 { // 'def'
21853 if (p->error_indicator) {
21854 D(p->level--);
21855 return NULL;
21856 }
21857 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
21858 Token * _keyword;
21859 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021860 (_keyword = _PyPegen_expect_token(p, 526)) // token='def'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021861 )
21862 {
21863 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
21864 _res = _keyword;
21865 goto done;
21866 }
21867 p->mark = _mark;
21868 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
21870 }
21871 { // '@'
21872 if (p->error_indicator) {
21873 D(p->level--);
21874 return NULL;
21875 }
21876 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21877 Token * _literal;
21878 if (
21879 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21880 )
21881 {
21882 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21883 _res = _literal;
21884 goto done;
21885 }
21886 p->mark = _mark;
21887 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21888 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21889 }
21890 { // ASYNC
21891 if (p->error_indicator) {
21892 D(p->level--);
21893 return NULL;
21894 }
21895 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21896 Token * async_var;
21897 if (
21898 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
21899 )
21900 {
21901 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
21902 _res = async_var;
21903 goto done;
21904 }
21905 p->mark = _mark;
21906 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
21907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
21908 }
21909 _res = NULL;
21910 done:
21911 D(p->level--);
21912 return _res;
21913}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021914
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021915// _tmp_16: 'class' | '@'
21916static void *
21917_tmp_16_rule(Parser *p)
21918{
21919 D(p->level++);
21920 if (p->error_indicator) {
21921 D(p->level--);
21922 return NULL;
21923 }
21924 void * _res = NULL;
21925 int _mark = p->mark;
21926 { // 'class'
21927 if (p->error_indicator) {
21928 D(p->level--);
21929 return NULL;
21930 }
21931 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
21932 Token * _keyword;
21933 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080021934 (_keyword = _PyPegen_expect_token(p, 527)) // token='class'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021935 )
21936 {
21937 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
21938 _res = _keyword;
21939 goto done;
21940 }
21941 p->mark = _mark;
21942 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21943 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
21944 }
21945 { // '@'
21946 if (p->error_indicator) {
21947 D(p->level--);
21948 return NULL;
21949 }
21950 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
21951 Token * _literal;
21952 if (
21953 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
21954 )
21955 {
21956 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
21957 _res = _literal;
21958 goto done;
21959 }
21960 p->mark = _mark;
21961 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
21962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
21963 }
21964 _res = NULL;
21965 done:
21966 D(p->level--);
21967 return _res;
21968}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000021969
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010021970// _tmp_17: 'with' | ASYNC
21971static void *
21972_tmp_17_rule(Parser *p)
21973{
21974 D(p->level++);
21975 if (p->error_indicator) {
21976 D(p->level--);
21977 return NULL;
21978 }
21979 void * _res = NULL;
21980 int _mark = p->mark;
21981 { // 'with'
21982 if (p->error_indicator) {
21983 D(p->level--);
21984 return NULL;
21985 }
21986 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
21987 Token * _keyword;
21988 if (
21989 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
21990 )
21991 {
21992 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
21993 _res = _keyword;
21994 goto done;
21995 }
21996 p->mark = _mark;
21997 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
21998 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
21999 }
22000 { // ASYNC
22001 if (p->error_indicator) {
22002 D(p->level--);
22003 return NULL;
22004 }
22005 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22006 Token * async_var;
22007 if (
22008 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22009 )
22010 {
22011 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22012 _res = async_var;
22013 goto done;
22014 }
22015 p->mark = _mark;
22016 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
22017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22018 }
22019 _res = NULL;
22020 done:
22021 D(p->level--);
22022 return _res;
22023}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022024
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022025// _tmp_18: 'for' | ASYNC
22026static void *
22027_tmp_18_rule(Parser *p)
22028{
22029 D(p->level++);
22030 if (p->error_indicator) {
22031 D(p->level--);
22032 return NULL;
22033 }
22034 void * _res = NULL;
22035 int _mark = p->mark;
22036 { // 'for'
22037 if (p->error_indicator) {
22038 D(p->level--);
22039 return NULL;
22040 }
22041 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
22042 Token * _keyword;
22043 if (
22044 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
22045 )
22046 {
22047 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
22048 _res = _keyword;
22049 goto done;
22050 }
22051 p->mark = _mark;
22052 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
22054 }
22055 { // ASYNC
22056 if (p->error_indicator) {
22057 D(p->level--);
22058 return NULL;
22059 }
22060 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22061 Token * async_var;
22062 if (
22063 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
22064 )
22065 {
22066 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
22067 _res = async_var;
22068 goto done;
22069 }
22070 p->mark = _mark;
22071 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
22072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
22073 }
22074 _res = NULL;
22075 done:
22076 D(p->level--);
22077 return _res;
22078}
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000022079
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022080// _tmp_19: '=' annotated_rhs
22081static void *
22082_tmp_19_rule(Parser *p)
22083{
22084 D(p->level++);
22085 if (p->error_indicator) {
22086 D(p->level--);
22087 return NULL;
22088 }
22089 void * _res = NULL;
22090 int _mark = p->mark;
22091 { // '=' annotated_rhs
22092 if (p->error_indicator) {
22093 D(p->level--);
22094 return NULL;
22095 }
22096 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22097 Token * _literal;
22098 expr_ty d;
22099 if (
22100 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22101 &&
22102 (d = annotated_rhs_rule(p)) // annotated_rhs
22103 )
22104 {
22105 D(fprintf(stderr, "%*c+ _tmp_19[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22106 _res = d;
22107 if (_res == NULL && PyErr_Occurred()) {
22108 p->error_indicator = 1;
22109 D(p->level--);
22110 return NULL;
22111 }
22112 goto done;
22113 }
22114 p->mark = _mark;
22115 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
22116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22117 }
22118 _res = NULL;
22119 done:
22120 D(p->level--);
22121 return _res;
22122}
22123
22124// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
22125static void *
22126_tmp_20_rule(Parser *p)
22127{
22128 D(p->level++);
22129 if (p->error_indicator) {
22130 D(p->level--);
22131 return NULL;
22132 }
22133 void * _res = NULL;
22134 int _mark = p->mark;
22135 { // '(' single_target ')'
22136 if (p->error_indicator) {
22137 D(p->level--);
22138 return NULL;
22139 }
22140 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22141 Token * _literal;
22142 Token * _literal_1;
22143 expr_ty b;
22144 if (
22145 (_literal = _PyPegen_expect_token(p, 7)) // token='('
22146 &&
22147 (b = single_target_rule(p)) // single_target
22148 &&
22149 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
22150 )
22151 {
22152 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
22153 _res = b;
22154 if (_res == NULL && PyErr_Occurred()) {
22155 p->error_indicator = 1;
22156 D(p->level--);
22157 return NULL;
22158 }
22159 goto done;
22160 }
22161 p->mark = _mark;
22162 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
22164 }
22165 { // single_subscript_attribute_target
22166 if (p->error_indicator) {
22167 D(p->level--);
22168 return NULL;
22169 }
22170 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22171 expr_ty single_subscript_attribute_target_var;
22172 if (
22173 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
22174 )
22175 {
22176 D(fprintf(stderr, "%*c+ _tmp_20[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "single_subscript_attribute_target"));
22177 _res = single_subscript_attribute_target_var;
22178 goto done;
22179 }
22180 p->mark = _mark;
22181 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
22182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
22183 }
22184 _res = NULL;
22185 done:
22186 D(p->level--);
22187 return _res;
22188}
22189
22190// _tmp_21: '=' annotated_rhs
22191static void *
22192_tmp_21_rule(Parser *p)
22193{
22194 D(p->level++);
22195 if (p->error_indicator) {
22196 D(p->level--);
22197 return NULL;
22198 }
22199 void * _res = NULL;
22200 int _mark = p->mark;
22201 { // '=' annotated_rhs
22202 if (p->error_indicator) {
22203 D(p->level--);
22204 return NULL;
22205 }
22206 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22207 Token * _literal;
22208 expr_ty d;
22209 if (
22210 (_literal = _PyPegen_expect_token(p, 22)) // token='='
22211 &&
22212 (d = annotated_rhs_rule(p)) // annotated_rhs
22213 )
22214 {
22215 D(fprintf(stderr, "%*c+ _tmp_21[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
22216 _res = d;
22217 if (_res == NULL && PyErr_Occurred()) {
22218 p->error_indicator = 1;
22219 D(p->level--);
22220 return NULL;
22221 }
22222 goto done;
22223 }
22224 p->mark = _mark;
22225 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
22226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
22227 }
22228 _res = NULL;
22229 done:
22230 D(p->level--);
22231 return _res;
22232}
22233
22234// _loop1_22: (star_targets '=')
22235static asdl_seq *
22236_loop1_22_rule(Parser *p)
22237{
22238 D(p->level++);
22239 if (p->error_indicator) {
22240 D(p->level--);
22241 return NULL;
22242 }
22243 void *_res = NULL;
22244 int _mark = p->mark;
22245 int _start_mark = p->mark;
22246 void **_children = PyMem_Malloc(sizeof(void *));
22247 if (!_children) {
22248 p->error_indicator = 1;
22249 PyErr_NoMemory();
22250 D(p->level--);
22251 return NULL;
22252 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022253 Py_ssize_t _children_capacity = 1;
22254 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022255 { // (star_targets '=')
22256 if (p->error_indicator) {
22257 D(p->level--);
22258 return NULL;
22259 }
22260 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 -070022261 void *_tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022262 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022263 (_tmp_178_var = _tmp_178_rule(p)) // star_targets '='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022264 )
22265 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022266 _res = _tmp_178_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022267 if (_n == _children_capacity) {
22268 _children_capacity *= 2;
22269 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22270 if (!_new_children) {
22271 p->error_indicator = 1;
22272 PyErr_NoMemory();
22273 D(p->level--);
22274 return NULL;
22275 }
22276 _children = _new_children;
22277 }
22278 _children[_n++] = _res;
22279 _mark = p->mark;
22280 }
22281 p->mark = _mark;
22282 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
22283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
22284 }
22285 if (_n == 0 || p->error_indicator) {
22286 PyMem_Free(_children);
22287 D(p->level--);
22288 return NULL;
22289 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022290 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022291 if (!_seq) {
22292 PyMem_Free(_children);
22293 p->error_indicator = 1;
22294 PyErr_NoMemory();
22295 D(p->level--);
22296 return NULL;
22297 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022298 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022299 PyMem_Free(_children);
22300 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
22301 D(p->level--);
22302 return _seq;
22303}
22304
22305// _tmp_23: yield_expr | star_expressions
22306static void *
22307_tmp_23_rule(Parser *p)
22308{
22309 D(p->level++);
22310 if (p->error_indicator) {
22311 D(p->level--);
22312 return NULL;
22313 }
22314 void * _res = NULL;
22315 int _mark = p->mark;
22316 { // yield_expr
22317 if (p->error_indicator) {
22318 D(p->level--);
22319 return NULL;
22320 }
22321 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22322 expr_ty yield_expr_var;
22323 if (
22324 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22325 )
22326 {
22327 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22328 _res = yield_expr_var;
22329 goto done;
22330 }
22331 p->mark = _mark;
22332 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22334 }
22335 { // star_expressions
22336 if (p->error_indicator) {
22337 D(p->level--);
22338 return NULL;
22339 }
22340 D(fprintf(stderr, "%*c> _tmp_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22341 expr_ty star_expressions_var;
22342 if (
22343 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22344 )
22345 {
22346 D(fprintf(stderr, "%*c+ _tmp_23[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22347 _res = star_expressions_var;
22348 goto done;
22349 }
22350 p->mark = _mark;
22351 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
22352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22353 }
22354 _res = NULL;
22355 done:
22356 D(p->level--);
22357 return _res;
22358}
22359
22360// _tmp_24: yield_expr | star_expressions
22361static void *
22362_tmp_24_rule(Parser *p)
22363{
22364 D(p->level++);
22365 if (p->error_indicator) {
22366 D(p->level--);
22367 return NULL;
22368 }
22369 void * _res = NULL;
22370 int _mark = p->mark;
22371 { // yield_expr
22372 if (p->error_indicator) {
22373 D(p->level--);
22374 return NULL;
22375 }
22376 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22377 expr_ty yield_expr_var;
22378 if (
22379 (yield_expr_var = yield_expr_rule(p)) // yield_expr
22380 )
22381 {
22382 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
22383 _res = yield_expr_var;
22384 goto done;
22385 }
22386 p->mark = _mark;
22387 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
22389 }
22390 { // star_expressions
22391 if (p->error_indicator) {
22392 D(p->level--);
22393 return NULL;
22394 }
22395 D(fprintf(stderr, "%*c> _tmp_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22396 expr_ty star_expressions_var;
22397 if (
22398 (star_expressions_var = star_expressions_rule(p)) // star_expressions
22399 )
22400 {
22401 D(fprintf(stderr, "%*c+ _tmp_24[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
22402 _res = star_expressions_var;
22403 goto done;
22404 }
22405 p->mark = _mark;
22406 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
22407 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
22408 }
22409 _res = NULL;
22410 done:
22411 D(p->level--);
22412 return _res;
22413}
22414
22415// _loop0_26: ',' NAME
22416static asdl_seq *
22417_loop0_26_rule(Parser *p)
22418{
22419 D(p->level++);
22420 if (p->error_indicator) {
22421 D(p->level--);
22422 return NULL;
22423 }
22424 void *_res = NULL;
22425 int _mark = p->mark;
22426 int _start_mark = p->mark;
22427 void **_children = PyMem_Malloc(sizeof(void *));
22428 if (!_children) {
22429 p->error_indicator = 1;
22430 PyErr_NoMemory();
22431 D(p->level--);
22432 return NULL;
22433 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022434 Py_ssize_t _children_capacity = 1;
22435 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022436 { // ',' NAME
22437 if (p->error_indicator) {
22438 D(p->level--);
22439 return NULL;
22440 }
22441 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22442 Token * _literal;
22443 expr_ty elem;
22444 while (
22445 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22446 &&
22447 (elem = _PyPegen_name_token(p)) // NAME
22448 )
22449 {
22450 _res = elem;
22451 if (_res == NULL && PyErr_Occurred()) {
22452 p->error_indicator = 1;
22453 PyMem_Free(_children);
22454 D(p->level--);
22455 return NULL;
22456 }
22457 if (_n == _children_capacity) {
22458 _children_capacity *= 2;
22459 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22460 if (!_new_children) {
22461 p->error_indicator = 1;
22462 PyErr_NoMemory();
22463 D(p->level--);
22464 return NULL;
22465 }
22466 _children = _new_children;
22467 }
22468 _children[_n++] = _res;
22469 _mark = p->mark;
22470 }
22471 p->mark = _mark;
22472 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
22473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22474 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022475 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022476 if (!_seq) {
22477 PyMem_Free(_children);
22478 p->error_indicator = 1;
22479 PyErr_NoMemory();
22480 D(p->level--);
22481 return NULL;
22482 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022483 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022484 PyMem_Free(_children);
22485 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
22486 D(p->level--);
22487 return _seq;
22488}
22489
22490// _gather_25: NAME _loop0_26
22491static asdl_seq *
22492_gather_25_rule(Parser *p)
22493{
22494 D(p->level++);
22495 if (p->error_indicator) {
22496 D(p->level--);
22497 return NULL;
22498 }
22499 asdl_seq * _res = NULL;
22500 int _mark = p->mark;
22501 { // NAME _loop0_26
22502 if (p->error_indicator) {
22503 D(p->level--);
22504 return NULL;
22505 }
22506 D(fprintf(stderr, "%*c> _gather_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22507 expr_ty elem;
22508 asdl_seq * seq;
22509 if (
22510 (elem = _PyPegen_name_token(p)) // NAME
22511 &&
22512 (seq = _loop0_26_rule(p)) // _loop0_26
22513 )
22514 {
22515 D(fprintf(stderr, "%*c+ _gather_25[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_26"));
22516 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22517 goto done;
22518 }
22519 p->mark = _mark;
22520 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
22521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
22522 }
22523 _res = NULL;
22524 done:
22525 D(p->level--);
22526 return _res;
22527}
22528
22529// _loop0_28: ',' NAME
22530static asdl_seq *
22531_loop0_28_rule(Parser *p)
22532{
22533 D(p->level++);
22534 if (p->error_indicator) {
22535 D(p->level--);
22536 return NULL;
22537 }
22538 void *_res = NULL;
22539 int _mark = p->mark;
22540 int _start_mark = p->mark;
22541 void **_children = PyMem_Malloc(sizeof(void *));
22542 if (!_children) {
22543 p->error_indicator = 1;
22544 PyErr_NoMemory();
22545 D(p->level--);
22546 return NULL;
22547 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022548 Py_ssize_t _children_capacity = 1;
22549 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022550 { // ',' NAME
22551 if (p->error_indicator) {
22552 D(p->level--);
22553 return NULL;
22554 }
22555 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
22556 Token * _literal;
22557 expr_ty elem;
22558 while (
22559 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22560 &&
22561 (elem = _PyPegen_name_token(p)) // NAME
22562 )
22563 {
22564 _res = elem;
22565 if (_res == NULL && PyErr_Occurred()) {
22566 p->error_indicator = 1;
22567 PyMem_Free(_children);
22568 D(p->level--);
22569 return NULL;
22570 }
22571 if (_n == _children_capacity) {
22572 _children_capacity *= 2;
22573 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22574 if (!_new_children) {
22575 p->error_indicator = 1;
22576 PyErr_NoMemory();
22577 D(p->level--);
22578 return NULL;
22579 }
22580 _children = _new_children;
22581 }
22582 _children[_n++] = _res;
22583 _mark = p->mark;
22584 }
22585 p->mark = _mark;
22586 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
22587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
22588 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022589 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022590 if (!_seq) {
22591 PyMem_Free(_children);
22592 p->error_indicator = 1;
22593 PyErr_NoMemory();
22594 D(p->level--);
22595 return NULL;
22596 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022597 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022598 PyMem_Free(_children);
22599 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
22600 D(p->level--);
22601 return _seq;
22602}
22603
22604// _gather_27: NAME _loop0_28
22605static asdl_seq *
22606_gather_27_rule(Parser *p)
22607{
22608 D(p->level++);
22609 if (p->error_indicator) {
22610 D(p->level--);
22611 return NULL;
22612 }
22613 asdl_seq * _res = NULL;
22614 int _mark = p->mark;
22615 { // NAME _loop0_28
22616 if (p->error_indicator) {
22617 D(p->level--);
22618 return NULL;
22619 }
22620 D(fprintf(stderr, "%*c> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22621 expr_ty elem;
22622 asdl_seq * seq;
22623 if (
22624 (elem = _PyPegen_name_token(p)) // NAME
22625 &&
22626 (seq = _loop0_28_rule(p)) // _loop0_28
22627 )
22628 {
22629 D(fprintf(stderr, "%*c+ _gather_27[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
22630 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22631 goto done;
22632 }
22633 p->mark = _mark;
22634 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
22635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
22636 }
22637 _res = NULL;
22638 done:
22639 D(p->level--);
22640 return _res;
22641}
22642
22643// _tmp_29: ',' expression
22644static void *
22645_tmp_29_rule(Parser *p)
22646{
22647 D(p->level++);
22648 if (p->error_indicator) {
22649 D(p->level--);
22650 return NULL;
22651 }
22652 void * _res = NULL;
22653 int _mark = p->mark;
22654 { // ',' expression
22655 if (p->error_indicator) {
22656 D(p->level--);
22657 return NULL;
22658 }
22659 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
22660 Token * _literal;
22661 expr_ty z;
22662 if (
22663 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22664 &&
22665 (z = expression_rule(p)) // expression
22666 )
22667 {
22668 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
22669 _res = z;
22670 if (_res == NULL && PyErr_Occurred()) {
22671 p->error_indicator = 1;
22672 D(p->level--);
22673 return NULL;
22674 }
22675 goto done;
22676 }
22677 p->mark = _mark;
22678 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
22679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
22680 }
22681 _res = NULL;
22682 done:
22683 D(p->level--);
22684 return _res;
22685}
22686
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022687// _tmp_30: ';' | NEWLINE
22688static void *
22689_tmp_30_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022690{
22691 D(p->level++);
22692 if (p->error_indicator) {
22693 D(p->level--);
22694 return NULL;
22695 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022696 void * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022697 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022698 { // ';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022699 if (p->error_indicator) {
22700 D(p->level--);
22701 return NULL;
22702 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022703 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
22704 Token * _literal;
22705 if (
22706 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022707 )
22708 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022709 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
22710 _res = _literal;
22711 goto done;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022712 }
22713 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022714 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022716 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022717 { // NEWLINE
22718 if (p->error_indicator) {
22719 D(p->level--);
22720 return NULL;
22721 }
22722 D(fprintf(stderr, "%*c> _tmp_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22723 Token * newline_var;
22724 if (
22725 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
22726 )
22727 {
22728 D(fprintf(stderr, "%*c+ _tmp_30[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
22729 _res = newline_var;
22730 goto done;
22731 }
22732 p->mark = _mark;
22733 D(fprintf(stderr, "%*c%s _tmp_30[%d-%d]: %s failed!\n", p->level, ' ',
22734 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022735 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022736 _res = NULL;
22737 done:
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022738 D(p->level--);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022739 return _res;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022740}
22741
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022742// _loop0_31: ('.' | '...')
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022743static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022744_loop0_31_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022745{
22746 D(p->level++);
22747 if (p->error_indicator) {
22748 D(p->level--);
22749 return NULL;
22750 }
22751 void *_res = NULL;
22752 int _mark = p->mark;
22753 int _start_mark = p->mark;
22754 void **_children = PyMem_Malloc(sizeof(void *));
22755 if (!_children) {
22756 p->error_indicator = 1;
22757 PyErr_NoMemory();
22758 D(p->level--);
22759 return NULL;
22760 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022761 Py_ssize_t _children_capacity = 1;
22762 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022763 { // ('.' | '...')
22764 if (p->error_indicator) {
22765 D(p->level--);
22766 return NULL;
22767 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022768 D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022769 void *_tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022770 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022771 (_tmp_179_var = _tmp_179_rule(p)) // '.' | '...'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022772 )
22773 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022774 _res = _tmp_179_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022775 if (_n == _children_capacity) {
22776 _children_capacity *= 2;
22777 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22778 if (!_new_children) {
22779 p->error_indicator = 1;
22780 PyErr_NoMemory();
22781 D(p->level--);
22782 return NULL;
22783 }
22784 _children = _new_children;
22785 }
22786 _children[_n++] = _res;
22787 _mark = p->mark;
22788 }
22789 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022790 D(fprintf(stderr, "%*c%s _loop0_31[%d-%d]: %s failed!\n", p->level, ' ',
22791 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22792 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022793 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022794 if (!_seq) {
22795 PyMem_Free(_children);
22796 p->error_indicator = 1;
22797 PyErr_NoMemory();
22798 D(p->level--);
22799 return NULL;
22800 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022801 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022802 PyMem_Free(_children);
22803 _PyPegen_insert_memo(p, _start_mark, _loop0_31_type, _seq);
22804 D(p->level--);
22805 return _seq;
22806}
22807
22808// _loop1_32: ('.' | '...')
22809static asdl_seq *
22810_loop1_32_rule(Parser *p)
22811{
22812 D(p->level++);
22813 if (p->error_indicator) {
22814 D(p->level--);
22815 return NULL;
22816 }
22817 void *_res = NULL;
22818 int _mark = p->mark;
22819 int _start_mark = p->mark;
22820 void **_children = PyMem_Malloc(sizeof(void *));
22821 if (!_children) {
22822 p->error_indicator = 1;
22823 PyErr_NoMemory();
22824 D(p->level--);
22825 return NULL;
22826 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022827 Py_ssize_t _children_capacity = 1;
22828 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022829 { // ('.' | '...')
22830 if (p->error_indicator) {
22831 D(p->level--);
22832 return NULL;
22833 }
22834 D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022835 void *_tmp_180_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022836 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022837 (_tmp_180_var = _tmp_180_rule(p)) // '.' | '...'
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022838 )
22839 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070022840 _res = _tmp_180_var;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022841 if (_n == _children_capacity) {
22842 _children_capacity *= 2;
22843 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22844 if (!_new_children) {
22845 p->error_indicator = 1;
22846 PyErr_NoMemory();
22847 D(p->level--);
22848 return NULL;
22849 }
22850 _children = _new_children;
22851 }
22852 _children[_n++] = _res;
22853 _mark = p->mark;
22854 }
22855 p->mark = _mark;
22856 D(fprintf(stderr, "%*c%s _loop1_32[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022857 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
22858 }
22859 if (_n == 0 || p->error_indicator) {
22860 PyMem_Free(_children);
22861 D(p->level--);
22862 return NULL;
22863 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022864 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022865 if (!_seq) {
22866 PyMem_Free(_children);
22867 p->error_indicator = 1;
22868 PyErr_NoMemory();
22869 D(p->level--);
22870 return NULL;
22871 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022872 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022873 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022874 _PyPegen_insert_memo(p, _start_mark, _loop1_32_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022875 D(p->level--);
22876 return _seq;
22877}
22878
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022879// _loop0_34: ',' import_from_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022880static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022881_loop0_34_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022882{
22883 D(p->level++);
22884 if (p->error_indicator) {
22885 D(p->level--);
22886 return NULL;
22887 }
22888 void *_res = NULL;
22889 int _mark = p->mark;
22890 int _start_mark = p->mark;
22891 void **_children = PyMem_Malloc(sizeof(void *));
22892 if (!_children) {
22893 p->error_indicator = 1;
22894 PyErr_NoMemory();
22895 D(p->level--);
22896 return NULL;
22897 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010022898 Py_ssize_t _children_capacity = 1;
22899 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022900 { // ',' import_from_as_name
22901 if (p->error_indicator) {
22902 D(p->level--);
22903 return NULL;
22904 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022905 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 +010022906 Token * _literal;
22907 alias_ty elem;
22908 while (
22909 (_literal = _PyPegen_expect_token(p, 12)) // token=','
22910 &&
22911 (elem = import_from_as_name_rule(p)) // import_from_as_name
22912 )
22913 {
22914 _res = elem;
22915 if (_res == NULL && PyErr_Occurred()) {
22916 p->error_indicator = 1;
22917 PyMem_Free(_children);
22918 D(p->level--);
22919 return NULL;
22920 }
22921 if (_n == _children_capacity) {
22922 _children_capacity *= 2;
22923 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22924 if (!_new_children) {
22925 p->error_indicator = 1;
22926 PyErr_NoMemory();
22927 D(p->level--);
22928 return NULL;
22929 }
22930 _children = _new_children;
22931 }
22932 _children[_n++] = _res;
22933 _mark = p->mark;
22934 }
22935 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022936 D(fprintf(stderr, "%*c%s _loop0_34[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
22938 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022939 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022940 if (!_seq) {
22941 PyMem_Free(_children);
22942 p->error_indicator = 1;
22943 PyErr_NoMemory();
22944 D(p->level--);
22945 return NULL;
22946 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010022947 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022948 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022949 _PyPegen_insert_memo(p, _start_mark, _loop0_34_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022950 D(p->level--);
22951 return _seq;
22952}
22953
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022954// _gather_33: import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022955static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022956_gather_33_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022957{
22958 D(p->level++);
22959 if (p->error_indicator) {
22960 D(p->level--);
22961 return NULL;
22962 }
22963 asdl_seq * _res = NULL;
22964 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022965 { // import_from_as_name _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022966 if (p->error_indicator) {
22967 D(p->level--);
22968 return NULL;
22969 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022970 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 +010022971 alias_ty elem;
22972 asdl_seq * seq;
22973 if (
22974 (elem = import_from_as_name_rule(p)) // import_from_as_name
22975 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022976 (seq = _loop0_34_rule(p)) // _loop0_34
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022977 )
22978 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022979 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 +010022980 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
22981 goto done;
22982 }
22983 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022984 D(fprintf(stderr, "%*c%s _gather_33[%d-%d]: %s failed!\n", p->level, ' ',
22985 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_34"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022986 }
22987 _res = NULL;
22988 done:
22989 D(p->level--);
22990 return _res;
22991}
22992
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022993// _tmp_35: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022994static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030022995_tmp_35_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010022996{
22997 D(p->level++);
22998 if (p->error_indicator) {
22999 D(p->level--);
23000 return NULL;
23001 }
23002 void * _res = NULL;
23003 int _mark = p->mark;
23004 { // 'as' NAME
23005 if (p->error_indicator) {
23006 D(p->level--);
23007 return NULL;
23008 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023009 D(fprintf(stderr, "%*c> _tmp_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023010 Token * _keyword;
23011 expr_ty z;
23012 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023013 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023014 &&
23015 (z = _PyPegen_name_token(p)) // NAME
23016 )
23017 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023018 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 +010023019 _res = z;
23020 if (_res == NULL && PyErr_Occurred()) {
23021 p->error_indicator = 1;
23022 D(p->level--);
23023 return NULL;
23024 }
23025 goto done;
23026 }
23027 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023028 D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23030 }
23031 _res = NULL;
23032 done:
23033 D(p->level--);
23034 return _res;
23035}
23036
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023037// _loop0_37: ',' dotted_as_name
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023038static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023039_loop0_37_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023040{
23041 D(p->level++);
23042 if (p->error_indicator) {
23043 D(p->level--);
23044 return NULL;
23045 }
23046 void *_res = NULL;
23047 int _mark = p->mark;
23048 int _start_mark = p->mark;
23049 void **_children = PyMem_Malloc(sizeof(void *));
23050 if (!_children) {
23051 p->error_indicator = 1;
23052 PyErr_NoMemory();
23053 D(p->level--);
23054 return NULL;
23055 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023056 Py_ssize_t _children_capacity = 1;
23057 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023058 { // ',' dotted_as_name
23059 if (p->error_indicator) {
23060 D(p->level--);
23061 return NULL;
23062 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023063 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 +010023064 Token * _literal;
23065 alias_ty elem;
23066 while (
23067 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23068 &&
23069 (elem = dotted_as_name_rule(p)) // dotted_as_name
23070 )
23071 {
23072 _res = elem;
23073 if (_res == NULL && PyErr_Occurred()) {
23074 p->error_indicator = 1;
23075 PyMem_Free(_children);
23076 D(p->level--);
23077 return NULL;
23078 }
23079 if (_n == _children_capacity) {
23080 _children_capacity *= 2;
23081 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23082 if (!_new_children) {
23083 p->error_indicator = 1;
23084 PyErr_NoMemory();
23085 D(p->level--);
23086 return NULL;
23087 }
23088 _children = _new_children;
23089 }
23090 _children[_n++] = _res;
23091 _mark = p->mark;
23092 }
23093 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023094 D(fprintf(stderr, "%*c%s _loop0_37[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
23096 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023097 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023098 if (!_seq) {
23099 PyMem_Free(_children);
23100 p->error_indicator = 1;
23101 PyErr_NoMemory();
23102 D(p->level--);
23103 return NULL;
23104 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023105 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023106 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023107 _PyPegen_insert_memo(p, _start_mark, _loop0_37_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023108 D(p->level--);
23109 return _seq;
23110}
23111
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023112// _gather_36: dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023113static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023114_gather_36_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023115{
23116 D(p->level++);
23117 if (p->error_indicator) {
23118 D(p->level--);
23119 return NULL;
23120 }
23121 asdl_seq * _res = NULL;
23122 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023123 { // dotted_as_name _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023124 if (p->error_indicator) {
23125 D(p->level--);
23126 return NULL;
23127 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023128 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 +010023129 alias_ty elem;
23130 asdl_seq * seq;
23131 if (
23132 (elem = dotted_as_name_rule(p)) // dotted_as_name
23133 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023134 (seq = _loop0_37_rule(p)) // _loop0_37
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023135 )
23136 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023137 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 +010023138 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23139 goto done;
23140 }
23141 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023142 D(fprintf(stderr, "%*c%s _gather_36[%d-%d]: %s failed!\n", p->level, ' ',
23143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_37"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023144 }
23145 _res = NULL;
23146 done:
23147 D(p->level--);
23148 return _res;
23149}
23150
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023151// _tmp_38: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023152static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023153_tmp_38_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023154{
23155 D(p->level++);
23156 if (p->error_indicator) {
23157 D(p->level--);
23158 return NULL;
23159 }
23160 void * _res = NULL;
23161 int _mark = p->mark;
23162 { // 'as' NAME
23163 if (p->error_indicator) {
23164 D(p->level--);
23165 return NULL;
23166 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023167 D(fprintf(stderr, "%*c> _tmp_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023168 Token * _keyword;
23169 expr_ty z;
23170 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023171 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023172 &&
23173 (z = _PyPegen_name_token(p)) // NAME
23174 )
23175 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023176 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 +010023177 _res = z;
23178 if (_res == NULL && PyErr_Occurred()) {
23179 p->error_indicator = 1;
23180 D(p->level--);
23181 return NULL;
23182 }
23183 goto done;
23184 }
23185 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023186 D(fprintf(stderr, "%*c%s _tmp_38[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023187 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23188 }
23189 _res = NULL;
23190 done:
23191 D(p->level--);
23192 return _res;
23193}
23194
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023195// _loop0_40: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023196static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023197_loop0_40_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023198{
23199 D(p->level++);
23200 if (p->error_indicator) {
23201 D(p->level--);
23202 return NULL;
23203 }
23204 void *_res = NULL;
23205 int _mark = p->mark;
23206 int _start_mark = p->mark;
23207 void **_children = PyMem_Malloc(sizeof(void *));
23208 if (!_children) {
23209 p->error_indicator = 1;
23210 PyErr_NoMemory();
23211 D(p->level--);
23212 return NULL;
23213 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023214 Py_ssize_t _children_capacity = 1;
23215 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023216 { // ',' with_item
23217 if (p->error_indicator) {
23218 D(p->level--);
23219 return NULL;
23220 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023221 D(fprintf(stderr, "%*c> _loop0_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023222 Token * _literal;
23223 withitem_ty elem;
23224 while (
23225 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23226 &&
23227 (elem = with_item_rule(p)) // with_item
23228 )
23229 {
23230 _res = elem;
23231 if (_res == NULL && PyErr_Occurred()) {
23232 p->error_indicator = 1;
23233 PyMem_Free(_children);
23234 D(p->level--);
23235 return NULL;
23236 }
23237 if (_n == _children_capacity) {
23238 _children_capacity *= 2;
23239 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23240 if (!_new_children) {
23241 p->error_indicator = 1;
23242 PyErr_NoMemory();
23243 D(p->level--);
23244 return NULL;
23245 }
23246 _children = _new_children;
23247 }
23248 _children[_n++] = _res;
23249 _mark = p->mark;
23250 }
23251 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023252 D(fprintf(stderr, "%*c%s _loop0_40[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023253 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23254 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023255 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023256 if (!_seq) {
23257 PyMem_Free(_children);
23258 p->error_indicator = 1;
23259 PyErr_NoMemory();
23260 D(p->level--);
23261 return NULL;
23262 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023263 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023264 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023265 _PyPegen_insert_memo(p, _start_mark, _loop0_40_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023266 D(p->level--);
23267 return _seq;
23268}
23269
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023270// _gather_39: with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023271static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023272_gather_39_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023273{
23274 D(p->level++);
23275 if (p->error_indicator) {
23276 D(p->level--);
23277 return NULL;
23278 }
23279 asdl_seq * _res = NULL;
23280 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023281 { // with_item _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023282 if (p->error_indicator) {
23283 D(p->level--);
23284 return NULL;
23285 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023286 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 +010023287 withitem_ty elem;
23288 asdl_seq * seq;
23289 if (
23290 (elem = with_item_rule(p)) // with_item
23291 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023292 (seq = _loop0_40_rule(p)) // _loop0_40
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023293 )
23294 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023295 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 +010023296 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23297 goto done;
23298 }
23299 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023300 D(fprintf(stderr, "%*c%s _gather_39[%d-%d]: %s failed!\n", p->level, ' ',
23301 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_40"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023302 }
23303 _res = NULL;
23304 done:
23305 D(p->level--);
23306 return _res;
23307}
23308
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023309// _loop0_42: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023310static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023311_loop0_42_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023312{
23313 D(p->level++);
23314 if (p->error_indicator) {
23315 D(p->level--);
23316 return NULL;
23317 }
23318 void *_res = NULL;
23319 int _mark = p->mark;
23320 int _start_mark = p->mark;
23321 void **_children = PyMem_Malloc(sizeof(void *));
23322 if (!_children) {
23323 p->error_indicator = 1;
23324 PyErr_NoMemory();
23325 D(p->level--);
23326 return NULL;
23327 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023328 Py_ssize_t _children_capacity = 1;
23329 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023330 { // ',' with_item
23331 if (p->error_indicator) {
23332 D(p->level--);
23333 return NULL;
23334 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023335 D(fprintf(stderr, "%*c> _loop0_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023336 Token * _literal;
23337 withitem_ty elem;
23338 while (
23339 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23340 &&
23341 (elem = with_item_rule(p)) // with_item
23342 )
23343 {
23344 _res = elem;
23345 if (_res == NULL && PyErr_Occurred()) {
23346 p->error_indicator = 1;
23347 PyMem_Free(_children);
23348 D(p->level--);
23349 return NULL;
23350 }
23351 if (_n == _children_capacity) {
23352 _children_capacity *= 2;
23353 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23354 if (!_new_children) {
23355 p->error_indicator = 1;
23356 PyErr_NoMemory();
23357 D(p->level--);
23358 return NULL;
23359 }
23360 _children = _new_children;
23361 }
23362 _children[_n++] = _res;
23363 _mark = p->mark;
23364 }
23365 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023366 D(fprintf(stderr, "%*c%s _loop0_42[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23368 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023369 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023370 if (!_seq) {
23371 PyMem_Free(_children);
23372 p->error_indicator = 1;
23373 PyErr_NoMemory();
23374 D(p->level--);
23375 return NULL;
23376 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023377 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023378 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023379 _PyPegen_insert_memo(p, _start_mark, _loop0_42_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023380 D(p->level--);
23381 return _seq;
23382}
23383
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023384// _gather_41: with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023385static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023386_gather_41_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023387{
23388 D(p->level++);
23389 if (p->error_indicator) {
23390 D(p->level--);
23391 return NULL;
23392 }
23393 asdl_seq * _res = NULL;
23394 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023395 { // with_item _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023396 if (p->error_indicator) {
23397 D(p->level--);
23398 return NULL;
23399 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023400 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 +010023401 withitem_ty elem;
23402 asdl_seq * seq;
23403 if (
23404 (elem = with_item_rule(p)) // with_item
23405 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023406 (seq = _loop0_42_rule(p)) // _loop0_42
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023407 )
23408 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023409 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 +010023410 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23411 goto done;
23412 }
23413 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023414 D(fprintf(stderr, "%*c%s _gather_41[%d-%d]: %s failed!\n", p->level, ' ',
23415 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_42"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023416 }
23417 _res = NULL;
23418 done:
23419 D(p->level--);
23420 return _res;
23421}
23422
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023423// _loop0_44: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023424static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023425_loop0_44_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023426{
23427 D(p->level++);
23428 if (p->error_indicator) {
23429 D(p->level--);
23430 return NULL;
23431 }
23432 void *_res = NULL;
23433 int _mark = p->mark;
23434 int _start_mark = p->mark;
23435 void **_children = PyMem_Malloc(sizeof(void *));
23436 if (!_children) {
23437 p->error_indicator = 1;
23438 PyErr_NoMemory();
23439 D(p->level--);
23440 return NULL;
23441 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023442 Py_ssize_t _children_capacity = 1;
23443 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023444 { // ',' with_item
23445 if (p->error_indicator) {
23446 D(p->level--);
23447 return NULL;
23448 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023449 D(fprintf(stderr, "%*c> _loop0_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023450 Token * _literal;
23451 withitem_ty elem;
23452 while (
23453 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23454 &&
23455 (elem = with_item_rule(p)) // with_item
23456 )
23457 {
23458 _res = elem;
23459 if (_res == NULL && PyErr_Occurred()) {
23460 p->error_indicator = 1;
23461 PyMem_Free(_children);
23462 D(p->level--);
23463 return NULL;
23464 }
23465 if (_n == _children_capacity) {
23466 _children_capacity *= 2;
23467 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23468 if (!_new_children) {
23469 p->error_indicator = 1;
23470 PyErr_NoMemory();
23471 D(p->level--);
23472 return NULL;
23473 }
23474 _children = _new_children;
23475 }
23476 _children[_n++] = _res;
23477 _mark = p->mark;
23478 }
23479 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023480 D(fprintf(stderr, "%*c%s _loop0_44[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23482 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023483 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023484 if (!_seq) {
23485 PyMem_Free(_children);
23486 p->error_indicator = 1;
23487 PyErr_NoMemory();
23488 D(p->level--);
23489 return NULL;
23490 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023491 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023492 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023493 _PyPegen_insert_memo(p, _start_mark, _loop0_44_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023494 D(p->level--);
23495 return _seq;
23496}
23497
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023498// _gather_43: with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023499static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023500_gather_43_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023501{
23502 D(p->level++);
23503 if (p->error_indicator) {
23504 D(p->level--);
23505 return NULL;
23506 }
23507 asdl_seq * _res = NULL;
23508 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023509 { // with_item _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023510 if (p->error_indicator) {
23511 D(p->level--);
23512 return NULL;
23513 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023514 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 +010023515 withitem_ty elem;
23516 asdl_seq * seq;
23517 if (
23518 (elem = with_item_rule(p)) // with_item
23519 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023520 (seq = _loop0_44_rule(p)) // _loop0_44
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023521 )
23522 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023523 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 +010023524 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23525 goto done;
23526 }
23527 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023528 D(fprintf(stderr, "%*c%s _gather_43[%d-%d]: %s failed!\n", p->level, ' ',
23529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_44"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023530 }
23531 _res = NULL;
23532 done:
23533 D(p->level--);
23534 return _res;
23535}
23536
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023537// _loop0_46: ',' with_item
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023538static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023539_loop0_46_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023540{
23541 D(p->level++);
23542 if (p->error_indicator) {
23543 D(p->level--);
23544 return NULL;
23545 }
23546 void *_res = NULL;
23547 int _mark = p->mark;
23548 int _start_mark = p->mark;
23549 void **_children = PyMem_Malloc(sizeof(void *));
23550 if (!_children) {
23551 p->error_indicator = 1;
23552 PyErr_NoMemory();
23553 D(p->level--);
23554 return NULL;
23555 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023556 Py_ssize_t _children_capacity = 1;
23557 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023558 { // ',' with_item
23559 if (p->error_indicator) {
23560 D(p->level--);
23561 return NULL;
23562 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023563 D(fprintf(stderr, "%*c> _loop0_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023564 Token * _literal;
23565 withitem_ty elem;
23566 while (
23567 (_literal = _PyPegen_expect_token(p, 12)) // token=','
23568 &&
23569 (elem = with_item_rule(p)) // with_item
23570 )
23571 {
23572 _res = elem;
23573 if (_res == NULL && PyErr_Occurred()) {
23574 p->error_indicator = 1;
23575 PyMem_Free(_children);
23576 D(p->level--);
23577 return NULL;
23578 }
23579 if (_n == _children_capacity) {
23580 _children_capacity *= 2;
23581 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23582 if (!_new_children) {
23583 p->error_indicator = 1;
23584 PyErr_NoMemory();
23585 D(p->level--);
23586 return NULL;
23587 }
23588 _children = _new_children;
23589 }
23590 _children[_n++] = _res;
23591 _mark = p->mark;
23592 }
23593 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023594 D(fprintf(stderr, "%*c%s _loop0_46[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023595 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
23596 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023597 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023598 if (!_seq) {
23599 PyMem_Free(_children);
23600 p->error_indicator = 1;
23601 PyErr_NoMemory();
23602 D(p->level--);
23603 return NULL;
23604 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023605 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023606 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023607 _PyPegen_insert_memo(p, _start_mark, _loop0_46_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023608 D(p->level--);
23609 return _seq;
23610}
23611
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023612// _gather_45: with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023613static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023614_gather_45_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023615{
23616 D(p->level++);
23617 if (p->error_indicator) {
23618 D(p->level--);
23619 return NULL;
23620 }
23621 asdl_seq * _res = NULL;
23622 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023623 { // with_item _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023624 if (p->error_indicator) {
23625 D(p->level--);
23626 return NULL;
23627 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023628 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 +010023629 withitem_ty elem;
23630 asdl_seq * seq;
23631 if (
23632 (elem = with_item_rule(p)) // with_item
23633 &&
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023634 (seq = _loop0_46_rule(p)) // _loop0_46
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023635 )
23636 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023637 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 +010023638 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
23639 goto done;
23640 }
23641 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023642 D(fprintf(stderr, "%*c%s _gather_45[%d-%d]: %s failed!\n", p->level, ' ',
23643 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_46"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023644 }
23645 _res = NULL;
23646 done:
23647 D(p->level--);
23648 return _res;
23649}
23650
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023651// _tmp_47: ',' | ')' | ':'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023652static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023653_tmp_47_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023654{
23655 D(p->level++);
23656 if (p->error_indicator) {
23657 D(p->level--);
23658 return NULL;
23659 }
23660 void * _res = NULL;
23661 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023662 { // ','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023663 if (p->error_indicator) {
23664 D(p->level--);
23665 return NULL;
23666 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023667 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
23668 Token * _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023669 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023670 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023671 )
23672 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023673 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
23674 _res = _literal;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023675 goto done;
23676 }
23677 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023678 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
23680 }
23681 { // ')'
23682 if (p->error_indicator) {
23683 D(p->level--);
23684 return NULL;
23685 }
23686 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
23687 Token * _literal;
23688 if (
23689 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
23690 )
23691 {
23692 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
23693 _res = _literal;
23694 goto done;
23695 }
23696 p->mark = _mark;
23697 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
23699 }
23700 { // ':'
23701 if (p->error_indicator) {
23702 D(p->level--);
23703 return NULL;
23704 }
23705 D(fprintf(stderr, "%*c> _tmp_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
23706 Token * _literal;
23707 if (
23708 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
23709 )
23710 {
23711 D(fprintf(stderr, "%*c+ _tmp_47[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
23712 _res = _literal;
23713 goto done;
23714 }
23715 p->mark = _mark;
23716 D(fprintf(stderr, "%*c%s _tmp_47[%d-%d]: %s failed!\n", p->level, ' ',
23717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023718 }
23719 _res = NULL;
23720 done:
23721 D(p->level--);
23722 return _res;
23723}
23724
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023725// _loop1_48: except_block
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023726static asdl_seq *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023727_loop1_48_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023728{
23729 D(p->level++);
23730 if (p->error_indicator) {
23731 D(p->level--);
23732 return NULL;
23733 }
23734 void *_res = NULL;
23735 int _mark = p->mark;
23736 int _start_mark = p->mark;
23737 void **_children = PyMem_Malloc(sizeof(void *));
23738 if (!_children) {
23739 p->error_indicator = 1;
23740 PyErr_NoMemory();
23741 D(p->level--);
23742 return NULL;
23743 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023744 Py_ssize_t _children_capacity = 1;
23745 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023746 { // except_block
23747 if (p->error_indicator) {
23748 D(p->level--);
23749 return NULL;
23750 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023751 D(fprintf(stderr, "%*c> _loop1_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023752 excepthandler_ty except_block_var;
23753 while (
23754 (except_block_var = except_block_rule(p)) // except_block
23755 )
23756 {
23757 _res = except_block_var;
23758 if (_n == _children_capacity) {
23759 _children_capacity *= 2;
23760 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23761 if (!_new_children) {
23762 p->error_indicator = 1;
23763 PyErr_NoMemory();
23764 D(p->level--);
23765 return NULL;
23766 }
23767 _children = _new_children;
23768 }
23769 _children[_n++] = _res;
23770 _mark = p->mark;
23771 }
23772 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023773 D(fprintf(stderr, "%*c%s _loop1_48[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
23775 }
23776 if (_n == 0 || p->error_indicator) {
23777 PyMem_Free(_children);
23778 D(p->level--);
23779 return NULL;
23780 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023781 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023782 if (!_seq) {
23783 PyMem_Free(_children);
23784 p->error_indicator = 1;
23785 PyErr_NoMemory();
23786 D(p->level--);
23787 return NULL;
23788 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010023789 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023790 PyMem_Free(_children);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023791 _PyPegen_insert_memo(p, _start_mark, _loop1_48_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023792 D(p->level--);
23793 return _seq;
23794}
23795
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023796// _tmp_49: 'as' NAME
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023797static void *
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023798_tmp_49_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023799{
23800 D(p->level++);
23801 if (p->error_indicator) {
23802 D(p->level--);
23803 return NULL;
23804 }
23805 void * _res = NULL;
23806 int _mark = p->mark;
23807 { // 'as' NAME
23808 if (p->error_indicator) {
23809 D(p->level--);
23810 return NULL;
23811 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023812 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023813 Token * _keyword;
23814 expr_ty z;
23815 if (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023816 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023817 &&
23818 (z = _PyPegen_name_token(p)) // NAME
23819 )
23820 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023821 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 +010023822 _res = z;
23823 if (_res == NULL && PyErr_Occurred()) {
23824 p->error_indicator = 1;
23825 D(p->level--);
23826 return NULL;
23827 }
23828 goto done;
23829 }
23830 p->mark = _mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030023831 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010023832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
23833 }
23834 _res = NULL;
23835 done:
23836 D(p->level--);
23837 return _res;
23838}
23839
Brandt Bucher145bf262021-02-26 14:51:55 -080023840// _loop1_50: case_block
23841static asdl_seq *
23842_loop1_50_rule(Parser *p)
23843{
23844 D(p->level++);
23845 if (p->error_indicator) {
23846 D(p->level--);
23847 return NULL;
23848 }
23849 void *_res = NULL;
23850 int _mark = p->mark;
23851 int _start_mark = p->mark;
23852 void **_children = PyMem_Malloc(sizeof(void *));
23853 if (!_children) {
23854 p->error_indicator = 1;
23855 PyErr_NoMemory();
23856 D(p->level--);
23857 return NULL;
23858 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023859 Py_ssize_t _children_capacity = 1;
23860 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023861 { // case_block
23862 if (p->error_indicator) {
23863 D(p->level--);
23864 return NULL;
23865 }
23866 D(fprintf(stderr, "%*c> _loop1_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "case_block"));
23867 match_case_ty case_block_var;
23868 while (
23869 (case_block_var = case_block_rule(p)) // case_block
23870 )
23871 {
23872 _res = case_block_var;
23873 if (_n == _children_capacity) {
23874 _children_capacity *= 2;
23875 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23876 if (!_new_children) {
23877 p->error_indicator = 1;
23878 PyErr_NoMemory();
23879 D(p->level--);
23880 return NULL;
23881 }
23882 _children = _new_children;
23883 }
23884 _children[_n++] = _res;
23885 _mark = p->mark;
23886 }
23887 p->mark = _mark;
23888 D(fprintf(stderr, "%*c%s _loop1_50[%d-%d]: %s failed!\n", p->level, ' ',
23889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "case_block"));
23890 }
23891 if (_n == 0 || p->error_indicator) {
23892 PyMem_Free(_children);
23893 D(p->level--);
23894 return NULL;
23895 }
23896 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23897 if (!_seq) {
23898 PyMem_Free(_children);
23899 p->error_indicator = 1;
23900 PyErr_NoMemory();
23901 D(p->level--);
23902 return NULL;
23903 }
23904 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23905 PyMem_Free(_children);
23906 _PyPegen_insert_memo(p, _start_mark, _loop1_50_type, _seq);
23907 D(p->level--);
23908 return _seq;
23909}
23910
23911// _loop0_52: '|' closed_pattern
23912static asdl_seq *
23913_loop0_52_rule(Parser *p)
23914{
23915 D(p->level++);
23916 if (p->error_indicator) {
23917 D(p->level--);
23918 return NULL;
23919 }
23920 void *_res = NULL;
23921 int _mark = p->mark;
23922 int _start_mark = p->mark;
23923 void **_children = PyMem_Malloc(sizeof(void *));
23924 if (!_children) {
23925 p->error_indicator = 1;
23926 PyErr_NoMemory();
23927 D(p->level--);
23928 return NULL;
23929 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010023930 Py_ssize_t _children_capacity = 1;
23931 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080023932 { // '|' closed_pattern
23933 if (p->error_indicator) {
23934 D(p->level--);
23935 return NULL;
23936 }
23937 D(fprintf(stderr, "%*c> _loop0_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|' closed_pattern"));
23938 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100023939 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080023940 while (
23941 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
23942 &&
23943 (elem = closed_pattern_rule(p)) // closed_pattern
23944 )
23945 {
23946 _res = elem;
23947 if (_res == NULL && PyErr_Occurred()) {
23948 p->error_indicator = 1;
23949 PyMem_Free(_children);
23950 D(p->level--);
23951 return NULL;
23952 }
23953 if (_n == _children_capacity) {
23954 _children_capacity *= 2;
23955 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23956 if (!_new_children) {
23957 p->error_indicator = 1;
23958 PyErr_NoMemory();
23959 D(p->level--);
23960 return NULL;
23961 }
23962 _children = _new_children;
23963 }
23964 _children[_n++] = _res;
23965 _mark = p->mark;
23966 }
23967 p->mark = _mark;
23968 D(fprintf(stderr, "%*c%s _loop0_52[%d-%d]: %s failed!\n", p->level, ' ',
23969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|' closed_pattern"));
23970 }
23971 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
23972 if (!_seq) {
23973 PyMem_Free(_children);
23974 p->error_indicator = 1;
23975 PyErr_NoMemory();
23976 D(p->level--);
23977 return NULL;
23978 }
23979 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
23980 PyMem_Free(_children);
23981 _PyPegen_insert_memo(p, _start_mark, _loop0_52_type, _seq);
23982 D(p->level--);
23983 return _seq;
23984}
23985
23986// _gather_51: closed_pattern _loop0_52
23987static asdl_seq *
23988_gather_51_rule(Parser *p)
23989{
23990 D(p->level++);
23991 if (p->error_indicator) {
23992 D(p->level--);
23993 return NULL;
23994 }
23995 asdl_seq * _res = NULL;
23996 int _mark = p->mark;
23997 { // closed_pattern _loop0_52
23998 if (p->error_indicator) {
23999 D(p->level--);
24000 return NULL;
24001 }
24002 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 +100024003 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024004 asdl_seq * seq;
24005 if (
24006 (elem = closed_pattern_rule(p)) // closed_pattern
24007 &&
24008 (seq = _loop0_52_rule(p)) // _loop0_52
24009 )
24010 {
24011 D(fprintf(stderr, "%*c+ _gather_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "closed_pattern _loop0_52"));
24012 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24013 goto done;
24014 }
24015 p->mark = _mark;
24016 D(fprintf(stderr, "%*c%s _gather_51[%d-%d]: %s failed!\n", p->level, ' ',
24017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "closed_pattern _loop0_52"));
24018 }
24019 _res = NULL;
24020 done:
24021 D(p->level--);
24022 return _res;
24023}
24024
24025// _tmp_53: '+' | '-'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024026static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024027_tmp_53_rule(Parser *p)
24028{
24029 D(p->level++);
24030 if (p->error_indicator) {
24031 D(p->level--);
24032 return NULL;
24033 }
24034 void * _res = NULL;
24035 int _mark = p->mark;
24036 { // '+'
24037 if (p->error_indicator) {
24038 D(p->level--);
24039 return NULL;
24040 }
24041 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
24042 Token * _literal;
24043 if (
24044 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
24045 )
24046 {
24047 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
24048 _res = _literal;
24049 goto done;
24050 }
24051 p->mark = _mark;
24052 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24053 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
24054 }
24055 { // '-'
24056 if (p->error_indicator) {
24057 D(p->level--);
24058 return NULL;
24059 }
24060 D(fprintf(stderr, "%*c> _tmp_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
24061 Token * _literal;
24062 if (
24063 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
24064 )
24065 {
24066 D(fprintf(stderr, "%*c+ _tmp_53[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
24067 _res = _literal;
24068 goto done;
24069 }
24070 p->mark = _mark;
24071 D(fprintf(stderr, "%*c%s _tmp_53[%d-%d]: %s failed!\n", p->level, ' ',
24072 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
24073 }
24074 _res = NULL;
24075 done:
24076 D(p->level--);
24077 return _res;
24078}
24079
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024080// _tmp_54: '+' | '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024081static void *
24082_tmp_54_rule(Parser *p)
24083{
24084 D(p->level++);
24085 if (p->error_indicator) {
24086 D(p->level--);
24087 return NULL;
24088 }
24089 void * _res = NULL;
24090 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024091 { // '+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024092 if (p->error_indicator) {
24093 D(p->level--);
24094 return NULL;
24095 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024096 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024097 Token * _literal;
24098 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024099 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Brandt Bucher145bf262021-02-26 14:51:55 -080024100 )
24101 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024102 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024103 _res = _literal;
24104 goto done;
24105 }
24106 p->mark = _mark;
24107 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024109 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024110 { // '-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024111 if (p->error_indicator) {
24112 D(p->level--);
24113 return NULL;
24114 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024115 D(fprintf(stderr, "%*c> _tmp_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024116 Token * _literal;
24117 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024118 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Brandt Bucher145bf262021-02-26 14:51:55 -080024119 )
24120 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024121 D(fprintf(stderr, "%*c+ _tmp_54[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024122 _res = _literal;
24123 goto done;
24124 }
24125 p->mark = _mark;
24126 D(fprintf(stderr, "%*c%s _tmp_54[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024128 }
24129 _res = NULL;
24130 done:
24131 D(p->level--);
24132 return _res;
24133}
24134
24135// _tmp_55: '.' | '(' | '='
24136static void *
24137_tmp_55_rule(Parser *p)
24138{
24139 D(p->level++);
24140 if (p->error_indicator) {
24141 D(p->level--);
24142 return NULL;
24143 }
24144 void * _res = NULL;
24145 int _mark = p->mark;
24146 { // '.'
24147 if (p->error_indicator) {
24148 D(p->level--);
24149 return NULL;
24150 }
24151 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24152 Token * _literal;
24153 if (
24154 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24155 )
24156 {
24157 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24158 _res = _literal;
24159 goto done;
24160 }
24161 p->mark = _mark;
24162 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24164 }
24165 { // '('
24166 if (p->error_indicator) {
24167 D(p->level--);
24168 return NULL;
24169 }
24170 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24171 Token * _literal;
24172 if (
24173 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24174 )
24175 {
24176 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24177 _res = _literal;
24178 goto done;
24179 }
24180 p->mark = _mark;
24181 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24183 }
24184 { // '='
24185 if (p->error_indicator) {
24186 D(p->level--);
24187 return NULL;
24188 }
24189 D(fprintf(stderr, "%*c> _tmp_55[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24190 Token * _literal;
24191 if (
24192 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24193 )
24194 {
24195 D(fprintf(stderr, "%*c+ _tmp_55[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24196 _res = _literal;
24197 goto done;
24198 }
24199 p->mark = _mark;
24200 D(fprintf(stderr, "%*c%s _tmp_55[%d-%d]: %s failed!\n", p->level, ' ',
24201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24202 }
24203 _res = NULL;
24204 done:
24205 D(p->level--);
24206 return _res;
24207}
24208
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024209// _tmp_56: '.' | '(' | '='
24210static void *
24211_tmp_56_rule(Parser *p)
24212{
24213 D(p->level++);
24214 if (p->error_indicator) {
24215 D(p->level--);
24216 return NULL;
24217 }
24218 void * _res = NULL;
24219 int _mark = p->mark;
24220 { // '.'
24221 if (p->error_indicator) {
24222 D(p->level--);
24223 return NULL;
24224 }
24225 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
24226 Token * _literal;
24227 if (
24228 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
24229 )
24230 {
24231 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
24232 _res = _literal;
24233 goto done;
24234 }
24235 p->mark = _mark;
24236 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
24238 }
24239 { // '('
24240 if (p->error_indicator) {
24241 D(p->level--);
24242 return NULL;
24243 }
24244 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
24245 Token * _literal;
24246 if (
24247 (_literal = _PyPegen_expect_token(p, 7)) // token='('
24248 )
24249 {
24250 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
24251 _res = _literal;
24252 goto done;
24253 }
24254 p->mark = _mark;
24255 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
24257 }
24258 { // '='
24259 if (p->error_indicator) {
24260 D(p->level--);
24261 return NULL;
24262 }
24263 D(fprintf(stderr, "%*c> _tmp_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
24264 Token * _literal;
24265 if (
24266 (_literal = _PyPegen_expect_token(p, 22)) // token='='
24267 )
24268 {
24269 D(fprintf(stderr, "%*c+ _tmp_56[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
24270 _res = _literal;
24271 goto done;
24272 }
24273 p->mark = _mark;
24274 D(fprintf(stderr, "%*c%s _tmp_56[%d-%d]: %s failed!\n", p->level, ' ',
24275 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
24276 }
24277 _res = NULL;
24278 done:
24279 D(p->level--);
24280 return _res;
24281}
24282
24283// _loop0_58: ',' maybe_star_pattern
Brandt Bucher145bf262021-02-26 14:51:55 -080024284static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024285_loop0_58_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024286{
24287 D(p->level++);
24288 if (p->error_indicator) {
24289 D(p->level--);
24290 return NULL;
24291 }
24292 void *_res = NULL;
24293 int _mark = p->mark;
24294 int _start_mark = p->mark;
24295 void **_children = PyMem_Malloc(sizeof(void *));
24296 if (!_children) {
24297 p->error_indicator = 1;
24298 PyErr_NoMemory();
24299 D(p->level--);
24300 return NULL;
24301 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024302 Py_ssize_t _children_capacity = 1;
24303 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024304 { // ',' maybe_star_pattern
24305 if (p->error_indicator) {
24306 D(p->level--);
24307 return NULL;
24308 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024309 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 -080024310 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024311 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024312 while (
24313 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24314 &&
24315 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24316 )
24317 {
24318 _res = elem;
24319 if (_res == NULL && PyErr_Occurred()) {
24320 p->error_indicator = 1;
24321 PyMem_Free(_children);
24322 D(p->level--);
24323 return NULL;
24324 }
24325 if (_n == _children_capacity) {
24326 _children_capacity *= 2;
24327 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24328 if (!_new_children) {
24329 p->error_indicator = 1;
24330 PyErr_NoMemory();
24331 D(p->level--);
24332 return NULL;
24333 }
24334 _children = _new_children;
24335 }
24336 _children[_n++] = _res;
24337 _mark = p->mark;
24338 }
24339 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024340 D(fprintf(stderr, "%*c%s _loop0_58[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080024341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' maybe_star_pattern"));
24342 }
24343 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24344 if (!_seq) {
24345 PyMem_Free(_children);
24346 p->error_indicator = 1;
24347 PyErr_NoMemory();
24348 D(p->level--);
24349 return NULL;
24350 }
24351 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24352 PyMem_Free(_children);
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024353 _PyPegen_insert_memo(p, _start_mark, _loop0_58_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080024354 D(p->level--);
24355 return _seq;
24356}
24357
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024358// _gather_57: maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024359static asdl_seq *
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024360_gather_57_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080024361{
24362 D(p->level++);
24363 if (p->error_indicator) {
24364 D(p->level--);
24365 return NULL;
24366 }
24367 asdl_seq * _res = NULL;
24368 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024369 { // maybe_star_pattern _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024370 if (p->error_indicator) {
24371 D(p->level--);
24372 return NULL;
24373 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024374 D(fprintf(stderr, "%*c> _gather_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "maybe_star_pattern _loop0_58"));
24375 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024376 asdl_seq * seq;
24377 if (
24378 (elem = maybe_star_pattern_rule(p)) // maybe_star_pattern
24379 &&
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024380 (seq = _loop0_58_rule(p)) // _loop0_58
Brandt Bucher145bf262021-02-26 14:51:55 -080024381 )
24382 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024383 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 -080024384 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24385 goto done;
24386 }
24387 p->mark = _mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024388 D(fprintf(stderr, "%*c%s _gather_57[%d-%d]: %s failed!\n", p->level, ' ',
24389 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "maybe_star_pattern _loop0_58"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024390 }
24391 _res = NULL;
24392 done:
24393 D(p->level--);
24394 return _res;
24395}
24396
24397// _loop0_60: ',' key_value_pattern
24398static asdl_seq *
24399_loop0_60_rule(Parser *p)
24400{
24401 D(p->level++);
24402 if (p->error_indicator) {
24403 D(p->level--);
24404 return NULL;
24405 }
24406 void *_res = NULL;
24407 int _mark = p->mark;
24408 int _start_mark = p->mark;
24409 void **_children = PyMem_Malloc(sizeof(void *));
24410 if (!_children) {
24411 p->error_indicator = 1;
24412 PyErr_NoMemory();
24413 D(p->level--);
24414 return NULL;
24415 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024416 Py_ssize_t _children_capacity = 1;
24417 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024418 { // ',' key_value_pattern
24419 if (p->error_indicator) {
24420 D(p->level--);
24421 return NULL;
24422 }
24423 D(fprintf(stderr, "%*c> _loop0_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' key_value_pattern"));
24424 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024425 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024426 while (
24427 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24428 &&
24429 (elem = key_value_pattern_rule(p)) // key_value_pattern
24430 )
24431 {
24432 _res = elem;
24433 if (_res == NULL && PyErr_Occurred()) {
24434 p->error_indicator = 1;
24435 PyMem_Free(_children);
24436 D(p->level--);
24437 return NULL;
24438 }
24439 if (_n == _children_capacity) {
24440 _children_capacity *= 2;
24441 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24442 if (!_new_children) {
24443 p->error_indicator = 1;
24444 PyErr_NoMemory();
24445 D(p->level--);
24446 return NULL;
24447 }
24448 _children = _new_children;
24449 }
24450 _children[_n++] = _res;
24451 _mark = p->mark;
24452 }
24453 p->mark = _mark;
24454 D(fprintf(stderr, "%*c%s _loop0_60[%d-%d]: %s failed!\n", p->level, ' ',
24455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' key_value_pattern"));
24456 }
24457 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24458 if (!_seq) {
24459 PyMem_Free(_children);
24460 p->error_indicator = 1;
24461 PyErr_NoMemory();
24462 D(p->level--);
24463 return NULL;
24464 }
24465 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24466 PyMem_Free(_children);
24467 _PyPegen_insert_memo(p, _start_mark, _loop0_60_type, _seq);
24468 D(p->level--);
24469 return _seq;
24470}
24471
24472// _gather_59: key_value_pattern _loop0_60
24473static asdl_seq *
24474_gather_59_rule(Parser *p)
24475{
24476 D(p->level++);
24477 if (p->error_indicator) {
24478 D(p->level--);
24479 return NULL;
24480 }
24481 asdl_seq * _res = NULL;
24482 int _mark = p->mark;
24483 { // key_value_pattern _loop0_60
24484 if (p->error_indicator) {
24485 D(p->level--);
24486 return NULL;
24487 }
24488 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 +100024489 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024490 asdl_seq * seq;
24491 if (
24492 (elem = key_value_pattern_rule(p)) // key_value_pattern
24493 &&
24494 (seq = _loop0_60_rule(p)) // _loop0_60
24495 )
24496 {
24497 D(fprintf(stderr, "%*c+ _gather_59[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "key_value_pattern _loop0_60"));
24498 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24499 goto done;
24500 }
24501 p->mark = _mark;
24502 D(fprintf(stderr, "%*c%s _gather_59[%d-%d]: %s failed!\n", p->level, ' ',
24503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "key_value_pattern _loop0_60"));
24504 }
24505 _res = NULL;
24506 done:
24507 D(p->level--);
24508 return _res;
24509}
24510
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024511// _tmp_61: literal_expr | attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024512static void *
24513_tmp_61_rule(Parser *p)
24514{
24515 D(p->level++);
24516 if (p->error_indicator) {
24517 D(p->level--);
24518 return NULL;
24519 }
24520 void * _res = NULL;
24521 int _mark = p->mark;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024522 { // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024523 if (p->error_indicator) {
24524 D(p->level--);
24525 return NULL;
24526 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024527 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24528 expr_ty literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024529 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024530 (literal_expr_var = literal_expr_rule(p)) // literal_expr
Brandt Bucher145bf262021-02-26 14:51:55 -080024531 )
24532 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024533 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "literal_expr"));
24534 _res = literal_expr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024535 goto done;
24536 }
24537 p->mark = _mark;
24538 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024540 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024541 { // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024542 if (p->error_indicator) {
24543 D(p->level--);
24544 return NULL;
24545 }
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024546 D(fprintf(stderr, "%*c> _tmp_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "attr"));
24547 expr_ty attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024548 if (
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024549 (attr_var = attr_rule(p)) // attr
Brandt Bucher145bf262021-02-26 14:51:55 -080024550 )
24551 {
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024552 D(fprintf(stderr, "%*c+ _tmp_61[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "attr"));
24553 _res = attr_var;
Brandt Bucher145bf262021-02-26 14:51:55 -080024554 goto done;
24555 }
24556 p->mark = _mark;
24557 D(fprintf(stderr, "%*c%s _tmp_61[%d-%d]: %s failed!\n", p->level, ' ',
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080024559 }
24560 _res = NULL;
24561 done:
24562 D(p->level--);
24563 return _res;
24564}
24565
24566// _loop0_63: ',' pattern
24567static asdl_seq *
24568_loop0_63_rule(Parser *p)
24569{
24570 D(p->level++);
24571 if (p->error_indicator) {
24572 D(p->level--);
24573 return NULL;
24574 }
24575 void *_res = NULL;
24576 int _mark = p->mark;
24577 int _start_mark = p->mark;
24578 void **_children = PyMem_Malloc(sizeof(void *));
24579 if (!_children) {
24580 p->error_indicator = 1;
24581 PyErr_NoMemory();
24582 D(p->level--);
24583 return NULL;
24584 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024585 Py_ssize_t _children_capacity = 1;
24586 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024587 { // ',' pattern
24588 if (p->error_indicator) {
24589 D(p->level--);
24590 return NULL;
24591 }
24592 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' pattern"));
24593 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024594 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024595 while (
24596 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24597 &&
24598 (elem = pattern_rule(p)) // pattern
24599 )
24600 {
24601 _res = elem;
24602 if (_res == NULL && PyErr_Occurred()) {
24603 p->error_indicator = 1;
24604 PyMem_Free(_children);
24605 D(p->level--);
24606 return NULL;
24607 }
24608 if (_n == _children_capacity) {
24609 _children_capacity *= 2;
24610 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24611 if (!_new_children) {
24612 p->error_indicator = 1;
24613 PyErr_NoMemory();
24614 D(p->level--);
24615 return NULL;
24616 }
24617 _children = _new_children;
24618 }
24619 _children[_n++] = _res;
24620 _mark = p->mark;
24621 }
24622 p->mark = _mark;
24623 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
24624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' pattern"));
24625 }
24626 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24627 if (!_seq) {
24628 PyMem_Free(_children);
24629 p->error_indicator = 1;
24630 PyErr_NoMemory();
24631 D(p->level--);
24632 return NULL;
24633 }
24634 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24635 PyMem_Free(_children);
24636 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
24637 D(p->level--);
24638 return _seq;
24639}
24640
24641// _gather_62: pattern _loop0_63
24642static asdl_seq *
24643_gather_62_rule(Parser *p)
24644{
24645 D(p->level++);
24646 if (p->error_indicator) {
24647 D(p->level--);
24648 return NULL;
24649 }
24650 asdl_seq * _res = NULL;
24651 int _mark = p->mark;
24652 { // pattern _loop0_63
24653 if (p->error_indicator) {
24654 D(p->level--);
24655 return NULL;
24656 }
24657 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 +100024658 pattern_ty elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024659 asdl_seq * seq;
24660 if (
24661 (elem = pattern_rule(p)) // pattern
24662 &&
24663 (seq = _loop0_63_rule(p)) // _loop0_63
24664 )
24665 {
24666 D(fprintf(stderr, "%*c+ _gather_62[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pattern _loop0_63"));
24667 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24668 goto done;
24669 }
24670 p->mark = _mark;
24671 D(fprintf(stderr, "%*c%s _gather_62[%d-%d]: %s failed!\n", p->level, ' ',
24672 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern _loop0_63"));
24673 }
24674 _res = NULL;
24675 done:
24676 D(p->level--);
24677 return _res;
24678}
24679
24680// _loop0_65: ',' keyword_pattern
24681static asdl_seq *
24682_loop0_65_rule(Parser *p)
24683{
24684 D(p->level++);
24685 if (p->error_indicator) {
24686 D(p->level--);
24687 return NULL;
24688 }
24689 void *_res = NULL;
24690 int _mark = p->mark;
24691 int _start_mark = p->mark;
24692 void **_children = PyMem_Malloc(sizeof(void *));
24693 if (!_children) {
24694 p->error_indicator = 1;
24695 PyErr_NoMemory();
24696 D(p->level--);
24697 return NULL;
24698 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024699 Py_ssize_t _children_capacity = 1;
24700 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080024701 { // ',' keyword_pattern
24702 if (p->error_indicator) {
24703 D(p->level--);
24704 return NULL;
24705 }
24706 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' keyword_pattern"));
24707 Token * _literal;
Nick Coghlan1e7b8582021-04-29 15:58:44 +100024708 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024709 while (
24710 (_literal = _PyPegen_expect_token(p, 12)) // token=','
24711 &&
24712 (elem = keyword_pattern_rule(p)) // keyword_pattern
24713 )
24714 {
24715 _res = elem;
24716 if (_res == NULL && PyErr_Occurred()) {
24717 p->error_indicator = 1;
24718 PyMem_Free(_children);
24719 D(p->level--);
24720 return NULL;
24721 }
24722 if (_n == _children_capacity) {
24723 _children_capacity *= 2;
24724 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
24725 if (!_new_children) {
24726 p->error_indicator = 1;
24727 PyErr_NoMemory();
24728 D(p->level--);
24729 return NULL;
24730 }
24731 _children = _new_children;
24732 }
24733 _children[_n++] = _res;
24734 _mark = p->mark;
24735 }
24736 p->mark = _mark;
24737 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
24738 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' keyword_pattern"));
24739 }
24740 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
24741 if (!_seq) {
24742 PyMem_Free(_children);
24743 p->error_indicator = 1;
24744 PyErr_NoMemory();
24745 D(p->level--);
24746 return NULL;
24747 }
24748 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
24749 PyMem_Free(_children);
24750 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
24751 D(p->level--);
24752 return _seq;
24753}
24754
24755// _gather_64: keyword_pattern _loop0_65
24756static asdl_seq *
24757_gather_64_rule(Parser *p)
24758{
24759 D(p->level++);
24760 if (p->error_indicator) {
24761 D(p->level--);
24762 return NULL;
24763 }
24764 asdl_seq * _res = NULL;
24765 int _mark = p->mark;
24766 { // keyword_pattern _loop0_65
24767 if (p->error_indicator) {
24768 D(p->level--);
24769 return NULL;
24770 }
24771 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 +100024772 KeyPatternPair* elem;
Brandt Bucher145bf262021-02-26 14:51:55 -080024773 asdl_seq * seq;
24774 if (
24775 (elem = keyword_pattern_rule(p)) // keyword_pattern
24776 &&
24777 (seq = _loop0_65_rule(p)) // _loop0_65
24778 )
24779 {
24780 D(fprintf(stderr, "%*c+ _gather_64[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "keyword_pattern _loop0_65"));
24781 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
24782 goto done;
24783 }
24784 p->mark = _mark;
24785 D(fprintf(stderr, "%*c%s _gather_64[%d-%d]: %s failed!\n", p->level, ' ',
24786 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "keyword_pattern _loop0_65"));
24787 }
24788 _res = NULL;
24789 done:
24790 D(p->level--);
24791 return _res;
24792}
24793
24794// _tmp_66: 'from' expression
24795static void *
24796_tmp_66_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024797{
24798 D(p->level++);
24799 if (p->error_indicator) {
24800 D(p->level--);
24801 return NULL;
24802 }
24803 void * _res = NULL;
24804 int _mark = p->mark;
24805 { // 'from' expression
24806 if (p->error_indicator) {
24807 D(p->level--);
24808 return NULL;
24809 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024810 D(fprintf(stderr, "%*c> _tmp_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024811 Token * _keyword;
24812 expr_ty z;
24813 if (
24814 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
24815 &&
24816 (z = expression_rule(p)) // expression
24817 )
24818 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024819 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 +010024820 _res = z;
24821 if (_res == NULL && PyErr_Occurred()) {
24822 p->error_indicator = 1;
24823 D(p->level--);
24824 return NULL;
24825 }
24826 goto done;
24827 }
24828 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024829 D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024830 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024831 }
24832 _res = NULL;
24833 done:
24834 D(p->level--);
24835 return _res;
24836}
24837
Brandt Bucher145bf262021-02-26 14:51:55 -080024838// _tmp_67: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024839static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024840_tmp_67_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024841{
24842 D(p->level++);
24843 if (p->error_indicator) {
24844 D(p->level--);
24845 return NULL;
24846 }
24847 void * _res = NULL;
24848 int _mark = p->mark;
24849 { // '->' expression
24850 if (p->error_indicator) {
24851 D(p->level--);
24852 return NULL;
24853 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024854 D(fprintf(stderr, "%*c> _tmp_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024855 Token * _literal;
24856 expr_ty z;
24857 if (
24858 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24859 &&
24860 (z = expression_rule(p)) // expression
24861 )
24862 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024863 D(fprintf(stderr, "%*c+ _tmp_67[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024864 _res = z;
24865 if (_res == NULL && PyErr_Occurred()) {
24866 p->error_indicator = 1;
24867 D(p->level--);
24868 return NULL;
24869 }
24870 goto done;
24871 }
24872 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024873 D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24875 }
24876 _res = NULL;
24877 done:
24878 D(p->level--);
24879 return _res;
24880}
24881
Brandt Bucher145bf262021-02-26 14:51:55 -080024882// _tmp_68: '->' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024883static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024884_tmp_68_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024885{
24886 D(p->level++);
24887 if (p->error_indicator) {
24888 D(p->level--);
24889 return NULL;
24890 }
24891 void * _res = NULL;
24892 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024893 { // '->' expression
24894 if (p->error_indicator) {
24895 D(p->level--);
24896 return NULL;
24897 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024898 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024899 Token * _literal;
24900 expr_ty z;
24901 if (
24902 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
24903 &&
24904 (z = expression_rule(p)) // expression
24905 )
24906 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024907 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024908 _res = z;
24909 if (_res == NULL && PyErr_Occurred()) {
24910 p->error_indicator = 1;
24911 D(p->level--);
24912 return NULL;
24913 }
24914 goto done;
24915 }
24916 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024917 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
24919 }
24920 _res = NULL;
24921 done:
24922 D(p->level--);
24923 return _res;
24924}
24925
Brandt Bucher145bf262021-02-26 14:51:55 -080024926// _tmp_69: NEWLINE INDENT
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024927static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080024928_tmp_69_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030024929{
24930 D(p->level++);
24931 if (p->error_indicator) {
24932 D(p->level--);
24933 return NULL;
24934 }
24935 void * _res = NULL;
24936 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024937 { // NEWLINE INDENT
24938 if (p->error_indicator) {
24939 D(p->level--);
24940 return NULL;
24941 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024942 D(fprintf(stderr, "%*c> _tmp_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024943 Token * indent_var;
24944 Token * newline_var;
24945 if (
24946 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
24947 &&
24948 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
24949 )
24950 {
Brandt Bucher145bf262021-02-26 14:51:55 -080024951 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 +010024952 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
24953 goto done;
24954 }
24955 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080024956 D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
24958 }
24959 _res = NULL;
24960 done:
24961 D(p->level--);
24962 return _res;
24963}
24964
Brandt Bucher145bf262021-02-26 14:51:55 -080024965// _loop0_70: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024966static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080024967_loop0_70_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024968{
24969 D(p->level++);
24970 if (p->error_indicator) {
24971 D(p->level--);
24972 return NULL;
24973 }
24974 void *_res = NULL;
24975 int _mark = p->mark;
24976 int _start_mark = p->mark;
24977 void **_children = PyMem_Malloc(sizeof(void *));
24978 if (!_children) {
24979 p->error_indicator = 1;
24980 PyErr_NoMemory();
24981 D(p->level--);
24982 return NULL;
24983 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010024984 Py_ssize_t _children_capacity = 1;
24985 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010024986 { // param_no_default
24987 if (p->error_indicator) {
24988 D(p->level--);
24989 return NULL;
24990 }
Brandt Bucher145bf262021-02-26 14:51:55 -080024991 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 +010024992 arg_ty param_no_default_var;
24993 while (
24994 (param_no_default_var = param_no_default_rule(p)) // param_no_default
24995 )
24996 {
24997 _res = param_no_default_var;
24998 if (_n == _children_capacity) {
24999 _children_capacity *= 2;
25000 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25001 if (!_new_children) {
25002 p->error_indicator = 1;
25003 PyErr_NoMemory();
25004 D(p->level--);
25005 return NULL;
25006 }
25007 _children = _new_children;
25008 }
25009 _children[_n++] = _res;
25010 _mark = p->mark;
25011 }
25012 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025013 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025015 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025016 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025017 if (!_seq) {
25018 PyMem_Free(_children);
25019 p->error_indicator = 1;
25020 PyErr_NoMemory();
25021 D(p->level--);
25022 return NULL;
25023 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025024 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025025 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025026 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025027 D(p->level--);
25028 return _seq;
25029}
25030
Brandt Bucher145bf262021-02-26 14:51:55 -080025031// _loop0_71: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025032static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025033_loop0_71_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025034{
25035 D(p->level++);
25036 if (p->error_indicator) {
25037 D(p->level--);
25038 return NULL;
25039 }
25040 void *_res = NULL;
25041 int _mark = p->mark;
25042 int _start_mark = p->mark;
25043 void **_children = PyMem_Malloc(sizeof(void *));
25044 if (!_children) {
25045 p->error_indicator = 1;
25046 PyErr_NoMemory();
25047 D(p->level--);
25048 return NULL;
25049 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025050 Py_ssize_t _children_capacity = 1;
25051 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025052 { // param_with_default
25053 if (p->error_indicator) {
25054 D(p->level--);
25055 return NULL;
25056 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025057 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 +010025058 NameDefaultPair* param_with_default_var;
25059 while (
25060 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25061 )
25062 {
25063 _res = param_with_default_var;
25064 if (_n == _children_capacity) {
25065 _children_capacity *= 2;
25066 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25067 if (!_new_children) {
25068 p->error_indicator = 1;
25069 PyErr_NoMemory();
25070 D(p->level--);
25071 return NULL;
25072 }
25073 _children = _new_children;
25074 }
25075 _children[_n++] = _res;
25076 _mark = p->mark;
25077 }
25078 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025079 D(fprintf(stderr, "%*c%s _loop0_71[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25081 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025082 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025083 if (!_seq) {
25084 PyMem_Free(_children);
25085 p->error_indicator = 1;
25086 PyErr_NoMemory();
25087 D(p->level--);
25088 return NULL;
25089 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025090 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025091 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025092 _PyPegen_insert_memo(p, _start_mark, _loop0_71_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025093 D(p->level--);
25094 return _seq;
25095}
25096
Brandt Bucher145bf262021-02-26 14:51:55 -080025097// _loop0_72: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025098static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025099_loop0_72_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025100{
25101 D(p->level++);
25102 if (p->error_indicator) {
25103 D(p->level--);
25104 return NULL;
25105 }
25106 void *_res = NULL;
25107 int _mark = p->mark;
25108 int _start_mark = p->mark;
25109 void **_children = PyMem_Malloc(sizeof(void *));
25110 if (!_children) {
25111 p->error_indicator = 1;
25112 PyErr_NoMemory();
25113 D(p->level--);
25114 return NULL;
25115 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025116 Py_ssize_t _children_capacity = 1;
25117 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025118 { // param_with_default
25119 if (p->error_indicator) {
25120 D(p->level--);
25121 return NULL;
25122 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025123 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 +030025124 NameDefaultPair* param_with_default_var;
25125 while (
25126 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25127 )
25128 {
25129 _res = param_with_default_var;
25130 if (_n == _children_capacity) {
25131 _children_capacity *= 2;
25132 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25133 if (!_new_children) {
25134 p->error_indicator = 1;
25135 PyErr_NoMemory();
25136 D(p->level--);
25137 return NULL;
25138 }
25139 _children = _new_children;
25140 }
25141 _children[_n++] = _res;
25142 _mark = p->mark;
25143 }
25144 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025145 D(fprintf(stderr, "%*c%s _loop0_72[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25147 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025148 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025149 if (!_seq) {
25150 PyMem_Free(_children);
25151 p->error_indicator = 1;
25152 PyErr_NoMemory();
25153 D(p->level--);
25154 return NULL;
25155 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025156 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025157 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025158 _PyPegen_insert_memo(p, _start_mark, _loop0_72_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025159 D(p->level--);
25160 return _seq;
25161}
25162
Brandt Bucher145bf262021-02-26 14:51:55 -080025163// _loop1_73: param_no_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025164static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025165_loop1_73_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025166{
25167 D(p->level++);
25168 if (p->error_indicator) {
25169 D(p->level--);
25170 return NULL;
25171 }
25172 void *_res = NULL;
25173 int _mark = p->mark;
25174 int _start_mark = p->mark;
25175 void **_children = PyMem_Malloc(sizeof(void *));
25176 if (!_children) {
25177 p->error_indicator = 1;
25178 PyErr_NoMemory();
25179 D(p->level--);
25180 return NULL;
25181 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025182 Py_ssize_t _children_capacity = 1;
25183 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025184 { // param_no_default
25185 if (p->error_indicator) {
25186 D(p->level--);
25187 return NULL;
25188 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025189 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 +010025190 arg_ty param_no_default_var;
25191 while (
25192 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25193 )
25194 {
25195 _res = param_no_default_var;
25196 if (_n == _children_capacity) {
25197 _children_capacity *= 2;
25198 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25199 if (!_new_children) {
25200 p->error_indicator = 1;
25201 PyErr_NoMemory();
25202 D(p->level--);
25203 return NULL;
25204 }
25205 _children = _new_children;
25206 }
25207 _children[_n++] = _res;
25208 _mark = p->mark;
25209 }
25210 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025211 D(fprintf(stderr, "%*c%s _loop1_73[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025212 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25213 }
25214 if (_n == 0 || p->error_indicator) {
25215 PyMem_Free(_children);
25216 D(p->level--);
25217 return NULL;
25218 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025219 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025220 if (!_seq) {
25221 PyMem_Free(_children);
25222 p->error_indicator = 1;
25223 PyErr_NoMemory();
25224 D(p->level--);
25225 return NULL;
25226 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025227 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025228 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025229 _PyPegen_insert_memo(p, _start_mark, _loop1_73_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025230 D(p->level--);
25231 return _seq;
25232}
25233
Brandt Bucher145bf262021-02-26 14:51:55 -080025234// _loop0_74: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025235static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025236_loop0_74_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025237{
25238 D(p->level++);
25239 if (p->error_indicator) {
25240 D(p->level--);
25241 return NULL;
25242 }
25243 void *_res = NULL;
25244 int _mark = p->mark;
25245 int _start_mark = p->mark;
25246 void **_children = PyMem_Malloc(sizeof(void *));
25247 if (!_children) {
25248 p->error_indicator = 1;
25249 PyErr_NoMemory();
25250 D(p->level--);
25251 return NULL;
25252 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025253 Py_ssize_t _children_capacity = 1;
25254 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025255 { // param_with_default
25256 if (p->error_indicator) {
25257 D(p->level--);
25258 return NULL;
25259 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025260 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 +010025261 NameDefaultPair* param_with_default_var;
25262 while (
25263 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25264 )
25265 {
25266 _res = param_with_default_var;
25267 if (_n == _children_capacity) {
25268 _children_capacity *= 2;
25269 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25270 if (!_new_children) {
25271 p->error_indicator = 1;
25272 PyErr_NoMemory();
25273 D(p->level--);
25274 return NULL;
25275 }
25276 _children = _new_children;
25277 }
25278 _children[_n++] = _res;
25279 _mark = p->mark;
25280 }
25281 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025282 D(fprintf(stderr, "%*c%s _loop0_74[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025283 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25284 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025285 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025286 if (!_seq) {
25287 PyMem_Free(_children);
25288 p->error_indicator = 1;
25289 PyErr_NoMemory();
25290 D(p->level--);
25291 return NULL;
25292 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025293 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025294 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025295 _PyPegen_insert_memo(p, _start_mark, _loop0_74_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025296 D(p->level--);
25297 return _seq;
25298}
25299
Brandt Bucher145bf262021-02-26 14:51:55 -080025300// _loop1_75: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025301static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025302_loop1_75_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025303{
25304 D(p->level++);
25305 if (p->error_indicator) {
25306 D(p->level--);
25307 return NULL;
25308 }
25309 void *_res = NULL;
25310 int _mark = p->mark;
25311 int _start_mark = p->mark;
25312 void **_children = PyMem_Malloc(sizeof(void *));
25313 if (!_children) {
25314 p->error_indicator = 1;
25315 PyErr_NoMemory();
25316 D(p->level--);
25317 return NULL;
25318 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025319 Py_ssize_t _children_capacity = 1;
25320 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025321 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025322 if (p->error_indicator) {
25323 D(p->level--);
25324 return NULL;
25325 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025326 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 +030025327 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025328 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025329 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025330 )
25331 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025332 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025333 if (_n == _children_capacity) {
25334 _children_capacity *= 2;
25335 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25336 if (!_new_children) {
25337 p->error_indicator = 1;
25338 PyErr_NoMemory();
25339 D(p->level--);
25340 return NULL;
25341 }
25342 _children = _new_children;
25343 }
25344 _children[_n++] = _res;
25345 _mark = p->mark;
25346 }
25347 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025348 D(fprintf(stderr, "%*c%s _loop1_75[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025350 }
25351 if (_n == 0 || p->error_indicator) {
25352 PyMem_Free(_children);
25353 D(p->level--);
25354 return NULL;
25355 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025356 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025357 if (!_seq) {
25358 PyMem_Free(_children);
25359 p->error_indicator = 1;
25360 PyErr_NoMemory();
25361 D(p->level--);
25362 return NULL;
25363 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025364 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025365 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025366 _PyPegen_insert_memo(p, _start_mark, _loop1_75_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025367 D(p->level--);
25368 return _seq;
25369}
25370
Brandt Bucher145bf262021-02-26 14:51:55 -080025371// _loop1_76: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025372static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025373_loop1_76_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025374{
25375 D(p->level++);
25376 if (p->error_indicator) {
25377 D(p->level--);
25378 return NULL;
25379 }
25380 void *_res = NULL;
25381 int _mark = p->mark;
25382 int _start_mark = p->mark;
25383 void **_children = PyMem_Malloc(sizeof(void *));
25384 if (!_children) {
25385 p->error_indicator = 1;
25386 PyErr_NoMemory();
25387 D(p->level--);
25388 return NULL;
25389 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025390 Py_ssize_t _children_capacity = 1;
25391 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025392 { // param_no_default
25393 if (p->error_indicator) {
25394 D(p->level--);
25395 return NULL;
25396 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025397 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 +010025398 arg_ty param_no_default_var;
25399 while (
25400 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25401 )
25402 {
25403 _res = param_no_default_var;
25404 if (_n == _children_capacity) {
25405 _children_capacity *= 2;
25406 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25407 if (!_new_children) {
25408 p->error_indicator = 1;
25409 PyErr_NoMemory();
25410 D(p->level--);
25411 return NULL;
25412 }
25413 _children = _new_children;
25414 }
25415 _children[_n++] = _res;
25416 _mark = p->mark;
25417 }
25418 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025419 D(fprintf(stderr, "%*c%s _loop1_76[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025420 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25421 }
25422 if (_n == 0 || p->error_indicator) {
25423 PyMem_Free(_children);
25424 D(p->level--);
25425 return NULL;
25426 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025427 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025428 if (!_seq) {
25429 PyMem_Free(_children);
25430 p->error_indicator = 1;
25431 PyErr_NoMemory();
25432 D(p->level--);
25433 return NULL;
25434 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025435 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025436 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025437 _PyPegen_insert_memo(p, _start_mark, _loop1_76_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025438 D(p->level--);
25439 return _seq;
25440}
25441
Brandt Bucher145bf262021-02-26 14:51:55 -080025442// _loop1_77: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025443static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025444_loop1_77_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025445{
25446 D(p->level++);
25447 if (p->error_indicator) {
25448 D(p->level--);
25449 return NULL;
25450 }
25451 void *_res = NULL;
25452 int _mark = p->mark;
25453 int _start_mark = p->mark;
25454 void **_children = PyMem_Malloc(sizeof(void *));
25455 if (!_children) {
25456 p->error_indicator = 1;
25457 PyErr_NoMemory();
25458 D(p->level--);
25459 return NULL;
25460 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025461 Py_ssize_t _children_capacity = 1;
25462 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025463 { // param_no_default
25464 if (p->error_indicator) {
25465 D(p->level--);
25466 return NULL;
25467 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025468 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 +010025469 arg_ty param_no_default_var;
25470 while (
25471 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25472 )
25473 {
25474 _res = param_no_default_var;
25475 if (_n == _children_capacity) {
25476 _children_capacity *= 2;
25477 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25478 if (!_new_children) {
25479 p->error_indicator = 1;
25480 PyErr_NoMemory();
25481 D(p->level--);
25482 return NULL;
25483 }
25484 _children = _new_children;
25485 }
25486 _children[_n++] = _res;
25487 _mark = p->mark;
25488 }
25489 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025490 D(fprintf(stderr, "%*c%s _loop1_77[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25492 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025493 if (_n == 0 || p->error_indicator) {
25494 PyMem_Free(_children);
25495 D(p->level--);
25496 return NULL;
25497 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025498 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025499 if (!_seq) {
25500 PyMem_Free(_children);
25501 p->error_indicator = 1;
25502 PyErr_NoMemory();
25503 D(p->level--);
25504 return NULL;
25505 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025506 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025507 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025508 _PyPegen_insert_memo(p, _start_mark, _loop1_77_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025509 D(p->level--);
25510 return _seq;
25511}
25512
Brandt Bucher145bf262021-02-26 14:51:55 -080025513// _loop0_78: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025514static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025515_loop0_78_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025516{
25517 D(p->level++);
25518 if (p->error_indicator) {
25519 D(p->level--);
25520 return NULL;
25521 }
25522 void *_res = NULL;
25523 int _mark = p->mark;
25524 int _start_mark = p->mark;
25525 void **_children = PyMem_Malloc(sizeof(void *));
25526 if (!_children) {
25527 p->error_indicator = 1;
25528 PyErr_NoMemory();
25529 D(p->level--);
25530 return NULL;
25531 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025532 Py_ssize_t _children_capacity = 1;
25533 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025534 { // param_no_default
25535 if (p->error_indicator) {
25536 D(p->level--);
25537 return NULL;
25538 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025539 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 +010025540 arg_ty param_no_default_var;
25541 while (
25542 (param_no_default_var = param_no_default_rule(p)) // param_no_default
25543 )
25544 {
25545 _res = param_no_default_var;
25546 if (_n == _children_capacity) {
25547 _children_capacity *= 2;
25548 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25549 if (!_new_children) {
25550 p->error_indicator = 1;
25551 PyErr_NoMemory();
25552 D(p->level--);
25553 return NULL;
25554 }
25555 _children = _new_children;
25556 }
25557 _children[_n++] = _res;
25558 _mark = p->mark;
25559 }
25560 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025561 D(fprintf(stderr, "%*c%s _loop0_78[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
25563 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025564 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025565 if (!_seq) {
25566 PyMem_Free(_children);
25567 p->error_indicator = 1;
25568 PyErr_NoMemory();
25569 D(p->level--);
25570 return NULL;
25571 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025572 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025573 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025574 _PyPegen_insert_memo(p, _start_mark, _loop0_78_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025575 D(p->level--);
25576 return _seq;
25577}
25578
Brandt Bucher145bf262021-02-26 14:51:55 -080025579// _loop1_79: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025580static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025581_loop1_79_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025582{
25583 D(p->level++);
25584 if (p->error_indicator) {
25585 D(p->level--);
25586 return NULL;
25587 }
25588 void *_res = NULL;
25589 int _mark = p->mark;
25590 int _start_mark = p->mark;
25591 void **_children = PyMem_Malloc(sizeof(void *));
25592 if (!_children) {
25593 p->error_indicator = 1;
25594 PyErr_NoMemory();
25595 D(p->level--);
25596 return NULL;
25597 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025598 Py_ssize_t _children_capacity = 1;
25599 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025600 { // param_with_default
25601 if (p->error_indicator) {
25602 D(p->level--);
25603 return NULL;
25604 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025605 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 +010025606 NameDefaultPair* param_with_default_var;
25607 while (
25608 (param_with_default_var = param_with_default_rule(p)) // param_with_default
25609 )
25610 {
25611 _res = param_with_default_var;
25612 if (_n == _children_capacity) {
25613 _children_capacity *= 2;
25614 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25615 if (!_new_children) {
25616 p->error_indicator = 1;
25617 PyErr_NoMemory();
25618 D(p->level--);
25619 return NULL;
25620 }
25621 _children = _new_children;
25622 }
25623 _children[_n++] = _res;
25624 _mark = p->mark;
25625 }
25626 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025627 D(fprintf(stderr, "%*c%s _loop1_79[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
25629 }
25630 if (_n == 0 || p->error_indicator) {
25631 PyMem_Free(_children);
25632 D(p->level--);
25633 return NULL;
25634 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025635 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025636 if (!_seq) {
25637 PyMem_Free(_children);
25638 p->error_indicator = 1;
25639 PyErr_NoMemory();
25640 D(p->level--);
25641 return NULL;
25642 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025643 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025644 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025645 _PyPegen_insert_memo(p, _start_mark, _loop1_79_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025646 D(p->level--);
25647 return _seq;
25648}
25649
Brandt Bucher145bf262021-02-26 14:51:55 -080025650// _loop0_80: param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025651static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025652_loop0_80_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025653{
25654 D(p->level++);
25655 if (p->error_indicator) {
25656 D(p->level--);
25657 return NULL;
25658 }
25659 void *_res = NULL;
25660 int _mark = p->mark;
25661 int _start_mark = p->mark;
25662 void **_children = PyMem_Malloc(sizeof(void *));
25663 if (!_children) {
25664 p->error_indicator = 1;
25665 PyErr_NoMemory();
25666 D(p->level--);
25667 return NULL;
25668 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025669 Py_ssize_t _children_capacity = 1;
25670 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025671 { // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025672 if (p->error_indicator) {
25673 D(p->level--);
25674 return NULL;
25675 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025676 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 +030025677 arg_ty param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025678 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025679 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025680 )
25681 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025682 _res = param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025683 if (_n == _children_capacity) {
25684 _children_capacity *= 2;
25685 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25686 if (!_new_children) {
25687 p->error_indicator = 1;
25688 PyErr_NoMemory();
25689 D(p->level--);
25690 return NULL;
25691 }
25692 _children = _new_children;
25693 }
25694 _children[_n++] = _res;
25695 _mark = p->mark;
25696 }
25697 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025698 D(fprintf(stderr, "%*c%s _loop0_80[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025700 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025701 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025702 if (!_seq) {
25703 PyMem_Free(_children);
25704 p->error_indicator = 1;
25705 PyErr_NoMemory();
25706 D(p->level--);
25707 return NULL;
25708 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025709 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025710 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025711 _PyPegen_insert_memo(p, _start_mark, _loop0_80_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025712 D(p->level--);
25713 return _seq;
25714}
25715
Brandt Bucher145bf262021-02-26 14:51:55 -080025716// _loop1_81: param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025717static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025718_loop1_81_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025719{
25720 D(p->level++);
25721 if (p->error_indicator) {
25722 D(p->level--);
25723 return NULL;
25724 }
25725 void *_res = NULL;
25726 int _mark = p->mark;
25727 int _start_mark = p->mark;
25728 void **_children = PyMem_Malloc(sizeof(void *));
25729 if (!_children) {
25730 p->error_indicator = 1;
25731 PyErr_NoMemory();
25732 D(p->level--);
25733 return NULL;
25734 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025735 Py_ssize_t _children_capacity = 1;
25736 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025737 { // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025738 if (p->error_indicator) {
25739 D(p->level--);
25740 return NULL;
25741 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025742 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 +030025743 NameDefaultPair* param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025744 while (
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025745 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025746 )
25747 {
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025748 _res = param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025749 if (_n == _children_capacity) {
25750 _children_capacity *= 2;
25751 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25752 if (!_new_children) {
25753 p->error_indicator = 1;
25754 PyErr_NoMemory();
25755 D(p->level--);
25756 return NULL;
25757 }
25758 _children = _new_children;
25759 }
25760 _children[_n++] = _res;
25761 _mark = p->mark;
25762 }
25763 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025764 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025766 }
25767 if (_n == 0 || p->error_indicator) {
25768 PyMem_Free(_children);
25769 D(p->level--);
25770 return NULL;
25771 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025772 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025773 if (!_seq) {
25774 PyMem_Free(_children);
25775 p->error_indicator = 1;
25776 PyErr_NoMemory();
25777 D(p->level--);
25778 return NULL;
25779 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025780 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025781 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025782 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025783 D(p->level--);
25784 return _seq;
25785}
25786
Brandt Bucher145bf262021-02-26 14:51:55 -080025787// _loop0_82: param_maybe_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025788static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025789_loop0_82_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025790{
25791 D(p->level++);
25792 if (p->error_indicator) {
25793 D(p->level--);
25794 return NULL;
25795 }
25796 void *_res = NULL;
25797 int _mark = p->mark;
25798 int _start_mark = p->mark;
25799 void **_children = PyMem_Malloc(sizeof(void *));
25800 if (!_children) {
25801 p->error_indicator = 1;
25802 PyErr_NoMemory();
25803 D(p->level--);
25804 return NULL;
25805 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025806 Py_ssize_t _children_capacity = 1;
25807 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025808 { // param_maybe_default
25809 if (p->error_indicator) {
25810 D(p->level--);
25811 return NULL;
25812 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025813 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 +030025814 NameDefaultPair* param_maybe_default_var;
25815 while (
25816 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25817 )
25818 {
25819 _res = param_maybe_default_var;
25820 if (_n == _children_capacity) {
25821 _children_capacity *= 2;
25822 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25823 if (!_new_children) {
25824 p->error_indicator = 1;
25825 PyErr_NoMemory();
25826 D(p->level--);
25827 return NULL;
25828 }
25829 _children = _new_children;
25830 }
25831 _children[_n++] = _res;
25832 _mark = p->mark;
25833 }
25834 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025835 D(fprintf(stderr, "%*c%s _loop0_82[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025836 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25837 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025838 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025839 if (!_seq) {
25840 PyMem_Free(_children);
25841 p->error_indicator = 1;
25842 PyErr_NoMemory();
25843 D(p->level--);
25844 return NULL;
25845 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025846 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025847 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025848 _PyPegen_insert_memo(p, _start_mark, _loop0_82_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025849 D(p->level--);
25850 return _seq;
25851}
25852
Brandt Bucher145bf262021-02-26 14:51:55 -080025853// _loop1_83: param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025854static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025855_loop1_83_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025856{
25857 D(p->level++);
25858 if (p->error_indicator) {
25859 D(p->level--);
25860 return NULL;
25861 }
25862 void *_res = NULL;
25863 int _mark = p->mark;
25864 int _start_mark = p->mark;
25865 void **_children = PyMem_Malloc(sizeof(void *));
25866 if (!_children) {
25867 p->error_indicator = 1;
25868 PyErr_NoMemory();
25869 D(p->level--);
25870 return NULL;
25871 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025872 Py_ssize_t _children_capacity = 1;
25873 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025874 { // param_maybe_default
25875 if (p->error_indicator) {
25876 D(p->level--);
25877 return NULL;
25878 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025879 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 +030025880 NameDefaultPair* param_maybe_default_var;
25881 while (
25882 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
25883 )
25884 {
25885 _res = param_maybe_default_var;
25886 if (_n == _children_capacity) {
25887 _children_capacity *= 2;
25888 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25889 if (!_new_children) {
25890 p->error_indicator = 1;
25891 PyErr_NoMemory();
25892 D(p->level--);
25893 return NULL;
25894 }
25895 _children = _new_children;
25896 }
25897 _children[_n++] = _res;
25898 _mark = p->mark;
25899 }
25900 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025901 D(fprintf(stderr, "%*c%s _loop1_83[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025902 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
25903 }
25904 if (_n == 0 || p->error_indicator) {
25905 PyMem_Free(_children);
25906 D(p->level--);
25907 return NULL;
25908 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025909 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025910 if (!_seq) {
25911 PyMem_Free(_children);
25912 p->error_indicator = 1;
25913 PyErr_NoMemory();
25914 D(p->level--);
25915 return NULL;
25916 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025917 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025918 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025919 _PyPegen_insert_memo(p, _start_mark, _loop1_83_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025920 D(p->level--);
25921 return _seq;
25922}
25923
Brandt Bucher145bf262021-02-26 14:51:55 -080025924// _loop1_84: ('@' named_expression NEWLINE)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025925static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080025926_loop1_84_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030025927{
25928 D(p->level++);
25929 if (p->error_indicator) {
25930 D(p->level--);
25931 return NULL;
25932 }
25933 void *_res = NULL;
25934 int _mark = p->mark;
25935 int _start_mark = p->mark;
25936 void **_children = PyMem_Malloc(sizeof(void *));
25937 if (!_children) {
25938 p->error_indicator = 1;
25939 PyErr_NoMemory();
25940 D(p->level--);
25941 return NULL;
25942 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010025943 Py_ssize_t _children_capacity = 1;
25944 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025945 { // ('@' named_expression NEWLINE)
25946 if (p->error_indicator) {
25947 D(p->level--);
25948 return NULL;
25949 }
Brandt Bucher145bf262021-02-26 14:51:55 -080025950 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 -070025951 void *_tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025952 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070025953 (_tmp_181_var = _tmp_181_rule(p)) // '@' named_expression NEWLINE
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025954 )
25955 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070025956 _res = _tmp_181_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025957 if (_n == _children_capacity) {
25958 _children_capacity *= 2;
25959 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
25960 if (!_new_children) {
25961 p->error_indicator = 1;
25962 PyErr_NoMemory();
25963 D(p->level--);
25964 return NULL;
25965 }
25966 _children = _new_children;
25967 }
25968 _children[_n++] = _res;
25969 _mark = p->mark;
25970 }
25971 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080025972 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
25974 }
25975 if (_n == 0 || p->error_indicator) {
25976 PyMem_Free(_children);
25977 D(p->level--);
25978 return NULL;
25979 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025980 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025981 if (!_seq) {
25982 PyMem_Free(_children);
25983 p->error_indicator = 1;
25984 PyErr_NoMemory();
25985 D(p->level--);
25986 return NULL;
25987 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010025988 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025989 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080025990 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025991 D(p->level--);
25992 return _seq;
25993}
25994
Brandt Bucher145bf262021-02-26 14:51:55 -080025995// _tmp_85: '(' arguments? ')'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025996static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080025997_tmp_85_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010025998{
25999 D(p->level++);
26000 if (p->error_indicator) {
26001 D(p->level--);
26002 return NULL;
26003 }
26004 void * _res = NULL;
26005 int _mark = p->mark;
26006 { // '(' arguments? ')'
26007 if (p->error_indicator) {
26008 D(p->level--);
26009 return NULL;
26010 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026011 D(fprintf(stderr, "%*c> _tmp_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026012 Token * _literal;
26013 Token * _literal_1;
26014 void *z;
26015 if (
26016 (_literal = _PyPegen_expect_token(p, 7)) // token='('
26017 &&
26018 (z = arguments_rule(p), 1) // arguments?
26019 &&
26020 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
26021 )
26022 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026023 D(fprintf(stderr, "%*c+ _tmp_85[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026024 _res = z;
26025 if (_res == NULL && PyErr_Occurred()) {
26026 p->error_indicator = 1;
26027 D(p->level--);
26028 return NULL;
26029 }
26030 goto done;
26031 }
26032 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026033 D(fprintf(stderr, "%*c%s _tmp_85[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
26035 }
26036 _res = NULL;
26037 done:
26038 D(p->level--);
26039 return _res;
26040}
26041
Brandt Bucher145bf262021-02-26 14:51:55 -080026042// _loop1_86: (',' star_expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026043static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026044_loop1_86_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026045{
26046 D(p->level++);
26047 if (p->error_indicator) {
26048 D(p->level--);
26049 return NULL;
26050 }
26051 void *_res = NULL;
26052 int _mark = p->mark;
26053 int _start_mark = p->mark;
26054 void **_children = PyMem_Malloc(sizeof(void *));
26055 if (!_children) {
26056 p->error_indicator = 1;
26057 PyErr_NoMemory();
26058 D(p->level--);
26059 return NULL;
26060 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026061 Py_ssize_t _children_capacity = 1;
26062 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026063 { // (',' star_expression)
26064 if (p->error_indicator) {
26065 D(p->level--);
26066 return NULL;
26067 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026068 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 -070026069 void *_tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026070 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070026071 (_tmp_182_var = _tmp_182_rule(p)) // ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026072 )
26073 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070026074 _res = _tmp_182_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026075 if (_n == _children_capacity) {
26076 _children_capacity *= 2;
26077 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26078 if (!_new_children) {
26079 p->error_indicator = 1;
26080 PyErr_NoMemory();
26081 D(p->level--);
26082 return NULL;
26083 }
26084 _children = _new_children;
26085 }
26086 _children[_n++] = _res;
26087 _mark = p->mark;
26088 }
26089 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026090 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
26092 }
26093 if (_n == 0 || p->error_indicator) {
26094 PyMem_Free(_children);
26095 D(p->level--);
26096 return NULL;
26097 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026098 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026099 if (!_seq) {
26100 PyMem_Free(_children);
26101 p->error_indicator = 1;
26102 PyErr_NoMemory();
26103 D(p->level--);
26104 return NULL;
26105 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026106 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026107 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026108 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026109 D(p->level--);
26110 return _seq;
26111}
26112
Brandt Bucher145bf262021-02-26 14:51:55 -080026113// _loop0_88: ',' star_named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026114static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026115_loop0_88_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026116{
26117 D(p->level++);
26118 if (p->error_indicator) {
26119 D(p->level--);
26120 return NULL;
26121 }
26122 void *_res = NULL;
26123 int _mark = p->mark;
26124 int _start_mark = p->mark;
26125 void **_children = PyMem_Malloc(sizeof(void *));
26126 if (!_children) {
26127 p->error_indicator = 1;
26128 PyErr_NoMemory();
26129 D(p->level--);
26130 return NULL;
26131 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026132 Py_ssize_t _children_capacity = 1;
26133 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026134 { // ',' star_named_expression
26135 if (p->error_indicator) {
26136 D(p->level--);
26137 return NULL;
26138 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026139 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 +010026140 Token * _literal;
26141 expr_ty elem;
26142 while (
26143 (_literal = _PyPegen_expect_token(p, 12)) // token=','
26144 &&
26145 (elem = star_named_expression_rule(p)) // star_named_expression
26146 )
26147 {
26148 _res = elem;
26149 if (_res == NULL && PyErr_Occurred()) {
26150 p->error_indicator = 1;
26151 PyMem_Free(_children);
26152 D(p->level--);
26153 return NULL;
26154 }
26155 if (_n == _children_capacity) {
26156 _children_capacity *= 2;
26157 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26158 if (!_new_children) {
26159 p->error_indicator = 1;
26160 PyErr_NoMemory();
26161 D(p->level--);
26162 return NULL;
26163 }
26164 _children = _new_children;
26165 }
26166 _children[_n++] = _res;
26167 _mark = p->mark;
26168 }
26169 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026170 D(fprintf(stderr, "%*c%s _loop0_88[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
26172 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026173 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026174 if (!_seq) {
26175 PyMem_Free(_children);
26176 p->error_indicator = 1;
26177 PyErr_NoMemory();
26178 D(p->level--);
26179 return NULL;
26180 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026181 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026182 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026183 _PyPegen_insert_memo(p, _start_mark, _loop0_88_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026184 D(p->level--);
26185 return _seq;
26186}
26187
Brandt Bucher145bf262021-02-26 14:51:55 -080026188// _gather_87: star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026189static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026190_gather_87_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026191{
26192 D(p->level++);
26193 if (p->error_indicator) {
26194 D(p->level--);
26195 return NULL;
26196 }
26197 asdl_seq * _res = NULL;
26198 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026199 { // star_named_expression _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026200 if (p->error_indicator) {
26201 D(p->level--);
26202 return NULL;
26203 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026204 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 +010026205 expr_ty elem;
26206 asdl_seq * seq;
26207 if (
26208 (elem = star_named_expression_rule(p)) // star_named_expression
26209 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080026210 (seq = _loop0_88_rule(p)) // _loop0_88
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026211 )
26212 {
Brandt Bucher145bf262021-02-26 14:51:55 -080026213 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 +010026214 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
26215 goto done;
26216 }
26217 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026218 D(fprintf(stderr, "%*c%s _gather_87[%d-%d]: %s failed!\n", p->level, ' ',
26219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_88"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026220 }
26221 _res = NULL;
26222 done:
26223 D(p->level--);
26224 return _res;
26225}
26226
Brandt Bucher145bf262021-02-26 14:51:55 -080026227// _loop1_89: (',' expression)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026228static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026229_loop1_89_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026230{
26231 D(p->level++);
26232 if (p->error_indicator) {
26233 D(p->level--);
26234 return NULL;
26235 }
26236 void *_res = NULL;
26237 int _mark = p->mark;
26238 int _start_mark = p->mark;
26239 void **_children = PyMem_Malloc(sizeof(void *));
26240 if (!_children) {
26241 p->error_indicator = 1;
26242 PyErr_NoMemory();
26243 D(p->level--);
26244 return NULL;
26245 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026246 Py_ssize_t _children_capacity = 1;
26247 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026248 { // (',' expression)
26249 if (p->error_indicator) {
26250 D(p->level--);
26251 return NULL;
26252 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026253 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 -070026254 void *_tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026255 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070026256 (_tmp_183_var = _tmp_183_rule(p)) // ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026257 )
26258 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070026259 _res = _tmp_183_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026260 if (_n == _children_capacity) {
26261 _children_capacity *= 2;
26262 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26263 if (!_new_children) {
26264 p->error_indicator = 1;
26265 PyErr_NoMemory();
26266 D(p->level--);
26267 return NULL;
26268 }
26269 _children = _new_children;
26270 }
26271 _children[_n++] = _res;
26272 _mark = p->mark;
26273 }
26274 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026275 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026276 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
26277 }
26278 if (_n == 0 || p->error_indicator) {
26279 PyMem_Free(_children);
26280 D(p->level--);
26281 return NULL;
26282 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026283 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026284 if (!_seq) {
26285 PyMem_Free(_children);
26286 p->error_indicator = 1;
26287 PyErr_NoMemory();
26288 D(p->level--);
26289 return NULL;
26290 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026291 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026292 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026293 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026294 D(p->level--);
26295 return _seq;
26296}
26297
Brandt Bucher145bf262021-02-26 14:51:55 -080026298// _loop0_90: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026299static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026300_loop0_90_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026301{
26302 D(p->level++);
26303 if (p->error_indicator) {
26304 D(p->level--);
26305 return NULL;
26306 }
26307 void *_res = NULL;
26308 int _mark = p->mark;
26309 int _start_mark = p->mark;
26310 void **_children = PyMem_Malloc(sizeof(void *));
26311 if (!_children) {
26312 p->error_indicator = 1;
26313 PyErr_NoMemory();
26314 D(p->level--);
26315 return NULL;
26316 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026317 Py_ssize_t _children_capacity = 1;
26318 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026319 { // lambda_param_no_default
26320 if (p->error_indicator) {
26321 D(p->level--);
26322 return NULL;
26323 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026324 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 +010026325 arg_ty lambda_param_no_default_var;
26326 while (
26327 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26328 )
26329 {
26330 _res = lambda_param_no_default_var;
26331 if (_n == _children_capacity) {
26332 _children_capacity *= 2;
26333 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26334 if (!_new_children) {
26335 p->error_indicator = 1;
26336 PyErr_NoMemory();
26337 D(p->level--);
26338 return NULL;
26339 }
26340 _children = _new_children;
26341 }
26342 _children[_n++] = _res;
26343 _mark = p->mark;
26344 }
26345 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026346 D(fprintf(stderr, "%*c%s _loop0_90[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026348 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026349 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026350 if (!_seq) {
26351 PyMem_Free(_children);
26352 p->error_indicator = 1;
26353 PyErr_NoMemory();
26354 D(p->level--);
26355 return NULL;
26356 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026357 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026358 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026359 _PyPegen_insert_memo(p, _start_mark, _loop0_90_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026360 D(p->level--);
26361 return _seq;
26362}
26363
Brandt Bucher145bf262021-02-26 14:51:55 -080026364// _loop0_91: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026365static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026366_loop0_91_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026367{
26368 D(p->level++);
26369 if (p->error_indicator) {
26370 D(p->level--);
26371 return NULL;
26372 }
26373 void *_res = NULL;
26374 int _mark = p->mark;
26375 int _start_mark = p->mark;
26376 void **_children = PyMem_Malloc(sizeof(void *));
26377 if (!_children) {
26378 p->error_indicator = 1;
26379 PyErr_NoMemory();
26380 D(p->level--);
26381 return NULL;
26382 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026383 Py_ssize_t _children_capacity = 1;
26384 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026385 { // lambda_param_with_default
26386 if (p->error_indicator) {
26387 D(p->level--);
26388 return NULL;
26389 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026390 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 +010026391 NameDefaultPair* lambda_param_with_default_var;
26392 while (
26393 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26394 )
26395 {
26396 _res = lambda_param_with_default_var;
26397 if (_n == _children_capacity) {
26398 _children_capacity *= 2;
26399 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26400 if (!_new_children) {
26401 p->error_indicator = 1;
26402 PyErr_NoMemory();
26403 D(p->level--);
26404 return NULL;
26405 }
26406 _children = _new_children;
26407 }
26408 _children[_n++] = _res;
26409 _mark = p->mark;
26410 }
26411 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026412 D(fprintf(stderr, "%*c%s _loop0_91[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26414 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026415 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026416 if (!_seq) {
26417 PyMem_Free(_children);
26418 p->error_indicator = 1;
26419 PyErr_NoMemory();
26420 D(p->level--);
26421 return NULL;
26422 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026423 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026424 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026425 _PyPegen_insert_memo(p, _start_mark, _loop0_91_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026426 D(p->level--);
26427 return _seq;
26428}
26429
Brandt Bucher145bf262021-02-26 14:51:55 -080026430// _loop0_92: lambda_param_with_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026431static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026432_loop0_92_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026433{
26434 D(p->level++);
26435 if (p->error_indicator) {
26436 D(p->level--);
26437 return NULL;
26438 }
26439 void *_res = NULL;
26440 int _mark = p->mark;
26441 int _start_mark = p->mark;
26442 void **_children = PyMem_Malloc(sizeof(void *));
26443 if (!_children) {
26444 p->error_indicator = 1;
26445 PyErr_NoMemory();
26446 D(p->level--);
26447 return NULL;
26448 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026449 Py_ssize_t _children_capacity = 1;
26450 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026451 { // lambda_param_with_default
26452 if (p->error_indicator) {
26453 D(p->level--);
26454 return NULL;
26455 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026456 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 +000026457 NameDefaultPair* lambda_param_with_default_var;
26458 while (
26459 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26460 )
26461 {
26462 _res = lambda_param_with_default_var;
26463 if (_n == _children_capacity) {
26464 _children_capacity *= 2;
26465 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26466 if (!_new_children) {
26467 p->error_indicator = 1;
26468 PyErr_NoMemory();
26469 D(p->level--);
26470 return NULL;
26471 }
26472 _children = _new_children;
26473 }
26474 _children[_n++] = _res;
26475 _mark = p->mark;
26476 }
26477 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026478 D(fprintf(stderr, "%*c%s _loop0_92[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26480 }
26481 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26482 if (!_seq) {
26483 PyMem_Free(_children);
26484 p->error_indicator = 1;
26485 PyErr_NoMemory();
26486 D(p->level--);
26487 return NULL;
26488 }
26489 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26490 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026491 _PyPegen_insert_memo(p, _start_mark, _loop0_92_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026492 D(p->level--);
26493 return _seq;
26494}
26495
Brandt Bucher145bf262021-02-26 14:51:55 -080026496// _loop1_93: lambda_param_no_default
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026497static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026498_loop1_93_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026499{
26500 D(p->level++);
26501 if (p->error_indicator) {
26502 D(p->level--);
26503 return NULL;
26504 }
26505 void *_res = NULL;
26506 int _mark = p->mark;
26507 int _start_mark = p->mark;
26508 void **_children = PyMem_Malloc(sizeof(void *));
26509 if (!_children) {
26510 p->error_indicator = 1;
26511 PyErr_NoMemory();
26512 D(p->level--);
26513 return NULL;
26514 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026515 Py_ssize_t _children_capacity = 1;
26516 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026517 { // lambda_param_no_default
26518 if (p->error_indicator) {
26519 D(p->level--);
26520 return NULL;
26521 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026522 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 +000026523 arg_ty lambda_param_no_default_var;
26524 while (
26525 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26526 )
26527 {
26528 _res = lambda_param_no_default_var;
26529 if (_n == _children_capacity) {
26530 _children_capacity *= 2;
26531 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26532 if (!_new_children) {
26533 p->error_indicator = 1;
26534 PyErr_NoMemory();
26535 D(p->level--);
26536 return NULL;
26537 }
26538 _children = _new_children;
26539 }
26540 _children[_n++] = _res;
26541 _mark = p->mark;
26542 }
26543 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026544 D(fprintf(stderr, "%*c%s _loop1_93[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26546 }
26547 if (_n == 0 || p->error_indicator) {
26548 PyMem_Free(_children);
26549 D(p->level--);
26550 return NULL;
26551 }
26552 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
26553 if (!_seq) {
26554 PyMem_Free(_children);
26555 p->error_indicator = 1;
26556 PyErr_NoMemory();
26557 D(p->level--);
26558 return NULL;
26559 }
26560 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
26561 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026562 _PyPegen_insert_memo(p, _start_mark, _loop1_93_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026563 D(p->level--);
26564 return _seq;
26565}
26566
Brandt Bucher145bf262021-02-26 14:51:55 -080026567// _loop0_94: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026568static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026569_loop0_94_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026570{
26571 D(p->level++);
26572 if (p->error_indicator) {
26573 D(p->level--);
26574 return NULL;
26575 }
26576 void *_res = NULL;
26577 int _mark = p->mark;
26578 int _start_mark = p->mark;
26579 void **_children = PyMem_Malloc(sizeof(void *));
26580 if (!_children) {
26581 p->error_indicator = 1;
26582 PyErr_NoMemory();
26583 D(p->level--);
26584 return NULL;
26585 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026586 Py_ssize_t _children_capacity = 1;
26587 Py_ssize_t _n = 0;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026588 { // lambda_param_with_default
26589 if (p->error_indicator) {
26590 D(p->level--);
26591 return NULL;
26592 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026593 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 +030026594 NameDefaultPair* lambda_param_with_default_var;
26595 while (
26596 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
26597 )
26598 {
26599 _res = lambda_param_with_default_var;
26600 if (_n == _children_capacity) {
26601 _children_capacity *= 2;
26602 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26603 if (!_new_children) {
26604 p->error_indicator = 1;
26605 PyErr_NoMemory();
26606 D(p->level--);
26607 return NULL;
26608 }
26609 _children = _new_children;
26610 }
26611 _children[_n++] = _res;
26612 _mark = p->mark;
26613 }
26614 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026615 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
26617 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026618 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026619 if (!_seq) {
26620 PyMem_Free(_children);
26621 p->error_indicator = 1;
26622 PyErr_NoMemory();
26623 D(p->level--);
26624 return NULL;
26625 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026626 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026627 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026628 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026629 D(p->level--);
26630 return _seq;
26631}
26632
Brandt Bucher145bf262021-02-26 14:51:55 -080026633// _loop1_95: lambda_param_with_default
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030026634static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026635_loop1_95_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026636{
26637 D(p->level++);
26638 if (p->error_indicator) {
26639 D(p->level--);
26640 return NULL;
26641 }
26642 void *_res = NULL;
26643 int _mark = p->mark;
26644 int _start_mark = p->mark;
26645 void **_children = PyMem_Malloc(sizeof(void *));
26646 if (!_children) {
26647 p->error_indicator = 1;
26648 PyErr_NoMemory();
26649 D(p->level--);
26650 return NULL;
26651 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026652 Py_ssize_t _children_capacity = 1;
26653 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026654 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026655 if (p->error_indicator) {
26656 D(p->level--);
26657 return NULL;
26658 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026659 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 +000026660 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026661 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026662 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026663 )
26664 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026665 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026666 if (_n == _children_capacity) {
26667 _children_capacity *= 2;
26668 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26669 if (!_new_children) {
26670 p->error_indicator = 1;
26671 PyErr_NoMemory();
26672 D(p->level--);
26673 return NULL;
26674 }
26675 _children = _new_children;
26676 }
26677 _children[_n++] = _res;
26678 _mark = p->mark;
26679 }
26680 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026681 D(fprintf(stderr, "%*c%s _loop1_95[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026682 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026683 }
26684 if (_n == 0 || p->error_indicator) {
26685 PyMem_Free(_children);
26686 D(p->level--);
26687 return NULL;
26688 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026689 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026690 if (!_seq) {
26691 PyMem_Free(_children);
26692 p->error_indicator = 1;
26693 PyErr_NoMemory();
26694 D(p->level--);
26695 return NULL;
26696 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026697 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026698 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026699 _PyPegen_insert_memo(p, _start_mark, _loop1_95_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026700 D(p->level--);
26701 return _seq;
26702}
26703
Brandt Bucher145bf262021-02-26 14:51:55 -080026704// _loop1_96: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026705static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026706_loop1_96_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026707{
26708 D(p->level++);
26709 if (p->error_indicator) {
26710 D(p->level--);
26711 return NULL;
26712 }
26713 void *_res = NULL;
26714 int _mark = p->mark;
26715 int _start_mark = p->mark;
26716 void **_children = PyMem_Malloc(sizeof(void *));
26717 if (!_children) {
26718 p->error_indicator = 1;
26719 PyErr_NoMemory();
26720 D(p->level--);
26721 return NULL;
26722 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026723 Py_ssize_t _children_capacity = 1;
26724 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026725 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026726 if (p->error_indicator) {
26727 D(p->level--);
26728 return NULL;
26729 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026730 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 +000026731 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026732 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026733 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026734 )
26735 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026736 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026737 if (_n == _children_capacity) {
26738 _children_capacity *= 2;
26739 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26740 if (!_new_children) {
26741 p->error_indicator = 1;
26742 PyErr_NoMemory();
26743 D(p->level--);
26744 return NULL;
26745 }
26746 _children = _new_children;
26747 }
26748 _children[_n++] = _res;
26749 _mark = p->mark;
26750 }
26751 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026752 D(fprintf(stderr, "%*c%s _loop1_96[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26754 }
26755 if (_n == 0 || p->error_indicator) {
26756 PyMem_Free(_children);
26757 D(p->level--);
26758 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026759 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026760 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026761 if (!_seq) {
26762 PyMem_Free(_children);
26763 p->error_indicator = 1;
26764 PyErr_NoMemory();
26765 D(p->level--);
26766 return NULL;
26767 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026768 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026769 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026770 _PyPegen_insert_memo(p, _start_mark, _loop1_96_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026771 D(p->level--);
26772 return _seq;
26773}
26774
Brandt Bucher145bf262021-02-26 14:51:55 -080026775// _loop1_97: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026776static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026777_loop1_97_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026778{
26779 D(p->level++);
26780 if (p->error_indicator) {
26781 D(p->level--);
26782 return NULL;
26783 }
26784 void *_res = NULL;
26785 int _mark = p->mark;
26786 int _start_mark = p->mark;
26787 void **_children = PyMem_Malloc(sizeof(void *));
26788 if (!_children) {
26789 p->error_indicator = 1;
26790 PyErr_NoMemory();
26791 D(p->level--);
26792 return NULL;
26793 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026794 Py_ssize_t _children_capacity = 1;
26795 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026796 { // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026797 if (p->error_indicator) {
26798 D(p->level--);
26799 return NULL;
26800 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026801 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 +000026802 arg_ty lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026803 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026804 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026805 )
26806 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026807 _res = lambda_param_no_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026808 if (_n == _children_capacity) {
26809 _children_capacity *= 2;
26810 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26811 if (!_new_children) {
26812 p->error_indicator = 1;
26813 PyErr_NoMemory();
26814 D(p->level--);
26815 return NULL;
26816 }
26817 _children = _new_children;
26818 }
26819 _children[_n++] = _res;
26820 _mark = p->mark;
26821 }
26822 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026823 D(fprintf(stderr, "%*c%s _loop1_97[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026825 }
26826 if (_n == 0 || p->error_indicator) {
26827 PyMem_Free(_children);
26828 D(p->level--);
26829 return NULL;
26830 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026831 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026832 if (!_seq) {
26833 PyMem_Free(_children);
26834 p->error_indicator = 1;
26835 PyErr_NoMemory();
26836 D(p->level--);
26837 return NULL;
26838 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026839 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026840 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026841 _PyPegen_insert_memo(p, _start_mark, _loop1_97_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026842 D(p->level--);
26843 return _seq;
26844}
26845
Brandt Bucher145bf262021-02-26 14:51:55 -080026846// _loop0_98: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026847static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026848_loop0_98_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026849{
26850 D(p->level++);
26851 if (p->error_indicator) {
26852 D(p->level--);
26853 return NULL;
26854 }
26855 void *_res = NULL;
26856 int _mark = p->mark;
26857 int _start_mark = p->mark;
26858 void **_children = PyMem_Malloc(sizeof(void *));
26859 if (!_children) {
26860 p->error_indicator = 1;
26861 PyErr_NoMemory();
26862 D(p->level--);
26863 return NULL;
26864 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026865 Py_ssize_t _children_capacity = 1;
26866 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026867 { // lambda_param_no_default
26868 if (p->error_indicator) {
26869 D(p->level--);
26870 return NULL;
26871 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026872 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 +010026873 arg_ty lambda_param_no_default_var;
26874 while (
26875 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
26876 )
26877 {
26878 _res = lambda_param_no_default_var;
26879 if (_n == _children_capacity) {
26880 _children_capacity *= 2;
26881 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26882 if (!_new_children) {
26883 p->error_indicator = 1;
26884 PyErr_NoMemory();
26885 D(p->level--);
26886 return NULL;
26887 }
26888 _children = _new_children;
26889 }
26890 _children[_n++] = _res;
26891 _mark = p->mark;
26892 }
26893 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026894 D(fprintf(stderr, "%*c%s _loop0_98[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
26896 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026897 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026898 if (!_seq) {
26899 PyMem_Free(_children);
26900 p->error_indicator = 1;
26901 PyErr_NoMemory();
26902 D(p->level--);
26903 return NULL;
26904 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026905 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026906 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026907 _PyPegen_insert_memo(p, _start_mark, _loop0_98_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026908 D(p->level--);
26909 return _seq;
26910}
26911
Brandt Bucher145bf262021-02-26 14:51:55 -080026912// _loop1_99: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026913static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026914_loop1_99_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026915{
26916 D(p->level++);
26917 if (p->error_indicator) {
26918 D(p->level--);
26919 return NULL;
26920 }
26921 void *_res = NULL;
26922 int _mark = p->mark;
26923 int _start_mark = p->mark;
26924 void **_children = PyMem_Malloc(sizeof(void *));
26925 if (!_children) {
26926 p->error_indicator = 1;
26927 PyErr_NoMemory();
26928 D(p->level--);
26929 return NULL;
26930 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010026931 Py_ssize_t _children_capacity = 1;
26932 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026933 { // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026934 if (p->error_indicator) {
26935 D(p->level--);
26936 return NULL;
26937 }
Brandt Bucher145bf262021-02-26 14:51:55 -080026938 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 +000026939 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026940 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026941 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026942 )
26943 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026944 _res = lambda_param_with_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026945 if (_n == _children_capacity) {
26946 _children_capacity *= 2;
26947 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
26948 if (!_new_children) {
26949 p->error_indicator = 1;
26950 PyErr_NoMemory();
26951 D(p->level--);
26952 return NULL;
26953 }
26954 _children = _new_children;
26955 }
26956 _children[_n++] = _res;
26957 _mark = p->mark;
26958 }
26959 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080026960 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000026961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026962 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026963 if (_n == 0 || p->error_indicator) {
26964 PyMem_Free(_children);
26965 D(p->level--);
26966 return NULL;
26967 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026968 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026969 if (!_seq) {
26970 PyMem_Free(_children);
26971 p->error_indicator = 1;
26972 PyErr_NoMemory();
26973 D(p->level--);
26974 return NULL;
26975 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010026976 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026977 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080026978 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026979 D(p->level--);
26980 return _seq;
26981}
26982
Brandt Bucher145bf262021-02-26 14:51:55 -080026983// _loop0_100: lambda_param_no_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026984static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080026985_loop0_100_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010026986{
26987 D(p->level++);
26988 if (p->error_indicator) {
26989 D(p->level--);
26990 return NULL;
26991 }
26992 void *_res = NULL;
26993 int _mark = p->mark;
26994 int _start_mark = p->mark;
26995 void **_children = PyMem_Malloc(sizeof(void *));
26996 if (!_children) {
26997 p->error_indicator = 1;
26998 PyErr_NoMemory();
26999 D(p->level--);
27000 return NULL;
27001 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027002 Py_ssize_t _children_capacity = 1;
27003 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027004 { // lambda_param_no_default
27005 if (p->error_indicator) {
27006 D(p->level--);
27007 return NULL;
27008 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027009 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 +010027010 arg_ty lambda_param_no_default_var;
27011 while (
27012 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
27013 )
27014 {
27015 _res = lambda_param_no_default_var;
27016 if (_n == _children_capacity) {
27017 _children_capacity *= 2;
27018 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27019 if (!_new_children) {
27020 p->error_indicator = 1;
27021 PyErr_NoMemory();
27022 D(p->level--);
27023 return NULL;
27024 }
27025 _children = _new_children;
27026 }
27027 _children[_n++] = _res;
27028 _mark = p->mark;
27029 }
27030 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027031 D(fprintf(stderr, "%*c%s _loop0_100[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027032 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
27033 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027034 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027035 if (!_seq) {
27036 PyMem_Free(_children);
27037 p->error_indicator = 1;
27038 PyErr_NoMemory();
27039 D(p->level--);
27040 return NULL;
27041 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027042 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027043 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027044 _PyPegen_insert_memo(p, _start_mark, _loop0_100_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027045 D(p->level--);
27046 return _seq;
27047}
27048
Brandt Bucher145bf262021-02-26 14:51:55 -080027049// _loop1_101: lambda_param_with_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027050static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027051_loop1_101_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027052{
27053 D(p->level++);
27054 if (p->error_indicator) {
27055 D(p->level--);
27056 return NULL;
27057 }
27058 void *_res = NULL;
27059 int _mark = p->mark;
27060 int _start_mark = p->mark;
27061 void **_children = PyMem_Malloc(sizeof(void *));
27062 if (!_children) {
27063 p->error_indicator = 1;
27064 PyErr_NoMemory();
27065 D(p->level--);
27066 return NULL;
27067 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027068 Py_ssize_t _children_capacity = 1;
27069 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027070 { // lambda_param_with_default
27071 if (p->error_indicator) {
27072 D(p->level--);
27073 return NULL;
27074 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027075 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 +010027076 NameDefaultPair* lambda_param_with_default_var;
27077 while (
27078 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
27079 )
27080 {
27081 _res = lambda_param_with_default_var;
27082 if (_n == _children_capacity) {
27083 _children_capacity *= 2;
27084 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27085 if (!_new_children) {
27086 p->error_indicator = 1;
27087 PyErr_NoMemory();
27088 D(p->level--);
27089 return NULL;
27090 }
27091 _children = _new_children;
27092 }
27093 _children[_n++] = _res;
27094 _mark = p->mark;
27095 }
27096 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027097 D(fprintf(stderr, "%*c%s _loop1_101[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
27099 }
27100 if (_n == 0 || p->error_indicator) {
27101 PyMem_Free(_children);
27102 D(p->level--);
27103 return NULL;
27104 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027105 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027106 if (!_seq) {
27107 PyMem_Free(_children);
27108 p->error_indicator = 1;
27109 PyErr_NoMemory();
27110 D(p->level--);
27111 return NULL;
27112 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027113 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027114 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027115 _PyPegen_insert_memo(p, _start_mark, _loop1_101_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027116 D(p->level--);
27117 return _seq;
27118}
27119
Brandt Bucher145bf262021-02-26 14:51:55 -080027120// _loop0_102: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027121static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027122_loop0_102_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027123{
27124 D(p->level++);
27125 if (p->error_indicator) {
27126 D(p->level--);
27127 return NULL;
27128 }
27129 void *_res = NULL;
27130 int _mark = p->mark;
27131 int _start_mark = p->mark;
27132 void **_children = PyMem_Malloc(sizeof(void *));
27133 if (!_children) {
27134 p->error_indicator = 1;
27135 PyErr_NoMemory();
27136 D(p->level--);
27137 return NULL;
27138 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027139 Py_ssize_t _children_capacity = 1;
27140 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027141 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027142 if (p->error_indicator) {
27143 D(p->level--);
27144 return NULL;
27145 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027146 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 +000027147 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027148 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027149 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027150 )
27151 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027152 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027153 if (_n == _children_capacity) {
27154 _children_capacity *= 2;
27155 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27156 if (!_new_children) {
27157 p->error_indicator = 1;
27158 PyErr_NoMemory();
27159 D(p->level--);
27160 return NULL;
27161 }
27162 _children = _new_children;
27163 }
27164 _children[_n++] = _res;
27165 _mark = p->mark;
27166 }
27167 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027168 D(fprintf(stderr, "%*c%s _loop0_102[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027170 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027171 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027172 if (!_seq) {
27173 PyMem_Free(_children);
27174 p->error_indicator = 1;
27175 PyErr_NoMemory();
27176 D(p->level--);
27177 return NULL;
27178 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027179 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027180 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027181 _PyPegen_insert_memo(p, _start_mark, _loop0_102_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027182 D(p->level--);
27183 return _seq;
27184}
27185
Brandt Bucher145bf262021-02-26 14:51:55 -080027186// _loop1_103: lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027187static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027188_loop1_103_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027189{
27190 D(p->level++);
27191 if (p->error_indicator) {
27192 D(p->level--);
27193 return NULL;
27194 }
27195 void *_res = NULL;
27196 int _mark = p->mark;
27197 int _start_mark = p->mark;
27198 void **_children = PyMem_Malloc(sizeof(void *));
27199 if (!_children) {
27200 p->error_indicator = 1;
27201 PyErr_NoMemory();
27202 D(p->level--);
27203 return NULL;
27204 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027205 Py_ssize_t _children_capacity = 1;
27206 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027207 { // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027208 if (p->error_indicator) {
27209 D(p->level--);
27210 return NULL;
27211 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027212 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 +000027213 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027214 while (
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027215 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027216 )
27217 {
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027218 _res = lambda_param_maybe_default_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027219 if (_n == _children_capacity) {
27220 _children_capacity *= 2;
27221 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27222 if (!_new_children) {
27223 p->error_indicator = 1;
27224 PyErr_NoMemory();
27225 D(p->level--);
27226 return NULL;
27227 }
27228 _children = _new_children;
27229 }
27230 _children[_n++] = _res;
27231 _mark = p->mark;
27232 }
27233 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027234 D(fprintf(stderr, "%*c%s _loop1_103[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000027235 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027236 }
27237 if (_n == 0 || p->error_indicator) {
27238 PyMem_Free(_children);
27239 D(p->level--);
27240 return NULL;
27241 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027242 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027243 if (!_seq) {
27244 PyMem_Free(_children);
27245 p->error_indicator = 1;
27246 PyErr_NoMemory();
27247 D(p->level--);
27248 return NULL;
27249 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027250 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027251 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027252 _PyPegen_insert_memo(p, _start_mark, _loop1_103_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027253 D(p->level--);
27254 return _seq;
27255}
27256
Brandt Bucher145bf262021-02-26 14:51:55 -080027257// _loop1_104: ('or' conjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027258static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027259_loop1_104_rule(Parser *p)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030027260{
27261 D(p->level++);
27262 if (p->error_indicator) {
27263 D(p->level--);
27264 return NULL;
27265 }
27266 void *_res = NULL;
27267 int _mark = p->mark;
27268 int _start_mark = p->mark;
27269 void **_children = PyMem_Malloc(sizeof(void *));
27270 if (!_children) {
27271 p->error_indicator = 1;
27272 PyErr_NoMemory();
27273 D(p->level--);
27274 return NULL;
27275 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027276 Py_ssize_t _children_capacity = 1;
27277 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027278 { // ('or' conjunction)
27279 if (p->error_indicator) {
27280 D(p->level--);
27281 return NULL;
27282 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027283 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 -070027284 void *_tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027285 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027286 (_tmp_184_var = _tmp_184_rule(p)) // 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027287 )
27288 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027289 _res = _tmp_184_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027290 if (_n == _children_capacity) {
27291 _children_capacity *= 2;
27292 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27293 if (!_new_children) {
27294 p->error_indicator = 1;
27295 PyErr_NoMemory();
27296 D(p->level--);
27297 return NULL;
27298 }
27299 _children = _new_children;
27300 }
27301 _children[_n++] = _res;
27302 _mark = p->mark;
27303 }
27304 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027305 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
27307 }
27308 if (_n == 0 || p->error_indicator) {
27309 PyMem_Free(_children);
27310 D(p->level--);
27311 return NULL;
27312 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027313 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027314 if (!_seq) {
27315 PyMem_Free(_children);
27316 p->error_indicator = 1;
27317 PyErr_NoMemory();
27318 D(p->level--);
27319 return NULL;
27320 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027321 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027322 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027323 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027324 D(p->level--);
27325 return _seq;
27326}
27327
Brandt Bucher145bf262021-02-26 14:51:55 -080027328// _loop1_105: ('and' inversion)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027329static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027330_loop1_105_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027331{
27332 D(p->level++);
27333 if (p->error_indicator) {
27334 D(p->level--);
27335 return NULL;
27336 }
27337 void *_res = NULL;
27338 int _mark = p->mark;
27339 int _start_mark = p->mark;
27340 void **_children = PyMem_Malloc(sizeof(void *));
27341 if (!_children) {
27342 p->error_indicator = 1;
27343 PyErr_NoMemory();
27344 D(p->level--);
27345 return NULL;
27346 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027347 Py_ssize_t _children_capacity = 1;
27348 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027349 { // ('and' inversion)
27350 if (p->error_indicator) {
27351 D(p->level--);
27352 return NULL;
27353 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027354 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 -070027355 void *_tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027356 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027357 (_tmp_185_var = _tmp_185_rule(p)) // 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027358 )
27359 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070027360 _res = _tmp_185_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027361 if (_n == _children_capacity) {
27362 _children_capacity *= 2;
27363 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27364 if (!_new_children) {
27365 p->error_indicator = 1;
27366 PyErr_NoMemory();
27367 D(p->level--);
27368 return NULL;
27369 }
27370 _children = _new_children;
27371 }
27372 _children[_n++] = _res;
27373 _mark = p->mark;
27374 }
27375 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027376 D(fprintf(stderr, "%*c%s _loop1_105[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
27378 }
27379 if (_n == 0 || p->error_indicator) {
27380 PyMem_Free(_children);
27381 D(p->level--);
27382 return NULL;
27383 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027384 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027385 if (!_seq) {
27386 PyMem_Free(_children);
27387 p->error_indicator = 1;
27388 PyErr_NoMemory();
27389 D(p->level--);
27390 return NULL;
27391 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027392 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027393 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027394 _PyPegen_insert_memo(p, _start_mark, _loop1_105_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027395 D(p->level--);
27396 return _seq;
27397}
27398
Brandt Bucher145bf262021-02-26 14:51:55 -080027399// _loop1_106: compare_op_bitwise_or_pair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027400static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027401_loop1_106_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027402{
27403 D(p->level++);
27404 if (p->error_indicator) {
27405 D(p->level--);
27406 return NULL;
27407 }
27408 void *_res = NULL;
27409 int _mark = p->mark;
27410 int _start_mark = p->mark;
27411 void **_children = PyMem_Malloc(sizeof(void *));
27412 if (!_children) {
27413 p->error_indicator = 1;
27414 PyErr_NoMemory();
27415 D(p->level--);
27416 return NULL;
27417 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027418 Py_ssize_t _children_capacity = 1;
27419 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027420 { // compare_op_bitwise_or_pair
27421 if (p->error_indicator) {
27422 D(p->level--);
27423 return NULL;
27424 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027425 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 +010027426 CmpopExprPair* compare_op_bitwise_or_pair_var;
27427 while (
27428 (compare_op_bitwise_or_pair_var = compare_op_bitwise_or_pair_rule(p)) // compare_op_bitwise_or_pair
27429 )
27430 {
27431 _res = compare_op_bitwise_or_pair_var;
27432 if (_n == _children_capacity) {
27433 _children_capacity *= 2;
27434 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27435 if (!_new_children) {
27436 p->error_indicator = 1;
27437 PyErr_NoMemory();
27438 D(p->level--);
27439 return NULL;
27440 }
27441 _children = _new_children;
27442 }
27443 _children[_n++] = _res;
27444 _mark = p->mark;
27445 }
27446 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027447 D(fprintf(stderr, "%*c%s _loop1_106[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
27449 }
27450 if (_n == 0 || p->error_indicator) {
27451 PyMem_Free(_children);
27452 D(p->level--);
27453 return NULL;
27454 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027455 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027456 if (!_seq) {
27457 PyMem_Free(_children);
27458 p->error_indicator = 1;
27459 PyErr_NoMemory();
27460 D(p->level--);
27461 return NULL;
27462 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027463 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027464 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027465 _PyPegen_insert_memo(p, _start_mark, _loop1_106_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027466 D(p->level--);
27467 return _seq;
27468}
27469
Brandt Bucher145bf262021-02-26 14:51:55 -080027470// _tmp_107: '!='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027471static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027472_tmp_107_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027473{
27474 D(p->level++);
27475 if (p->error_indicator) {
27476 D(p->level--);
27477 return NULL;
27478 }
27479 void * _res = NULL;
27480 int _mark = p->mark;
27481 { // '!='
27482 if (p->error_indicator) {
27483 D(p->level--);
27484 return NULL;
27485 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027486 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027487 Token * tok;
27488 if (
27489 (tok = _PyPegen_expect_token(p, 28)) // token='!='
27490 )
27491 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027492 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindo06f8c332020-10-30 23:48:42 +000027493 _res = _PyPegen_check_barry_as_flufl ( p , tok ) ? NULL : tok;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027494 if (_res == NULL && PyErr_Occurred()) {
27495 p->error_indicator = 1;
27496 D(p->level--);
27497 return NULL;
27498 }
27499 goto done;
27500 }
27501 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027502 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027503 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
27504 }
27505 _res = NULL;
27506 done:
27507 D(p->level--);
27508 return _res;
27509}
27510
Brandt Bucher145bf262021-02-26 14:51:55 -080027511// _loop0_109: ',' slice
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027512static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027513_loop0_109_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027514{
27515 D(p->level++);
27516 if (p->error_indicator) {
27517 D(p->level--);
27518 return NULL;
27519 }
27520 void *_res = NULL;
27521 int _mark = p->mark;
27522 int _start_mark = p->mark;
27523 void **_children = PyMem_Malloc(sizeof(void *));
27524 if (!_children) {
27525 p->error_indicator = 1;
27526 PyErr_NoMemory();
27527 D(p->level--);
27528 return NULL;
27529 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027530 Py_ssize_t _children_capacity = 1;
27531 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027532 { // ',' slice
27533 if (p->error_indicator) {
27534 D(p->level--);
27535 return NULL;
27536 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027537 D(fprintf(stderr, "%*c> _loop0_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027538 Token * _literal;
27539 expr_ty elem;
27540 while (
27541 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27542 &&
27543 (elem = slice_rule(p)) // slice
27544 )
27545 {
27546 _res = elem;
27547 if (_res == NULL && PyErr_Occurred()) {
27548 p->error_indicator = 1;
27549 PyMem_Free(_children);
27550 D(p->level--);
27551 return NULL;
27552 }
27553 if (_n == _children_capacity) {
27554 _children_capacity *= 2;
27555 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27556 if (!_new_children) {
27557 p->error_indicator = 1;
27558 PyErr_NoMemory();
27559 D(p->level--);
27560 return NULL;
27561 }
27562 _children = _new_children;
27563 }
27564 _children[_n++] = _res;
27565 _mark = p->mark;
27566 }
27567 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027568 D(fprintf(stderr, "%*c%s _loop0_109[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
27570 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027571 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027572 if (!_seq) {
27573 PyMem_Free(_children);
27574 p->error_indicator = 1;
27575 PyErr_NoMemory();
27576 D(p->level--);
27577 return NULL;
27578 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027579 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027580 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027581 _PyPegen_insert_memo(p, _start_mark, _loop0_109_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027582 D(p->level--);
27583 return _seq;
27584}
27585
Brandt Bucher145bf262021-02-26 14:51:55 -080027586// _gather_108: slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027587static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027588_gather_108_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027589{
27590 D(p->level++);
27591 if (p->error_indicator) {
27592 D(p->level--);
27593 return NULL;
27594 }
27595 asdl_seq * _res = NULL;
27596 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027597 { // slice _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027598 if (p->error_indicator) {
27599 D(p->level--);
27600 return NULL;
27601 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027602 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 +010027603 expr_ty elem;
27604 asdl_seq * seq;
27605 if (
27606 (elem = slice_rule(p)) // slice
27607 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080027608 (seq = _loop0_109_rule(p)) // _loop0_109
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027609 )
27610 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027611 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 +010027612 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
27613 goto done;
27614 }
27615 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027616 D(fprintf(stderr, "%*c%s _gather_108[%d-%d]: %s failed!\n", p->level, ' ',
27617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_109"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027618 }
27619 _res = NULL;
27620 done:
27621 D(p->level--);
27622 return _res;
27623}
27624
Brandt Bucher145bf262021-02-26 14:51:55 -080027625// _tmp_110: ':' expression?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027626static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027627_tmp_110_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027628{
27629 D(p->level++);
27630 if (p->error_indicator) {
27631 D(p->level--);
27632 return NULL;
27633 }
27634 void * _res = NULL;
27635 int _mark = p->mark;
27636 { // ':' expression?
27637 if (p->error_indicator) {
27638 D(p->level--);
27639 return NULL;
27640 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027641 D(fprintf(stderr, "%*c> _tmp_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027642 Token * _literal;
27643 void *d;
27644 if (
27645 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
27646 &&
27647 (d = expression_rule(p), 1) // expression?
27648 )
27649 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027650 D(fprintf(stderr, "%*c+ _tmp_110[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027651 _res = d;
27652 if (_res == NULL && PyErr_Occurred()) {
27653 p->error_indicator = 1;
27654 D(p->level--);
27655 return NULL;
27656 }
27657 goto done;
27658 }
27659 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027660 D(fprintf(stderr, "%*c%s _tmp_110[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027661 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
27662 }
27663 _res = NULL;
27664 done:
27665 D(p->level--);
27666 return _res;
27667}
27668
Brandt Bucher145bf262021-02-26 14:51:55 -080027669// _tmp_111: tuple | group | genexp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027670static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027671_tmp_111_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027672{
27673 D(p->level++);
27674 if (p->error_indicator) {
27675 D(p->level--);
27676 return NULL;
27677 }
27678 void * _res = NULL;
27679 int _mark = p->mark;
27680 { // tuple
27681 if (p->error_indicator) {
27682 D(p->level--);
27683 return NULL;
27684 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027685 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027686 expr_ty tuple_var;
27687 if (
27688 (tuple_var = tuple_rule(p)) // tuple
27689 )
27690 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027691 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027692 _res = tuple_var;
27693 goto done;
27694 }
27695 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027696 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
27698 }
27699 { // group
27700 if (p->error_indicator) {
27701 D(p->level--);
27702 return NULL;
27703 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027704 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027705 expr_ty group_var;
27706 if (
27707 (group_var = group_rule(p)) // group
27708 )
27709 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027710 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027711 _res = group_var;
27712 goto done;
27713 }
27714 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027715 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
27717 }
27718 { // genexp
27719 if (p->error_indicator) {
27720 D(p->level--);
27721 return NULL;
27722 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027723 D(fprintf(stderr, "%*c> _tmp_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027724 expr_ty genexp_var;
27725 if (
27726 (genexp_var = genexp_rule(p)) // genexp
27727 )
27728 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027729 D(fprintf(stderr, "%*c+ _tmp_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027730 _res = genexp_var;
27731 goto done;
27732 }
27733 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027734 D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
27736 }
27737 _res = NULL;
27738 done:
27739 D(p->level--);
27740 return _res;
27741}
27742
Brandt Bucher145bf262021-02-26 14:51:55 -080027743// _tmp_112: list | listcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027744static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027745_tmp_112_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027746{
27747 D(p->level++);
27748 if (p->error_indicator) {
27749 D(p->level--);
27750 return NULL;
27751 }
27752 void * _res = NULL;
27753 int _mark = p->mark;
27754 { // list
27755 if (p->error_indicator) {
27756 D(p->level--);
27757 return NULL;
27758 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027759 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027760 expr_ty list_var;
27761 if (
27762 (list_var = list_rule(p)) // list
27763 )
27764 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027765 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027766 _res = list_var;
27767 goto done;
27768 }
27769 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027770 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
27772 }
27773 { // listcomp
27774 if (p->error_indicator) {
27775 D(p->level--);
27776 return NULL;
27777 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027778 D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027779 expr_ty listcomp_var;
27780 if (
27781 (listcomp_var = listcomp_rule(p)) // listcomp
27782 )
27783 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027784 D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027785 _res = listcomp_var;
27786 goto done;
27787 }
27788 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027789 D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
27791 }
27792 _res = NULL;
27793 done:
27794 D(p->level--);
27795 return _res;
27796}
27797
Brandt Bucher145bf262021-02-26 14:51:55 -080027798// _tmp_113: dict | set | dictcomp | setcomp
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027799static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027800_tmp_113_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027801{
27802 D(p->level++);
27803 if (p->error_indicator) {
27804 D(p->level--);
27805 return NULL;
27806 }
27807 void * _res = NULL;
27808 int _mark = p->mark;
27809 { // dict
27810 if (p->error_indicator) {
27811 D(p->level--);
27812 return NULL;
27813 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027814 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027815 expr_ty dict_var;
27816 if (
27817 (dict_var = dict_rule(p)) // dict
27818 )
27819 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027820 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027821 _res = dict_var;
27822 goto done;
27823 }
27824 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027825 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
27827 }
27828 { // set
27829 if (p->error_indicator) {
27830 D(p->level--);
27831 return NULL;
27832 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027833 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027834 expr_ty set_var;
27835 if (
27836 (set_var = set_rule(p)) // set
27837 )
27838 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027839 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027840 _res = set_var;
27841 goto done;
27842 }
27843 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027844 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
27846 }
27847 { // dictcomp
27848 if (p->error_indicator) {
27849 D(p->level--);
27850 return NULL;
27851 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027852 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027853 expr_ty dictcomp_var;
27854 if (
27855 (dictcomp_var = dictcomp_rule(p)) // dictcomp
27856 )
27857 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027858 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027859 _res = dictcomp_var;
27860 goto done;
27861 }
27862 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027863 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
27865 }
27866 { // setcomp
27867 if (p->error_indicator) {
27868 D(p->level--);
27869 return NULL;
27870 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027871 D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027872 expr_ty setcomp_var;
27873 if (
27874 (setcomp_var = setcomp_rule(p)) // setcomp
27875 )
27876 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027877 D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027878 _res = setcomp_var;
27879 goto done;
27880 }
27881 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027882 D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
27884 }
27885 _res = NULL;
27886 done:
27887 D(p->level--);
27888 return _res;
27889}
27890
Brandt Bucher145bf262021-02-26 14:51:55 -080027891// _loop1_114: STRING
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027892static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080027893_loop1_114_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027894{
27895 D(p->level++);
27896 if (p->error_indicator) {
27897 D(p->level--);
27898 return NULL;
27899 }
27900 void *_res = NULL;
27901 int _mark = p->mark;
27902 int _start_mark = p->mark;
27903 void **_children = PyMem_Malloc(sizeof(void *));
27904 if (!_children) {
27905 p->error_indicator = 1;
27906 PyErr_NoMemory();
27907 D(p->level--);
27908 return NULL;
27909 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010027910 Py_ssize_t _children_capacity = 1;
27911 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027912 { // STRING
27913 if (p->error_indicator) {
27914 D(p->level--);
27915 return NULL;
27916 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027917 D(fprintf(stderr, "%*c> _loop1_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027918 expr_ty string_var;
27919 while (
27920 (string_var = _PyPegen_string_token(p)) // STRING
27921 )
27922 {
27923 _res = string_var;
27924 if (_n == _children_capacity) {
27925 _children_capacity *= 2;
27926 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
27927 if (!_new_children) {
27928 p->error_indicator = 1;
27929 PyErr_NoMemory();
27930 D(p->level--);
27931 return NULL;
27932 }
27933 _children = _new_children;
27934 }
27935 _children[_n++] = _res;
27936 _mark = p->mark;
27937 }
27938 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080027939 D(fprintf(stderr, "%*c%s _loop1_114[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
27941 }
27942 if (_n == 0 || p->error_indicator) {
27943 PyMem_Free(_children);
27944 D(p->level--);
27945 return NULL;
27946 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027947 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027948 if (!_seq) {
27949 PyMem_Free(_children);
27950 p->error_indicator = 1;
27951 PyErr_NoMemory();
27952 D(p->level--);
27953 return NULL;
27954 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010027955 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027956 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080027957 _PyPegen_insert_memo(p, _start_mark, _loop1_114_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027958 D(p->level--);
27959 return _seq;
27960}
27961
Brandt Bucher145bf262021-02-26 14:51:55 -080027962// _tmp_115: star_named_expression ',' star_named_expressions?
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027963static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080027964_tmp_115_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010027965{
27966 D(p->level++);
27967 if (p->error_indicator) {
27968 D(p->level--);
27969 return NULL;
27970 }
27971 void * _res = NULL;
27972 int _mark = p->mark;
27973 { // star_named_expression ',' star_named_expressions?
27974 if (p->error_indicator) {
27975 D(p->level--);
27976 return NULL;
27977 }
Brandt Bucher145bf262021-02-26 14:51:55 -080027978 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 +010027979 Token * _literal;
27980 expr_ty y;
27981 void *z;
27982 if (
27983 (y = star_named_expression_rule(p)) // star_named_expression
27984 &&
27985 (_literal = _PyPegen_expect_token(p, 12)) // token=','
27986 &&
27987 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
27988 )
27989 {
Brandt Bucher145bf262021-02-26 14:51:55 -080027990 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 +010027991 _res = _PyPegen_seq_insert_in_front ( p , y , z );
27992 if (_res == NULL && PyErr_Occurred()) {
27993 p->error_indicator = 1;
27994 D(p->level--);
27995 return NULL;
27996 }
27997 goto done;
27998 }
27999 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028000 D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
28002 }
28003 _res = NULL;
28004 done:
28005 D(p->level--);
28006 return _res;
28007}
28008
Brandt Bucher145bf262021-02-26 14:51:55 -080028009// _tmp_116: yield_expr | named_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028010static void *
Brandt Bucher145bf262021-02-26 14:51:55 -080028011_tmp_116_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028012{
28013 D(p->level++);
28014 if (p->error_indicator) {
28015 D(p->level--);
28016 return NULL;
28017 }
28018 void * _res = NULL;
28019 int _mark = p->mark;
28020 { // yield_expr
28021 if (p->error_indicator) {
28022 D(p->level--);
28023 return NULL;
28024 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028025 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028026 expr_ty yield_expr_var;
28027 if (
28028 (yield_expr_var = yield_expr_rule(p)) // yield_expr
28029 )
28030 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028031 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 +010028032 _res = yield_expr_var;
28033 goto done;
28034 }
28035 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028036 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028037 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
28038 }
28039 { // named_expression
28040 if (p->error_indicator) {
28041 D(p->level--);
28042 return NULL;
28043 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028044 D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028045 expr_ty named_expression_var;
28046 if (
28047 (named_expression_var = named_expression_rule(p)) // named_expression
28048 )
28049 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028050 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 +010028051 _res = named_expression_var;
28052 goto done;
28053 }
28054 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028055 D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
28057 }
28058 _res = NULL;
28059 done:
28060 D(p->level--);
28061 return _res;
28062}
28063
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028064// _tmp_117: assigment_expression | expression !':='
28065static void *
28066_tmp_117_rule(Parser *p)
28067{
28068 D(p->level++);
28069 if (p->error_indicator) {
28070 D(p->level--);
28071 return NULL;
28072 }
28073 void * _res = NULL;
28074 int _mark = p->mark;
28075 { // assigment_expression
28076 if (p->error_indicator) {
28077 D(p->level--);
28078 return NULL;
28079 }
28080 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28081 expr_ty assigment_expression_var;
28082 if (
28083 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
28084 )
28085 {
28086 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression"));
28087 _res = assigment_expression_var;
28088 goto done;
28089 }
28090 p->mark = _mark;
28091 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28092 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
28093 }
28094 { // expression !':='
28095 if (p->error_indicator) {
28096 D(p->level--);
28097 return NULL;
28098 }
28099 D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28100 expr_ty expression_var;
28101 if (
28102 (expression_var = expression_rule(p)) // expression
28103 &&
28104 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
28105 )
28106 {
28107 D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
28108 _res = expression_var;
28109 goto done;
28110 }
28111 p->mark = _mark;
28112 D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ',
28113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
28114 }
28115 _res = NULL;
28116 done:
28117 D(p->level--);
28118 return _res;
28119}
28120
28121// _loop0_119: ',' double_starred_kvpair
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028122static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028123_loop0_119_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028124{
28125 D(p->level++);
28126 if (p->error_indicator) {
28127 D(p->level--);
28128 return NULL;
28129 }
28130 void *_res = NULL;
28131 int _mark = p->mark;
28132 int _start_mark = p->mark;
28133 void **_children = PyMem_Malloc(sizeof(void *));
28134 if (!_children) {
28135 p->error_indicator = 1;
28136 PyErr_NoMemory();
28137 D(p->level--);
28138 return NULL;
28139 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028140 Py_ssize_t _children_capacity = 1;
28141 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028142 { // ',' double_starred_kvpair
28143 if (p->error_indicator) {
28144 D(p->level--);
28145 return NULL;
28146 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028147 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 +010028148 Token * _literal;
28149 KeyValuePair* elem;
28150 while (
28151 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28152 &&
28153 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28154 )
28155 {
28156 _res = elem;
28157 if (_res == NULL && PyErr_Occurred()) {
28158 p->error_indicator = 1;
28159 PyMem_Free(_children);
28160 D(p->level--);
28161 return NULL;
28162 }
28163 if (_n == _children_capacity) {
28164 _children_capacity *= 2;
28165 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28166 if (!_new_children) {
28167 p->error_indicator = 1;
28168 PyErr_NoMemory();
28169 D(p->level--);
28170 return NULL;
28171 }
28172 _children = _new_children;
28173 }
28174 _children[_n++] = _res;
28175 _mark = p->mark;
28176 }
28177 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028178 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
28180 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028181 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028182 if (!_seq) {
28183 PyMem_Free(_children);
28184 p->error_indicator = 1;
28185 PyErr_NoMemory();
28186 D(p->level--);
28187 return NULL;
28188 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028189 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028190 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028191 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028192 D(p->level--);
28193 return _seq;
28194}
28195
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028196// _gather_118: double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028197static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028198_gather_118_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028199{
28200 D(p->level++);
28201 if (p->error_indicator) {
28202 D(p->level--);
28203 return NULL;
28204 }
28205 asdl_seq * _res = NULL;
28206 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028207 { // double_starred_kvpair _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028208 if (p->error_indicator) {
28209 D(p->level--);
28210 return NULL;
28211 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028212 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 +010028213 KeyValuePair* elem;
28214 asdl_seq * seq;
28215 if (
28216 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
28217 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028218 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028219 )
28220 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028221 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 +010028222 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28223 goto done;
28224 }
28225 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028226 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
28227 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_119"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028228 }
28229 _res = NULL;
28230 done:
28231 D(p->level--);
28232 return _res;
28233}
28234
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028235// _loop1_120: for_if_clause
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028236static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028237_loop1_120_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028238{
28239 D(p->level++);
28240 if (p->error_indicator) {
28241 D(p->level--);
28242 return NULL;
28243 }
28244 void *_res = NULL;
28245 int _mark = p->mark;
28246 int _start_mark = p->mark;
28247 void **_children = PyMem_Malloc(sizeof(void *));
28248 if (!_children) {
28249 p->error_indicator = 1;
28250 PyErr_NoMemory();
28251 D(p->level--);
28252 return NULL;
28253 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028254 Py_ssize_t _children_capacity = 1;
28255 Py_ssize_t _n = 0;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028256 { // for_if_clause
28257 if (p->error_indicator) {
28258 D(p->level--);
28259 return NULL;
28260 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028261 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 +010028262 comprehension_ty for_if_clause_var;
28263 while (
28264 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
28265 )
28266 {
28267 _res = for_if_clause_var;
28268 if (_n == _children_capacity) {
28269 _children_capacity *= 2;
28270 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28271 if (!_new_children) {
28272 p->error_indicator = 1;
28273 PyErr_NoMemory();
28274 D(p->level--);
28275 return NULL;
28276 }
28277 _children = _new_children;
28278 }
28279 _children[_n++] = _res;
28280 _mark = p->mark;
28281 }
28282 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028283 D(fprintf(stderr, "%*c%s _loop1_120[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
28285 }
28286 if (_n == 0 || p->error_indicator) {
28287 PyMem_Free(_children);
28288 D(p->level--);
28289 return NULL;
28290 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028291 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028292 if (!_seq) {
28293 PyMem_Free(_children);
28294 p->error_indicator = 1;
28295 PyErr_NoMemory();
28296 D(p->level--);
28297 return NULL;
28298 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028299 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028300 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028301 _PyPegen_insert_memo(p, _start_mark, _loop1_120_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028302 D(p->level--);
28303 return _seq;
28304}
28305
Brandt Bucher145bf262021-02-26 14:51:55 -080028306// _loop0_121: ('if' disjunction)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028307static asdl_seq *
Brandt Bucher145bf262021-02-26 14:51:55 -080028308_loop0_121_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028309{
28310 D(p->level++);
28311 if (p->error_indicator) {
28312 D(p->level--);
28313 return NULL;
28314 }
28315 void *_res = NULL;
28316 int _mark = p->mark;
28317 int _start_mark = p->mark;
28318 void **_children = PyMem_Malloc(sizeof(void *));
28319 if (!_children) {
28320 p->error_indicator = 1;
28321 PyErr_NoMemory();
28322 D(p->level--);
28323 return NULL;
28324 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028325 Py_ssize_t _children_capacity = 1;
28326 Py_ssize_t _n = 0;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028327 { // ('if' disjunction)
28328 if (p->error_indicator) {
28329 D(p->level--);
28330 return NULL;
28331 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028332 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 -070028333 void *_tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028334 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028335 (_tmp_186_var = _tmp_186_rule(p)) // 'if' disjunction
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028336 )
28337 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028338 _res = _tmp_186_var;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028339 if (_n == _children_capacity) {
28340 _children_capacity *= 2;
28341 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28342 if (!_new_children) {
28343 p->error_indicator = 1;
28344 PyErr_NoMemory();
28345 D(p->level--);
28346 return NULL;
28347 }
28348 _children = _new_children;
28349 }
28350 _children[_n++] = _res;
28351 _mark = p->mark;
28352 }
28353 p->mark = _mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080028354 D(fprintf(stderr, "%*c%s _loop0_121[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28356 }
28357 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28358 if (!_seq) {
28359 PyMem_Free(_children);
28360 p->error_indicator = 1;
28361 PyErr_NoMemory();
28362 D(p->level--);
28363 return NULL;
28364 }
28365 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28366 PyMem_Free(_children);
Brandt Bucher145bf262021-02-26 14:51:55 -080028367 _PyPegen_insert_memo(p, _start_mark, _loop0_121_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028368 D(p->level--);
28369 return _seq;
28370}
28371
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028372// _loop0_122: ('if' disjunction)
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028373static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028374_loop0_122_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028375{
28376 D(p->level++);
28377 if (p->error_indicator) {
28378 D(p->level--);
28379 return NULL;
28380 }
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028381 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028382 int _mark = p->mark;
Lysandros Nikolaou01ece632020-06-19 02:10:43 +030028383 int _start_mark = p->mark;
28384 void **_children = PyMem_Malloc(sizeof(void *));
28385 if (!_children) {
28386 p->error_indicator = 1;
28387 PyErr_NoMemory();
28388 D(p->level--);
28389 return NULL;
28390 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028391 Py_ssize_t _children_capacity = 1;
28392 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028393 { // ('if' disjunction)
Pablo Galindo4a97b152020-09-02 17:44:19 +010028394 if (p->error_indicator) {
28395 D(p->level--);
28396 return NULL;
28397 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028398 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 -070028399 void *_tmp_187_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028400 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028401 (_tmp_187_var = _tmp_187_rule(p)) // 'if' disjunction
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028402 )
28403 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028404 _res = _tmp_187_var;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028405 if (_n == _children_capacity) {
28406 _children_capacity *= 2;
28407 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28408 if (!_new_children) {
28409 p->error_indicator = 1;
28410 PyErr_NoMemory();
28411 D(p->level--);
28412 return NULL;
28413 }
28414 _children = _new_children;
28415 }
28416 _children[_n++] = _res;
28417 _mark = p->mark;
28418 }
28419 p->mark = _mark;
28420 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
28421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
28422 }
28423 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28424 if (!_seq) {
28425 PyMem_Free(_children);
28426 p->error_indicator = 1;
28427 PyErr_NoMemory();
28428 D(p->level--);
28429 return NULL;
28430 }
28431 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28432 PyMem_Free(_children);
28433 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
28434 D(p->level--);
28435 return _seq;
28436}
28437
28438// _loop0_124: ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28439static asdl_seq *
28440_loop0_124_rule(Parser *p)
28441{
28442 D(p->level++);
28443 if (p->error_indicator) {
28444 D(p->level--);
28445 return NULL;
28446 }
28447 void *_res = NULL;
28448 int _mark = p->mark;
28449 int _start_mark = p->mark;
28450 void **_children = PyMem_Malloc(sizeof(void *));
28451 if (!_children) {
28452 p->error_indicator = 1;
28453 PyErr_NoMemory();
28454 D(p->level--);
28455 return NULL;
28456 }
28457 Py_ssize_t _children_capacity = 1;
28458 Py_ssize_t _n = 0;
28459 { // ',' (starred_expression | (assigment_expression | expression !':=') !'=')
28460 if (p->error_indicator) {
28461 D(p->level--);
28462 return NULL;
28463 }
28464 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 +010028465 Token * _literal;
28466 void *elem;
28467 while (
28468 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28469 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028470 (elem = _tmp_188_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028471 )
28472 {
28473 _res = elem;
28474 if (_res == NULL && PyErr_Occurred()) {
28475 p->error_indicator = 1;
28476 PyMem_Free(_children);
28477 D(p->level--);
28478 return NULL;
28479 }
28480 if (_n == _children_capacity) {
28481 _children_capacity *= 2;
28482 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28483 if (!_new_children) {
28484 p->error_indicator = 1;
28485 PyErr_NoMemory();
28486 D(p->level--);
28487 return NULL;
28488 }
28489 _children = _new_children;
28490 }
28491 _children[_n++] = _res;
28492 _mark = p->mark;
28493 }
28494 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028495 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
28496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | (assigment_expression | expression !':=') !'=')"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028497 }
28498 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28499 if (!_seq) {
28500 PyMem_Free(_children);
28501 p->error_indicator = 1;
28502 PyErr_NoMemory();
28503 D(p->level--);
28504 return NULL;
28505 }
28506 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28507 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028508 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028509 D(p->level--);
28510 return _seq;
28511}
28512
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028513// _gather_123:
28514// | (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028515static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028516_gather_123_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028517{
28518 D(p->level++);
28519 if (p->error_indicator) {
28520 D(p->level--);
28521 return NULL;
28522 }
28523 asdl_seq * _res = NULL;
28524 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028525 { // (starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028526 if (p->error_indicator) {
28527 D(p->level--);
28528 return NULL;
28529 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028530 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 -080028531 void *elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028532 asdl_seq * seq;
28533 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070028534 (elem = _tmp_188_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'='
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028535 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028536 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028537 )
28538 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028539 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 +000028540 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28541 goto done;
28542 }
28543 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028544 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
28545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | (assigment_expression | expression !':=') !'=') _loop0_124"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028546 }
28547 _res = NULL;
28548 done:
28549 D(p->level--);
28550 return _res;
28551}
28552
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028553// _tmp_125: ',' kwargs
Brandt Bucher145bf262021-02-26 14:51:55 -080028554static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028555_tmp_125_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028556{
28557 D(p->level++);
28558 if (p->error_indicator) {
28559 D(p->level--);
28560 return NULL;
28561 }
28562 void * _res = NULL;
28563 int _mark = p->mark;
28564 { // ',' kwargs
28565 if (p->error_indicator) {
28566 D(p->level--);
28567 return NULL;
28568 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028569 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028570 Token * _literal;
28571 asdl_seq* k;
28572 if (
28573 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28574 &&
28575 (k = kwargs_rule(p)) // kwargs
28576 )
28577 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028578 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' kwargs"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028579 _res = k;
28580 if (_res == NULL && PyErr_Occurred()) {
28581 p->error_indicator = 1;
28582 D(p->level--);
28583 return NULL;
28584 }
28585 goto done;
28586 }
28587 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028588 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwargs"));
28590 }
28591 _res = NULL;
28592 done:
28593 D(p->level--);
28594 return _res;
28595}
28596
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028597// _loop0_127: ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028598static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028599_loop0_127_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028600{
28601 D(p->level++);
28602 if (p->error_indicator) {
28603 D(p->level--);
28604 return NULL;
28605 }
28606 void *_res = NULL;
28607 int _mark = p->mark;
28608 int _start_mark = p->mark;
28609 void **_children = PyMem_Malloc(sizeof(void *));
28610 if (!_children) {
28611 p->error_indicator = 1;
28612 PyErr_NoMemory();
28613 D(p->level--);
28614 return NULL;
28615 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028616 Py_ssize_t _children_capacity = 1;
28617 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028618 { // ',' kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028619 if (p->error_indicator) {
28620 D(p->level--);
28621 return NULL;
28622 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028623 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 +000028624 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080028625 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028626 while (
28627 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28628 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080028629 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028630 )
28631 {
28632 _res = elem;
28633 if (_res == NULL && PyErr_Occurred()) {
28634 p->error_indicator = 1;
28635 PyMem_Free(_children);
28636 D(p->level--);
28637 return NULL;
28638 }
28639 if (_n == _children_capacity) {
28640 _children_capacity *= 2;
28641 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28642 if (!_new_children) {
28643 p->error_indicator = 1;
28644 PyErr_NoMemory();
28645 D(p->level--);
28646 return NULL;
28647 }
28648 _children = _new_children;
28649 }
28650 _children[_n++] = _res;
28651 _mark = p->mark;
28652 }
28653 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028654 D(fprintf(stderr, "%*c%s _loop0_127[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028656 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028657 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028658 if (!_seq) {
28659 PyMem_Free(_children);
28660 p->error_indicator = 1;
28661 PyErr_NoMemory();
28662 D(p->level--);
28663 return NULL;
28664 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010028665 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028666 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028667 _PyPegen_insert_memo(p, _start_mark, _loop0_127_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028668 D(p->level--);
28669 return _seq;
28670}
28671
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028672// _gather_126: kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028673static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028674_gather_126_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028675{
28676 D(p->level++);
28677 if (p->error_indicator) {
28678 D(p->level--);
28679 return NULL;
28680 }
28681 asdl_seq * _res = NULL;
28682 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028683 { // kwarg_or_starred _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028684 if (p->error_indicator) {
28685 D(p->level--);
28686 return NULL;
28687 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028688 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 -080028689 KeywordOrStarred* elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028690 asdl_seq * seq;
28691 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028692 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028693 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028694 (seq = _loop0_127_rule(p)) // _loop0_127
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028695 )
28696 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028697 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 +010028698 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28699 goto done;
28700 }
28701 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028702 D(fprintf(stderr, "%*c%s _gather_126[%d-%d]: %s failed!\n", p->level, ' ',
28703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_127"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028704 }
28705 _res = NULL;
28706 done:
28707 D(p->level--);
28708 return _res;
28709}
28710
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028711// _loop0_129: ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028712static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028713_loop0_129_rule(Parser *p)
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028714{
28715 D(p->level++);
28716 if (p->error_indicator) {
28717 D(p->level--);
28718 return NULL;
28719 }
28720 void *_res = NULL;
28721 int _mark = p->mark;
28722 int _start_mark = p->mark;
28723 void **_children = PyMem_Malloc(sizeof(void *));
28724 if (!_children) {
28725 p->error_indicator = 1;
28726 PyErr_NoMemory();
28727 D(p->level--);
28728 return NULL;
28729 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028730 Py_ssize_t _children_capacity = 1;
28731 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028732 { // ',' kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028733 if (p->error_indicator) {
28734 D(p->level--);
28735 return NULL;
28736 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028737 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 -080028738 Token * _literal;
28739 KeywordOrStarred* elem;
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028740 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028741 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28742 &&
28743 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028744 )
28745 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028746 _res = elem;
28747 if (_res == NULL && PyErr_Occurred()) {
28748 p->error_indicator = 1;
28749 PyMem_Free(_children);
28750 D(p->level--);
28751 return NULL;
28752 }
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028753 if (_n == _children_capacity) {
28754 _children_capacity *= 2;
28755 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28756 if (!_new_children) {
28757 p->error_indicator = 1;
28758 PyErr_NoMemory();
28759 D(p->level--);
28760 return NULL;
28761 }
28762 _children = _new_children;
28763 }
28764 _children[_n++] = _res;
28765 _mark = p->mark;
28766 }
28767 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028768 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028769 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindob0aba1f2020-11-17 01:17:12 +000028770 }
28771 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28772 if (!_seq) {
28773 PyMem_Free(_children);
28774 p->error_indicator = 1;
28775 PyErr_NoMemory();
28776 D(p->level--);
28777 return NULL;
28778 }
28779 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28780 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028781 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028782 D(p->level--);
Lysandros Nikolaou4b85e602020-06-26 02:22:36 +030028783 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028784}
28785
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028786// _gather_128: kwarg_or_double_starred _loop0_129
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028787static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028788_gather_128_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080028789{
28790 D(p->level++);
28791 if (p->error_indicator) {
28792 D(p->level--);
28793 return NULL;
28794 }
28795 asdl_seq * _res = NULL;
28796 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028797 { // kwarg_or_double_starred _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080028798 if (p->error_indicator) {
28799 D(p->level--);
28800 return NULL;
28801 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028802 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 -080028803 KeywordOrStarred* elem;
28804 asdl_seq * seq;
28805 if (
28806 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28807 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028808 (seq = _loop0_129_rule(p)) // _loop0_129
Brandt Bucher145bf262021-02-26 14:51:55 -080028809 )
28810 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028811 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 -080028812 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
28813 goto done;
28814 }
28815 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028816 D(fprintf(stderr, "%*c%s _gather_128[%d-%d]: %s failed!\n", p->level, ' ',
28817 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_129"));
Brandt Bucher145bf262021-02-26 14:51:55 -080028818 }
28819 _res = NULL;
28820 done:
28821 D(p->level--);
28822 return _res;
28823}
28824
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028825// _loop0_131: ',' kwarg_or_starred
Brandt Bucher145bf262021-02-26 14:51:55 -080028826static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028827_loop0_131_rule(Parser *p)
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028828{
28829 D(p->level++);
28830 if (p->error_indicator) {
28831 D(p->level--);
28832 return NULL;
28833 }
28834 void *_res = NULL;
28835 int _mark = p->mark;
28836 int _start_mark = p->mark;
28837 void **_children = PyMem_Malloc(sizeof(void *));
28838 if (!_children) {
28839 p->error_indicator = 1;
28840 PyErr_NoMemory();
28841 D(p->level--);
28842 return NULL;
28843 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028844 Py_ssize_t _children_capacity = 1;
28845 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080028846 { // ',' kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028847 if (p->error_indicator) {
28848 D(p->level--);
28849 return NULL;
28850 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028851 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 -080028852 Token * _literal;
28853 KeywordOrStarred* elem;
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028854 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080028855 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28856 &&
28857 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028858 )
28859 {
Brandt Bucher145bf262021-02-26 14:51:55 -080028860 _res = elem;
28861 if (_res == NULL && PyErr_Occurred()) {
28862 p->error_indicator = 1;
28863 PyMem_Free(_children);
28864 D(p->level--);
28865 return NULL;
28866 }
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028867 if (_n == _children_capacity) {
28868 _children_capacity *= 2;
28869 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28870 if (!_new_children) {
28871 p->error_indicator = 1;
28872 PyErr_NoMemory();
28873 D(p->level--);
28874 return NULL;
28875 }
28876 _children = _new_children;
28877 }
28878 _children[_n++] = _res;
28879 _mark = p->mark;
28880 }
28881 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028882 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080028883 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028884 }
28885 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
28886 if (!_seq) {
28887 PyMem_Free(_children);
28888 p->error_indicator = 1;
28889 PyErr_NoMemory();
28890 D(p->level--);
28891 return NULL;
28892 }
28893 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
28894 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028895 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Lysandros Nikolaou2ea320d2021-01-03 01:14:21 +020028896 D(p->level--);
28897 return _seq;
28898}
28899
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028900// _gather_130: kwarg_or_starred _loop0_131
Brandt Bucher145bf262021-02-26 14:51:55 -080028901static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028902_gather_130_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028903{
28904 D(p->level++);
28905 if (p->error_indicator) {
28906 D(p->level--);
28907 return NULL;
28908 }
Brandt Bucher145bf262021-02-26 14:51:55 -080028909 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028910 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028911 { // kwarg_or_starred _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028912 if (p->error_indicator) {
28913 D(p->level--);
28914 return NULL;
28915 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028916 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 -080028917 KeywordOrStarred* elem;
28918 asdl_seq * seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028919 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080028920 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
28921 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028922 (seq = _loop0_131_rule(p)) // _loop0_131
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028923 )
28924 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028925 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 -080028926 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028927 goto done;
28928 }
28929 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028930 D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ',
28931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_131"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028932 }
28933 _res = NULL;
28934 done:
28935 D(p->level--);
28936 return _res;
28937}
28938
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028939// _loop0_133: ',' kwarg_or_double_starred
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028940static asdl_seq *
Pablo Galindo835f14f2021-01-31 22:52:56 +000028941_loop0_133_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010028942{
28943 D(p->level++);
28944 if (p->error_indicator) {
28945 D(p->level--);
28946 return NULL;
28947 }
28948 void *_res = NULL;
28949 int _mark = p->mark;
28950 int _start_mark = p->mark;
28951 void **_children = PyMem_Malloc(sizeof(void *));
28952 if (!_children) {
28953 p->error_indicator = 1;
28954 PyErr_NoMemory();
28955 D(p->level--);
28956 return NULL;
28957 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010028958 Py_ssize_t _children_capacity = 1;
28959 Py_ssize_t _n = 0;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070028960 { // ',' kwarg_or_double_starred
28961 if (p->error_indicator) {
28962 D(p->level--);
28963 return NULL;
28964 }
28965 D(fprintf(stderr, "%*c> _loop0_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
28966 Token * _literal;
28967 KeywordOrStarred* elem;
28968 while (
28969 (_literal = _PyPegen_expect_token(p, 12)) // token=','
28970 &&
28971 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
28972 )
28973 {
28974 _res = elem;
28975 if (_res == NULL && PyErr_Occurred()) {
28976 p->error_indicator = 1;
28977 PyMem_Free(_children);
28978 D(p->level--);
28979 return NULL;
28980 }
28981 if (_n == _children_capacity) {
28982 _children_capacity *= 2;
28983 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
28984 if (!_new_children) {
28985 p->error_indicator = 1;
28986 PyErr_NoMemory();
28987 D(p->level--);
28988 return NULL;
28989 }
28990 _children = _new_children;
28991 }
28992 _children[_n++] = _res;
28993 _mark = p->mark;
28994 }
28995 p->mark = _mark;
28996 D(fprintf(stderr, "%*c%s _loop0_133[%d-%d]: %s failed!\n", p->level, ' ',
28997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
28998 }
28999 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29000 if (!_seq) {
29001 PyMem_Free(_children);
29002 p->error_indicator = 1;
29003 PyErr_NoMemory();
29004 D(p->level--);
29005 return NULL;
29006 }
29007 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29008 PyMem_Free(_children);
29009 _PyPegen_insert_memo(p, _start_mark, _loop0_133_type, _seq);
29010 D(p->level--);
29011 return _seq;
29012}
29013
29014// _gather_132: kwarg_or_double_starred _loop0_133
29015static asdl_seq *
29016_gather_132_rule(Parser *p)
29017{
29018 D(p->level++);
29019 if (p->error_indicator) {
29020 D(p->level--);
29021 return NULL;
29022 }
29023 asdl_seq * _res = NULL;
29024 int _mark = p->mark;
29025 { // kwarg_or_double_starred _loop0_133
29026 if (p->error_indicator) {
29027 D(p->level--);
29028 return NULL;
29029 }
29030 D(fprintf(stderr, "%*c> _gather_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29031 KeywordOrStarred* elem;
29032 asdl_seq * seq;
29033 if (
29034 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
29035 &&
29036 (seq = _loop0_133_rule(p)) // _loop0_133
29037 )
29038 {
29039 D(fprintf(stderr, "%*c+ _gather_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29040 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29041 goto done;
29042 }
29043 p->mark = _mark;
29044 D(fprintf(stderr, "%*c%s _gather_132[%d-%d]: %s failed!\n", p->level, ' ',
29045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_133"));
29046 }
29047 _res = NULL;
29048 done:
29049 D(p->level--);
29050 return _res;
29051}
29052
29053// _loop0_134: (',' star_target)
29054static asdl_seq *
29055_loop0_134_rule(Parser *p)
29056{
29057 D(p->level++);
29058 if (p->error_indicator) {
29059 D(p->level--);
29060 return NULL;
29061 }
29062 void *_res = NULL;
29063 int _mark = p->mark;
29064 int _start_mark = p->mark;
29065 void **_children = PyMem_Malloc(sizeof(void *));
29066 if (!_children) {
29067 p->error_indicator = 1;
29068 PyErr_NoMemory();
29069 D(p->level--);
29070 return NULL;
29071 }
29072 Py_ssize_t _children_capacity = 1;
29073 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029074 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029075 if (p->error_indicator) {
29076 D(p->level--);
29077 return NULL;
29078 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029079 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 -070029080 void *_tmp_189_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029081 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029082 (_tmp_189_var = _tmp_189_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029083 )
29084 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029085 _res = _tmp_189_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029086 if (_n == _children_capacity) {
29087 _children_capacity *= 2;
29088 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29089 if (!_new_children) {
29090 p->error_indicator = 1;
29091 PyErr_NoMemory();
29092 D(p->level--);
29093 return NULL;
29094 }
29095 _children = _new_children;
29096 }
29097 _children[_n++] = _res;
29098 _mark = p->mark;
29099 }
29100 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029101 D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029102 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029103 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029104 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029105 if (!_seq) {
29106 PyMem_Free(_children);
29107 p->error_indicator = 1;
29108 PyErr_NoMemory();
29109 D(p->level--);
29110 return NULL;
29111 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029112 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029113 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029114 _PyPegen_insert_memo(p, _start_mark, _loop0_134_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029115 D(p->level--);
29116 return _seq;
29117}
29118
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029119// _loop0_136: ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029120static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029121_loop0_136_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029122{
29123 D(p->level++);
29124 if (p->error_indicator) {
29125 D(p->level--);
29126 return NULL;
29127 }
29128 void *_res = NULL;
29129 int _mark = p->mark;
29130 int _start_mark = p->mark;
29131 void **_children = PyMem_Malloc(sizeof(void *));
29132 if (!_children) {
29133 p->error_indicator = 1;
29134 PyErr_NoMemory();
29135 D(p->level--);
29136 return NULL;
29137 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029138 Py_ssize_t _children_capacity = 1;
29139 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029140 { // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029141 if (p->error_indicator) {
29142 D(p->level--);
29143 return NULL;
29144 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029145 D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029146 Token * _literal;
29147 expr_ty elem;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029148 while (
Brandt Bucher145bf262021-02-26 14:51:55 -080029149 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29150 &&
29151 (elem = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029152 )
29153 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029154 _res = elem;
29155 if (_res == NULL && PyErr_Occurred()) {
29156 p->error_indicator = 1;
29157 PyMem_Free(_children);
29158 D(p->level--);
29159 return NULL;
29160 }
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029161 if (_n == _children_capacity) {
29162 _children_capacity *= 2;
29163 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29164 if (!_new_children) {
29165 p->error_indicator = 1;
29166 PyErr_NoMemory();
29167 D(p->level--);
29168 return NULL;
29169 }
29170 _children = _new_children;
29171 }
29172 _children[_n++] = _res;
29173 _mark = p->mark;
29174 }
29175 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029176 D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029178 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029179 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029180 if (!_seq) {
29181 PyMem_Free(_children);
29182 p->error_indicator = 1;
29183 PyErr_NoMemory();
29184 D(p->level--);
29185 return NULL;
29186 }
Pablo Galindoa5634c42020-09-16 19:42:00 +010029187 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029188 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029189 _PyPegen_insert_memo(p, _start_mark, _loop0_136_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029190 D(p->level--);
29191 return _seq;
29192}
29193
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029194// _gather_135: star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029195static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029196_gather_135_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029197{
29198 D(p->level++);
29199 if (p->error_indicator) {
29200 D(p->level--);
29201 return NULL;
29202 }
29203 asdl_seq * _res = NULL;
29204 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029205 { // star_target _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029206 if (p->error_indicator) {
29207 D(p->level--);
29208 return NULL;
29209 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029210 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 -080029211 expr_ty elem;
29212 asdl_seq * seq;
29213 if (
29214 (elem = star_target_rule(p)) // star_target
29215 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029216 (seq = _loop0_136_rule(p)) // _loop0_136
Brandt Bucher145bf262021-02-26 14:51:55 -080029217 )
29218 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029219 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 -080029220 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
29221 goto done;
29222 }
29223 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029224 D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ',
29225 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_136"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029226 }
29227 _res = NULL;
29228 done:
29229 D(p->level--);
29230 return _res;
29231}
29232
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029233// _loop1_137: (',' star_target)
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029234static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029235_loop1_137_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029236{
29237 D(p->level++);
29238 if (p->error_indicator) {
29239 D(p->level--);
29240 return NULL;
29241 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029242 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029243 int _mark = p->mark;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029244 int _start_mark = p->mark;
29245 void **_children = PyMem_Malloc(sizeof(void *));
29246 if (!_children) {
29247 p->error_indicator = 1;
29248 PyErr_NoMemory();
29249 D(p->level--);
29250 return NULL;
29251 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029252 Py_ssize_t _children_capacity = 1;
29253 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029254 { // (',' star_target)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029255 if (p->error_indicator) {
29256 D(p->level--);
29257 return NULL;
29258 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029259 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 -070029260 void *_tmp_190_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029261 while (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029262 (_tmp_190_var = _tmp_190_rule(p)) // ',' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029263 )
29264 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029265 _res = _tmp_190_var;
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029266 if (_n == _children_capacity) {
29267 _children_capacity *= 2;
29268 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29269 if (!_new_children) {
29270 p->error_indicator = 1;
29271 PyErr_NoMemory();
29272 D(p->level--);
29273 return NULL;
29274 }
29275 _children = _new_children;
29276 }
29277 _children[_n++] = _res;
29278 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029279 }
29280 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029281 D(fprintf(stderr, "%*c%s _loop1_137[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029283 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029284 if (_n == 0 || p->error_indicator) {
29285 PyMem_Free(_children);
29286 D(p->level--);
29287 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029288 }
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029289 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29290 if (!_seq) {
29291 PyMem_Free(_children);
29292 p->error_indicator = 1;
29293 PyErr_NoMemory();
29294 D(p->level--);
29295 return NULL;
29296 }
29297 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29298 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029299 _PyPegen_insert_memo(p, _start_mark, _loop1_137_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029300 D(p->level--);
Lysandros Nikolaou07dcd862021-01-08 00:31:25 +020029301 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029302}
29303
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029304// _tmp_138: !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029305static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029306_tmp_138_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029307{
29308 D(p->level++);
29309 if (p->error_indicator) {
29310 D(p->level--);
29311 return NULL;
29312 }
29313 void * _res = NULL;
29314 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029315 { // !'*' star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029316 if (p->error_indicator) {
29317 D(p->level--);
29318 return NULL;
29319 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029320 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029321 expr_ty star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029322 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029323 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029324 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029325 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029326 )
29327 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029328 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 -080029329 _res = star_target_var;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029330 goto done;
29331 }
29332 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029333 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029335 }
29336 _res = NULL;
29337 done:
29338 D(p->level--);
29339 return _res;
29340}
29341
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029342// _loop0_140: ',' del_target
Brandt Bucher145bf262021-02-26 14:51:55 -080029343static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029344_loop0_140_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029345{
29346 D(p->level++);
29347 if (p->error_indicator) {
29348 D(p->level--);
29349 return NULL;
29350 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029351 void *_res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029352 int _mark = p->mark;
Brandt Bucher145bf262021-02-26 14:51:55 -080029353 int _start_mark = p->mark;
29354 void **_children = PyMem_Malloc(sizeof(void *));
29355 if (!_children) {
29356 p->error_indicator = 1;
29357 PyErr_NoMemory();
29358 D(p->level--);
29359 return NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029360 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029361 Py_ssize_t _children_capacity = 1;
29362 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029363 { // ',' del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029364 if (p->error_indicator) {
29365 D(p->level--);
29366 return NULL;
29367 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029368 D(fprintf(stderr, "%*c> _loop0_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029369 Token * _literal;
Brandt Bucher145bf262021-02-26 14:51:55 -080029370 expr_ty elem;
29371 while (
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029372 (_literal = _PyPegen_expect_token(p, 12)) // token=','
29373 &&
Brandt Bucher145bf262021-02-26 14:51:55 -080029374 (elem = del_target_rule(p)) // del_target
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029375 )
29376 {
Brandt Bucher145bf262021-02-26 14:51:55 -080029377 _res = elem;
29378 if (_res == NULL && PyErr_Occurred()) {
29379 p->error_indicator = 1;
29380 PyMem_Free(_children);
29381 D(p->level--);
29382 return NULL;
29383 }
29384 if (_n == _children_capacity) {
29385 _children_capacity *= 2;
29386 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29387 if (!_new_children) {
29388 p->error_indicator = 1;
29389 PyErr_NoMemory();
29390 D(p->level--);
29391 return NULL;
29392 }
29393 _children = _new_children;
29394 }
29395 _children[_n++] = _res;
29396 _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029397 }
29398 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029399 D(fprintf(stderr, "%*c%s _loop0_140[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029401 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029402 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29403 if (!_seq) {
29404 PyMem_Free(_children);
29405 p->error_indicator = 1;
29406 PyErr_NoMemory();
29407 D(p->level--);
29408 return NULL;
29409 }
29410 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29411 PyMem_Free(_children);
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029412 _PyPegen_insert_memo(p, _start_mark, _loop0_140_type, _seq);
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029413 D(p->level--);
Brandt Bucher145bf262021-02-26 14:51:55 -080029414 return _seq;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029415}
29416
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029417// _gather_139: del_target _loop0_140
Brandt Bucher145bf262021-02-26 14:51:55 -080029418static asdl_seq *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029419_gather_139_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029420{
29421 D(p->level++);
29422 if (p->error_indicator) {
29423 D(p->level--);
29424 return NULL;
29425 }
Brandt Bucher145bf262021-02-26 14:51:55 -080029426 asdl_seq * _res = NULL;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010029427 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029428 { // del_target _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029429 if (p->error_indicator) {
29430 D(p->level--);
29431 return NULL;
29432 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029433 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 -080029434 expr_ty elem;
29435 asdl_seq * seq;
Pablo Galindo58fb1562021-02-02 19:54:22 +000029436 if (
Brandt Bucher145bf262021-02-26 14:51:55 -080029437 (elem = del_target_rule(p)) // del_target
29438 &&
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029439 (seq = _loop0_140_rule(p)) // _loop0_140
Pablo Galindo58fb1562021-02-02 19:54:22 +000029440 )
29441 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029442 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 -080029443 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindo58fb1562021-02-02 19:54:22 +000029444 goto done;
29445 }
29446 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029447 D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ',
29448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_140"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000029449 }
29450 _res = NULL;
29451 done:
29452 D(p->level--);
29453 return _res;
29454}
29455
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029456// _tmp_141: args | expression for_if_clauses
Brandt Bucher145bf262021-02-26 14:51:55 -080029457static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029458_tmp_141_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080029459{
29460 D(p->level++);
29461 if (p->error_indicator) {
29462 D(p->level--);
29463 return NULL;
29464 }
29465 void * _res = NULL;
29466 int _mark = p->mark;
29467 { // args
29468 if (p->error_indicator) {
29469 D(p->level--);
29470 return NULL;
29471 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029472 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029473 expr_ty args_var;
29474 if (
29475 (args_var = args_rule(p)) // args
29476 )
29477 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029478 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029479 _res = args_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_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
29485 }
29486 { // expression for_if_clauses
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_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Brandt Bucher145bf262021-02-26 14:51:55 -080029492 expr_ty expression_var;
29493 asdl_comprehension_seq* for_if_clauses_var;
29494 if (
29495 (expression_var = expression_rule(p)) // expression
29496 &&
29497 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
29498 )
29499 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029500 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 -080029501 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
29502 goto done;
29503 }
29504 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029505 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080029506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
29507 }
29508 _res = NULL;
29509 done:
29510 D(p->level--);
29511 return _res;
29512}
29513
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029514// _tmp_142: NAME '='
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029515static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029516_tmp_142_rule(Parser *p)
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029517{
29518 D(p->level++);
29519 if (p->error_indicator) {
29520 D(p->level--);
29521 return NULL;
29522 }
29523 void * _res = NULL;
29524 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029525 { // NAME '='
29526 if (p->error_indicator) {
29527 D(p->level--);
29528 return NULL;
29529 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029530 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 -070029531 Token * _literal;
29532 expr_ty name_var;
29533 if (
29534 (name_var = _PyPegen_name_token(p)) // NAME
29535 &&
29536 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29537 )
29538 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029539 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 -070029540 _res = _PyPegen_dummy_name(p, name_var, _literal);
29541 goto done;
29542 }
29543 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029544 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '='"));
29546 }
29547 _res = NULL;
29548 done:
29549 D(p->level--);
29550 return _res;
29551}
29552
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029553// _tmp_143: NAME STRING | SOFT_KEYWORD
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029554static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029555_tmp_143_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070029556{
29557 D(p->level++);
29558 if (p->error_indicator) {
29559 D(p->level--);
29560 return NULL;
29561 }
29562 void * _res = NULL;
29563 int _mark = p->mark;
Pablo Galindob2802482021-04-15 21:38:45 +010029564 { // NAME STRING
29565 if (p->error_indicator) {
29566 D(p->level--);
29567 return NULL;
29568 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029569 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME STRING"));
Pablo Galindob2802482021-04-15 21:38:45 +010029570 expr_ty name_var;
29571 expr_ty string_var;
29572 if (
29573 (name_var = _PyPegen_name_token(p)) // NAME
29574 &&
29575 (string_var = _PyPegen_string_token(p)) // STRING
29576 )
29577 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029578 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 +010029579 _res = _PyPegen_dummy_name(p, name_var, string_var);
29580 goto done;
29581 }
29582 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029583 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING"));
29585 }
29586 { // SOFT_KEYWORD
29587 if (p->error_indicator) {
29588 D(p->level--);
29589 return NULL;
29590 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029591 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "SOFT_KEYWORD"));
Pablo Galindob2802482021-04-15 21:38:45 +010029592 expr_ty soft_keyword_var;
29593 if (
29594 (soft_keyword_var = _PyPegen_soft_keyword_token(p)) // SOFT_KEYWORD
29595 )
29596 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029597 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 +010029598 _res = soft_keyword_var;
29599 goto done;
29600 }
29601 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029602 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010029603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD"));
29604 }
29605 _res = NULL;
29606 done:
29607 D(p->level--);
29608 return _res;
29609}
29610
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029611// _tmp_144: '=' | ':='
29612static void *
29613_tmp_144_rule(Parser *p)
29614{
29615 D(p->level++);
29616 if (p->error_indicator) {
29617 D(p->level--);
29618 return NULL;
29619 }
29620 void * _res = NULL;
29621 int _mark = p->mark;
29622 { // '='
29623 if (p->error_indicator) {
29624 D(p->level--);
29625 return NULL;
29626 }
29627 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
29628 Token * _literal;
29629 if (
29630 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29631 )
29632 {
29633 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
29634 _res = _literal;
29635 goto done;
29636 }
29637 p->mark = _mark;
29638 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29640 }
29641 { // ':='
29642 if (p->error_indicator) {
29643 D(p->level--);
29644 return NULL;
29645 }
29646 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
29647 Token * _literal;
29648 if (
29649 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29650 )
29651 {
29652 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
29653 _res = _literal;
29654 goto done;
29655 }
29656 p->mark = _mark;
29657 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
29658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29659 }
29660 _res = NULL;
29661 done:
29662 D(p->level--);
29663 return _res;
29664}
29665
29666// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False'
29667static void *
29668_tmp_145_rule(Parser *p)
29669{
29670 D(p->level++);
29671 if (p->error_indicator) {
29672 D(p->level--);
29673 return NULL;
29674 }
29675 void * _res = NULL;
29676 int _mark = p->mark;
29677 { // list
29678 if (p->error_indicator) {
29679 D(p->level--);
29680 return NULL;
29681 }
29682 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
29683 expr_ty list_var;
29684 if (
29685 (list_var = list_rule(p)) // list
29686 )
29687 {
29688 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
29689 _res = list_var;
29690 goto done;
29691 }
29692 p->mark = _mark;
29693 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
29695 }
29696 { // tuple
29697 if (p->error_indicator) {
29698 D(p->level--);
29699 return NULL;
29700 }
29701 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
29702 expr_ty tuple_var;
29703 if (
29704 (tuple_var = tuple_rule(p)) // tuple
29705 )
29706 {
29707 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
29708 _res = tuple_var;
29709 goto done;
29710 }
29711 p->mark = _mark;
29712 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
29714 }
29715 { // genexp
29716 if (p->error_indicator) {
29717 D(p->level--);
29718 return NULL;
29719 }
29720 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
29721 expr_ty genexp_var;
29722 if (
29723 (genexp_var = genexp_rule(p)) // genexp
29724 )
29725 {
29726 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
29727 _res = genexp_var;
29728 goto done;
29729 }
29730 p->mark = _mark;
29731 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
29733 }
29734 { // 'True'
29735 if (p->error_indicator) {
29736 D(p->level--);
29737 return NULL;
29738 }
29739 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
29740 Token * _keyword;
29741 if (
29742 (_keyword = _PyPegen_expect_token(p, 524)) // token='True'
29743 )
29744 {
29745 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
29746 _res = _keyword;
29747 goto done;
29748 }
29749 p->mark = _mark;
29750 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
29752 }
29753 { // 'None'
29754 if (p->error_indicator) {
29755 D(p->level--);
29756 return NULL;
29757 }
29758 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
29759 Token * _keyword;
29760 if (
29761 (_keyword = _PyPegen_expect_token(p, 523)) // token='None'
29762 )
29763 {
29764 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
29765 _res = _keyword;
29766 goto done;
29767 }
29768 p->mark = _mark;
29769 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29770 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
29771 }
29772 { // 'False'
29773 if (p->error_indicator) {
29774 D(p->level--);
29775 return NULL;
29776 }
29777 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
29778 Token * _keyword;
29779 if (
29780 (_keyword = _PyPegen_expect_token(p, 525)) // token='False'
29781 )
29782 {
29783 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
29784 _res = _keyword;
29785 goto done;
29786 }
29787 p->mark = _mark;
29788 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
29789 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
29790 }
29791 _res = NULL;
29792 done:
29793 D(p->level--);
29794 return _res;
29795}
29796
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029797// _tmp_146: '=' | ':='
Pablo Galindob2802482021-04-15 21:38:45 +010029798static void *
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029799_tmp_146_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010029800{
29801 D(p->level++);
29802 if (p->error_indicator) {
29803 D(p->level--);
29804 return NULL;
29805 }
29806 void * _res = NULL;
29807 int _mark = p->mark;
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029808 { // '='
29809 if (p->error_indicator) {
29810 D(p->level--);
29811 return NULL;
29812 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029813 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029814 Token * _literal;
29815 if (
29816 (_literal = _PyPegen_expect_token(p, 22)) // token='='
29817 )
29818 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029819 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029820 _res = _literal;
29821 goto done;
29822 }
29823 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029824 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='"));
29826 }
29827 { // ':='
29828 if (p->error_indicator) {
29829 D(p->level--);
29830 return NULL;
29831 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029832 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029833 Token * _literal;
29834 if (
29835 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
29836 )
29837 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029838 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='"));
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029839 _res = _literal;
29840 goto done;
29841 }
29842 p->mark = _mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029843 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='"));
29845 }
Pablo Galindob86ed8e2021-04-12 16:59:30 +010029846 _res = NULL;
29847 done:
29848 D(p->level--);
29849 return _res;
29850}
29851
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029852// _loop0_147: star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029853static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029854_loop0_147_rule(Parser *p)
Pablo Galindo58fb1562021-02-02 19:54:22 +000029855{
29856 D(p->level++);
29857 if (p->error_indicator) {
29858 D(p->level--);
29859 return NULL;
29860 }
29861 void *_res = NULL;
29862 int _mark = p->mark;
29863 int _start_mark = p->mark;
29864 void **_children = PyMem_Malloc(sizeof(void *));
29865 if (!_children) {
29866 p->error_indicator = 1;
29867 PyErr_NoMemory();
29868 D(p->level--);
29869 return NULL;
29870 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010029871 Py_ssize_t _children_capacity = 1;
29872 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080029873 { // star_named_expressions
Pablo Galindo58fb1562021-02-02 19:54:22 +000029874 if (p->error_indicator) {
29875 D(p->level--);
29876 return NULL;
29877 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029878 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 -080029879 asdl_expr_seq* star_named_expressions_var;
29880 while (
29881 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
29882 )
29883 {
29884 _res = star_named_expressions_var;
29885 if (_n == _children_capacity) {
29886 _children_capacity *= 2;
29887 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29888 if (!_new_children) {
29889 p->error_indicator = 1;
29890 PyErr_NoMemory();
29891 D(p->level--);
29892 return NULL;
29893 }
29894 _children = _new_children;
29895 }
29896 _children[_n++] = _res;
29897 _mark = p->mark;
29898 }
29899 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029900 D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070029901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Pablo Galindob2802482021-04-15 21:38:45 +010029902 }
29903 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29904 if (!_seq) {
29905 PyMem_Free(_children);
29906 p->error_indicator = 1;
29907 PyErr_NoMemory();
29908 D(p->level--);
29909 return NULL;
29910 }
29911 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29912 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070029913 _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq);
29914 D(p->level--);
29915 return _seq;
29916}
29917
29918// _loop0_148: (star_targets '=')
29919static asdl_seq *
29920_loop0_148_rule(Parser *p)
29921{
29922 D(p->level++);
29923 if (p->error_indicator) {
29924 D(p->level--);
29925 return NULL;
29926 }
29927 void *_res = NULL;
29928 int _mark = p->mark;
29929 int _start_mark = p->mark;
29930 void **_children = PyMem_Malloc(sizeof(void *));
29931 if (!_children) {
29932 p->error_indicator = 1;
29933 PyErr_NoMemory();
29934 D(p->level--);
29935 return NULL;
29936 }
29937 Py_ssize_t _children_capacity = 1;
29938 Py_ssize_t _n = 0;
29939 { // (star_targets '=')
29940 if (p->error_indicator) {
29941 D(p->level--);
29942 return NULL;
29943 }
29944 D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
29945 void *_tmp_191_var;
29946 while (
29947 (_tmp_191_var = _tmp_191_rule(p)) // star_targets '='
29948 )
29949 {
29950 _res = _tmp_191_var;
29951 if (_n == _children_capacity) {
29952 _children_capacity *= 2;
29953 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
29954 if (!_new_children) {
29955 p->error_indicator = 1;
29956 PyErr_NoMemory();
29957 D(p->level--);
29958 return NULL;
29959 }
29960 _children = _new_children;
29961 }
29962 _children[_n++] = _res;
29963 _mark = p->mark;
29964 }
29965 p->mark = _mark;
29966 D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ',
29967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
29968 }
29969 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
29970 if (!_seq) {
29971 PyMem_Free(_children);
29972 p->error_indicator = 1;
29973 PyErr_NoMemory();
29974 D(p->level--);
29975 return NULL;
29976 }
29977 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
29978 PyMem_Free(_children);
29979 _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq);
29980 D(p->level--);
29981 return _seq;
29982}
29983
29984// _loop0_149: (star_targets '=')
29985static asdl_seq *
29986_loop0_149_rule(Parser *p)
29987{
29988 D(p->level++);
29989 if (p->error_indicator) {
29990 D(p->level--);
29991 return NULL;
29992 }
29993 void *_res = NULL;
29994 int _mark = p->mark;
29995 int _start_mark = p->mark;
29996 void **_children = PyMem_Malloc(sizeof(void *));
29997 if (!_children) {
29998 p->error_indicator = 1;
29999 PyErr_NoMemory();
30000 D(p->level--);
30001 return NULL;
30002 }
30003 Py_ssize_t _children_capacity = 1;
30004 Py_ssize_t _n = 0;
30005 { // (star_targets '=')
30006 if (p->error_indicator) {
30007 D(p->level--);
30008 return NULL;
30009 }
30010 D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
30011 void *_tmp_192_var;
30012 while (
30013 (_tmp_192_var = _tmp_192_rule(p)) // star_targets '='
30014 )
30015 {
30016 _res = _tmp_192_var;
30017 if (_n == _children_capacity) {
30018 _children_capacity *= 2;
30019 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30020 if (!_new_children) {
30021 p->error_indicator = 1;
30022 PyErr_NoMemory();
30023 D(p->level--);
30024 return NULL;
30025 }
30026 _children = _new_children;
30027 }
30028 _children[_n++] = _res;
30029 _mark = p->mark;
30030 }
30031 p->mark = _mark;
30032 D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ',
30033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
30034 }
30035 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30036 if (!_seq) {
30037 PyMem_Free(_children);
30038 p->error_indicator = 1;
30039 PyErr_NoMemory();
30040 D(p->level--);
30041 return NULL;
30042 }
30043 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30044 PyMem_Free(_children);
Pablo Galindob2802482021-04-15 21:38:45 +010030045 _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq);
30046 D(p->level--);
30047 return _seq;
30048}
30049
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030050// _tmp_150: yield_expr | star_expressions
Brandt Bucher145bf262021-02-26 14:51:55 -080030051static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030052_tmp_150_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030053{
30054 D(p->level++);
30055 if (p->error_indicator) {
30056 D(p->level--);
30057 return NULL;
30058 }
30059 void * _res = NULL;
30060 int _mark = p->mark;
30061 { // yield_expr
30062 if (p->error_indicator) {
30063 D(p->level--);
30064 return NULL;
30065 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030066 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030067 expr_ty yield_expr_var;
30068 if (
30069 (yield_expr_var = yield_expr_rule(p)) // yield_expr
30070 )
30071 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030072 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 -080030073 _res = yield_expr_var;
30074 goto done;
30075 }
30076 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030077 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
30079 }
30080 { // star_expressions
30081 if (p->error_indicator) {
30082 D(p->level--);
30083 return NULL;
30084 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030085 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Brandt Bucher145bf262021-02-26 14:51:55 -080030086 expr_ty star_expressions_var;
30087 if (
30088 (star_expressions_var = star_expressions_rule(p)) // star_expressions
30089 )
30090 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030091 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 -080030092 _res = star_expressions_var;
30093 goto done;
30094 }
30095 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030096 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030097 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
30098 }
30099 _res = NULL;
30100 done:
30101 D(p->level--);
30102 return _res;
30103}
30104
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030105// _tmp_151: '[' | '(' | '{'
30106static void *
30107_tmp_151_rule(Parser *p)
30108{
30109 D(p->level++);
30110 if (p->error_indicator) {
30111 D(p->level--);
30112 return NULL;
30113 }
30114 void * _res = NULL;
30115 int _mark = p->mark;
30116 { // '['
30117 if (p->error_indicator) {
30118 D(p->level--);
30119 return NULL;
30120 }
30121 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30122 Token * _literal;
30123 if (
30124 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30125 )
30126 {
30127 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30128 _res = _literal;
30129 goto done;
30130 }
30131 p->mark = _mark;
30132 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30134 }
30135 { // '('
30136 if (p->error_indicator) {
30137 D(p->level--);
30138 return NULL;
30139 }
30140 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
30141 Token * _literal;
30142 if (
30143 (_literal = _PyPegen_expect_token(p, 7)) // token='('
30144 )
30145 {
30146 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
30147 _res = _literal;
30148 goto done;
30149 }
30150 p->mark = _mark;
30151 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
30153 }
30154 { // '{'
30155 if (p->error_indicator) {
30156 D(p->level--);
30157 return NULL;
30158 }
30159 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30160 Token * _literal;
30161 if (
30162 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30163 )
30164 {
30165 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30166 _res = _literal;
30167 goto done;
30168 }
30169 p->mark = _mark;
30170 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
30171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30172 }
30173 _res = NULL;
30174 done:
30175 D(p->level--);
30176 return _res;
30177}
30178
30179// _tmp_152: '[' | '{'
30180static void *
30181_tmp_152_rule(Parser *p)
30182{
30183 D(p->level++);
30184 if (p->error_indicator) {
30185 D(p->level--);
30186 return NULL;
30187 }
30188 void * _res = NULL;
30189 int _mark = p->mark;
30190 { // '['
30191 if (p->error_indicator) {
30192 D(p->level--);
30193 return NULL;
30194 }
30195 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30196 Token * _literal;
30197 if (
30198 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30199 )
30200 {
30201 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30202 _res = _literal;
30203 goto done;
30204 }
30205 p->mark = _mark;
30206 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30208 }
30209 { // '{'
30210 if (p->error_indicator) {
30211 D(p->level--);
30212 return NULL;
30213 }
30214 D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30215 Token * _literal;
30216 if (
30217 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30218 )
30219 {
30220 D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30221 _res = _literal;
30222 goto done;
30223 }
30224 p->mark = _mark;
30225 D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ',
30226 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30227 }
30228 _res = NULL;
30229 done:
30230 D(p->level--);
30231 return _res;
30232}
30233
30234// _tmp_153: '[' | '{'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030235static void *
30236_tmp_153_rule(Parser *p)
30237{
30238 D(p->level++);
30239 if (p->error_indicator) {
30240 D(p->level--);
30241 return NULL;
30242 }
30243 void * _res = NULL;
30244 int _mark = p->mark;
30245 { // '['
30246 if (p->error_indicator) {
30247 D(p->level--);
30248 return NULL;
30249 }
30250 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
30251 Token * _literal;
30252 if (
30253 (_literal = _PyPegen_expect_token(p, 9)) // token='['
30254 )
30255 {
30256 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
30257 _res = _literal;
30258 goto done;
30259 }
30260 p->mark = _mark;
30261 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
30263 }
30264 { // '{'
30265 if (p->error_indicator) {
30266 D(p->level--);
30267 return NULL;
30268 }
30269 D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
30270 Token * _literal;
30271 if (
30272 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
30273 )
30274 {
30275 D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
30276 _res = _literal;
30277 goto done;
30278 }
30279 p->mark = _mark;
30280 D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ',
30281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
30282 }
30283 _res = NULL;
30284 done:
30285 D(p->level--);
30286 return _res;
30287}
30288
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030289// _loop0_154: param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030290static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030291_loop0_154_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030292{
30293 D(p->level++);
30294 if (p->error_indicator) {
30295 D(p->level--);
30296 return NULL;
30297 }
30298 void *_res = NULL;
30299 int _mark = p->mark;
30300 int _start_mark = p->mark;
30301 void **_children = PyMem_Malloc(sizeof(void *));
30302 if (!_children) {
30303 p->error_indicator = 1;
30304 PyErr_NoMemory();
30305 D(p->level--);
30306 return NULL;
30307 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030308 Py_ssize_t _children_capacity = 1;
30309 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030310 { // param_no_default
30311 if (p->error_indicator) {
30312 D(p->level--);
30313 return NULL;
30314 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030315 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 -080030316 arg_ty param_no_default_var;
30317 while (
30318 (param_no_default_var = param_no_default_rule(p)) // param_no_default
30319 )
30320 {
30321 _res = param_no_default_var;
30322 if (_n == _children_capacity) {
30323 _children_capacity *= 2;
30324 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30325 if (!_new_children) {
30326 p->error_indicator = 1;
30327 PyErr_NoMemory();
30328 D(p->level--);
30329 return NULL;
30330 }
30331 _children = _new_children;
30332 }
30333 _children[_n++] = _res;
30334 _mark = p->mark;
30335 }
30336 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030337 D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
30339 }
30340 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30341 if (!_seq) {
30342 PyMem_Free(_children);
30343 p->error_indicator = 1;
30344 PyErr_NoMemory();
30345 D(p->level--);
30346 return NULL;
30347 }
30348 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30349 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030350 _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030351 D(p->level--);
30352 return _seq;
30353}
30354
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030355// _loop1_155: param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030356static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030357_loop1_155_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030358{
30359 D(p->level++);
30360 if (p->error_indicator) {
30361 D(p->level--);
30362 return NULL;
30363 }
30364 void *_res = NULL;
30365 int _mark = p->mark;
30366 int _start_mark = p->mark;
30367 void **_children = PyMem_Malloc(sizeof(void *));
30368 if (!_children) {
30369 p->error_indicator = 1;
30370 PyErr_NoMemory();
30371 D(p->level--);
30372 return NULL;
30373 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030374 Py_ssize_t _children_capacity = 1;
30375 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030376 { // param_with_default
30377 if (p->error_indicator) {
30378 D(p->level--);
30379 return NULL;
30380 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030381 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 -080030382 NameDefaultPair* param_with_default_var;
30383 while (
30384 (param_with_default_var = param_with_default_rule(p)) // param_with_default
30385 )
30386 {
30387 _res = param_with_default_var;
30388 if (_n == _children_capacity) {
30389 _children_capacity *= 2;
30390 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30391 if (!_new_children) {
30392 p->error_indicator = 1;
30393 PyErr_NoMemory();
30394 D(p->level--);
30395 return NULL;
30396 }
30397 _children = _new_children;
30398 }
30399 _children[_n++] = _res;
30400 _mark = p->mark;
30401 }
30402 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030403 D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
30405 }
30406 if (_n == 0 || p->error_indicator) {
30407 PyMem_Free(_children);
30408 D(p->level--);
30409 return NULL;
30410 }
30411 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30412 if (!_seq) {
30413 PyMem_Free(_children);
30414 p->error_indicator = 1;
30415 PyErr_NoMemory();
30416 D(p->level--);
30417 return NULL;
30418 }
30419 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30420 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030421 _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030422 D(p->level--);
30423 return _seq;
30424}
30425
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030426// _loop0_156: lambda_param_no_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030427static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030428_loop0_156_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030429{
30430 D(p->level++);
30431 if (p->error_indicator) {
30432 D(p->level--);
30433 return NULL;
30434 }
30435 void *_res = NULL;
30436 int _mark = p->mark;
30437 int _start_mark = p->mark;
30438 void **_children = PyMem_Malloc(sizeof(void *));
30439 if (!_children) {
30440 p->error_indicator = 1;
30441 PyErr_NoMemory();
30442 D(p->level--);
30443 return NULL;
30444 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030445 Py_ssize_t _children_capacity = 1;
30446 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030447 { // lambda_param_no_default
30448 if (p->error_indicator) {
30449 D(p->level--);
30450 return NULL;
30451 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030452 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 -080030453 arg_ty lambda_param_no_default_var;
30454 while (
30455 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
30456 )
30457 {
30458 _res = lambda_param_no_default_var;
30459 if (_n == _children_capacity) {
30460 _children_capacity *= 2;
30461 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30462 if (!_new_children) {
30463 p->error_indicator = 1;
30464 PyErr_NoMemory();
30465 D(p->level--);
30466 return NULL;
30467 }
30468 _children = _new_children;
30469 }
30470 _children[_n++] = _res;
30471 _mark = p->mark;
30472 }
30473 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030474 D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
30476 }
30477 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30478 if (!_seq) {
30479 PyMem_Free(_children);
30480 p->error_indicator = 1;
30481 PyErr_NoMemory();
30482 D(p->level--);
30483 return NULL;
30484 }
30485 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30486 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030487 _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030488 D(p->level--);
30489 return _seq;
30490}
30491
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030492// _loop1_157: lambda_param_with_default
Brandt Bucher145bf262021-02-26 14:51:55 -080030493static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030494_loop1_157_rule(Parser *p)
Brandt Bucher145bf262021-02-26 14:51:55 -080030495{
30496 D(p->level++);
30497 if (p->error_indicator) {
30498 D(p->level--);
30499 return NULL;
30500 }
30501 void *_res = NULL;
30502 int _mark = p->mark;
30503 int _start_mark = p->mark;
30504 void **_children = PyMem_Malloc(sizeof(void *));
30505 if (!_children) {
30506 p->error_indicator = 1;
30507 PyErr_NoMemory();
30508 D(p->level--);
30509 return NULL;
30510 }
Jozef Grajciarc994ffe2021-03-01 12:18:33 +010030511 Py_ssize_t _children_capacity = 1;
30512 Py_ssize_t _n = 0;
Brandt Bucher145bf262021-02-26 14:51:55 -080030513 { // lambda_param_with_default
30514 if (p->error_indicator) {
30515 D(p->level--);
30516 return NULL;
30517 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030518 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 -080030519 NameDefaultPair* lambda_param_with_default_var;
30520 while (
30521 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
30522 )
30523 {
30524 _res = lambda_param_with_default_var;
30525 if (_n == _children_capacity) {
30526 _children_capacity *= 2;
30527 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30528 if (!_new_children) {
30529 p->error_indicator = 1;
30530 PyErr_NoMemory();
30531 D(p->level--);
30532 return NULL;
30533 }
30534 _children = _new_children;
30535 }
30536 _children[_n++] = _res;
30537 _mark = p->mark;
30538 }
30539 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030540 D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ',
Brandt Bucher145bf262021-02-26 14:51:55 -080030541 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
30542 }
30543 if (_n == 0 || p->error_indicator) {
30544 PyMem_Free(_children);
30545 D(p->level--);
30546 return NULL;
30547 }
30548 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30549 if (!_seq) {
30550 PyMem_Free(_children);
30551 p->error_indicator = 1;
30552 PyErr_NoMemory();
30553 D(p->level--);
30554 return NULL;
30555 }
30556 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30557 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030558 _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq);
Brandt Bucher145bf262021-02-26 14:51:55 -080030559 D(p->level--);
30560 return _seq;
30561}
30562
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030563// _tmp_158: ')' | ',' (')' | '**')
30564static void *
30565_tmp_158_rule(Parser *p)
30566{
30567 D(p->level++);
30568 if (p->error_indicator) {
30569 D(p->level--);
30570 return NULL;
30571 }
30572 void * _res = NULL;
30573 int _mark = p->mark;
30574 { // ')'
30575 if (p->error_indicator) {
30576 D(p->level--);
30577 return NULL;
30578 }
30579 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
30580 Token * _literal;
30581 if (
30582 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
30583 )
30584 {
30585 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
30586 _res = _literal;
30587 goto done;
30588 }
30589 p->mark = _mark;
30590 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
30591 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
30592 }
30593 { // ',' (')' | '**')
30594 if (p->error_indicator) {
30595 D(p->level--);
30596 return NULL;
30597 }
30598 D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
30599 Token * _literal;
30600 void *_tmp_193_var;
30601 if (
30602 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30603 &&
30604 (_tmp_193_var = _tmp_193_rule(p)) // ')' | '**'
30605 )
30606 {
30607 D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
30608 _res = _PyPegen_dummy_name(p, _literal, _tmp_193_var);
30609 goto done;
30610 }
30611 p->mark = _mark;
30612 D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ',
30613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
30614 }
30615 _res = NULL;
30616 done:
30617 D(p->level--);
30618 return _res;
30619}
30620
30621// _tmp_159: ':' | ',' (':' | '**')
30622static void *
30623_tmp_159_rule(Parser *p)
30624{
30625 D(p->level++);
30626 if (p->error_indicator) {
30627 D(p->level--);
30628 return NULL;
30629 }
30630 void * _res = NULL;
30631 int _mark = p->mark;
30632 { // ':'
30633 if (p->error_indicator) {
30634 D(p->level--);
30635 return NULL;
30636 }
30637 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
30638 Token * _literal;
30639 if (
30640 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
30641 )
30642 {
30643 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30644 _res = _literal;
30645 goto done;
30646 }
30647 p->mark = _mark;
30648 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30650 }
30651 { // ',' (':' | '**')
30652 if (p->error_indicator) {
30653 D(p->level--);
30654 return NULL;
30655 }
30656 D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30657 Token * _literal;
30658 void *_tmp_194_var;
30659 if (
30660 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30661 &&
30662 (_tmp_194_var = _tmp_194_rule(p)) // ':' | '**'
30663 )
30664 {
30665 D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
30666 _res = _PyPegen_dummy_name(p, _literal, _tmp_194_var);
30667 goto done;
30668 }
30669 p->mark = _mark;
30670 D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ',
30671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
30672 }
30673 _res = NULL;
30674 done:
30675 D(p->level--);
30676 return _res;
30677}
30678
30679// _tmp_160: ',' | ')' | ':'
Pablo Galindo56c95df2021-04-21 15:28:21 +010030680static void *
Pablo Galindoa77aac42021-04-23 14:27:05 +010030681_tmp_160_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010030682{
30683 D(p->level++);
30684 if (p->error_indicator) {
30685 D(p->level--);
30686 return NULL;
30687 }
30688 void * _res = NULL;
30689 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030690 { // ','
30691 if (p->error_indicator) {
30692 D(p->level--);
30693 return NULL;
30694 }
30695 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
30696 Token * _literal;
30697 if (
30698 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30699 )
30700 {
30701 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
30702 _res = _literal;
30703 goto done;
30704 }
30705 p->mark = _mark;
30706 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
30707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
30708 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030709 { // ')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030710 if (p->error_indicator) {
30711 D(p->level--);
30712 return NULL;
30713 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030714 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030715 Token * _literal;
30716 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030717 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030718 )
30719 {
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030720 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030721 _res = _literal;
30722 goto done;
30723 }
30724 p->mark = _mark;
30725 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030726 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030727 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030728 { // ':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030729 if (p->error_indicator) {
30730 D(p->level--);
30731 return NULL;
30732 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030733 D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010030734 Token * _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030735 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030736 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoa77aac42021-04-23 14:27:05 +010030737 )
30738 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030739 D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
30740 _res = _literal;
Pablo Galindoa77aac42021-04-23 14:27:05 +010030741 goto done;
30742 }
30743 p->mark = _mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070030744 D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
30746 }
30747 _res = NULL;
30748 done:
30749 D(p->level--);
30750 return _res;
30751}
30752
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030753// _loop0_162: ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030754static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030755_loop0_162_rule(Parser *p)
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030756{
30757 D(p->level++);
30758 if (p->error_indicator) {
30759 D(p->level--);
30760 return NULL;
30761 }
30762 void *_res = NULL;
30763 int _mark = p->mark;
30764 int _start_mark = p->mark;
30765 void **_children = PyMem_Malloc(sizeof(void *));
30766 if (!_children) {
30767 p->error_indicator = 1;
30768 PyErr_NoMemory();
30769 D(p->level--);
30770 return NULL;
30771 }
30772 Py_ssize_t _children_capacity = 1;
30773 Py_ssize_t _n = 0;
30774 { // ',' (expression ['as' star_target])
30775 if (p->error_indicator) {
30776 D(p->level--);
30777 return NULL;
30778 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030779 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 -070030780 Token * _literal;
30781 void *elem;
30782 while (
30783 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30784 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030785 (elem = _tmp_195_rule(p)) // expression ['as' star_target]
30786 )
30787 {
30788 _res = elem;
30789 if (_res == NULL && PyErr_Occurred()) {
30790 p->error_indicator = 1;
30791 PyMem_Free(_children);
30792 D(p->level--);
30793 return NULL;
30794 }
30795 if (_n == _children_capacity) {
30796 _children_capacity *= 2;
30797 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30798 if (!_new_children) {
30799 p->error_indicator = 1;
30800 PyErr_NoMemory();
30801 D(p->level--);
30802 return NULL;
30803 }
30804 _children = _new_children;
30805 }
30806 _children[_n++] = _res;
30807 _mark = p->mark;
30808 }
30809 p->mark = _mark;
30810 D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ',
30811 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
30812 }
30813 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30814 if (!_seq) {
30815 PyMem_Free(_children);
30816 p->error_indicator = 1;
30817 PyErr_NoMemory();
30818 D(p->level--);
30819 return NULL;
30820 }
30821 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30822 PyMem_Free(_children);
30823 _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq);
30824 D(p->level--);
30825 return _seq;
30826}
30827
30828// _gather_161: (expression ['as' star_target]) _loop0_162
30829static asdl_seq *
30830_gather_161_rule(Parser *p)
30831{
30832 D(p->level++);
30833 if (p->error_indicator) {
30834 D(p->level--);
30835 return NULL;
30836 }
30837 asdl_seq * _res = NULL;
30838 int _mark = p->mark;
30839 { // (expression ['as' star_target]) _loop0_162
30840 if (p->error_indicator) {
30841 D(p->level--);
30842 return NULL;
30843 }
30844 D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30845 void *elem;
30846 asdl_seq * seq;
30847 if (
30848 (elem = _tmp_195_rule(p)) // expression ['as' star_target]
30849 &&
30850 (seq = _loop0_162_rule(p)) // _loop0_162
30851 )
30852 {
30853 D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30854 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30855 goto done;
30856 }
30857 p->mark = _mark;
30858 D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ',
30859 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_162"));
30860 }
30861 _res = NULL;
30862 done:
30863 D(p->level--);
30864 return _res;
30865}
30866
30867// _loop0_164: ',' (expressions ['as' star_target])
30868static asdl_seq *
30869_loop0_164_rule(Parser *p)
30870{
30871 D(p->level++);
30872 if (p->error_indicator) {
30873 D(p->level--);
30874 return NULL;
30875 }
30876 void *_res = NULL;
30877 int _mark = p->mark;
30878 int _start_mark = p->mark;
30879 void **_children = PyMem_Malloc(sizeof(void *));
30880 if (!_children) {
30881 p->error_indicator = 1;
30882 PyErr_NoMemory();
30883 D(p->level--);
30884 return NULL;
30885 }
30886 Py_ssize_t _children_capacity = 1;
30887 Py_ssize_t _n = 0;
30888 { // ',' (expressions ['as' star_target])
30889 if (p->error_indicator) {
30890 D(p->level--);
30891 return NULL;
30892 }
30893 D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])"));
30894 Token * _literal;
30895 void *elem;
30896 while (
30897 (_literal = _PyPegen_expect_token(p, 12)) // token=','
30898 &&
30899 (elem = _tmp_196_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030900 )
30901 {
30902 _res = elem;
30903 if (_res == NULL && PyErr_Occurred()) {
30904 p->error_indicator = 1;
30905 PyMem_Free(_children);
30906 D(p->level--);
30907 return NULL;
30908 }
30909 if (_n == _children_capacity) {
30910 _children_capacity *= 2;
30911 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
30912 if (!_new_children) {
30913 p->error_indicator = 1;
30914 PyErr_NoMemory();
30915 D(p->level--);
30916 return NULL;
30917 }
30918 _children = _new_children;
30919 }
30920 _children[_n++] = _res;
30921 _mark = p->mark;
30922 }
30923 p->mark = _mark;
30924 D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030925 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030926 }
30927 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
30928 if (!_seq) {
30929 PyMem_Free(_children);
30930 p->error_indicator = 1;
30931 PyErr_NoMemory();
30932 D(p->level--);
30933 return NULL;
30934 }
30935 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
30936 PyMem_Free(_children);
30937 _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq);
30938 D(p->level--);
30939 return _seq;
30940}
30941
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030942// _gather_163: (expressions ['as' star_target]) _loop0_164
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030943static asdl_seq *
30944_gather_163_rule(Parser *p)
30945{
30946 D(p->level++);
30947 if (p->error_indicator) {
30948 D(p->level--);
30949 return NULL;
30950 }
30951 asdl_seq * _res = NULL;
30952 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030953 { // (expressions ['as' star_target]) _loop0_164
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030954 if (p->error_indicator) {
30955 D(p->level--);
30956 return NULL;
30957 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030958 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 -070030959 void *elem;
30960 asdl_seq * seq;
30961 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030962 (elem = _tmp_196_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030963 &&
30964 (seq = _loop0_164_rule(p)) // _loop0_164
30965 )
30966 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030967 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 -070030968 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
30969 goto done;
30970 }
30971 p->mark = _mark;
30972 D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030973 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_164"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030974 }
30975 _res = NULL;
30976 done:
30977 D(p->level--);
30978 return _res;
30979}
30980
Miss Islington (bot)3e137422021-06-10 15:31:09 -070030981// _loop0_166: ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070030982static asdl_seq *
30983_loop0_166_rule(Parser *p)
30984{
30985 D(p->level++);
30986 if (p->error_indicator) {
30987 D(p->level--);
30988 return NULL;
30989 }
30990 void *_res = NULL;
30991 int _mark = p->mark;
30992 int _start_mark = p->mark;
30993 void **_children = PyMem_Malloc(sizeof(void *));
30994 if (!_children) {
30995 p->error_indicator = 1;
30996 PyErr_NoMemory();
30997 D(p->level--);
30998 return NULL;
30999 }
31000 Py_ssize_t _children_capacity = 1;
31001 Py_ssize_t _n = 0;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031002 { // ',' (expression ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031003 if (p->error_indicator) {
31004 D(p->level--);
31005 return NULL;
31006 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031007 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 -070031008 Token * _literal;
31009 void *elem;
31010 while (
31011 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31012 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031013 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031014 )
31015 {
31016 _res = elem;
31017 if (_res == NULL && PyErr_Occurred()) {
31018 p->error_indicator = 1;
31019 PyMem_Free(_children);
31020 D(p->level--);
31021 return NULL;
31022 }
31023 if (_n == _children_capacity) {
31024 _children_capacity *= 2;
31025 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31026 if (!_new_children) {
31027 p->error_indicator = 1;
31028 PyErr_NoMemory();
31029 D(p->level--);
31030 return NULL;
31031 }
31032 _children = _new_children;
31033 }
31034 _children[_n++] = _res;
31035 _mark = p->mark;
31036 }
31037 p->mark = _mark;
31038 D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031040 }
31041 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31042 if (!_seq) {
31043 PyMem_Free(_children);
31044 p->error_indicator = 1;
31045 PyErr_NoMemory();
31046 D(p->level--);
31047 return NULL;
31048 }
31049 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31050 PyMem_Free(_children);
31051 _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq);
31052 D(p->level--);
31053 return _seq;
31054}
31055
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031056// _gather_165: (expression ['as' star_target]) _loop0_166
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031057static asdl_seq *
31058_gather_165_rule(Parser *p)
31059{
31060 D(p->level++);
31061 if (p->error_indicator) {
31062 D(p->level--);
31063 return NULL;
31064 }
31065 asdl_seq * _res = NULL;
31066 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031067 { // (expression ['as' star_target]) _loop0_166
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031068 if (p->error_indicator) {
31069 D(p->level--);
31070 return NULL;
31071 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031072 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 -070031073 void *elem;
31074 asdl_seq * seq;
31075 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031076 (elem = _tmp_197_rule(p)) // expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031077 &&
31078 (seq = _loop0_166_rule(p)) // _loop0_166
31079 )
31080 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031081 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 -070031082 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31083 goto done;
31084 }
31085 p->mark = _mark;
31086 D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031087 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_166"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031088 }
31089 _res = NULL;
31090 done:
31091 D(p->level--);
31092 return _res;
31093}
31094
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031095// _loop0_168: ',' (expressions ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031096static asdl_seq *
31097_loop0_168_rule(Parser *p)
31098{
31099 D(p->level++);
31100 if (p->error_indicator) {
31101 D(p->level--);
31102 return NULL;
31103 }
31104 void *_res = NULL;
31105 int _mark = p->mark;
31106 int _start_mark = p->mark;
31107 void **_children = PyMem_Malloc(sizeof(void *));
31108 if (!_children) {
31109 p->error_indicator = 1;
31110 PyErr_NoMemory();
31111 D(p->level--);
31112 return NULL;
31113 }
31114 Py_ssize_t _children_capacity = 1;
31115 Py_ssize_t _n = 0;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031116 { // ',' (expressions ['as' star_target])
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031117 if (p->error_indicator) {
31118 D(p->level--);
31119 return NULL;
31120 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031121 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 -070031122 Token * _literal;
31123 void *elem;
31124 while (
31125 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31126 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031127 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031128 )
31129 {
31130 _res = elem;
31131 if (_res == NULL && PyErr_Occurred()) {
31132 p->error_indicator = 1;
31133 PyMem_Free(_children);
31134 D(p->level--);
31135 return NULL;
31136 }
31137 if (_n == _children_capacity) {
31138 _children_capacity *= 2;
31139 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31140 if (!_new_children) {
31141 p->error_indicator = 1;
31142 PyErr_NoMemory();
31143 D(p->level--);
31144 return NULL;
31145 }
31146 _children = _new_children;
31147 }
31148 _children[_n++] = _res;
31149 _mark = p->mark;
31150 }
31151 p->mark = _mark;
31152 D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031153 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031154 }
31155 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31156 if (!_seq) {
31157 PyMem_Free(_children);
31158 p->error_indicator = 1;
31159 PyErr_NoMemory();
31160 D(p->level--);
31161 return NULL;
31162 }
31163 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31164 PyMem_Free(_children);
31165 _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq);
31166 D(p->level--);
31167 return _seq;
31168}
31169
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031170// _gather_167: (expressions ['as' star_target]) _loop0_168
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031171static asdl_seq *
31172_gather_167_rule(Parser *p)
31173{
31174 D(p->level++);
31175 if (p->error_indicator) {
31176 D(p->level--);
31177 return NULL;
31178 }
31179 asdl_seq * _res = NULL;
31180 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031181 { // (expressions ['as' star_target]) _loop0_168
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031182 if (p->error_indicator) {
31183 D(p->level--);
31184 return NULL;
31185 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031186 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 -070031187 void *elem;
31188 asdl_seq * seq;
31189 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031190 (elem = _tmp_198_rule(p)) // expressions ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031191 &&
31192 (seq = _loop0_168_rule(p)) // _loop0_168
31193 )
31194 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031195 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 -070031196 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31197 goto done;
31198 }
31199 p->mark = _mark;
31200 D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_168"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070031202 }
31203 _res = NULL;
31204 done:
31205 D(p->level--);
31206 return _res;
31207}
31208
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031209// _tmp_169: 'except' | 'finally'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031210static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031211_tmp_169_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031212{
31213 D(p->level++);
31214 if (p->error_indicator) {
31215 D(p->level--);
31216 return NULL;
31217 }
31218 void * _res = NULL;
31219 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031220 { // 'except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031221 if (p->error_indicator) {
31222 D(p->level--);
31223 return NULL;
31224 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031225 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031226 Token * _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031227 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031228 (_keyword = _PyPegen_expect_token(p, 521)) // token='except'
Pablo Galindoa77aac42021-04-23 14:27:05 +010031229 )
31230 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031231 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031232 _res = _keyword;
Pablo Galindoa77aac42021-04-23 14:27:05 +010031233 goto done;
31234 }
31235 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031236 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'"));
31238 }
31239 { // 'finally'
31240 if (p->error_indicator) {
31241 D(p->level--);
31242 return NULL;
31243 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031244 D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031245 Token * _keyword;
31246 if (
31247 (_keyword = _PyPegen_expect_token(p, 522)) // token='finally'
31248 )
31249 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031250 D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031251 _res = _keyword;
31252 goto done;
31253 }
31254 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031255 D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010031256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010031257 }
31258 _res = NULL;
31259 done:
31260 D(p->level--);
31261 return _res;
31262}
31263
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031264// _tmp_170: 'as' NAME
31265static void *
31266_tmp_170_rule(Parser *p)
31267{
31268 D(p->level++);
31269 if (p->error_indicator) {
31270 D(p->level--);
31271 return NULL;
31272 }
31273 void * _res = NULL;
31274 int _mark = p->mark;
31275 { // 'as' NAME
31276 if (p->error_indicator) {
31277 D(p->level--);
31278 return NULL;
31279 }
31280 D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31281 Token * _keyword;
31282 expr_ty name_var;
31283 if (
31284 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31285 &&
31286 (name_var = _PyPegen_name_token(p)) // NAME
31287 )
31288 {
31289 D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31290 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31291 goto done;
31292 }
31293 p->mark = _mark;
31294 D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ',
31295 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31296 }
31297 _res = NULL;
31298 done:
31299 D(p->level--);
31300 return _res;
31301}
31302
31303// _tmp_171: 'as' NAME
31304static void *
31305_tmp_171_rule(Parser *p)
31306{
31307 D(p->level++);
31308 if (p->error_indicator) {
31309 D(p->level--);
31310 return NULL;
31311 }
31312 void * _res = NULL;
31313 int _mark = p->mark;
31314 { // 'as' NAME
31315 if (p->error_indicator) {
31316 D(p->level--);
31317 return NULL;
31318 }
31319 D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31320 Token * _keyword;
31321 expr_ty name_var;
31322 if (
31323 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31324 &&
31325 (name_var = _PyPegen_name_token(p)) // NAME
31326 )
31327 {
31328 D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31329 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31330 goto done;
31331 }
31332 p->mark = _mark;
31333 D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ',
31334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31335 }
31336 _res = NULL;
31337 done:
31338 D(p->level--);
31339 return _res;
31340}
31341
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031342// _tmp_172: 'as' NAME
Pablo Galindoa77aac42021-04-23 14:27:05 +010031343static void *
31344_tmp_172_rule(Parser *p)
31345{
31346 D(p->level++);
31347 if (p->error_indicator) {
31348 D(p->level--);
31349 return NULL;
31350 }
31351 void * _res = NULL;
31352 int _mark = p->mark;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031353 { // 'as' NAME
31354 if (p->error_indicator) {
31355 D(p->level--);
31356 return NULL;
31357 }
31358 D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31359 Token * _keyword;
31360 expr_ty name_var;
31361 if (
31362 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
31363 &&
31364 (name_var = _PyPegen_name_token(p)) // NAME
31365 )
31366 {
31367 D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
31368 _res = _PyPegen_dummy_name(p, _keyword, name_var);
31369 goto done;
31370 }
31371 p->mark = _mark;
31372 D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ',
31373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
31374 }
31375 _res = NULL;
31376 done:
31377 D(p->level--);
31378 return _res;
31379}
31380
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031381// _tmp_173: '->' expression
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031382static void *
31383_tmp_173_rule(Parser *p)
31384{
31385 D(p->level++);
31386 if (p->error_indicator) {
31387 D(p->level--);
31388 return NULL;
31389 }
31390 void * _res = NULL;
31391 int _mark = p->mark;
Pablo Galindo56c95df2021-04-21 15:28:21 +010031392 { // '->' expression
31393 if (p->error_indicator) {
31394 D(p->level--);
31395 return NULL;
31396 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031397 D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031398 Token * _literal;
31399 expr_ty expression_var;
31400 if (
31401 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
31402 &&
31403 (expression_var = expression_rule(p)) // expression
31404 )
31405 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031406 D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031407 _res = _PyPegen_dummy_name(p, _literal, expression_var);
31408 goto done;
31409 }
31410 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031411 D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
31413 }
31414 _res = NULL;
31415 done:
31416 D(p->level--);
31417 return _res;
31418}
31419
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031420// _tmp_174: '(' arguments? ')'
Pablo Galindo56c95df2021-04-21 15:28:21 +010031421static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031422_tmp_174_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031423{
31424 D(p->level++);
31425 if (p->error_indicator) {
31426 D(p->level--);
31427 return NULL;
31428 }
31429 void * _res = NULL;
31430 int _mark = p->mark;
31431 { // '(' arguments? ')'
31432 if (p->error_indicator) {
31433 D(p->level--);
31434 return NULL;
31435 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031436 D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031437 Token * _literal;
31438 Token * _literal_1;
31439 void *_opt_var;
31440 UNUSED(_opt_var); // Silence compiler warnings
31441 if (
31442 (_literal = _PyPegen_expect_token(p, 7)) // token='('
31443 &&
31444 (_opt_var = arguments_rule(p), 1) // arguments?
31445 &&
31446 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
31447 )
31448 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031449 D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindo56c95df2021-04-21 15:28:21 +010031450 _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1);
31451 goto done;
31452 }
31453 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031454 D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo56c95df2021-04-21 15:28:21 +010031455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
31456 }
31457 _res = NULL;
31458 done:
31459 D(p->level--);
31460 return _res;
31461}
31462
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031463// _loop0_176: ',' double_starred_kvpair
Pablo Galindo56c95df2021-04-21 15:28:21 +010031464static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031465_loop0_176_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010031466{
31467 D(p->level++);
31468 if (p->error_indicator) {
31469 D(p->level--);
31470 return NULL;
31471 }
31472 void *_res = NULL;
31473 int _mark = p->mark;
31474 int _start_mark = p->mark;
31475 void **_children = PyMem_Malloc(sizeof(void *));
31476 if (!_children) {
31477 p->error_indicator = 1;
31478 PyErr_NoMemory();
31479 D(p->level--);
31480 return NULL;
31481 }
31482 Py_ssize_t _children_capacity = 1;
31483 Py_ssize_t _n = 0;
Pablo Galindoda743502021-04-15 14:06:39 +010031484 { // ',' double_starred_kvpair
31485 if (p->error_indicator) {
31486 D(p->level--);
31487 return NULL;
31488 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031489 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 +010031490 Token * _literal;
31491 KeyValuePair* elem;
31492 while (
31493 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31494 &&
31495 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31496 )
31497 {
31498 _res = elem;
31499 if (_res == NULL && PyErr_Occurred()) {
31500 p->error_indicator = 1;
31501 PyMem_Free(_children);
31502 D(p->level--);
31503 return NULL;
31504 }
31505 if (_n == _children_capacity) {
31506 _children_capacity *= 2;
31507 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
31508 if (!_new_children) {
31509 p->error_indicator = 1;
31510 PyErr_NoMemory();
31511 D(p->level--);
31512 return NULL;
31513 }
31514 _children = _new_children;
31515 }
31516 _children[_n++] = _res;
31517 _mark = p->mark;
31518 }
31519 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031520 D(fprintf(stderr, "%*c%s _loop0_176[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
31522 }
31523 asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
31524 if (!_seq) {
31525 PyMem_Free(_children);
31526 p->error_indicator = 1;
31527 PyErr_NoMemory();
31528 D(p->level--);
31529 return NULL;
31530 }
31531 for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]);
31532 PyMem_Free(_children);
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031533 _PyPegen_insert_memo(p, _start_mark, _loop0_176_type, _seq);
Pablo Galindoda743502021-04-15 14:06:39 +010031534 D(p->level--);
31535 return _seq;
31536}
31537
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031538// _gather_175: double_starred_kvpair _loop0_176
Pablo Galindoda743502021-04-15 14:06:39 +010031539static asdl_seq *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031540_gather_175_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031541{
31542 D(p->level++);
31543 if (p->error_indicator) {
31544 D(p->level--);
31545 return NULL;
31546 }
31547 asdl_seq * _res = NULL;
31548 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031549 { // double_starred_kvpair _loop0_176
Pablo Galindoda743502021-04-15 14:06:39 +010031550 if (p->error_indicator) {
31551 D(p->level--);
31552 return NULL;
31553 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031554 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 +010031555 KeyValuePair* elem;
31556 asdl_seq * seq;
31557 if (
31558 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
31559 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031560 (seq = _loop0_176_rule(p)) // _loop0_176
Pablo Galindoda743502021-04-15 14:06:39 +010031561 )
31562 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031563 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 +010031564 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
31565 goto done;
31566 }
31567 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031568 D(fprintf(stderr, "%*c%s _gather_175[%d-%d]: %s failed!\n", p->level, ' ',
31569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_176"));
Pablo Galindoda743502021-04-15 14:06:39 +010031570 }
31571 _res = NULL;
31572 done:
31573 D(p->level--);
31574 return _res;
31575}
31576
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031577// _tmp_177: '}' | ','
Pablo Galindo206cbda2021-02-07 18:42:21 +000031578static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031579_tmp_177_rule(Parser *p)
Pablo Galindoda743502021-04-15 14:06:39 +010031580{
31581 D(p->level++);
31582 if (p->error_indicator) {
31583 D(p->level--);
31584 return NULL;
31585 }
31586 void * _res = NULL;
31587 int _mark = p->mark;
31588 { // '}'
31589 if (p->error_indicator) {
31590 D(p->level--);
31591 return NULL;
31592 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031593 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031594 Token * _literal;
31595 if (
31596 (_literal = _PyPegen_expect_token(p, 26)) // token='}'
31597 )
31598 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031599 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'"));
Pablo Galindoda743502021-04-15 14:06:39 +010031600 _res = _literal;
31601 goto done;
31602 }
31603 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031604 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'"));
31606 }
31607 { // ','
31608 if (p->error_indicator) {
31609 D(p->level--);
31610 return NULL;
31611 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031612 D(fprintf(stderr, "%*c> _tmp_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031613 Token * _literal;
31614 if (
31615 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31616 )
31617 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031618 D(fprintf(stderr, "%*c+ _tmp_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Pablo Galindoda743502021-04-15 14:06:39 +010031619 _res = _literal;
31620 goto done;
31621 }
31622 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031623 D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoda743502021-04-15 14:06:39 +010031624 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
31625 }
31626 _res = NULL;
31627 done:
31628 D(p->level--);
31629 return _res;
31630}
31631
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031632// _tmp_178: star_targets '='
Pablo Galindoda743502021-04-15 14:06:39 +010031633static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031634_tmp_178_rule(Parser *p)
Pablo Galindo206cbda2021-02-07 18:42:21 +000031635{
31636 D(p->level++);
31637 if (p->error_indicator) {
31638 D(p->level--);
31639 return NULL;
31640 }
31641 void * _res = NULL;
31642 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031643 { // star_targets '='
31644 if (p->error_indicator) {
31645 D(p->level--);
31646 return NULL;
31647 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031648 D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031649 Token * _literal;
31650 expr_ty z;
31651 if (
31652 (z = star_targets_rule(p)) // star_targets
31653 &&
31654 (_literal = _PyPegen_expect_token(p, 22)) // token='='
31655 )
31656 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031657 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 +010031658 _res = z;
31659 if (_res == NULL && PyErr_Occurred()) {
31660 p->error_indicator = 1;
31661 D(p->level--);
31662 return NULL;
31663 }
31664 goto done;
31665 }
31666 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031667 D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
31669 }
31670 _res = NULL;
31671 done:
31672 D(p->level--);
31673 return _res;
31674}
31675
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031676// _tmp_179: '.' | '...'
31677static void *
31678_tmp_179_rule(Parser *p)
31679{
31680 D(p->level++);
31681 if (p->error_indicator) {
31682 D(p->level--);
31683 return NULL;
31684 }
31685 void * _res = NULL;
31686 int _mark = p->mark;
31687 { // '.'
31688 if (p->error_indicator) {
31689 D(p->level--);
31690 return NULL;
31691 }
31692 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31693 Token * _literal;
31694 if (
31695 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31696 )
31697 {
31698 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31699 _res = _literal;
31700 goto done;
31701 }
31702 p->mark = _mark;
31703 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31704 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31705 }
31706 { // '...'
31707 if (p->error_indicator) {
31708 D(p->level--);
31709 return NULL;
31710 }
31711 D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31712 Token * _literal;
31713 if (
31714 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31715 )
31716 {
31717 D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31718 _res = _literal;
31719 goto done;
31720 }
31721 p->mark = _mark;
31722 D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ',
31723 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31724 }
31725 _res = NULL;
31726 done:
31727 D(p->level--);
31728 return _res;
31729}
31730
31731// _tmp_180: '.' | '...'
31732static void *
31733_tmp_180_rule(Parser *p)
31734{
31735 D(p->level++);
31736 if (p->error_indicator) {
31737 D(p->level--);
31738 return NULL;
31739 }
31740 void * _res = NULL;
31741 int _mark = p->mark;
31742 { // '.'
31743 if (p->error_indicator) {
31744 D(p->level--);
31745 return NULL;
31746 }
31747 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
31748 Token * _literal;
31749 if (
31750 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
31751 )
31752 {
31753 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
31754 _res = _literal;
31755 goto done;
31756 }
31757 p->mark = _mark;
31758 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
31760 }
31761 { // '...'
31762 if (p->error_indicator) {
31763 D(p->level--);
31764 return NULL;
31765 }
31766 D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
31767 Token * _literal;
31768 if (
31769 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
31770 )
31771 {
31772 D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
31773 _res = _literal;
31774 goto done;
31775 }
31776 p->mark = _mark;
31777 D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ',
31778 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
31779 }
31780 _res = NULL;
31781 done:
31782 D(p->level--);
31783 return _res;
31784}
31785
31786// _tmp_181: '@' named_expression NEWLINE
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070031787static void *
31788_tmp_181_rule(Parser *p)
31789{
31790 D(p->level++);
31791 if (p->error_indicator) {
31792 D(p->level--);
31793 return NULL;
31794 }
31795 void * _res = NULL;
31796 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031797 { // '@' named_expression NEWLINE
31798 if (p->error_indicator) {
31799 D(p->level--);
31800 return NULL;
31801 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031802 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 +010031803 Token * _literal;
31804 expr_ty f;
31805 Token * newline_var;
31806 if (
31807 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
31808 &&
31809 (f = named_expression_rule(p)) // named_expression
31810 &&
31811 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
31812 )
31813 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031814 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 +010031815 _res = f;
31816 if (_res == NULL && PyErr_Occurred()) {
31817 p->error_indicator = 1;
31818 D(p->level--);
31819 return NULL;
31820 }
31821 goto done;
31822 }
31823 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031824 D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
31826 }
31827 _res = NULL;
31828 done:
31829 D(p->level--);
31830 return _res;
31831}
31832
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031833// _tmp_182: ',' star_expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031834static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031835_tmp_182_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031836{
31837 D(p->level++);
31838 if (p->error_indicator) {
31839 D(p->level--);
31840 return NULL;
31841 }
31842 void * _res = NULL;
31843 int _mark = p->mark;
31844 { // ',' star_expression
31845 if (p->error_indicator) {
31846 D(p->level--);
31847 return NULL;
31848 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031849 D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031850 Token * _literal;
31851 expr_ty c;
31852 if (
31853 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31854 &&
31855 (c = star_expression_rule(p)) // star_expression
31856 )
31857 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031858 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 +010031859 _res = c;
31860 if (_res == NULL && PyErr_Occurred()) {
31861 p->error_indicator = 1;
31862 D(p->level--);
31863 return NULL;
31864 }
31865 goto done;
31866 }
31867 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031868 D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031869 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
31870 }
31871 _res = NULL;
31872 done:
31873 D(p->level--);
31874 return _res;
31875}
31876
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031877// _tmp_183: ',' expression
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031878static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031879_tmp_183_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031880{
31881 D(p->level++);
31882 if (p->error_indicator) {
31883 D(p->level--);
31884 return NULL;
31885 }
31886 void * _res = NULL;
31887 int _mark = p->mark;
31888 { // ',' expression
31889 if (p->error_indicator) {
31890 D(p->level--);
31891 return NULL;
31892 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031893 D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031894 Token * _literal;
31895 expr_ty c;
31896 if (
31897 (_literal = _PyPegen_expect_token(p, 12)) // token=','
31898 &&
31899 (c = expression_rule(p)) // expression
31900 )
31901 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031902 D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031903 _res = c;
31904 if (_res == NULL && PyErr_Occurred()) {
31905 p->error_indicator = 1;
31906 D(p->level--);
31907 return NULL;
31908 }
31909 goto done;
31910 }
31911 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031912 D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031913 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
31914 }
31915 _res = NULL;
31916 done:
31917 D(p->level--);
31918 return _res;
31919}
31920
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031921// _tmp_184: 'or' conjunction
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031922static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031923_tmp_184_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031924{
31925 D(p->level++);
31926 if (p->error_indicator) {
31927 D(p->level--);
31928 return NULL;
31929 }
31930 void * _res = NULL;
31931 int _mark = p->mark;
31932 { // 'or' conjunction
31933 if (p->error_indicator) {
31934 D(p->level--);
31935 return NULL;
31936 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031937 D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031938 Token * _keyword;
31939 expr_ty c;
31940 if (
31941 (_keyword = _PyPegen_expect_token(p, 531)) // token='or'
31942 &&
31943 (c = conjunction_rule(p)) // conjunction
31944 )
31945 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031946 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 +010031947 _res = c;
31948 if (_res == NULL && PyErr_Occurred()) {
31949 p->error_indicator = 1;
31950 D(p->level--);
31951 return NULL;
31952 }
31953 goto done;
31954 }
31955 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031956 D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
31958 }
31959 _res = NULL;
31960 done:
31961 D(p->level--);
31962 return _res;
31963}
31964
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031965// _tmp_185: 'and' inversion
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031966static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031967_tmp_185_rule(Parser *p)
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031968{
31969 D(p->level++);
31970 if (p->error_indicator) {
31971 D(p->level--);
31972 return NULL;
31973 }
31974 void * _res = NULL;
31975 int _mark = p->mark;
31976 { // 'and' inversion
31977 if (p->error_indicator) {
31978 D(p->level--);
31979 return NULL;
31980 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031981 D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010031982 Token * _keyword;
31983 expr_ty c;
31984 if (
31985 (_keyword = _PyPegen_expect_token(p, 532)) // token='and'
31986 &&
31987 (c = inversion_rule(p)) // inversion
31988 )
31989 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070031990 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 +010031991 _res = c;
31992 if (_res == NULL && PyErr_Occurred()) {
31993 p->error_indicator = 1;
31994 D(p->level--);
31995 return NULL;
31996 }
31997 goto done;
31998 }
31999 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032000 D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032001 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032002 }
32003 _res = NULL;
32004 done:
32005 D(p->level--);
32006 return _res;
32007}
32008
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032009// _tmp_186: 'if' disjunction
32010static void *
32011_tmp_186_rule(Parser *p)
32012{
32013 D(p->level++);
32014 if (p->error_indicator) {
32015 D(p->level--);
32016 return NULL;
32017 }
32018 void * _res = NULL;
32019 int _mark = p->mark;
32020 { // 'if' disjunction
32021 if (p->error_indicator) {
32022 D(p->level--);
32023 return NULL;
32024 }
32025 D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32026 Token * _keyword;
32027 expr_ty z;
32028 if (
32029 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32030 &&
32031 (z = disjunction_rule(p)) // disjunction
32032 )
32033 {
32034 D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32035 _res = z;
32036 if (_res == NULL && PyErr_Occurred()) {
32037 p->error_indicator = 1;
32038 D(p->level--);
32039 return NULL;
32040 }
32041 goto done;
32042 }
32043 p->mark = _mark;
32044 D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ',
32045 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32046 }
32047 _res = NULL;
32048 done:
32049 D(p->level--);
32050 return _res;
32051}
32052
32053// _tmp_187: 'if' disjunction
32054static void *
32055_tmp_187_rule(Parser *p)
32056{
32057 D(p->level++);
32058 if (p->error_indicator) {
32059 D(p->level--);
32060 return NULL;
32061 }
32062 void * _res = NULL;
32063 int _mark = p->mark;
32064 { // 'if' disjunction
32065 if (p->error_indicator) {
32066 D(p->level--);
32067 return NULL;
32068 }
32069 D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32070 Token * _keyword;
32071 expr_ty z;
32072 if (
32073 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
32074 &&
32075 (z = disjunction_rule(p)) // disjunction
32076 )
32077 {
32078 D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
32079 _res = z;
32080 if (_res == NULL && PyErr_Occurred()) {
32081 p->error_indicator = 1;
32082 D(p->level--);
32083 return NULL;
32084 }
32085 goto done;
32086 }
32087 p->mark = _mark;
32088 D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ',
32089 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
32090 }
32091 _res = NULL;
32092 done:
32093 D(p->level--);
32094 return _res;
32095}
32096
32097// _tmp_188: starred_expression | (assigment_expression | expression !':=') !'='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032098static void *
32099_tmp_188_rule(Parser *p)
32100{
32101 D(p->level++);
32102 if (p->error_indicator) {
32103 D(p->level--);
32104 return NULL;
32105 }
32106 void * _res = NULL;
32107 int _mark = p->mark;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032108 { // starred_expression
32109 if (p->error_indicator) {
32110 D(p->level--);
32111 return NULL;
32112 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032113 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression"));
Pablo Galindo4a97b152020-09-02 17:44:19 +010032114 expr_ty starred_expression_var;
32115 if (
32116 (starred_expression_var = starred_expression_rule(p)) // starred_expression
32117 )
32118 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032119 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 +010032120 _res = starred_expression_var;
32121 goto done;
32122 }
32123 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032124 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindo4a97b152020-09-02 17:44:19 +010032125 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
32126 }
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032127 { // (assigment_expression | expression !':=') !'='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032128 if (p->error_indicator) {
32129 D(p->level--);
32130 return NULL;
32131 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032132 D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32133 void *_tmp_199_var;
Pablo Galindo4a97b152020-09-02 17:44:19 +010032134 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032135 (_tmp_199_var = _tmp_199_rule(p)) // assigment_expression | expression !':='
Pablo Galindo4a97b152020-09-02 17:44:19 +010032136 &&
32137 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
32138 )
32139 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032140 D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
32141 _res = _tmp_199_var;
Pablo Galindob2802482021-04-15 21:38:45 +010032142 goto done;
32143 }
32144 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032145 D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='"));
Pablo Galindob2802482021-04-15 21:38:45 +010032147 }
32148 _res = NULL;
32149 done:
32150 D(p->level--);
32151 return _res;
32152}
32153
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032154// _tmp_189: ',' star_target
32155static void *
32156_tmp_189_rule(Parser *p)
32157{
32158 D(p->level++);
32159 if (p->error_indicator) {
32160 D(p->level--);
32161 return NULL;
32162 }
32163 void * _res = NULL;
32164 int _mark = p->mark;
32165 { // ',' star_target
32166 if (p->error_indicator) {
32167 D(p->level--);
32168 return NULL;
32169 }
32170 D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32171 Token * _literal;
32172 expr_ty c;
32173 if (
32174 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32175 &&
32176 (c = star_target_rule(p)) // star_target
32177 )
32178 {
32179 D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32180 _res = c;
32181 if (_res == NULL && PyErr_Occurred()) {
32182 p->error_indicator = 1;
32183 D(p->level--);
32184 return NULL;
32185 }
32186 goto done;
32187 }
32188 p->mark = _mark;
32189 D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ',
32190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
32191 }
32192 _res = NULL;
32193 done:
32194 D(p->level--);
32195 return _res;
32196}
32197
32198// _tmp_190: ',' star_target
32199static void *
32200_tmp_190_rule(Parser *p)
32201{
32202 D(p->level++);
32203 if (p->error_indicator) {
32204 D(p->level--);
32205 return NULL;
32206 }
32207 void * _res = NULL;
32208 int _mark = p->mark;
32209 { // ',' star_target
32210 if (p->error_indicator) {
32211 D(p->level--);
32212 return NULL;
32213 }
32214 D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32215 Token * _literal;
32216 expr_ty c;
32217 if (
32218 (_literal = _PyPegen_expect_token(p, 12)) // token=','
32219 &&
32220 (c = star_target_rule(p)) // star_target
32221 )
32222 {
32223 D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
32224 _res = c;
32225 if (_res == NULL && PyErr_Occurred()) {
32226 p->error_indicator = 1;
32227 D(p->level--);
32228 return NULL;
32229 }
32230 goto done;
32231 }
32232 p->mark = _mark;
32233 D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ',
32234 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
32235 }
32236 _res = NULL;
32237 done:
32238 D(p->level--);
32239 return _res;
32240}
32241
32242// _tmp_191: star_targets '='
Pablo Galindob2802482021-04-15 21:38:45 +010032243static void *
Pablo Galindo56c95df2021-04-21 15:28:21 +010032244_tmp_191_rule(Parser *p)
Pablo Galindob2802482021-04-15 21:38:45 +010032245{
32246 D(p->level++);
32247 if (p->error_indicator) {
32248 D(p->level--);
32249 return NULL;
32250 }
32251 void * _res = NULL;
32252 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032253 { // star_targets '='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032254 if (p->error_indicator) {
32255 D(p->level--);
32256 return NULL;
32257 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032258 D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032259 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032260 expr_ty star_targets_var;
Pablo Galindoa77aac42021-04-23 14:27:05 +010032261 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032262 (star_targets_var = star_targets_rule(p)) // star_targets
Pablo Galindoa77aac42021-04-23 14:27:05 +010032263 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032264 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032265 )
32266 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032267 D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32268 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
Pablo Galindoa77aac42021-04-23 14:27:05 +010032269 goto done;
32270 }
32271 p->mark = _mark;
32272 D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032274 }
32275 _res = NULL;
32276 done:
32277 D(p->level--);
32278 return _res;
32279}
32280
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032281// _tmp_192: star_targets '='
Pablo Galindoa77aac42021-04-23 14:27:05 +010032282static void *
32283_tmp_192_rule(Parser *p)
32284{
32285 D(p->level++);
32286 if (p->error_indicator) {
32287 D(p->level--);
32288 return NULL;
32289 }
32290 void * _res = NULL;
32291 int _mark = p->mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032292 { // star_targets '='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032293 if (p->error_indicator) {
32294 D(p->level--);
32295 return NULL;
32296 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032297 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 -070032298 Token * _literal;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032299 expr_ty star_targets_var;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032300 if (
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032301 (star_targets_var = star_targets_rule(p)) // star_targets
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032302 &&
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032303 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032304 )
32305 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032306 D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
32307 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032308 goto done;
32309 }
32310 p->mark = _mark;
32311 D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032313 }
32314 _res = NULL;
32315 done:
32316 D(p->level--);
32317 return _res;
32318}
32319
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032320// _tmp_193: ')' | '**'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032321static void *
32322_tmp_193_rule(Parser *p)
32323{
32324 D(p->level++);
32325 if (p->error_indicator) {
32326 D(p->level--);
32327 return NULL;
32328 }
32329 void * _res = NULL;
32330 int _mark = p->mark;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032331 { // ')'
32332 if (p->error_indicator) {
32333 D(p->level--);
32334 return NULL;
32335 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032336 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032337 Token * _literal;
32338 if (
32339 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
32340 )
32341 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032342 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 -070032343 _res = _literal;
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032344 goto done;
32345 }
32346 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032347 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032349 }
32350 { // '**'
32351 if (p->error_indicator) {
32352 D(p->level--);
32353 return NULL;
32354 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032355 D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032356 Token * _literal;
32357 if (
32358 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32359 )
32360 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032361 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 -070032362 _res = _literal;
32363 goto done;
32364 }
32365 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032366 D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032367 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032368 }
32369 _res = NULL;
32370 done:
32371 D(p->level--);
32372 return _res;
32373}
32374
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032375// _tmp_194: ':' | '**'
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032376static void *
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032377_tmp_194_rule(Parser *p)
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032378{
32379 D(p->level++);
32380 if (p->error_indicator) {
32381 D(p->level--);
32382 return NULL;
32383 }
32384 void * _res = NULL;
32385 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032386 { // ':'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032387 if (p->error_indicator) {
32388 D(p->level--);
32389 return NULL;
32390 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032391 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032392 Token * _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032393 if (
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032394 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032395 )
32396 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032397 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032398 _res = _literal;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032399 goto done;
32400 }
32401 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032402 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
32404 }
32405 { // '**'
32406 if (p->error_indicator) {
32407 D(p->level--);
32408 return NULL;
32409 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032410 D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032411 Token * _literal;
32412 if (
32413 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
32414 )
32415 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032416 D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032417 _res = _literal;
32418 goto done;
32419 }
32420 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032421 D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032422 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032423 }
32424 _res = NULL;
32425 done:
32426 D(p->level--);
32427 return _res;
32428}
32429
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032430// _tmp_195: expression ['as' star_target]
32431static void *
32432_tmp_195_rule(Parser *p)
32433{
32434 D(p->level++);
32435 if (p->error_indicator) {
32436 D(p->level--);
32437 return NULL;
32438 }
32439 void * _res = NULL;
32440 int _mark = p->mark;
32441 { // expression ['as' star_target]
32442 if (p->error_indicator) {
32443 D(p->level--);
32444 return NULL;
32445 }
32446 D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32447 void *_opt_var;
32448 UNUSED(_opt_var); // Silence compiler warnings
32449 expr_ty expression_var;
32450 if (
32451 (expression_var = expression_rule(p)) // expression
32452 &&
32453 (_opt_var = _tmp_200_rule(p), 1) // ['as' star_target]
32454 )
32455 {
32456 D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32457 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32458 goto done;
32459 }
32460 p->mark = _mark;
32461 D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ',
32462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32463 }
32464 _res = NULL;
32465 done:
32466 D(p->level--);
32467 return _res;
32468}
32469
32470// _tmp_196: expressions ['as' star_target]
32471static void *
32472_tmp_196_rule(Parser *p)
32473{
32474 D(p->level++);
32475 if (p->error_indicator) {
32476 D(p->level--);
32477 return NULL;
32478 }
32479 void * _res = NULL;
32480 int _mark = p->mark;
32481 { // expressions ['as' star_target]
32482 if (p->error_indicator) {
32483 D(p->level--);
32484 return NULL;
32485 }
32486 D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
32487 void *_opt_var;
32488 UNUSED(_opt_var); // Silence compiler warnings
32489 expr_ty expressions_var;
32490 if (
32491 (expressions_var = expressions_rule(p)) // expressions
32492 &&
32493 (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target]
32494 )
32495 {
32496 D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]"));
32497 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32498 goto done;
32499 }
32500 p->mark = _mark;
32501 D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ',
32502 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
32503 }
32504 _res = NULL;
32505 done:
32506 D(p->level--);
32507 return _res;
32508}
32509
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032510// _tmp_197: expression ['as' star_target]
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032511static void *
32512_tmp_197_rule(Parser *p)
32513{
32514 D(p->level++);
32515 if (p->error_indicator) {
32516 D(p->level--);
32517 return NULL;
32518 }
32519 void * _res = NULL;
32520 int _mark = p->mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032521 { // expression ['as' star_target]
32522 if (p->error_indicator) {
32523 D(p->level--);
32524 return NULL;
32525 }
32526 D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32527 void *_opt_var;
32528 UNUSED(_opt_var); // Silence compiler warnings
32529 expr_ty expression_var;
32530 if (
32531 (expression_var = expression_rule(p)) // expression
32532 &&
32533 (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target]
32534 )
32535 {
32536 D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]"));
32537 _res = _PyPegen_dummy_name(p, expression_var, _opt_var);
32538 goto done;
32539 }
32540 p->mark = _mark;
32541 D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ',
32542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]"));
32543 }
32544 _res = NULL;
32545 done:
32546 D(p->level--);
32547 return _res;
32548}
32549
32550// _tmp_198: expressions ['as' star_target]
32551static void *
32552_tmp_198_rule(Parser *p)
32553{
32554 D(p->level++);
32555 if (p->error_indicator) {
32556 D(p->level--);
32557 return NULL;
32558 }
32559 void * _res = NULL;
32560 int _mark = p->mark;
Pablo Galindo58fb1562021-02-02 19:54:22 +000032561 { // expressions ['as' star_target]
32562 if (p->error_indicator) {
32563 D(p->level--);
32564 return NULL;
32565 }
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032566 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 +000032567 void *_opt_var;
32568 UNUSED(_opt_var); // Silence compiler warnings
32569 expr_ty expressions_var;
32570 if (
32571 (expressions_var = expressions_rule(p)) // expressions
32572 &&
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032573 (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target]
Pablo Galindo58fb1562021-02-02 19:54:22 +000032574 )
32575 {
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032576 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 +000032577 _res = _PyPegen_dummy_name(p, expressions_var, _opt_var);
32578 goto done;
32579 }
32580 p->mark = _mark;
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032581 D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindob2802482021-04-15 21:38:45 +010032582 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]"));
Pablo Galindo58fb1562021-02-02 19:54:22 +000032583 }
32584 _res = NULL;
32585 done:
32586 D(p->level--);
32587 return _res;
32588}
32589
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032590// _tmp_199: assigment_expression | expression !':='
Pablo Galindo58fb1562021-02-02 19:54:22 +000032591static void *
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032592_tmp_199_rule(Parser *p)
Pablo Galindo56c95df2021-04-21 15:28:21 +010032593{
32594 D(p->level++);
32595 if (p->error_indicator) {
32596 D(p->level--);
32597 return NULL;
32598 }
32599 void * _res = NULL;
32600 int _mark = p->mark;
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032601 { // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032602 if (p->error_indicator) {
32603 D(p->level--);
32604 return NULL;
32605 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032606 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 -070032607 expr_ty assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032608 if (
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032609 (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression
Pablo Galindo56c95df2021-04-21 15:28:21 +010032610 )
32611 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032612 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 -070032613 _res = assigment_expression_var;
Pablo Galindo56c95df2021-04-21 15:28:21 +010032614 goto done;
32615 }
32616 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032617 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression"));
32619 }
32620 { // expression !':='
32621 if (p->error_indicator) {
32622 D(p->level--);
32623 return NULL;
32624 }
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032625 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 -070032626 expr_ty expression_var;
32627 if (
32628 (expression_var = expression_rule(p)) // expression
32629 &&
32630 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
32631 )
32632 {
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032633 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 -070032634 _res = expression_var;
32635 goto done;
32636 }
32637 p->mark = _mark;
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032638 D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ',
Pablo Galindoe53f72a2021-06-04 00:11:43 +010032639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoa77aac42021-04-23 14:27:05 +010032640 }
32641 _res = NULL;
32642 done:
32643 D(p->level--);
32644 return _res;
32645}
32646
Miss Islington (bot)3e137422021-06-10 15:31:09 -070032647// _tmp_200: 'as' star_target
32648static void *
32649_tmp_200_rule(Parser *p)
32650{
32651 D(p->level++);
32652 if (p->error_indicator) {
32653 D(p->level--);
32654 return NULL;
32655 }
32656 void * _res = NULL;
32657 int _mark = p->mark;
32658 { // 'as' star_target
32659 if (p->error_indicator) {
32660 D(p->level--);
32661 return NULL;
32662 }
32663 D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32664 Token * _keyword;
32665 expr_ty star_target_var;
32666 if (
32667 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32668 &&
32669 (star_target_var = star_target_rule(p)) // star_target
32670 )
32671 {
32672 D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32673 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32674 goto done;
32675 }
32676 p->mark = _mark;
32677 D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ',
32678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32679 }
32680 _res = NULL;
32681 done:
32682 D(p->level--);
32683 return _res;
32684}
32685
32686// _tmp_201: 'as' star_target
32687static void *
32688_tmp_201_rule(Parser *p)
32689{
32690 D(p->level++);
32691 if (p->error_indicator) {
32692 D(p->level--);
32693 return NULL;
32694 }
32695 void * _res = NULL;
32696 int _mark = p->mark;
32697 { // 'as' star_target
32698 if (p->error_indicator) {
32699 D(p->level--);
32700 return NULL;
32701 }
32702 D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32703 Token * _keyword;
32704 expr_ty star_target_var;
32705 if (
32706 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32707 &&
32708 (star_target_var = star_target_rule(p)) // star_target
32709 )
32710 {
32711 D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32712 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32713 goto done;
32714 }
32715 p->mark = _mark;
32716 D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ',
32717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32718 }
32719 _res = NULL;
32720 done:
32721 D(p->level--);
32722 return _res;
32723}
32724
Miss Islington (bot)ec0699c2021-05-19 11:28:31 -070032725// _tmp_202: 'as' star_target
32726static void *
32727_tmp_202_rule(Parser *p)
32728{
32729 D(p->level++);
32730 if (p->error_indicator) {
32731 D(p->level--);
32732 return NULL;
32733 }
32734 void * _res = NULL;
32735 int _mark = p->mark;
32736 { // 'as' star_target
32737 if (p->error_indicator) {
32738 D(p->level--);
32739 return NULL;
32740 }
32741 D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32742 Token * _keyword;
32743 expr_ty star_target_var;
32744 if (
32745 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32746 &&
32747 (star_target_var = star_target_rule(p)) // star_target
32748 )
32749 {
32750 D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32751 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32752 goto done;
32753 }
32754 p->mark = _mark;
32755 D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ',
32756 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32757 }
32758 _res = NULL;
32759 done:
32760 D(p->level--);
32761 return _res;
32762}
32763
Miss Islington (bot)ae1732d2021-05-21 11:20:43 -070032764// _tmp_203: 'as' star_target
32765static void *
32766_tmp_203_rule(Parser *p)
32767{
32768 D(p->level++);
32769 if (p->error_indicator) {
32770 D(p->level--);
32771 return NULL;
32772 }
32773 void * _res = NULL;
32774 int _mark = p->mark;
32775 { // 'as' star_target
32776 if (p->error_indicator) {
32777 D(p->level--);
32778 return NULL;
32779 }
32780 D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32781 Token * _keyword;
32782 expr_ty star_target_var;
32783 if (
32784 (_keyword = _PyPegen_expect_token(p, 520)) // token='as'
32785 &&
32786 (star_target_var = star_target_rule(p)) // star_target
32787 )
32788 {
32789 D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target"));
32790 _res = _PyPegen_dummy_name(p, _keyword, star_target_var);
32791 goto done;
32792 }
32793 p->mark = _mark;
32794 D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ',
32795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target"));
32796 }
32797 _res = NULL;
32798 done:
32799 D(p->level--);
32800 return _res;
32801}
32802
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032803void *
32804_PyPegen_parse(Parser *p)
32805{
32806 // Initialize keywords
32807 p->keywords = reserved_keywords;
32808 p->n_keyword_lists = n_keyword_lists;
Pablo Galindob2802482021-04-15 21:38:45 +010032809 p->soft_keywords = soft_keywords;
Pablo Galindo1ed83ad2020-06-11 17:30:46 +010032810
32811 // Run parser
32812 void *result = NULL;
32813 if (p->start_rule == Py_file_input) {
32814 result = file_rule(p);
32815 } else if (p->start_rule == Py_single_input) {
32816 result = interactive_rule(p);
32817 } else if (p->start_rule == Py_eval_input) {
32818 result = eval_rule(p);
32819 } else if (p->start_rule == Py_func_type_input) {
32820 result = func_type_rule(p);
32821 } else if (p->start_rule == Py_fstring_input) {
32822 result = fstring_rule(p);
32823 }
32824
32825 return result;
32826}
32827
32828// The end